29 de diciembre de 2013

AsteriskNOW: Extensiones SIP e IAX2

Continuando con la serie AsteriskNOW, voy a empezar a describir los pasos para añadir extensiones a la centralita y a hacer algunas pruebas llamando entre distintas extensiones. Asterisk soporta varios protocolos de señalización y transporte entre los que podemos encontrar SIP, IAX2 o DAHDI, este último es utilizado para el hardware (y compatibles) de la compañía Digium como teléfonos o tarjetas de telefonía.

En primer lugar voy a realizar la configuración de una extensión que va a utilizar el protocolo SIP para la señalización y el mantenimiento de las sesiones, mientras que el transporte de la llamada será realizado por protocolos como RTP o SRTP.

Extensión SIP


Desde el menú Applications pulsamos en Extensions para acceder al panel principal donde poder crear nuevas extensiones. En el desplegable elegiremos el tipo de protocolo que utilizará la nueva extensión, por defecto SIP.


Deberemos asignar un número de extensión en el campo User Extension y agregar un nombre descriptivo en el campo Display Name, éste además de aparecer en el terminal donde la extensión está configurada se utilizará como CallerID en las llamadas que la extensión realice.


En el apartado Extension Options encontramos diversas configuraciones como las opciones de Asterisk para las extensiones, timeouts para las llamadas, CallerIDs de salida y de emergencia entre otras opciones. Modificaremos el valor Outbound Concurrency Limit a 1 como medida de seguridad para evitar que se realicen más de una llamada simultánea al exterior.


Deberemos configurar una contraseña robusta para cada extensión sobre todo en sistemas en producción, esto lo configuramos desde el apartado Device Option. En el campo secret se encuentra la contraseña por defecto del dispositivo y tiene toda la pinta de ser un hash MD5. Podremos variar el comportamiento del DTMF en el campo dtmfmode al igual que indicar si nos encontramos detraś de un NAT y vamos a hacer llamadas al exterior.


La parte del VoiceMail la dejo deshabilitada de momento ya que tengo en mente una entrada con todas las opciones que nos permite este módulo.


Y por último guardamos cambios con el botón Submit y aplicamos la configuración con el botón Apply Config que aparece en la barra de navegación.


Una vez creada la extensión, aparece en el menú de la izquierda para poder editarla o eliminarla.


Extensión IAX2


Para configurar una extensión que utilizará el protocolo de señalización y transporte IAX2 elegiremos la opción Generic IAX2 Device en el desplegable y pulsamos el botón Submit. Realmente no hay diferencia entre ambos formularios salvo una excepción, deberemos indicar una extensión para el usuario (User Extension) y un nombre para mostrar en el dispositivo y que será utilizado en el CallerID, Display Name.


Limitamos también las llamadas simultáneas salientes que el dispositivo puede realizar.


Y configuramos una contraseña robusta para el dispositivo en la opción secret. En este caso no aparecen las opciones relativas al DTMF o el NAT pero a la hora de editar las extensiones veremos que aparecen muchos más parámetros.


Dejo el VoiceMail deshabilitado, guardo y aplico la configuración de manera idéntica al caso anterior.


Configuración de clientes


Ahora describiré la configuración de los softphones que utilizarán las extensiones recien creadas, voy a utilizar Linphone como cliente SIP y SFLphone como cliente IAX2 aunque este último también tiene soporte para el protocolo SIP.

Cliente SIP


Una vez instalado el paquete linphone, desde el menú Options en la opción Preferences podemos especificar desde la configuración de la red, los codecs para el audio o el idioma.


Desde la pestaña Manage SIP Accounts podemos añadir cuentas de usuarios SIP y especificar tanto un Display Name como el Username a utilizar. Pulsando en el botón Add aparece una ventana donde introducir la identidad SIP y la dirección IP de la centralita.


Será necesario ingresar la contraseña que hemos configurado para dicha extensión


Quedando la configuración definitiva del terminal de este modo


Si la configuración es correcta, en el teléfono se muestra un mensaje informando que se ha registrado satisfactoriamente contra la centralita.


Cliente IAX2


Una vez instalado el paquete sflphone-gnome, lastima que la versión de KDE sea inestable, desde el menú Editar tenemos acceso a las Preferencias de la aplicación y las Cuentas. Dentro de la configuración de las cuentas añadimos una e ingresamos los siguientes parámetros:

- Alias: Nombre descriptivo para la cuenta.
- Protocolo: En este caso IAX2.
- Nombre del equipo: Dirección IP o nombre de host de la centralita.
- Usuario: El número de la extensión.
- Contraseña: El secret configurado a la extensión.


Una vez creada la cuenta podemos ver el estado de la misma e informa que ha fallado la autenticación.


Podemos tirar de los logs de Asterisk (Reports > Asterisk Logs Files) pero a mi siempre me parece más entretenida la consola y en este caso encima colorea la salida del debug.


El error en cuestión es:
Call rejected, CallToken Support required. If unexpected, resolve by placing address 192.168.1.38 in the calltokenoptional list or setting user 1002 requirecalltoken=no
Entre las opciones Device Options que no aparecieron a la hora de crear la extensión se encuentra requirecalltoken con valor Yes por defecto por lo que lo cambio a No.


Una vez habilitada nuevamente la cuenta comprobamos que se registra el terminal correctamente contra la centralita.


Llamadas de pruebas


Una vez los teléfonos están registrados correctamente contra la centralita podemos realizar llamadas de prueba entre ambas extensiones.

 

En posteriores entradas lo comentaré más en detalle pero es bueno que conozcamos que existen una serie de numeraciones preconfiguradas en la centralita llamadas Features Codes. Estas se encuentran dentro del menú Admin y podemos editarlas a nuestro antojo e incluso como ya veremos añadir otras nuevas.

Por ejemplo, podemos consultar la hora del sistema marcando la opción *60 desde los teléfonos


Hasta aquí la introducción a la creación de extensiones y la configuración de softphones tanto para clientes SIP como IAX2. En la siguiente entrada describiré más parámetros de configuración alguno de ellos para asegurar en la medida de lo posible nuestra instalación.

Un saludo, Brixton Cat.

1 comentario:

  1. Asterisk con sipura, spa o srp.

    Hola segun he probado puedes configurar un asterisk en varios modos de funcionamiento para acceder a el hardware por IP y así usar los telefonos: fxo, fxs, voip ...
    Uno de ellos es el que hace que asterisk identifique una extension poniendo al hw un usuario y un passwd, y pasandole al asterisk la @ip del hw y el usr y passwrd, esto da visibilidad a los fxs con asterisk.
    Otra manera es haciendo que asterisk sea el proxy, por tanto al hw le pasamos la ip del asterisk y la ponemos en proxy, le decimos que registre.
    Según he leido estos aparatos de red, sólo aplican el dialplan al marcado del usuario, y ahí podemos indicar hacia a que host, interface mandar la llamada Ss([69]xxxxxxxx<:@asterisk>| ...) esto quiere decir que es algo parecido a llamadas salientes: dialplan saliente. En caso de una llamada entrante, o llamadas entre extensiones fxs, o etc, en caso necesario, no he encontrado ningún dialplan que me mande las llamas hacia asterisk, ya que un resgistro en un proxy, no tiene porque saber mis llamadas en la pstn, fxo, telefono normal de línea, es decir si le pongo un skype, no va a mandar las llamadas de mi línea a skype puesto que es otra línea, otro problema es que se suele perder el tono, hay configuración regional, reset de fáfrica, configuración de tonos, seguimiento de línea, asterisk, etc, que lo solucionan, yo lo desconozco. Me gustaria saber cual es el dialplan que envía las llamadas del fxo al asterisk, y el dialplan que manda las llamadas del asterisk al ruter, sip.conf, extensions.conf y el dialplan del ruter. Sigo buscando...

    ResponderEliminar

Bienvenid= si quieres dejar un comentario