Configuración de Linksys SPA3102 con asterisk

En primer lugar, ya que no vamos a usar al SPA3102 como router, lo configuraremos para que haga bridge entre los dos interfaces de red, de modo que podemos usarlo a modo de switch de una boca. Debido a un fallo de diseño en mi opinión, al establecer el modo bridge la IP_LAN debe quedar en blanco, pudiendo utilizar únicamente el campo correspondiente a la IP_WAN. Si accidentalmente perdemos acceso al router, desconectaremos todo menos la alimentación y el teléfono de la salida FXS, y resetearemos a la configuración de fábrica mediante los códigos del manual

Lo siguiente es configurar una nueva troncal en freepbx con los siguientes datos en "incoming":


canreinvite=no
context=from-trunk
dial=SIP/PSTN
dtmfmode=inband
host=dynamic
nat=yes
port=5060
qualify=yes
secret=PSTN
type=friend
		
Sin cubrir más datos, guardamos los cambios. Configuramos una ruta de salida que utilice esta troncal, como haríamos con cualquier otra troncal.

Ahora debemos entrar en la configuración del SPA, e ir a la pestaña "PSTN"

  1. En "Sip Settings" comprobamos que el puerto SIP sea el mismo que configuramos en Asterisk.

  2. En "Proxy and Registration" ponemos la ip de Asterisk

  3. En "Subscriber Information" cubrimos los datos de registro, acordes con el usuario/clave que hemos especificado al crear la troncal (al fin y al cabo esta troncal se comporta de modo similar a una extensión).

  4. Ahora toca configurar el "Dialplan". Tan solo debemos modificar uno, en nuestro caso usaremos el 2. El resto los dejaremos en "(xx.)" Aquí tenemos que decirle al SPA3102 qué debe hacer con las llamadas entrantes. Pondremos en el DialPlan nº 2 lo siguiente: "(S0<:s>)" ó "(S0<:s@192.168.0.253>)" (ip del servidor Asterisk). De todos modos con la primera opción es suficiente ya que la ip de Asterisk está configurada en la sección de "Proxy and Registration".

    NOTA: Mientras que lo anterior funciona y es probablemente adecuado para la mayoría de las configuraciones, podemos sacar partido de las "Inbound Routes" usando el DialPlan "(S0<:1234567890>)". Este número "1234567890" o el que pongamos en su lugar deberá estar creado como una Extensión SIP en Asterisk. Cuando nos entre una llamada desde la PSTN, ésta llegará a ASTERISK con "FROM_DID=1234567890", de modo que podremos rutearla hacia donde nos convenga.

  5. Ahora nos vamos a la sección VoIP-TO-PSTN Gateway Setup. Aquí se configuran los parámetros aplicables a las llamadas provenientes desde Asterisk hacia el exterior y establecemos los siguientes parámetros:

    
VoIP-To-PSTN Gateway Enable: yes
    VoIP Caller Auth Method: None
    VoIP Pin Max retry: 3
    One Stage Dialing: Yes
    Line 1 VoIP Caller DP: none
    VoIP Caller Default DP: none
    Line 1 Fallback DP: none
    		
  6. Sección PSTN-To-VoIP Gateway Setup:

    
PSTN-To-Voip Gateway Enable: Yes
    PSTN Caller Auth Method: none
    PSTN Ring Thru Line 1: no (Para usar ASTERISK para enrutar).
    PSTN Pin Max Retry: 3
    PSTN CID for VoIP CID: Yes
    PSTN Caller Default DP: 2 (Aquí ponemos el Dial Plan que se usará cuando se haga una llamada).
    Off Hook While Calling VoIP: No
    Line 1 Signal Hook Flash To PSTN: Disabled
    		

  7. FXO Timer Values (sec):

    Con estos valores he conseguido establecer llamadas a móvil en 10 segundos y a fijos en 8 segundos.

    
Voip Answer Delay: 0
    PSTN Answer Delay: 1 (Si no identifica correctamente las llamadas, incrementar el valor)
    PSTN-To-VoIP Call Max Dur: 0
    VoIP-To-PSTN Call Max Dur: 0
    VoIP DLG Refresh Intvl: 0
    PSTN Dialing Delay: 1 (Si se pone a 0 no realiza llamadas salientes)
    PSTN Hook Flash Len: 0.25
    VoIP PIN Digit Timeout: 10
    PSTN PIN Digit Timeout: 10
    PSTN Ring Thru Delay: 1
    PSTN Ring Thru CWT Delay: 3
    PSTN Ring Timeout: 5
    PSTN Dial Digit Len: .1/.1
    		

Por último ajustaremos la configuración regional para que los tonos de llamada se correspondan con los usados en nuestro país.

En la página World PSTN Tone Database tenemos disponibles la configuración de tonos para la mayoría, sino todos los países. Además tiene una opción para ver el tono en formato Sipura/Linksys o Zaptel/Asterisk, con lo que solo tenemos que buscar el que necesitemos y copiar/pegar.

No obstante, para España tenemos una recopilación realizada por Alberto Sagredo en la página VoipNovatos que reproduzco aquí:


# *** Call Progress Tones

Dial_Tone "425@-10;10(*/0/1)" ;
Outside_Dial_Tone "425@-10;10(*/0/1)" ;
Prompt_Tone "" ;
Busy_Tone "425@-20;10(.2/.2/1)" ;
Reorder_Tone "425@-10;10(0.2/0.2/1,0.2/0.2/1,0.2/0.6/1)" ;
Off_Hook_Warning_Tone "425@-10;10(.25/.25/1)" ;
Ring_Back_Tone "425@-10;10(1/4/1)" ;
Call_Waiting_Tone "425@-20;10(0.175/0.175/1,0.0175/3.5/1)";
Confirm_Tone "" ;
SIT1_Tone "950@-10,1400@-10,1800@-10;10(.33/0/1,.33/0/2,0.33/1/3)" ;
SIT2_Tone "" ;
SIT3_Tone "" ;
SIT4_Tone "" ;
MWI_Dial_Tone "425@-10;10(1/0.1/1)" ;
Cfwd_Dial_Tone "425@-10;10(0.5/0.05/1)" ;
Holding_Tone "1400@-20;10(0.4/5/1)" ;
Conference_Tone "" ;
Secure_Call_Indication_Tone "" ;
Page_Tone "" ;