You are on page 1of 77

FUNCIONALIDADES DE ELASTIX – ASTERISK

1.- Conexión con Elastix y Preferencias.


Abrimos el navegador y escribimos la dirección IP del servidor Asterisk.

Esta dirección IP nos la muestra el Linux siempre que nos autentificamos.


En el navegador nos solicitará usuario y contraseña. Normalmente el usuario
será admin, que es el administrador por defecto del sistema.

De esta forma, accederemos a la configuración de la centralita Asterisk bajo un


entorno Web que denominamos Elastix. Recuérdese siempre que utilizamos
Elastix para configurar la centralita Asterisk.

El Menú de Elastix.-
Cuando entramos en Elastix, lo primero que nos aparece es el menú principal y
el Dashboard, que es una especie de panel que nos permite monitorizar los
recursos y servicios del sistema.

La primera vez que entramos este panel es muy simple, pero puede
configurarse para que nos muestre más información.
Para ello entramos en la opción Administrador de Applets, y marcamos
aquella información que deseamos nos sea mostrada en el panel.

Descarga de Suplementos (Add-Ons).


Haciendo clic en cuarto símbolo que aparece en la parte superior derecha de la
pantalla, podemos acceder a una página de descargas donde podemos instalar
aplicaciones suplementarias para asterisk.
Cierre de Sesión.-

Haciendo clic en el último símbolo que aparece en la parte superior derecha de


la pantalla, podemos cambiar la contraseña de Elastix, o cerrar la sesión
actual.
El Menú Principal.-

Consta de las siguientes opciones:


Dashboard (muestra el uso de los recursos del servidor). Red (configuración
de la red). Usuarios (crear y modificar usuarios y grupos junto con sus roles y
permisos). Apagar (para apagar o reiniciar el servidor). Detector de
Hardware (para detectar nuevo hardware y cargar sus controladores, como
tarjetas FXO, FXS, tarjetas con canales E1, etc). Actualizaciones (para
buscar actualizaciones para el servidor y las aplicaciones).
Respaldar/Restaurar (para hacer copias de seguridad del servidor y
recuperarlas). Preferencias (para cambiar opciones como el idioma, fecha y
hora del servidor , etc).

En la opción Preferencias del menú principal, seleccionamos el idioma


español.

En esta misma opción también es interesante que comprobemos si la fecha y


hora de la centralita es la correcta.
Las demás opciones del Menú Principal pueden resumirse de la forma
siguiente:

Agenda. Visualiza dos tipos de elementos: el calendario, y una agenda de


administración de contactos que puede integrarse con las extensiones.
Correo Electrónico. Configuración de los parámetros necesarios para poner
en marcha un servidor de correo electrónico y sus clientes.
Fax. Configuración de clientes de fax virtuales que nos permiten el envío de un
Fax desde un correo electrónico hacia un Fax convencional, y viceversa.
PBX. Esta es la opción principal de Elastix, e incluye opciones para la
administración del servicio de telefonía y configuración de una PBX-IP.
IM. Activación del servicio de mensajería instantánea OpenFire y
configuración de sus usuarios y características.
Reportes. Nos permite obtener muchos tipos de informes, ver los logs
(incidencias) del sistema, llamadas registradas, uso de los canales, facturación,
etc.

La última opción del menú principal contiene una pestaña que al hacer clic
sobre ella nos despliega varias subopciones.

En Extras, accedemos a un menú de facturación de llamadas. En Addons


podemos descargar nuevas aplicaciones para añadir a Asterisk. En Mi
extensión nos muestra la extensión asociada al usuario actual de Elastix.
La opción de Seguridad nos permite configurar determinadas opciones que
pueden afectar a la seguridad del sistema frente a posibles ataques externos.
Elastix incorpora un modulo de seguridad, basado en el Firewall de Linux
IPTABLES, que aunque es bastante básico, permite configurar lo necesario para
minimizar el riesgo de accesos indebidos al servidor, así como restringir las
redes IP que tendrán acceso a los servicios de telefonía que proporciona
Asterisk.
Es importante restringir las redes IP desde donde se permitan conexiones al
servidor. Por lo general, el administrador del servidor Elastix utiliza un solo
ordenador que a su vez tiene una única direccion IP. No es recomendable
acceder desde cualquier punto ya que las credenciales de acceso
(usuario/clave) a veces quedan registradas o guardadas en los desde donde
accedemos.
Procedimiento para Restringir el acceso a la Interfase Web y SSH en Elastix.
Vamos a restringir los accesos a una sola dirección IP y no permitir el acceso al
resto de la red.
Hacemos clic en menu principal >> Seguridad, y habilitamos el
Cortafuegos.

Inmediatamente se activa el FireWall y aparece la pantalla similar a la


siguiente, con las opciones por defecto numeradas. Todas las reglas están
activas para permitir todo.

Activamos las reglas de filtrado para HTTP/HTTPS y SSH, que corresponden a


los servicios de acceso Web y SSH. Buscamos las reglas numero10 (SSH), 12
(HTTP) y 15 (HTTPS).
Editamos las opciones para cada una de las reglas a modificar. Para acceder
hacemos Clic sobre el icono azul (un libro y un lápiz) al lado derecho de la
pantalla.
Vamos a editar cada una de ellas para limitar el acceso unicamente desde la
IP:192.168.0.99, para hacerlo introducimos la dirección IP y la mascara de
Subred, para nuestro ejemplo por tratarse de una sola dirección IP vamos a
colocar un valor de 32 en la mascara (Equivalente a: 255.255.255.255).

Guardamos los cambios haciendo Clic sobre el botón Save. Aparecerá la


pantalla con el cambio realizado, como se muestra en la siguiente imagen.
Aplicamos este procedimiento a las reglas 12 (HTTP) y 15 (HTTPS), todos los
valores son iguales, sólo cambia el Puerto Destino.
Al finalizar todos los cambios debemos presionar el botón Guardar para aplicar
los cambios.

Dentro de las opciones de Seguridad hay otra función que puede ser
interesante → Configuraciones Avanzadas.
Aqui podemos activar FreePBX, que es otro entorno web que nos permite
realizar configuraciones de Asterisk más complejas que no se pueden realizar
con Elastix.

Después de guardar los cambios ya podemos utilizar FreePBX a trave´s del


menú PBX >> Configuración >> FreePBX sin embeber.
Nos pedirá un usuario, que por defecto es admin, y un contraseña que coincida
con la que hemos definido al activar FreePBX.

En la pantalla siguiente podemos ver el aspecto que tiene FreePBX.


En la parte superior tenemos los menús que al pasar el ratón por encima nos
muestran todas sus subopciones.
Muchas de las funcionalidades de Elastix también pueden hacerse con FreePBX,
pero éste a mayores presenta nuevas opciones de configuración de Asterisk
que no vienen contempladas por Elastix.
Copias de Seguridad o de Respaldo (Backup).
Los respaldos lo podemos hacer directamente en el disco duro del Servidor
Elastix o a un FTP externo. Para ejecutar el proceso seleccionamos dentro de
las opciones de System la opción Backup/Restore, luego en las opciones
que aparecen podemos elegir que el Backup se ejecute automáticamente
(Diario, Semanal, Mensual). Esto lo hacemos seleccionando en el menú
desplegable de la opción Set Automatic Backup.

Si vamos a realizar el respaldo manualmente, dejamos esta opción en Disable.


Para ejecutar el respaldo en el mismo servidor, elegimos la opción Perform a
Backup y aparecerá otra pantalla de opciones donde seleccionamos qué
deseamos respaldar.
A partir de la versión Elastix 2.3.0 podemos seleccionar las opciones del
servidor que vamos a respaldar. Obligatoriamente debemos seleccionar todas
las opciones dentro de Endpoint y Asterisk, donde están los archivos de
configuración importantes del sistema. El resto son opcionales, y a menos que
tengamos los servicios activos, se deben seleccionar, de lo contrario no es
necesario.

Cuando realizamos el respaldo en el mismo disco duro del servidor Elastix,


estos se almacenan en la siguiente ruta de directorios: /var/www/backup,
con un nombre con el formato elastixbackup-20120718171815-n3.tar.
Es importante tenerlo en cuenta ya que es recomendable tener una copia en
un lugar externo al servidor por si éste se llega a dañar.

Seguridad de las contraseñas.-


Cuando instalamos una centralita que puede ser operativa, es conveniente que
definamos un plan de contraseñas seguras para todos aquellos apartados que
así lo requieran. Téngase en cuenta que si las contraseñas no son seguras,
facilitaremos mucho la existencia de intrusos que podrían incluso efectuar
llamadas consumiendo la cuota que tenemos contratado con el proveedor.
Una contraseña debe tener al menos 9 caracteres que incluyan números, letras
mayúsculas, minúsculas, y caracteres especiales. Y por supuesto, no deben ser
obvias.
En la siguiente dirección tenemos una página web que puede analizar si
nuestras contraseñas son o no seguras:
https://makemeapassword.org/
Comandos de Asterisk por consola.-
Asterisk dispone de una consola especializada (Asterisk Command Line
Interface, o CLI) para poder ejecutar comandos. Para ello, desde la consola de
Linux debemos entrar en la consola de Asterisk escribiendo el siguiente
comando:
asterisk -r

Nos aparece el “prompt” CLI> A partir de este momento, podemos ejecutar


cualquiera de los comandos válidos de asterisk.
Si por ejemplo, escribimos help, nos mostrará una lista de todos los comandos
disponibles y una pequeña descripción de cada uno de ellos.
A continuación se relaciona una lista de algunos comandos básicos:
$cli> restart now (reiniciar asterisk)
$cli> core stop now (detiene asterisk)
$cli> core show version (muestra la versión de asterisk)
$cli> sip show peers (muestra conexiones SIP)
$cli> sip show channels (muestra canales SIP activos)
$cli> dialplan reload (recarga el plan de marcado. Se ejecuta después de
cambiar el archivo de configuración dialplan.conf para que asuma los
cambios.
$cli> sip reloadf (recarga el archivo sip.conf si se han hecho cambios)
$cli> asterisk -h (muestra los comandos de asterisk)

Para salir del CLI de asterisk, introducimos quit, o exit, con lo que volveremos
a la consola de Linux.

Ejecutar Comandos de Asterisk desde Elastix.-


Cuando necesitemos ejecutar algún comando de Asterisk, podemos utilizar la
consola CLI que proporciona Elastix. Se accede siguiendo la siguiente
secuencia PBX >> Herramientas >> Asterisk-Cli. Nos aparecerá una barra
de texto donde introducimos el comando de Asterisk a ejecutar.
Archivos de Configuración de Asterisk.
Los ficheros más importantes para la configuración de la centralita asterisk los
encontraremos en el directorio /etc/asterisk.
A continuación mencionamos algunos de los archivos de configuración:

sip.conf: es el fichero donde definimos las extensiones que pertenecen a


nuestra centralita.
extensions.conf: fichero donde se configura todo el dialplan (plan de
marcado) de nuestra centralita. Es el corazón de Asterisk y el fichero más
importante.
extensions_additional.conf: configuración de las extensiones.
voicemail.conf: donde configuramos los buzones de las extensiones.
asterisk.conf: fichero donde se ubican todos los ficheros de Asterisk (ficheros
de log, de php, de configuración…)
features.conf: permite crear códigos generales para transferir llamadas,
ponerlas en espera, etc…
queues.conf: donde se configuran las colas de espera. Se utilizan para la
recepción de llamadas en call centers y dónde se puede asignar una estrategia
de cola para el reparto de las llamadas.
cdr_mysql.conf: se configuran los parámetros para la base de datos de
Asterisk.

En el directorio /var también podemos encontrar otros archivos importantes:

/var/lib/asterisk/sounds: directorio donde se encuentran principalmente


los audios y música de espera que vienen por defecto con Asterisk
/var/log/asterisk: logs de Asterisk.
/var/spool/asterisk: grabaciones de los buzones.
/var/lib/asterisk/mohmp3/: archivos mp3.
/var/spool/asterisk/monitor : grabación de llamadas.
Otra forma de iniciar o parar la centralita desde Linux consiste en utilizar el
comando de arranque-parada del servicio:
/etc/init.d/asterisk stop
/etc/init.d/asterisk start
Se puede configurar completamente asterisk sin utilizar Elastix, manejando
adecuadamente estos archivos, para lo cual es conveniente conocer en
profundidad la sintaxis de asterisk.
Por otra parte, este modo de configuración, aunque es más difícil en un
principio, nos permite controlar con mayor detalle toda la funcionalidad de la
centralita, cosa que no es posible realizar con Elastix y otros interfaces
gráficos.
Cambio de los parámetros de Red para asterisk.-
Cuando instalamos asterisk el instalador nos pide que introduzcamos los
parámetros de red para utilizar asterisk y elastix. Estos parámetros pueden
cambiarse posteriormente desde Elastix o utilizando comandos de consola de
Linux.

El comando ifconfig nos muestra los parámetros más importantes de la red,


como la IP asignada y la máscara. Si el interface de red es ethernet, podemos
especificarlo en el comando: ifconfig eth0.

Muchos de los parámetros de red del entorno Linux CentOS donde se instala
asterisk, vienen en el archivo de configuración:
/etc/sysconfig/network_scripts/ifcfg-etho.

En el archivo /etc/sysconfig/network tenemos la puerta de enlace/gateway

En el archivo /etc/resolv.conf tenemos los DNS (primario y secundario):

Si no disponemos de las DNS de nuestro proveedor, podemos


utilizar las de Open DNS (208.67.222.222 + 208.67.220.220) o de
Google (8.8.8.8 + 8.8.4.4).
Una vez realizado los cambios, para que se apliquen debemos
ejecutar la siguiente secuencia de comandos:

ifconfig eth0 stop


ifconfig eth0 start

A veces es necesario incluso reiniciar el sistema con reboot.


Servidor DHCP
Elastix trae incorporado entre todos sus servicios el servidor DHCP, muy útil
para la asignación automática de direcciones IP a los teléfonos IP instalados en
la red. La utilización de un servidor DHCP facilita enormemente la
administración, configuración y control de las direcciones IP no soóo de los
teléfonos IP, sino también de los otros ordenadores de la red.
Para configurar el servidor DHCP, basta con colocar el rango de direcciones IP
que se van a asignar, la mascara de red, DNS y Gateway, guardar la
configuración, y activar el servicio. En unos minutos el servidor DHCP estará
funcionando.

En la imagen se muestra un ejemplo de configuración de un servidor DHCP en


Elastix. La asignación dinámica de direcciones IP, comenzará a medida que los
teléfonos u ordenaores se vayan conectando al servidor.
En la opción DHCP Client List, se pueden visualizar las direcciones IP
asignadas.

Registro de Llamadas y Eventos.


El registro de llamadas en Asterisk, se denomina CDR (Call Detail Record), y el
de Eventos CEL (Call Event Logging). Ambos proveen de múltiples mecanismos
de almacenaje de toda la información relativa a las llamadas, con carácter
entrante y saliente del sistema, específicamente diseñado para su posterior
análisis.
CDR es un sistema muy práctico cuando queremos saber por ejemplo, a quién
llaman nuestros usuarios, o quién los llama, y otros datos relativos a las
mismas, como el tiempo establecido, resultado de la llamada (si estaba
ocupada o no disponible, o si fue contestada), etc.
Por defecto, el registro de llamadas se almacena en un archivo llamado
Master.csv dentro del directorio /var/log/asterisk/cdr-csv/ en formato
CSV (valores separados por comas), siempre que este activada la función de
almacenamiento de los CDR en su archivo principal de configuración cdr.conf
Los problemas del sistema CDR surgen debido a que sólo se almacena un solo
registro CDR con toda la información por llamada. Esto quiere decir, que en el
caso que ocurran los siguientes posibles casos, la llamada no se registraría en
condiciones:
• Llamadas transferidas
• Llamadas aparcadas
• Sistemas de Conferencias
• Llamadas puestas en Espera

Configuración del Archivo CSV


Para poder configurar CDR, el archivo principal es llamado cdr.conf situado en
el mismo directorio que el resto de los archivos de configuración
/etc/asterisk/.
La estructura del mismo es relativamente básica, un contexto [general] como
casi todos los módulos de Asterisk, y luego los siguientes contextos que hacen
referencias a partes especificas, en este caso los dos más comunes son [csv]
que hace referencia al fichero Master.CSV, y [radius] para almecenamiento
utilizando un servidor RADIUS para la autentificación, pero en esencia un
archivo CSV para el almacenaje.

Configuración General
Aquí se especifican todos los parámetros que afectar al modo general de
almacenaje utilizando este sistema:
• enable: Básicamente activa la funcionalidad de registro CDR
• unanswered: Registra las llamadas no atendidas también
• endbeforehexten: En caso que llegemos a la extensión especial, h
pararía el registro CDR en el archivo
• initiatedseconds: En caso de utilizar un sistema de Facturación, es
práctico para redondear el tiempo a nivel de segundos hacia arriba para
facilitar el cálculo del importe
• batch: Permite registrar la información en bloques, en vez de registrarla
de un golpe al finalizar la conversación. El riesgo es que si Asterisk se
bloquea durante el proceso de una llamada escribiendo en el archivo,
este estaría abierto y podría perderse información.
• size: Si utilizamos el modo batch, aquí especificaríamos el numero de
registros CDR antes de lanzar un bloque (batch) al archivo.
• time: También es posible lanzar un bloque por segundos, en este caso,
sería el número de segundos antes de conformar un bloque y lanzarlo al
archivo.
• scheduleronly: En caso que queramos que se genere un proceso
específico para realizar la gestión de copia en bloque, o si queremos
utilizar el propio proceso que controla el sistema de gestión de los
bloques.
• safeshutdown: En caso que el sistema se detenga, paraliza esto, hasta
que todos los registros CDR hayan sido grabados en el archivo.
Con Elastix podemos visualizar los informes o estadísticas que se obtienen del
sistema CDR. Para ello accedemos desde el menú principal a la opción
Reportes.

Pulsando el botón Mostrar Filtro, podemos obtener los informes filtrados por
varios criterios.

En primer lugar seleccionamos el período que deseamos analizar (fecha inicial


y final), luego tenemos los siguientes criterios:
Campo (podemos elegir entre fuente/destino, canal origen/destino, o
código de cuenta). Después tenemos un campo adicional donde
podemos escribir un valor.
En el caso de elegir el código de cuenta, véase el apartado
siguiente: Asignación de un código contable a las extensiones.
Estado (contestado/no contestado/fallido/ocupado/todos).
Grupo de timbrado
Así por ejemplo, si deseamos un informe de las llamadas realizadas por la
extensión 101 entre dos fechas, elegimos como campo: Fuente, escribimos la
101, y en estado : Todos. Si sólo deseamos las llamadas fallidas que hice la
101, pondremos fallido.
Para tener un informe de las llamadas no contestadas por la extensión 201,
pondremos en campo: destino, 201, estado: no contestado.

También podemos utilizar la opción CDR Reports del ménu Informes en


FreePBX.
Asignación de un Código Contable a las extensiones.-
A veces puede ser interesante en una empresa poder obtener informes
estadísticas de llamadas agrupadas por un determinado concepto. En muchas
ocasiones esto puede realizarse si se ha planificado un esquema de
codificiación de extensiones correcto. Así por ejemplo, si las extensiones que
empiezan por 1xx pertenecen al departamento de ventas, es fácil obtener una
estadística de las llamadas de este departamento. Pero cuando esto no se ha
tenido en cuenta o simplemente porque la estructura de la empresa es más
compleja (por ejemplo una corporación con varias delegaciones) nos resulta
más complejo obtener este tipo de informes.
En esto casos, podemos utilizar uno de los campos que forman parte de las
extensiones, concretamente el campo account code (código contable).

Así por ejemplo, si a 20 extensiones le asignamos el mismo código, por


ejemplo, 53000001, ya tenemos relacionadas entre si estas extensiones, de
modo que podemos obtener un informe estadístico de extensiones agrupadas
por el account code.

CEL, Call Event Logging, es una evolución de CDR, proporciona un mayor


soporte, y está diseñada para poder tener control no sólo de los pasos de la
llamada, sino de los eventos a nivel interno que van surgiendo en el flujo de
una llamada dentro de nuestro Plan de Marcado.
Crear Extensiones.
Vamos al menú PBX y seleccionamos Extensiones → Añadir Extensión.

En device seleccionamos Generic SIP device porque es el más aceptado en


todos los tipos de teléfonos.
Luego cubrimos los campos: Extensión del usuario, Nombre a mostrar, y
secret (contraseña).
Pulsamos el botón Enviar y confirmamos los cambios pulsando el botón
superior Apply Config.

La extensión que acabamos de crear aparecerá en la tabla de la derecha.


Siempre que deseemos modificar los datos de una extensión, la seleccionamos
de esa tabla y hacemos doble click para que nos muestre todos sus datos.
Instalación de Emuladores Telefónicos (softphones).
Podemos instalar varios tipos de softphones, tales como Zoiper, Xlite,
3CXPhone.
En el caso de Zoiper, a continuación se muestran unas pantallas de
configuración.
Una vez instalado, creamos una nueva cuenta de tipo SIP en Settings →
Create a New Account.

Asignamos a este terminal una extensión, con una contraseña y un domínio (la
dirección del servidor asterix).

Volvemos a Settings / Preferences, y comprobamos si ha quedado registrada


esta cuenta en el servidor. Pulsamos Register.
Ya tenemos instalado y configurado Zoiper en la máquina anfitriona bajo
Windows, en nuestro caso le hemos asignado la extensión 4001 (tiene que
haber sido creada previamente en el servidor).
A continuación debemos instalar el Zoiper en nuestro terminal móvil.
Para ello nos vamos a la Play Store de Google y bajamos e instalamos el
Zoiper para móviles. Procedemos de igual manera que antes creando una
cuenta nueva al que le asignaremos otra extensión, por ejemplo la 5001.
De esta forma podemos llamar de la 4001 a la 5001, y viceversa.
Para comprobar todos los teléfonos que tenemos activos nos vamos a
Elastix, menú PBX → DashBoard (Panel del Operador).

Los que aparecen en color naranja están conectados, y los que aparecen en
color amarillo están configurados pero no conectados.
Códigos de Funcionalidades.
Existen diversos códigos internos en Elastix que al ser marcados desde un
terminal como si fueran una extensión más, nos ofrecen un determinado
servicio o funcionalidad. La mayoría van precedidos por un * seguido de un
número de dos cifras. Entre otros tenemos los siguientes:

*60 (Nos da la hora)


*65 (Nos confirma nuestro número de extensión)
*97 (Nos reproduce el mensaje de voz por defecto del servidor)

En el menú PBX tenemos la opción Códigos de Funcionalidades, que nos


muestra todos los códigos disponibles.

Así por ejemplo, para añadir un número a la lista negra, marcaremos *30.
Un mensaje de voz nos solicita el número. Podemos entrar uno de los
terminales que tenemos definidos. Al final debemos finalizar pulsando la tecla
#.
La lista negra puede consultarse en el menú PBX-->control de llamadas
entrantes -->lista negra.

En esta opción también podemos añadir nuevos números a la lista negra, o


eliminar números de esta lista.
Otra funcionalidad es el desvío de llamadas, *72. Esta funcionalidad se puede
configurar con la opción Follow Me de Elastix, pero marcando *72 podemos
hacerlo desde el mismo terminal. Recibimos un mensaje que nos invita a
escribir el número al que deseamos desviar, que debemos escribir seguido de
#. Para desactivar el desvío, marcaremos *73.

Chan Spy 555.


Marcando el 555 podemos escuchar las conversaciones que están en curso.
Pulsando * pasaremos de una conversación a otra.

DND, Do Not Distur (No Molestar).


Si en nuestro teléfono marcamos e código *78, no recibiremos llamadas.
Cambiar los mensajes de voz a Español.
Todos los mensajes de voz del sistema vienen en el idioma por defecto, el
inglés. Vamos a realizar una serie de cambios para que los mensajes se
reproduzcan en español.
En el directorio /var/lib/asterisk/sounds tenemos los archivos de voz en
varios idiomas (directorio en para el ingles, y es para el español).
Los archivos de configuración de los sonidos por defecto apuntan a la carpeta
en. Para no estar cambiando los archivos de configuración, creamos el
procedimiento de renombrar la carpeta es por en, de esta manera engañamos
a asterisk. La razón por la cual funciona, es que el nombre de todos los
archivos de sonido son iguales, independientemente del idioma que se
configure.
Este es el procedimiento a realizar:
En modo de consola (CLI) en el servidor o en una sesión remota SSH,
entramos como usuario root y ejecutamos los siguientes comandos:
cd /var/lib/asterisk/sounds ; accedemos a la carpeta de los sonidos
mv en en.org ; renombramos el directorio de voces en inglés

mv es en ; renombramos el directorio de voces en español

Para probar las voces, podemos utilizar las siguientes funciones desde
cualquier teléfono conectado a Elastix: *60, *65, *97.
Grabar Mensajes de Voz.
Si pulsamos el código *77 en nuestro teléfono, sonará un tono, y podemos
grabar nuestro propio mensaje. Al terminar pulsamos la tecla #.
Luego podemos escuchar nuestro mensaje pulsando *99.
Grabaciones del Sistema.
En la opción del menú PBX → Opciones Internas Y Configuración →
Grabaciones del Sistema, tenemos la posibilidad de realizar todas estas
grabaciones.

Existen dos procedimientos: grabando el mensaje desde nuestro teléfono, o


subiendo un archivo de voz.
En el primer caso, introducimos la extensión asignada a nuestro teléfono, por
ejemplo, 5001. En este mismo teléfono marcamos el código *77 para grabar
un mensaje. Asignamos un nombre a la grabación, por ejemplo bienvenido.
Pulsamos Guardar.
En el segundo caso, introducimos también la extensión, y subimos un archivo
de voz (formato wav PCM 16 bits 8000Hz). Si disponemos un archivo en
formato o mp3, puede no ser aceptado para determinadas operaciones, como
por ejemplo, los IVR. En este caso podríamos convertir mp3 a gsm, que es un
formato más utilizado dentro de Asterisk.
Existen muchas páginas web en las que podemos convertir estos archivos “en
línea”.
También podemos utilizar la grabadora de sonido de Windows.
Para acceder a la grabadora de sonido de Windows deberemos de ir a Menú
Inicio -> Programas -> Accesorios -> Entretenimiento -> Grabadora de
sonidos. Mediante este programa podrá iniciarse en pequeñas grabaciones a
través del micrófono.
De este mismo modo podemos añadir las grabaciones que deseamos.
Cambiar Música en Espera (MOH, Music on Hold).
Para cambiar la música en espera en Elastix, debemos seguir los siguientes
pasos:
1.- Eliminamos los archivos de audio que vienen por defecto:
Los archivos de audio de la Musica en Espera de Elastix están ubicados en la
ruta: /var/lib/asterisk/mohmp3/ .
Por defecto estos son los que se reproducen primero si existieran en ese
directorio, por lo que se recomienda moverlos a otro directorio para tenerlos
de respaldo por si algo sale mal.
Desde el modo de comando (CLI) ejecutamos la siguiente secuencia de
comandos:
1.- Vamos al directorio /var/lib/asterisk/mohmp3/

cd /var/lib/asterisk/mohmp3/

2.- Creamos el directorio respaldo

mkdir respaldo

3.- Movemos todos los archivos que están en


/var/lib/asterisk/mohmp3/ al directorio respaldo.

mv * /var/lib/asterisk/mohmp3/respaldo

2.- Cargamos el archivo de audio a reproducir. Conviene utilizar archivos


en formato MP3 o WAV.

En Elastix vamos a la opción PBX >> PBX Configuration >> Música en


Espera. Nos aparece la siguiente pantalla:
Para no utilizar una categoría por defecto, Añadimos categoría de música,
por ejemplo MiMusica, y pulsamos Enviar Cambios, y entramos en MiMusica.
Con el botón Examinar buscamos el archivo de audio (MP3 o WAV) que vamos
a cargar., y pulsamos el botón Enviar.
El archivo de audio se copia en la ruta: /var/lib/asterisk/mohmp3/, donde
será buscado y reproducido al llamar a la función Musica en Espera.
Al finalizar la carga aparece en pantalla el nombre del archivo cargado. Por
defecto se agrega al inicio del nombre del archivo la palabra orig_ cuando son
MP3, y la palabra wav_ cuando el formato es WAV.
Para hacer una prueba, marcamos cualquier extensión interna y presionamos
la tecla Hold en el teléfono (llamada en espera).
Configurar Desvío de Llamadas (Follow Me).

Si llamamos a una extensión y ésta no responde, se desviará la llamada al


número o números que prefijemos.
Seleccionamos la extensión (por ejemplo la 4004) y la editamos para
modificar algunos de sus parámetros. En control de llamadas entrantes,
seleccionamos la opción Follow Me (Sígueme).
En Initial Ring Time, podemos poner 7. El teléfono sonará 7 segundos
cuando llamen al 4004.
En Ring Strategy, podemos seleccionar hunt (intentará llamar al 4004, si no
contesta, llamará sucesivamente al 4003, y luego al 5001.
Otras posibles opciones son:
• MemoryHunt (Si el 4004 no responde, llama al 4004 y 4003 a la vez.
Si no responde ninguno, vuelve a llamar a todos a la vez.
• RingAll (Llama a todos los teléfonos de la lista a la vez).
• Xxxx-prim (Si la línea principal está ocupada, no deseamos que realice
el desvío a los demas números).
En Ring Time, podemos poner 20, que es el tiempo en segundos que estará
llamando a cada uno de los teléfonos alternativos (4003 y 5001).
Para realizar la prueba sería conveniente tener a la vista el panel del
operador. De este modo veremos cóm se van produciendo las transiciones
de una extensión a la otra.

Grupos de Timbrado (Ring Groups).


Es parecido a Sígueme (Follow Me). Seleccionamos una extensión, por
ejemplo, la 701.
En el campo final, Destino si no hay respuesta, ponemos Terminar la
llamada / Colgar, esto es, si nadie responde al cabo de los 20 segundos,
cuelga.
Si llamamos al 7011, sonarán los teléfonos 4003, 4004, y 5001.
Esto puede ser aplicable al departamento de ventas de una empresa con
varios despachos de atención al cliente. En principio sonarán todos los
teléfonos, pero cuando un comercial descuelgue, dejará de sonar para los
demás.
Creación de Extensiones mediante un Archivo por Lotes.
Utilizaremos un archivo de texto en formato CSV (campos entre comillas y
separados por comas) donde cada línea corresponde a una extensión.
Para conocer el formato exacto que puede ser aceptado por Elastix, la mejor
opción es descargar las extensiones que hemos creado manualmente a
formato csv.
Esto podemos hacerlo desde el menú PBX → Configuración por lotes.

Seleccionamos la opción Lista de Extensiones.

Descargamos las extensiones en formato csv.

Este archivo lo podemos abrir con cualquier programa de Hoja de Cálculo,


como Excel.
No son obligatorios todos los campos. En la imagen anterior tenemos un
ejemplo donde hemos utilizado los campos MINIMOS. Puede apreciarse como
se mantienen las cabeceras que van a servir a Elastix conocer los valores de
cada uno de los campos utilizados.
Cambiamos los campos que nos interesa para cada una de la extensiones a
crear, y al finalizar guardamos el archivo en formato CSV.
Este es el aspecto que debe tener este archivo:
"Display Name","User Extension","Secret","Tech"
"pedidos","401","abc123.","sip"
"facturacion","402","abc123.","sip"
"nominas","403","abc123.","sip"
"almacen","404","abc123.","sip"
"publicidad","405","abc123.","sip"

A continuación procedemos a incorporar este archivo.

Si el archivo no tiene errores en sus campos y formato, este deberá subirse sin
errores y el lote de extensiones se creará correctamente.
IVR (Interactive Voice Response, Respuesta de Voz Interactiva)
En ocasiones, cuando llamamos a una empresa, nos sale un voz grabada con
un mensaje similar a este:
Si usted quiere hablar con el departamento de ventas pulse 1, si quiere hablar
con el departamento de producción pulse 2, para otro tipo de consulta pulse 3.
La llamada se dirigirá a un departamento u otro según la opción que
marquemos. Esto es IVR.
Lo primero que debemos hacer es crear un mensaje de voz utilizando la opción
de Grabaciones del Sistema que hemos estudiado anteriormente.
Nos vamos al menú PBX >> IVR.
Añadimos un nuevo IVR, al que podemos poner como nombre IVR Festivos.
Suponemos que hemos grabado un mensaje de voz que hemos denominado
ivr.
Agregamos los números a pulsar (1, 2, 3) y la extensión a la que enviaremos
la llamada según cada caso, por ejemplo, 4002, 4003, y 4004.
Si deseamos introducir más números, debemos pulsar el icono verde que
aparece en la parte inferior (ver la siguiente pantalla).
Ahora creamos la extensión 7000 que asignaremos a nuestro IVR. Una vez
creada esta extensión normalmente, la editamos y le creamos un Follow Me.

De esta forma, cuando alguien llame al 7000 le saldrá este mensaje de voz
que le podrá dirigir al departamento que elija.
Usuarios, Grupos, y Permisos.
Un usuario en Elastix posee un determinado perfil de accesos que le dotan de
permisos y privilegios para realizar determinadas operaciones. El usuario
administrador posee todos los privilegios para cambiar cualquier aspecto que
afecte a la configuración del sistema. Pero no todos los usuarios deben ser
administradores. Podemos definir un usuario de Elastix para cada uno de los
empleados de una empresa, o uno genérico por departamento, según el plan
estratégico y de seguridad de la empresa.
Lo que si es conveniente, es que existan varios usuarios en el sistema y que
cada uno de ellos pueda conectarse a Elastix a través de la Web con un perfil
de usuario y contraseña propios. De esta forma, cada usuario puede consultar
sus correos, buzones de voz, faxes, etc.
En Elastix accedemos a través del menú Systema >> Usuarios.

En este menú disponemos de las opciones Usuarios, Grupos y Permisos de


Grupos.
A continuación tenemos la pantalla de creación de un nuevo usuario.

Los campos correspondientes al perfil de correo no son obligatorios pero si


muy convenientes como estudiaremos luego.
La imagen de la pantalla anterior contiene el símbolo ? enmarcado en rojo.
Este es el símbolo de Ayuda, y está presente en todas las opciones del menú
de Elastix. Si presionamos este botón, accedemos a la ayuda en línea de
Elastix, que nos va a informar acerca del significado de cada campo.
En la opción de Grupos, podemos asociar conjuntos de usuarios que poseen
perfiles de acceso similares, como por ejemplo todos los empleados de un
mismo departamento, o a quellos que tienen permisos comunes, aunque
pertenezcan a distintos departamentos.
En Elastix vienen creados tres grupos: Administrador, Operator, y Extension,
pero podemos crear los que necesitemos.

De esta forma podemos tener los usuarios Carlos, Laura, y Mónica que
pertenecen al grupo soporte.
En la siguiente opción, Permisos de Grupo, podemos establecer los permisos
que concede el administrador de Elastix a cada uno de los grupos existentes.
Así por ejemplo, podemos evitar que un grupo de usuarios pueda acceder al
menú Sistema, o a la opción Usuarios del menú Sistema.

Cuentas de Correo.
Cada usuario o grupo de usuarios puede tener creada su propia cuenta de
correo. En principio esta cuenta será de uso interno dentro de la empresa, a no
ser que definamos un dominio real y una IP estática y pública para acceder a
Elastix desde el exterior.
Las cuentas de correo pueden utilizarse como mensajería interna, envío y
recepción de faxes, o registrar los buzones de voz que puedan recibirse en las
extensiones.
Lo primero que debemos hacer es crear un dominio. No es obligatorio que sea
real. Podemos crear un dominio para toda la empresa (galison.com), un
dominio por departamento (tecnicos.com, soporte.com, admin.com …).
Las opciones para gestionar las cuentas de correo están dentro del menú
Correo Electrónico.
En la primera opción, podemos crear un nuevo dominio. Luego podemos crear
las cuentas de correo.

Para crear una cuenta de correo, seleccionamos primero el dominio.

Hemos elegido el dominio soporte.com y vamos a crear una cuenta para el


usuario andres.

Su correo ahora será andres@soporte.com y tiene una cuota de espacio para


su correo, de 250Kb.
En la opción Relay de menú de Correo Electrónico, podemos especificar las
direcciones a través de las cuales se permite enviar correo al exterior.
En la ventana se van añadiendo las nuevas IP.
En la opción AntiSpam podemos configurar que si deseamos aplicar estas
reglas.

En la opción SMTP Remoto, podemos configurar que nuestra cuenta de correo


en Elastix pueda salir al exterior a través de una cuenta tipo gmail, hotmail,
etc.

En este caso, es importante comprobar si tenemos abiertos los puertos smtp,


pop3, e imap. Lo cual podemos verificar en la opción de seguridad:

En la pantalla siguiente, podemos comprobar que si están habilitados.


En el menú Correo Electrónico, la opción Webmail, es la que utilizará un
usuario para acceder a la gestión de sus correos (enviar, leer los correos
entrantes, etc). Por eso es conveniente que cada usuario pueda tener su propia
cuenta de Webmail.
Para entrar en Webmail debemos introducir la cuenta de correo y una
contraseña.

Una vez dentro, podemos acceder a la gestión de los correos electrónicos.

Su funcionamiento es muy parecido al de cualquier cliente de correo


electrónico.
FAX Virtual.
Para configurar el Fax Virtual, necesitamos asociarle una extensión que utilice
IAX2 en lugar de SIP. Es conveniente marcar NO en la opción "requirecalltoken"

Ahora nos vamos al menú Fax >> Fax Virtual >> Nuevo Fax Virtual.

Para comprobar si el sistema ha añadido en nuevo Fax, utilizamos la opción


Lista de Fax Virtual. Tiene que aparecer nuestro Fax y sus estado debe ser
“running” sobre el puerto tty1IAX*-

A veces debemos esperar casi un minuto para que el estado sea óptimo.
También podemos hacer una comprobación adicional ejecutando un comando
de consola (CLI) sobre elastisx.
Podemos acceder al CLI en el menú PBX >> Herramientas.
Nos aparace un cuadro de texto donde podemos introducir los comandos que
deseemos. En nuestro caso iax2 show peers, que muestra todas las
extensiones asignadas a iax2 y su estado.
Podemos observar, que a parte de CLI, tenemos otras opciones intersantes en
este apartado.
A continuación, para terminar de configurar el Fax, creamos una plantilla que
sirva como genérico para el envío de nuestros Fax.

Ya tenemos configurado el Fax Virtual. Vamos a realizar una prueba.

Después de enviar el Fax, en la extensión destino recibiremos un correo


electrónico con el mensaje del Fax en formato pdf.
Como la extensión 800 está asignada a la cuenta carlos@soporte.com, nos
vamos a Webmail para comprobar los correos recibidos.
Podemos ver los Fax que hemos recibido.

Haciendo clic en cualquiera de ellos podemos acceder al documento pdf que


contiene el texto del Fax.
En el menú Fax disponemos de otras opciones para ver la lista de Fax, como
por ejemplo, Visor de Fax.

Buzón de Voz.
Si una extensión que está recibiendo una llamada, no contesta, o está ocupada
con otra llamada, podemos hacer que el llamante reciba un mensaje de voz
que le invite a dejar un mensaje grabado.
Cuando el usuario de la extensión desea acceder a su buzón de voz, puede
marcar *97 para escucharlos.
A continuación vamos a configurar la extensión 4004 para poder disponer de
un buzón de voz. Editamos esta extensión y buscamos el apartado de buzón de
voz.

Pulsamos el botón Enviar, y luego Aplicar Configuración.


A continuación, localizamos el apartado Optional Destinations, e indicamos
que en cualquiera de las tres circunstancias (no responde, ocupado, o
desconectado) deseamos aplicar el buzón de voz sobre la 4004.

Pulsamos el botón Enviar, y luego Aplicar Configuración.


Para probarlo, llamamos a la extensión 4004 desde el Zoiper de nuestro móvil,
y como no contesta, escucharemos un mensaje similar a este:
La persona en el interno 4004, no está disponible. Por favor, deje un mensaje
después del tono. Cuando termine cuelgue o presione la tecla numeral #.
A continuación, podemos escuchar el mensaje desde la extensión 4004
marcando *97. Nos pedirá la contraseña. En el caso de buzón de buzón
conviene que sea numérica, por ejemplo 1234.
Pero demás de esto, el mensaje ha sido enviado al correo electrónico del
usuario que tiene asignada la extensión 4004.
Así pues, nos vamos a Webmail y nos identificamos con los datos del usario. En
este ejemplo, la 4004 tiene como cuenta de correo juan@ordenador.com.

Vemos que tenemos un correo que contiene el mensaje de voz.

Haciendo clic sobre el correo, podemos escuchar el archivo adjunto recibido,


que es un archivo de tipo wav.

Nos indica que podemos escucharlo en nuestro teléfono marcando *97 o ir a


la página web: http://192.168.1.222/recordings/index.php?login=4004
Nos identificamos con el número de la extensión y su contraseña, y podremos
escuchar todos los mensajes de voz recibidos.

Si pulsamos el botón buzón de voz nos indicará que podemos cambiar el


formato del archivo de audio, en opciones. Podemos utilizar el formato wav.

Si volvemos al menú Buzón de Voz, ya podemos ver los mensajes en formato


wav.
También podemos acceder al registro a las llamadas enviadas en la opción
Registro de Llamadas.

Además, podemos enviar estos mensajes de voz a un correo externo, para lo


cual tenemos que configurarlo en el menú Correo Electrónico >> SMTP
Remoto.
En el menú Correo Electrónico >> Relay, tenemos que incluir nuestra IP.

En PBX / Correo de Voz / Configuración, también podemos configurar el


buzón de voz.

Por último, en el Panel del Operador o Dashboard, podemos arrancar o detener


el servicio de correo electrónico u otro servicio de Asterisk.
Servício de Dictado (Dictation Service).
Podemos establecer que desde una extensión se pueda enviar un mensaje de
voz a una dirección de correo, marcando *34 desde un terminal telefónico.
Primero debemos editar el número de la extensión sobre la que deseamos
activar este servicio, por ejemplo, la 203.
Nos vamos al apartado Dictation Service, lo habilitamos, escogemos el tipo
de archivo, y una dirección de correo dónde enviarlo.

Pulsamos Enviar y Aplicamos Configuración.


De esta forma, cuando desde el teléfono de la extensión 203, marquemos *34,
escucharemos un mensaje que nos solicitará escribir un número seguido del
símbolo #. Si por ejemplo el número especificado es el 659# ese será el
nombre del archivo de voz que se enviará luego a la dirección de correo.
Después de grabar el mensaje debemos colgar, y a continuación marcaremos
*35 para enviar el archivo anterior al correo. Nos va a solicitar el número del
archivo, por lo que escribimos 659#.
Si luego nos vamos al Webmail de la cuenta de correo, podemos ver que
hemos recibido un mensaje de voz.
Colas de Llamadas.
En un Centro de llamadas (Call Center) tenemos a tres operadoras. Los
usuarios llaman, y cuando todas las operadoras estén ocupadas entrarán en
una cola de llamadas, esperando su turno. Los usuarios de la cola escuchan
una música mientras esperan.

Vamos a crear una cola con un sólo agente u operador, que tendrá asignada la
extensión 4002. Su número de cola será 123. No le pondremos contraseña.
En el campo Agentes fijos le pondríamos las extensiones de los agentes u
operadores, pero en nuestro caso al tener sólo uno, pondremos 4002,0.
Nos vamos al menú PBX >> Colas.

La música en espera (Music on Hold, MOH) le dejamos como valor Anterior, y


en anuncio de entrada le dejamos Ninguno.
En prefijo del nombre CID (Caller Identification) podemos poner un número
para que el agente que vea la llamada entrante sepa a que cola pertenece.
Esto es debido a que un mismo agente puede tener varias colas asignadas.
Por último pondremos que si falla la llamada, se termine.

Para realizar una prueba, llamamos desde un teléfono al 123 (cola) con lo que
le deberá sonar al agente de la extensión 4002. Si no contesta, sonará una
música. Además llamaremos a esta misma cola desde otros teléfonos. Cuando
el agente atienda una llamada y concluya, podrá atender a otra llamada de la
cola.
Si tuviéramos varios agentes, cuando uno está ocupado, la llamada pasaría al
siguiente.
Otros teléfonos de la empresa pueden pasar a ser agentes auxiliares de la cola,
para ello sólo debe marcar 123*. Para dejar de serlo, deberá marcar 123**.

En el panel del operador podemos ver cómo van evolucionando las llamadas de
esta cola.
También podemos cambiar varios parámetros de la cola, por ejemplo:
Cambiar el anuncio de entrada:

En grabaciones del sistema, podemos hacer grabaciones de voz para poderlas


utilizar en los diferentes apartados de Elastix.
Cambiar la Música en Espera:
Vamos a la PBX >> Música en Espera, y creamos una nueva categoría, por
ejemplo, Mi-musica.

Podemos asignar varias melodias en una misma categoría, para que suenen una tras la
otra.
A continuación editamos la cola 123 y le asignamos Mi-musica.

Cuando tenemos varios agentes, podemos establecer una estrategia de timbrado (Ring
Strategy)
Las posibles estrategias de timbrado son las siguientes:
- Sonar todos (Ringall): se llama a todos los agentes a la vez. Se queda
con la llamada el primero que descuelgue.
- Agente con última llamada más antigua (Leastrecent): la llamada
va a aquel agente que lleve más tiempo sin atender una llamada.
- Agente con menos llamadas (Fewestcalls): se asigna la llamada al
agente que lleve menos llamadas atendidas.
- Aleatorio (Random): se asigna la llamada de manera aleatoria a un
agente.
- Con memoria: recuerda al último agente al que intentó llamar.
- Linear: llama a los agentes en un mismo orden que se ha definido en
el fichero de configuración.

Prioridades de Cola.
Podemos crear tipos de usuarios que tengan preferencia al entrar en una cola.
Por ejemplo, creamos un grupo llamado "Gente importante" y le damos una
prioridad de 10 (a mayor número mayor prioridad)
Lo asignamos a nuestra cola123
En caso que estén varios usuarios llamando a los Agentes operadores, exista
una cola y llame "Gente importante", éste tendrá prioridad en la cola y será el
próximo en atender.
Horario de Llamadas.
Podemos establecer un horario laboral de llamadas. Si un usuario llama fuera
de ese horario (por ejemplo, lunes a viernes de 9:00 a 15:00) las llamadas
irán a la Extensión que definamos, por ejemplo, la 9999.
En el menú PBX >> Configuración >> Grupos Horarios, establecemos nuestro
horario.

A continuación establecemos una condición horaria, esto es, qué hacemos si


una llamada se produce dentro del horario laboral, y qué hacemos si la llamada
está fuera de este horario.
Para ello nos vamos al menú Condiciones de Tiempo, y creamos una
condición horaria.
Por último, nos vamos a PBX >> Configuración >> Otras Aplicaciones,

El usuario llamará al 9999 que es el número que se dirigirá a nuestra


Condición Horaria.
Nuestra Condición Horaria tendrá dos desvíos: si llama en horario laboral de
lunes a viernes de 9:00 a 15:00, nos dirigirá a una Cola donde nos atenderá
una operadora. Si llama fuera de este horario, nos desviará a un IVR.

Para realizar las pruebas podemos establecer primero un horario de mañana de


forma que se envíen las llamadas a la cola, y luego establecemos un horario de
tarde para que se desvíen las llamadas al IVR.
Aparcamiento de Llamadas.
Esta funcionalidad nos permite “estacionar o aparcar” una llamada
introduciendo una clave. La llamada no se pierde, solo que queda en espera de
que sea recuperada por otra extensión. No es lo mismo que una llamada en
espera, porque en este caso la línea que recibe la llamada queda ocupada y el
teléfono no podría recibir nuevas llamadas.
En Elastix podemos crear “lotes de estacionamiento o parking” que se asignan
a una extensión ficticia que debemos tener creada. Cada lote tiene asociado un
número de extensión, por ejemplo 710, y el número de “plazas” que tiene este
lote, por ejemplo, 2. Así tendríamos la “plaza” 711, y la 712. Al recibir una
llamada en uno de los teléfonos, éste puede aparcar o en la 711 o en la 712,
marcando simplemente 711# o 712#. El que llama queda en espera
escuchando una música de fondo.
Nos vamos al menú PBX >> Configuración >> Estacionamiento.
La funcionalidad es la siguiente:
Supongamos que la extensión 4003 recibe una llamada. Al pulsar *2 seguido
de la extensión de aparcamiento 710, la llamada queda en espera en la plaza
711, que es la primera libre. Si otra extensión quisiera capturar la llamada,
tiene que marcar 711. Si mientras está aparcada una llamada en la 711 si se
recibe otra y la aparcamos (marcando *2710), quedaría estacionada en la
plaza 712. Para recuperar una u otra llamada, marcariamos 711 o 712
respectivamente.
Podemos ver las llamadas aparcadas en el panel del operador:

Limitar Tiempo de Llamada por Extensiones.


Tenemos que editar el archivo /etc/asterisk/extensiones_custom.conf.
Para ello podemos utilizar el editor de textos nano.
Nos situamos al final del archivo y añadimos las siguientes líneas:

[internal-limit-time]
exten => _.,1,Set(TIMEOUT(absolute)=180)
exten => _x.,n,Goto(from-internal,${EXTEN},1)

En este caso vamos a limitar la duración de las llamadas a 180 segundos.


Todas aquellas extensiones a las que deseamos aplicar esta limitación, le
asignaremos el contexto: internal-limit-time.
Grabación de llamadas por Extensión.
Podemos habilitar la grabación de todas las llamadas entrantes o salientes
aplicando cambios en la configuración general, pero en este caso, vamos a
configurar que ciertas extensiones, por ejemplo las que pertenecen a soporte,
sean grabadas.
Esto lo podemos hacer con Elastix modificando algunos parámetros de cada
extensión, o también con FreePBX dentro del menú Applications >>
Extensiones.

Editamos la(s) extensión(es) y modificamos los parámetros dentro de la


sección Opciones de Grabación (Recording Options).

Aquí podemos aplicar las grabaciones sólo a las llamadas entrantes (inbound),
salientes (outbound) , o ambas. Además podemos elegir entre sólo llamadas
internas o externas, o ámbas.
En cada uno de estos casos, especificaremos que deseamos grabar siempre
(always), nunca (never) o bajo petición (on demand). En este último caso, el
que recibe la llamada deberá marcar *1 para grabar la llamada.
Contextos en Asterisk.-
Un contexto es una sección del plan de marcado (dialplan) que normalmente
se incluye en el archivo /etc/asterisk/extensions.conf.
Cada contexto define las operaciones que deben realizarse cuando un
dispositivo o extensión recibe una llamada. Tiene muchas aplicaciones
prácticas, una de ellas es la asignación de restricciones a una o varias
extensiones. Así por ejemplo, podemos decidir que unas extensiones no
puedan llamar a otras, o realizar llamadas externas, o a móviles, etc.
Un contexto puede aplicarse a una extensión o grupo de extensiones. Pueden
definirse varios contextos.

Creación de un contexto nuevo.


A continuación podemos ver unas líneas típicas en la definición de un contexto.
[Extensiones-Internas]
exten => 123,1,Answer()
exten => 123,n,Playback(bienvenido)
exten => 123,n,Hungup()
[nacionales]

Los contextos tienen un nombre entre corchetes. A continuación tenemos las


instrucciones que afectan a las extensiones. Cada línea generalmente comienza
con la clave exten => seguida de tres elementos:
Nombre: Especifica la extensión(es). En el ejemplo, el número 123. También
pueden utilizarse pattern (patrones) para designar un conjunto de valores. En
este caso pueden utilizarse [] para especificar una lista o intervalo, X para
especificar cualquier dígito de 0 a 9, Z para especificar cualquier dígito entre 1
y 9, N para especificar cualquier dígito entre 2 y 9.
Así por ejemplo:
300X Indica extensiones de la 3000 a la 3009
[201, 202, 203, 206-209] Indica 201, 202, 203, 206, 207, 208, 209
XXXX Indica cualquier extensión de 4 dígitos
[6-7]XXXXXXX Indica cualquier móvil español
9[Z]XXXXXXX Indica cualquier fijo español que comience por 9
[8-9]XXXXXXXX Indica cualquier fijo español que comience por 8 o 9

Prioridad: cada extensión puede tener varias instrucciones, y por tanto


necesitamos un número de prioridad que defina el orden en el cual serán
ejecutadas. En el ejemplo, la acción Answer (contestar) tiene prioridad 1. Si
se especifica prioridad n, esta acción tomará la prioridad en el orden en que
aparece. Así en el ejemplo anterior, primero contestará, luego sonará la
melodía bienvenido, y por último colgará.
Aplicación: Ejecutan diversas acciones. Entre otras muchas que pueden
utilizarse, tenemos:
Answer() Contestar.
Hangup() Colgar.
Wait() Esperar x segundos antes de la siguiente acción.
Playback() Reproduce un archivo de audio. Por defecto será un wav/mp3 que
estará en el directorio /var/libs/asterisk/sounds.
SayUnixTime Da la fecha y hora al llamante.
Background() Reproduce la música en espera.
Dial(SIP/3001) Marca la extensión 3001.

Cada dispositivo (teléfono, softphone,etcv) tiene un contexto asignado en su


archivo de configuración correspondiente a su tipo de canal (SIP, IAX, Dahdi).
Por ejemplo en el /etc/asterisk/sip.conf puede haber un dispositivo SIP
definido de la siguiente manera
[124]
type=friend
callerid="Pedro Pérez" <124>
username=tammari
canreinvite=yes
context=Extensiones-Internas
En este caso, el dispositivo SIP/124 pertenece al contexto “Extensiones-
Internas, es decir, cuando este dispositivo marque dígitos, éstos serán
comparados sólo con los patrones de extensiones del contexto mencionado.
Recordemos entonces el contexto en el /etc/asterisk/extensions.conf
[Extensiones-Internas]
exten => 123,1,Answer()
exten => 123,n,Playback(benvido)
exten => 123,n,Hungup()
Caso 1: El dispositivo SIP/124 llama al 123.
Asterisk toma los dígitos marcados (123) y los compara con los patrones del
contexto al cual pertenece el dispositivo que los marcó. En este caso coincide
y ejecutará la secuencia de instrucciones asignadas a ese patrón, es decir,
contestará, reproducirá el sonido benvido, y colgará.
Caso 2: Ahora el dispositivo SIP/124 llama al 125.
Asterisk toma los dígitos marcados (125) y los compara con los patrones del
contexto al cual pertenece el dispositivo que los marcó. En este caso NO
coincide, por lo que va a lo que se conoce como la extensión i o invalida. En
este caso no hará nada porque no hay nada definido en la extensión i.
Varios dispositivos, varios contextos.
Supongamos que tenemos cuatro dispositivos SIP: 101, 102, 201, 202, y dos
contextos: [compras] y [ventas]
Los dispositivos 101 y 102 están registrados en [compras], y 201 y 202 están
registrados en [ventas].
Aquí están las partes relevantes de los archivos de configuración:
sip.conf
[101]
type=friend
username=101
...
context=compras

[102]
type=friend
username=102
...
context=compras

[201]
type=friend
username=201
...
context=ventas

[202]
type=friend
username=202
...
context=ventas

extensions.conf
[compras]
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)
exten => i,1,Answer()
exten => i,n,Playbak(invalid)
exten => i,n,Hungup()

[ventas]
exten => 201,1,Dial(SIP/201)
exten => 202,1,Dial(SIP/202)

exten => i,1,Answer()


exten => i,n,Playbak(invalid)
exten => i,n,Hungup()

Caso 1: 101 marca 102. Asterisk buscará en el contexto compras (coincide), y


llamará al 102.
Caso 2: El 101 marca 201. Asterisk buscará en el contexto compras (no
coincide, pero si coincide con la extensión i) y reproducirá el sonido “invalid” y
colgará.

El dispositivo 102 sólo podrá llamar al dispositivo 101.

Inclusión de contextos
Si queremos que los dispositivos registrados en [compras] puedan llamar a las
extensiones de [ventas] sólo tenemos que hacer un include.

[compras]
include => ventas
exten => 101,1,Dial(SIP/101)
exten => 102,1,Dial(SIP/102)

exten => i,1,Answer()


exten => i,n,Playbak(invalid)
exten => i,n,Hungup()

A partir de ese momento las extensiones de [ventas] son agregadas al


contexto [compras] por tanto están disponibles para todos los dispositivos SIP
registrados en [compras]

Los 101 y 102 que antes se llamaban sólo entre ellos y no tenían acceso a las
extensiones en ventas, podrán hacerlo ahora. Pero no así para los dispositivos
201 y 202 quienes aún pueden llamarse sólo entre ellos.
TRONCALES (TRUNKS).

La era de la telefonía Analógico-Digital, está llegando a su fin.


La telefonía IP ha alcanzado ya su punto de madurez, y la mayoría de
proveedores poco a poco están dejando de entregar sus servicios por medio de
líneas de cobre y han comenzado a proporcionar enlaces de datos IP, utilizando
Troncales o Canales SIP (SIP Trunk).

La entrega de servicios por Troncales SIP, significa un ahorro muy significativo,


ya que no se requiere instalar hardware de telefonía.

En los sistemas tradicionales por líneas de cobre, se requería para su


funcionamiento instalar una tarjeta de puertos FXO, un puerto por cada línea
analógica; en lineas digitales (E1, T1) , se debe instalar una tarjeta de puertos
E1/T1. Esto implica una inversión adicional a lo que se le suma la instalación
física del cableado para hacer llegar el servicio hasta la planta telefónica.

Este costo ya no existe con las Troncales SIP, al no requerir hardware para su
conexión. El servicio es suministrado utilizando un enlace de datos IP a través
de un proveedor de telefonía VoIP.
Una Troncal SIP (SIP Trunk), es un canal de comunicación IP utilizado para
enlazar dos o más sistemas VoIP a través de la red de datos.
Este servicio se proporciona para la comunicación telefónica entre una central
VoIP y la red pública (PSTN). No requiere instalación de hardware de telefonía,
ya que toda la comunicación viaja en la red de datos, con la ventaja de que se
pueden enviar tantos canales (Troncales) como se desee. El límite lo pone el
ancho de banda del enlace de datos.

Configuración de Asterisk con los parámetros de un proveedor VoIP.


Supongamos que hemos contratado un servicio de telefonía VoIP. Este nos va a
proporcionar una serie de parámetros que debemos introducir en la
configuración de nuestra centralita asterisk. Esto lo podemos hacer tratando
directamente los archivos de configuración de asterisk, o utilizando el interface
gráfico Elastix.
En definitiva, lo que debemos crear es una troncal o SIP Trunk, que es una
especie de enlace que conecta asterisk con la red de telefonía pública. Para ello
nuestro proveedor nos proporciona la dirección IP del equipo que realiza esta
conexión.
Para la configuración en Elastix, nos vamos al menú PBX >> Troncales, y
añadimos una troncal.

Le damos un nombre a la troncal, e introducimos la IP que nos proporcionó


nuestro proveedor.

El campo Maximum Channels contiene el máximo de llamadas simultáneas


que podemos generar. Esto dependerá mucho del plan que hayamos
contratado.

A continuación saltamos a la sección outgoing settings.


Debemos borrar los valores por defecto que aparecen en Peer Details e
introducir los valores que nos proporciona el proveedor.
El campo trunk name es el usuario que usaremos para autenticarnos en el
equipo del proveedor.
En la sección incoming settings, seguimos introduciendo parámetros de
nuestro proveedor.

Register String contiene una cadena para la conexión con el equipo del
proveedor: usuario + contraseña + IP.

Cuando contratamos con un proveedor VoIP éste nos proporciona uno o varios
números telefónicos que debemos asignar a nuestras extensiones internas.
Podemos tener un número por cada una de las extensiones, o bien sólo un
número para toda la compañía. En el primer caso asignaremos cada número a
una extensión, y el en segundo caso, las llamadas serán recibidas por una
operadora que la desviará al departamento o extensión correspondiente.

Vamos a configurar una de las extensiones. Editamos la extensión y buscamos


la sección Assigned DID/CID.
Grabamos y aplicamos los cambios. A partir de ese momento, las llamadas
recibidas a esté número se dirigirán a la extensión correspondiente.

RUTAS.-
Una ruta es una regla que le indica al servidor Asterisk qué troncal o enlace
debe ser elegido para una enviar o recibir llamadas. Para ello se utilizan
patrones de marcado que se denominan plan de marcado o dialplan.
Así por ejemplo, podemos dirigir las llamadas a móviles por una troncal de
móviles, y las llamadas internacionales por otra troncal. Todo ello en función
del tipo de servicio que tengamos contratado con nuestro proveedor, buscando
siempre la solución más óptima y económica.

Existen dos tipos de rutas: salientes (outbound) o entrantes (inbound).

Rutas Salientes.-
Nos permite controlar la manera en que salen las llamada, es decir, por qué
canal sale cada llamada, con un patrón concreto. Cuando se marca un número
de teléfono, se comprueban las rutas existentes hasta encontrar una que
coincida con el patrón del número marcado. Las rutas también pueden tener
un nivel de prioridad.
A continuación, vamos a crear una ruta de salida para definir un plan de
marcado. En esta ruta, estableceremos las reglas que deseamos implantar
para todas las llamadas salientes. Podemos definir una sola ruta para todas las
llamadas, o varias rutas (móviles, fijos, internacionales, etc).
En el menú de Elastix accedemos a PBX >> rutas salientes.
Los campos que podemos manejar para definir una ruta son los siguientes:
CID (Caller Identification). Número del que llama.
Contraseña. Suele ser un código numérico. Al llamar por este canal, el
sistema pedirá la contraseña. Puede dejarse en blanco.
Emergency Dialing. Al marcar esta opción se activa, la ruta pasa a ser de
emergencia.
Intra Company Route. Al marcar esta opción, el sistema trata la ruta como si
fuera de la misma compañía, y conserva el CID del teléfono que llama.
Música en Espera. Permite seleccionar una categoría de música en espera
que hayamos definido previamente.
Time Group. Selecciona un Time Group.
Route Position. Aquí definimos la posición de la ruta.
Unos de los campos más importantes está en la sección Dial Pattern.

Reglas de marcado. Consta de una cadena de caracteres que indican las


reglas que debe cumplir el número marcado para que sea aplicada la ruta.
En una regla de marcado tenemos tres partes importantes:
prefix, donde se coloca el código telefónico internacional. España es el 34.
match pattern (patrón de coincidencia), contiene el patrón que define los
números que una o todas las extensiones pueden marcar.
CallerID (identificación del llamante) establece qué extensión(es) pueden
llamar a los números especificados por el patrón.
En estos tres campos pueden utilizarse metacaracteres para facilitar el
establecimiento de las reglas, y son los siguientes:
X Indica un dígito del 0 al 9.
Z Indica un dígito del 1 al 9.
N Indica un número del 2 al 9.
[1,2,3,3-5] Indica los números que aparecen entre corchetes separados
por comas, o un intervalo. En este caso: 1, 2, 3, 4, y 5.
. Indica cualquier número.
| Separa lo que se toma como prefijo, del número de teléfono.
A continuación mostramos algunos ejemplos de reglas de marcado:

En la primera, sólo las extensiones 100 a 199 pueden llamar a las extensiones
900-999.
En la segunda, sólo las extensiones 400 a 999 pueden llamar a móviles.
En la tercera, sólo las extensiones 100 a 899 pueden llamar a fijos nacionales
que comiencen por 9 (No se aceptan los 90...).
En la cuarta, las extensiones 900 a 999 no pueden hacer llamadas
internacionales (código de país no puede ser distinto a 34).

Elección de la Troncal.-
Por último, debemos indicar que SIP Trunk o Troncal vamos a utilizar para esta
ruta.

Esta asignación debe realizarse en función del contrato(s) con proveedores,


siendo algunas troncales mejores para móviles, otra para fijos y otra para
internacionales.
Rutas Entrantes.-
Cuando se recibe una llamada en la centralita, el sistema comprueba si existen
rutas entrantes, para establecer a dónde se dirige inicialmente la llamada.
En la figura siguiente tenemos un teléfono que efectúa una llamada a nuestra
centralita Asterisk por medio de la red telefónica pública. Este teléfono queda
identificado por su CID (caller identification).
La centralita, siguiendo las directrices especificadas en las rutas entrantes,
dirige la llamada al número marcado por el llamante (DID).

Los campos que podemos manejar para definir una ruta son los siguientes:

Descripción. Nombre que se le da a la ruta.

DID. Especifica el número al que se llama. Si se pone en blanco, la ruta se


aplicará a todas las llamadas que se hagan.

CID. Especifica el número que está llamando. Si se pone en blanco, la ruta se


aplicará a todas las llamadas recibidas.

CID Priority Route. Sólo es válido para rutas que no tienen definido un DID.
Si se marca esta opción, cualquier llamada entrante que coincida con el CID
indicado le será aplicada esta ruta.

CID Name Prefix. Permite definir los caracteres o nombre que deseamos
aparezca como identificador en la pantalla del teléfono.

Música en Espera. Se pone la categoría de música en espera que hayamos


definido previamente.
Llamadas Troncales entre dos Servidores en la misma Red.
Tenemos dos Servidores VoIP Asterisk en la misma red. Queremos que las
extensiones de un Servidor se puedan comunicar con las del otro Servidor.

En el Servidor A (192.168.1.222), creamos la extensión SIP 1111.


En el Servidor B (192.168.1.234), creamos la extensión SIP 2222.
Servidor A ( 192.168.1.222)
Creamos la extensión 800, de tipo IAX2.
En el campo Nombre a Mostrar, pondremos Troncal A. En contraseña,
pondremos abc123.
Creamos una troncal. Para ello nos vamos al menú PBX >> Troncales >>
Añadir Troncal IAX2.

Nombre de la Troncal: ServidorA


Detalles del par:

host=192.168.1.234
qualify=yes
username=900
secret=1234aa
type=friend
encryption=aes128
auth=md5

context=from-internal
trunk=yes
requirecalltoken=no

Cadena de Registro: 900:1234aa@192.168.1.234/900

Esta cadena apunta al servidor B (192.168.1.234), en él hay configurada la


Extensión 900, con contraseña abc1234.

Servidor B ( 192.168.1.234)
Creamos la extensión 900, de tipo IAX2.
En el campo Nombre a Mostrar, pondremos Troncal B. En contraseña,
pondremos abc123.
Creamos una troncal. Para ello nos vamos al menú PBX >> Troncales >>
Añadir Troncal IAX2.

Nombre de la Troncal: ServidorB


Detalles del par:

host=192.168.1.222
qualify=yes
username=800
secret=abc123.
type=friend
encryption=aes128
auth=md5
context=from-internal
trunk=yes
requirecalltoken=no

Cadena de Registro: 800:abc123.@192.168.1.222/800

Apunta al servidor A (192.168.1.222), en él hay configurada la Extensión 800,


con contraseña abc1234.

A continuación, creamos Rutas Salientes para los dos servidores.

Cuando un teléfono del Servidor A llame a un número que comienza por 1,


(1XXX), la llamada saldrá al ServidorB
Cuando un teléfono del Servidor B llame a un número que comienza por 2,
(2XXX), la llamada saldrá al ServidorA.
Troncales entre dos redes distintas a través de Internet.

En este caso la configuración sería similar a la anterior, solo que debemos


poner la IP Pública de la red con la que nos queremos comunicar.

Además debemos abrir en cada Router los puertos correspondientes según el


protocolo utilizado:
SIP: Puerto 5060 - 5065 Protocolo TCP/UDP -----> 192.168.1.222 (en el
ServidorA)
SIP: Puerto 5060 - 5065 Protocolo TCP/UDP -----> 192.168.1.234 (en el
ServidorB)
RTP Puerto 10000 - 20000 Protocolo UDP
IAX Puerto 4569 - 4569 Protocolo UDP
En el Servidor A, editamos el archivo /etc/asterisk/sip.conf:

nat=yes
externip= 21.31.41.51
localnet=192.168.1.0/255.255.255.0
canreinvite=no
En el Servidor B, editamos el archivo /etc/asterisk/sip.conf:

nat=yes
externip=62.72.82.92
localnet=192.168.1.0/255.255.255.0
canreinvite=no

Los archivos los podemos editar mediante PBX / Herramientas / Editor


Archivos Asterisk.
Interconexión de Asterisk con Proveedores VoIP.

Para que nuestra centralita Asterisk pueda comunicarse con el exterior,


debemos contratar los servicios de un proveedor de telefonía VoIP, con lo cual
podremos realizar llamadas a la Red de Telefonía Conmutada, y también recibir
llamadas desde ella.
Podemos separar los proveedores VoIP en dos categorías diferenciadas en
función del servicio que proporcionan:

• Proveedores de minutos: Permiten realizar llamadas hacia la Red de


Telefonía Conmutada, cobrándonos por tiempo u ofreciéndonos tarifas
planas de llamadas. Las tarifas son variadas, pero podemos encontrar
precios de 1 cent/minuto o incluso menos a destinos tanto nacionales como
internacionales.
• Proveedores de DID: Nos proporcionan un número de teléfono de la Red
de Telefonía Conmutada donde cualquier persona nos pueda llamar, y nos
entregan las llamadas a nuestro Asterisk. Normalmente se alquilan por
meses, y tienen un coste entre 2 y 10€/mes según el proveedor y el tipo de
número. Por ejemplo, podemos tener un DID de numeración fija de Madrid
del tipo “91 xxx xx xx”, o de cualquier otra provincia española. También
podemos alquilar números de países extranjeros para que nos llamen desde
allí a precio de llamada local.

Y por supuesto, podemos encontrar proveedores que ofrezcan los dos servicios
al mismo tiempo.

Para configurar un proveedor VoIP tendremos que hacer algunos cambios en


nuestra configuración:

• En “sip.conf”

1. Añadir una nueva sección con los datos de nuestro proveedor (IP, puerto,
username, password y codecs a utilizar).
2. Añadir la línea de registro. De la misma manera que nuestras extensiones
internas se registran con nuestro Asterisk, nuestro Asterisk se tiene que
registrar con el proveedor externo. El registro realiza una autenticación con
nuestra cuenta en el servidor VoIP del proveedor.

• En “extensions.conf”

1. Añadir contextos para los proveedores de DID, es decir, aquellos que sí van
a interactuar con nuestro sistema para entregarnos llamadas.
2. Los proveedores que sólo nos ofrezcan minutos no necesitan interactuar con
nosotros, así que por seguridad siempre les asignaremos un contexto de
rechazo. En nuestros ejemplos, el contexto “general” es un contexto de
rechazo.
3. Añadiremos las reglas de llamada para los destinos que nos interesen,
modificando los contextos de aquellos usuarios que queramos que tengan
salida al exterior.

DANDO DE ALTA LOS PROVEEDORES VoiP.


Para que resulte más ilustrativo y práctico vamos a centrar los ejemplos en dos
proveedores reales, probablemente dos de los más utilizados en España:

Proveedor tanto de DIDs (recibir llamadas) como de minutos


Netelip
(hacer llamadas).
FreeVoIPDeal Proveedor exclusivamente de minutos.

Vamos a suponer que hemos creado una cuenta y tenemos el nombre de


usuario y clave de ambos proveedores.

Netelip
Tenemos que añadir la siguiente sección al archivo de configuración sip.conf,
poniendo los datos correspondientes en los campos “username” y “secret”.

[trunk-netelip]
type=peer
host=sip.netelip.com
fromdomain=sip.netelip.com
username=1234567890
secret=T0pS3cr3t
insecure=port,invite
context=callin-netelip
canreinvite=no
CAMPO DESCRIPCIÓN
type Con los proveedores usaremos siempre el tipo de cuenta "peer".
host El nombre o la IP del servidor SIP de nuestro proveedor.
fromdomai Establece el dominio asociado a nuestra cuenta de usuario. Este
n dato nos lo proporciona el proveedor.
username Nombre de usuario de nuestra cuenta SIP en el proveedor.
secret Password de nuestra cuenta SIP.
El término resulta más preocupante de lo que debería. Insecure
permite cambiar algunos aspectos de la autenticación,
normalmente para permitir llamadas entrantes desde
insecure proveedores. En este caso, "port" indica que la autenticación se
haga exclusivamente en base a IP, sin tener en cuenta el puerto;
e "invite" indica que no se necesita autenticación con
usuario/password para hablar con nosotros.
context El contexto donde se enviarán las llamadas entrantes desde este
CAMPO DESCRIPCIÓN
proveedor.
Estableciendo a "no" obligamos a que el audio de las llamadas
canreinvite pasen obligatoriamente por Asterisk. Esto añade algo de latencia
pero nos ahorra problemas con el NAT.

Además de lo anterior, tenemos que hacer que Asterisk envíe el usuario y password
de nuestra cuenta al proveedor para registrarnos con él. Esto es necesario para
indicar que estamos activos, y decirle dónde nos puede encontrar cuando nos tenga
que entregar una llamada. Esta parte se hace con la línea de registro en la sección
[general], indicando el nombre de usuario y el nombre de la sección que hemos
definido para el proveedor, en este caso [trunk-netelip]:

register => 1234567890@trunk-netelip

FreeVoIPDeal
Hacemos lo mismo para definir la conexión con FreeVoIPDeal. La única
diferencia es que reenviaremos todas las llamadas entrantes al contexto
general de rechazo. Esto es porque FreeVoIPDeal sólo proporciona minutos, es
decir, sólo nos permite llamar, y nunca deberíamos recibir llamadas desde este
proveedor. Por tanto, por seguridad le asignamos un contexto que rechaza
todas las llamadas entrantes.

[trunk-freevoipdeal]
type=peer
host=sip.freevoipdeal.com
fromdomain=sip.freevoipdeal.com
username=mi_usuario
secret= T0pS3cr3t
insecure=port,invite
context=general
canreinvite=no

Y también necesitamos una línea de registro en [general]:


register => mi_usuario@trunk-freevoipdeal

CONFIGURANDO EL DIALPLAN
El siguiente paso es configurar el DialPlan tanto para las llamadas entrantes
como para las salientes.
Supongamos que, además de los dos proveedores anteriores, tenemos dada de
alta una extensión interna “3001” asociada al contexto “extensiones”.
Tenemos que hacer dos cosas:

•Crear el contexto “callin-netelip” donde redirigiremos las llamadas


entrantes para que suenen en nuestra extensión interna 3001.
•Modificar el contexto “extensiones” para permitir llamar al exterior desde
nuestras extensiones internas.
Crear el contexto “callin-netelip”
Añadiremos a nuestro DialPlan lo siguiente:
[callin-netelip]
exten => s,1,Dial(SIP/3001)
same => n,Hangup(16)

Extensión especial de Asterisk que se activa cuando no hay


ninguna otra extensión del contexto actual que encaje con la
Extensión
llamada entrante. Como en este caso nos da igual el número
"s"
de destino marcado, usamos la extensión "s" para capturar
todas las llamadas entrantes sin importar el patrón.
Redirige la llamada hacia la extensión 3001 de SIP. Es decir,
Dial(SIP/30
cuando alguien llame a nuestro número de Netelip desde la Red
01)
de Telefonía Conmutada, sonará nuestra extensión 3001.
Por último, al terminar la llamada colgaremos a la persona que
Hangup(16) nos ha llamado. El código 16 indica que la llamada ha
terminado con normalidad.

Modificar el contexto “extensiones”


Una de las ventajas de usar Asterisk es que podemos configurar las rutas de
llamadas como mejor nos convenga. Por ejemplo, nos puede interesar cursar
unos tipos de llamadas a través de un proveedor concreto por razones de
calidad o precio, y el resto de llamadas a través de otro proveedor. La
flexibilidad es total.
Supongamos lo siguiente:

•Queremos usar Netelip para llamar a teléfonos fijos de España.


•Queremos usar FreeVoIPDeal para llamar a móviles de España.
•Queremos dar un mensaje de voz cuando se marque un número no válido (ej:
llamadas internacionales).

Para organizar mejor el dialplan y asegurar que las expresiones se evalúan en


el orden correcto vamos a introducir una nueva directiva: “include”. Esta
directiva nos permite definir un contexto como composición de contextos, y
nos permite controlar mejor el orden de evaluación de extensiones. Veámoslo
con un ejemplo:

[extensiones]
include => llamadas-externas
include => llamadas-no-validas

[llamadas-externas]
;Llamada a fijos de España por Netelip
exten => _[8-9][1-8]XXXXXXX,1,Dial(SIP/${EXTEN}@trunk-netelip)
same => n,Hangup(16)

;Llamada a móviles de España que empiezan en 6 por FreeVoIPDeal


exten => _6XXXXXXXX,1,Dial(SIP/0034${EXTEN}@trunk-
freevoipdeal)
same => n,Hangup(16)

[llamadas-no-validas]
exten => _X.,1,Answer
same => n,Wait(1)
same => n,Playback(you-dialed-wrong-number)
same => n,Hangup(21)

Hemos definido el contexto “extensiones” como la suma de “llamadas-


externas” + “llamadas-no-validas”, en ese orden.
Al realizarse una llamada a través del contexto “extensiones”, Asterisk buscará
primero una coincidencia de extensión dentro del contexto “llamadas-
externas”. Si hemos marcado un número fijo español o un móvil que empiece
por 6, la extensión marcada cuadrará con una de las dos definiciones
existentes y cursará la llamada a través del proveedor correspondiente.
Si no cuadra con ninguna definición de “llamadas-externas”, entonces buscará
en el contexto “llamadas-no-validas”. Este contexto tiene una única extensión
definida que lo admite todo, por lo que siempre que se llegue hasta aquí
aceptará realizando lo siguiente: descuelga, indica que el número marcado no
es válido, y cuelga.
Es decir, cuando marquemos un número definido con alguna regla en
“llamadas-externas”, Asterisk cursará la llamada a través del proveedor que
hayamos asignado. Si el número marcado no está aceptado por nuestro
DialPlan (por ejemplo llamadas internacionales o líneas 806 xxx xxx), entonces
Asterisk nos dará una locución de aviso y colgará sin enviar la llamada al
exterior.

EJEMPLO COMPLETO
Supongamos lo siguiente:
•Tenemos una extensión interna: 3001.
•Tenemos dos proveedores de telefonía: Netelip y FreeVoIPDeal.
•Queremos usar Netelip para llamar a fijos de España.
•Queremos usar FreeVoIPDeal para llamar a móviles de España.
•Queremos que las llamadas entrantes de Netelip suenen en la extensión 3001.

/etc(asterisk/sip.conf

[general]
udpbindaddr=0.0.0.0:5060
context=default
srvlookup=yes
allowguest=no
alwaysauthreject=yes

register => 1234567890@trunk-netelip


register => mi_usuario@trunk-freevoipdeal

[3001]
type=peer
host=dynamic
username=3001
secret=password3001
context=extensiones

[trunk-netelip]
type=peer
host=sip.netelip.com
fromdomain=sip.netelip.com
username=1234567890
secret=T0pS3cr3t
insecure=port,invite
context=callin-netelip
canreinvite=no

[trunk-freevoipdeal]
type=peer
host=sip.freevoipdeal.com
fromdomain=sip.freevoipdeal.com
username=mi_usuario
secret= T0pS3cr3t
insecure=port,invite
context=general
canreinvite=no

/etc/asterisk/extensions

[general]
; Recibe lo que no tiene un contexto propio definido.
; Rechaza todo por seguridad.
exten => _X.,1,Hangup(21)
exten => s,1,Hangup(21)

[callin-netelip]
;Las llamadas de Netelip van al 3001
exten => s,1,Dial(SIP/3001)
same => n,Hangup(16)

[extensiones]
include => llamadas-externas
include => llamadas-no-validas

[llamadas-externas]
;Llamada a fijos de España por Netelip
exten => _[8-9][1-8]XXXXXXX,1,Dial(SIP/${EXTEN}@trunk-netelip)
same => n,Hangup(16)

;Llamada a móviles de España que empiezan en 6 por FreeVoIPDeal


exten => _6XXXXXXXX,1,Dial(SIP/0034${EXTEN}@trunk-freevoipdeal)
same => n,Hangup(16)

[llamadas-no-validas]
exten => _X.,1,Answer
same => n,Wait(1)
same => n,Playback(you-dialed-wrong-number)
same => n,Hangup(21)

You might also like