Ficheros de configuración de Asterisk. Parte 2

Bien, continuando con la primera entrada, si nos dirigimos a /etc/asterisk veremos un montón de ficheros, la mayoría de ellos fueron creados cuando ejecutamos make samples . Entonces, para empezar a ver como funciona Asterisk vamos a trabajar con  asterisk.conf, extensions.conf, sip.conf, y echaremos un ojo a voicemail.conf.

Antes que nada comentar que en el fichero sip.conf se configuran los teléfonos/usuarios que tengamos, es decir, estableceremos los parámetros para un teléfono. Por ejemplo, como más adelante veremos como trabajar con un softphone, que es un teléfono IP virtual, configuraremos allí el numero que tendrá, los permisos, que codecs de audio tendrá permitido utilizar, que contexto utilizará, etc…

El fichero extension.conf es el encargado de establecer y realizar las llamadas a otros usuarios, o a buzones de los mismos, o a realizar cualquier cosa, todo depende de nuestra  imaginación… (quizá exagero). En este fichero, podemos utilizar las famosas aplicaciones de Asterisk, en un momento os dejo una tabla de las susodichas y sus acciones, pero esperad un momento, ¿qué coño es un contexto?, bien, pues un contexto es una sección del plan de discado, o dialplan en el que, digamos que se ejecutan diversas acciones (aplicaciones) dependiendo del numero que se marque desde el teléfono/usuario (SIP).

¿Como se define un contexto? os pongo un fichero de ejemplo y os comento linea a linea de que va la cosa:

[Contexto.Llamadas.Externas.Moviles]; Nombre del contexto
exten => _6XXXXXXXX,1,Answer()
; Aplicación Answer que contesta automáticamente la llamada
exten => _6XXXXXXXX,n,Playback(hello-world); Aplicación Playback, que reproduce un sonido, se lo pasamos en el parámetro, lo reproducirá en inglés por defecto.
exten => _6XXXXXXXX,n,Hangup(); Aplicación Hangup, que se encarga de colgar la llamada después de reproducir el sonido, en este caso.

Sintaxis:

  1. El primer número, hace referencia al número del SIP, es decir al numero que se marca/ que se desea llamar.
  2. La X(Debe haber una barra baja ( _ ) al principio ) es cualquier valor.
  3. El número siguiente significa la primera acción a realizar, es decir la prioridad, se tiene que establecer el número uno como la prioridad primera y de allí en adelante poner n la cual pasaría a significarse: prioridad anterior+1

Entonces, siguiendo un poco el ejemplo anterior, cuando marcamos un numero que empiece por 6 y que despues tenga 8 números cualquiera, la llamada nos será automáticamente contestada, se reproducirá el sonido hello world y una vez terminado se colgará la llamada, pero OJO, esto solo ocurrirá si tenemos asignado ese contexto, ¿como se asignan los contextos?, pues veamos un ejemplo del fichero sip.conf

[211] → Número de extensión del usuario
type=friend → Friend: puede realizar y recibir llamadas
host=dynamic →
Dynamic: el SIP/usuario puede tener cualquier IP
username=211 →
Nombre de usuario con el que se registrará el SIP/Usuario en nuestra centralita
secret=password211 →
Si, la contraseña, lo adivinaste
callerid=”Pepe”→
Nombre que aparecerá al llamar
context=Contexto.Llamadas.Externas.Moviles →
Asignación del contexto que utiliza el SIP/Usuario
mailbox=211@buzon →
Buzon del SIP/Usuario 211
allow=allSe le permiten todos los codecs

Una explicación más extensa de algunos de los valores anteriores sería:

  • type: Especifica qué tipo de interacción permitiremos al usuario con nuestro sistema. Los valores permitidos son “user”, “peer” y “friend”. Normalmente se utiliza “peer” para interconectar con proveedores VoIP, y “friend” para definir extensiones internas.
  • host: Especifica el host o IP desde la que esperamos que el usuario se comunique con nosotros. Si  el usuario se puede conectar desde diversas IPs se utiliza “dynamic”, como suele ser el caso habitual de las extensiones internas.
  • callerid: Parámetro opcional que permite definir el nombre del CallerID. Es decir, cuando llamemos a otras extensiones internas, además de nuestro número de extensión, en pantalla figurará nuestro nombre aunque la otra persona no nos tenga en la agenda.

Haciendo un pequeño parón os dejo con la tabla de algunas de las aplicaciones más utilizadas en Asterisk y con un enlace a las explicaciones de cada una de ellas:

Aplicación Ficha Descripción
Answer URL Descuelga la llamada entrante
Dial URL Realiza una llamada saliente
Hangup URL Termina la llamada en curso
Wait URL Espera X segundos antes de continuar con la siguiente acción
Festival URL Utiliza el sintetizador Festival para emitir mensajes de voz
Playback URL Reproduce un archivo de sonido o vídeo
SayUnixTime URL Dice la fecha y hora actual a la persona llamante
Background URL Reproduce música en espera
NoOp URL No realiza ninguna operación, pero imprime el mensaje indicado en la consola de Asterisk
ExecIf URL Ejecutar la aplicación indicada si se cumple la condición dada
ExecIfTime URL Ejecutar la aplicación indicada si se cumple el requisito de fecha y hora indicados

Además de las configuraciones especificas para los SIP o los contextos s en los distintos ficheros nombrados anteriormente, tenemos las configuraciones genéricas:

sip.conf

[general]
allowguest=no;
deshabilita llamadas sin autenticación
srvlookup=yes; interacción con servicio DNS
udpbindaddr=0.0.0.0:5060; en que red estará escuchando asterisk y por que puerto 0.0.0.0 cualquier red y puerto por defecto 5060
transport=udp; sobre qué protocolo de transporte trabajará SIP, preferible UDP

extensions.conf

[general]
static=yes;
Este parámetro solo afecta a la operación del comando dialplan saved
writeprotect=no; Proteger contra la escritura el fichero. Comandos ejecutados de la CLI pueden realizar cambios.
autofallthrough=yes; Si esta establecida en yes cuando una llamada se sale del dialplan, se termina.
priorityjumping=no; Algunas aplicaciones y/o funciones tienen la capacidad, bajo algunas circunstancias de “saltar” desde la prioridad donde se encuentran

Otro fichero a configurar es el fichero para los buzones de los SIP/Usuarios, voicemail.conf.

[buzon] ; creamos el contexto buzon
211=> 211, David,david@msn.com; Decimos que la extensión 211, tendrá la contraseña 211, Su nombre será David y su correo david@msn.com

Como veis no tiene mucho, es bastante sencillo. Lo que hay que hacer es empezar a jugar con las diversas aplicaciones, y aprenderse un poco la sintaxis de las más utilizadas. En la siguiente entrada realizaremos una configuración básica con un SIP, un contexto, un buzon, descargaremos Zoiper (Softphone) en Linux y la App para android y realizaremos una llamada entre los dos dispositivos y alguna cosa interesante con Google ASR (Automatic Speech Recognition) y TTS (Text To Speech) con Festival.

Disculpar si la explicación de los conceptos principales se quedase un poco corta, cualquier duda, ¡podeis comentarla!

Un comentario sobre “Ficheros de configuración de Asterisk. Parte 2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s