Prácticas de telefonía IP de los alumnos de 1 STI del Instituto Tartanga: Instalación y configuración de un sistema Asterisk

Una vez que los alumnos de 1 STI (Sistemas de Telecomunicación e Informáticos) han realizado diversas prácticas de instalación y configuración de PBX IP mediante distribuciones “todo-en-uno” como son Elastix y FreePBX, ha llegado el momento de realizar igualmente la instalación y configuración de una PBX IP basada en un Asterisk “puro”. Para ello se ha seleccionado la versión 14.04.4 LTS de Ubuntu Server y la versión de Asterisk LTS 13.1- cert4, todo ello virtualizado sobre VMware corriendo en equipos con Windows 7.

asterisk_1

 Ubuntu Server 14.04.4 LTS

asterisk_2

 Asterisk LTS 13.1-cert4 (actualizada a la 11.7.0)

Junto con Asterisk se ha instalado también las librerias DAHDI en su versión 2.11.1 y las librerías libpri en su versión 1.5.0.  Las librerías DAHDI (Digium/Asterisk Hardware Device Interface) permiten el funcionamiento de diversas tarjetas fabricadas por Digium para incluir en la centralita Asterisk líneas y extensiones analógicas  accesos básicos RDSI. Estas librerías también permiten el funcionamiento de diversas tarjetas de otros fabricantes. Por otro lado, las librerías libpri dan soporte a la conexión de la centralita Asterisk con accesos primarios, tanto en su versión Europea (E1) como en las versiones para EEUU (T1) y Japón (J1)

asterisk_3

Librerías dahdi y libpri instaladas

En la instalación de Asterisk hemos optado por no incorporar tampoco la nueva librería SIP denomina PJSIP. La versión tradicional de la librería SIP ha sido criticada a veces por ser una librería inestable y por estar escrita de una forma que no facilita la evolución y depuración de errores en la misma. Los desarrolladores de Asterisk han optado por introducir una nueva librería SIP, denominada PJSIP. Esta librería obliga a escribir de forma diferente determinadas porciones de código en los ficheros de configuración de Asterisk (extensions.conf, sip.conf y otros). Aunque desde Asterisk se promueve la utilización de esta nueva librería, Asterisk puede seguir funcionando con la librería nativa de SIP, y eso es lo que hemos hecho en la clase de Sistemas de Telefonía. Más adelante, sin duda que daremos el paso e instalaremos Asterisk con PJSIP, porque parece claro que es el camino a seguir.

Asterisk_3a

Libreria PJSIP

Una vez que el sistema ha arrancado, accedemos a la carpeta /etc/asterisk y procedemos a la edición “desde cero” de los ficheros de configuración sip.conf extensions.conf. En el fichero sip.conf definimos:

  • Las diversas extensiones de la PBX. Cada extensión debe de estar en un “contexto”, que es un concepto equivalente a una “clase de servicio” de las PBX tradicionales.
  • Los enlaces SIP, tanto con operadores de VoIP como Sarenet, como con otras PBX IP. Cada uno de estos enlaces o “trunks” IP se identifica por un nombre, que será usado para enrutar las llamadas salientes. Además, cada enlace o “trunk” IP tendrá también un “contexto” definido y que existirá también en el fichero extensions.conf. En dichos contextos de entrada se “enrutaran” las llamadas entrantes a la PBX Asterisk.

El fichero extensions.conf o Dial Plan, verdadero núcleo de un sistema Asterisk, contendrá información como la siguiente:

  • Para cada uno de los contextos de las extensiones, secuencia de acciones a realizar en función de los diversos patrones de marcado (si la extensión marca 1XX haz esto, si la extensión marca 9XX haz esto otro, si marca 803X prohibe la llamada, etc)
  • Para cada uno de los contextos de los enlaces o “trunk”, secuencia de acciones a realizar con cada llamada entrante (dirigir la llamada directamente a una extensión, dirigir la llamada a un grupo de extensiones, dirigirla hacia una “operadora automática, etc)
  • Para cada uno de los identificadores de enlaces o “trunk” dirigir las llamadas de determinadas extensiones en función del patrón marcado (si la extensión marca 6XX sal por el enlace de Sarenet, si marca 9XX sal por el enlace de este otro proveedor de VoIP, si marca 2XX sal por el enlace que comunica con otra PBX IP de la empresa, etc)

 asterisk_4Carpeta /etc/asterisk con los ficheros de configuración sip.confextensions.conf

Fragmento de código del fichero sip.conf

asterisk_6

Fragmento de código del fichero extensions.conf

El resultado de la programación de estos dos ficheros, junto con algunas otras cosas que también es necesario modificar, es el mostrado en los siguientes vídeos, grabados en el aula de telefonía del Instituto Tartanga:

Llamada a grupo de extensiones con mensaje de audio incorporado

Llamada saliente a móviles con mensaje de audio incorporado


Llamada saliente a fijos con mensaje de audio incorporado

Llamada entrante a operadora automática

Llamada entrante a operadora automática y con transferencia a extensión de operadora

El código que hemos utilizado en estas primeras prácticas con Asterisk es un código básico, sin macros, sin aplicaciones de cierta complejidad, sin uso de variables, sin utilización de AGI (Asterisk Gateway Interface) que nos permite añadir código en lenguajes como PHP, Java, Phyton y otros, sin consultas a bases de datos como mysql, sin manejo de colas, buzones de voz, informes de llamadas y sin muchas otras cosas mas.

Asterisk_6a

Integración en Asterisk de diversos lenguajes de programación

Estamos solo al comienzo y la potencia y versatilidad de Asterisk necesitaría de una dedicación de horas lectivas que, sin duda, superaría con mucho a las horas disponibles en la programación del módulo de Sistemas de Telefonía para todo el curso. A continuación se muestran unos ejemplos de código programado en el fichero extensions.conf y que corresponde a los vídeos mostrados anteriormente:

asterisk_6Inicio del fichero extensions.conf

asterisk_8

Código de extensions.conf para la grabación de los diferentes mensajes

asterisk_9

Contexto de “trabajadores” en el fichero extensions.conf 

Tal y como se observa en los ejemplos, es extremadamente fácil construir una operadora automática “a medida” en Asterisk, con cualquier configuración de niveles y con cualquier número de mensajes de audio, cosa que con una centralita tradicional, no es posible. De la misma manera, es muy fácil también establecer restricciones de llamadas para cualquier esquema que se nos ocurra e igualmente es prácticamente inmediato establecer un sistema de enrutamiento de llamadas tan complejo y sofisticado como nos apetezca. Tan solo es necesario escribir el código adecuado en los ficheros de configuración correspondientes.

Como resumen, solo cabe decir que la experiencia del trabajo con Asterisk está siendo muy positiva por los siguiente motivos:

  • Los alumnos están viendo como funciona y como se configura una centralita con Asterisk “puro” sin la ayuda de interfaces gráficos como los de FreePBX o Elastix
  • También los alumnos están aplicando en la práctica los conocimientos adquiridos en el módulo de Sistemas Operativos y Redes en cuanto al manejo de un sistema operativo Linux desde la línea de comandos. Ahora comienza a tener sentido lo que han estudiado meses atrás…..
  • Una configuración con un sistema Asterisk es muchísimo más potente y versatil que la que se pueda realizar con una solución “todo-en-uno” con interface gráfico, como FreePBX o Elastix
  • Las configuraciones realizadas con Asterisk son configuraciones “óptimas”, es decir, los ficheros de configuración, como por ejemplo sip.conf y extensions.conf, tienen solo el código estrictamente necesario, nada mas.
  • Después de haber trabajado en clase con centralitas convencionales como la KXTD-816 de Panasonic o las TEA308, NCP500 o TDA200 del mismo fabricante, es fácil darse cuenta de que con un sistema Asterisk se puede hacer lo que hacen esas centralitas y mucho mas.

Y por último, al estar realizando todas las prácticas con sistemas virtualizados en VMware o en VirtualBox bajo Windows, los alumnos pueden montar estas centralitas en un ordenador de casa y realizar tantas configuraciones prácticas como deseen, llevando a cabo las pruebas sobre softphones como Zoiper, X-Lite o Phoner. Para varios de los alumnos está siendo muy motivador, ya que comprueban que están recibiendo una formación en sistemas de telefonía relativamente actual.

Prácticas con Asterisk y softphones en los portátiles del aula de telefonía

Seguiremos trabajando en esta línea. El próximo reto: Colocar en producción un sistema Asterisk en el Instituto de Formación Profesional Tartanga, virtualizado en alguna de las máquinas con Proxmox disponibles en el CPD del Instituto.

Esta entrada fue publicada en Telefonía IP. Guarda el enlace permanente.

2 respuestas a Prácticas de telefonía IP de los alumnos de 1 STI del Instituto Tartanga: Instalación y configuración de un sistema Asterisk

  1. Enrique del Rio dijo:

    Hola

    Es muy fácil conocer el número total de extensiones configuradas en una centralita Asterisk. Si se trata de una versión de Asterisk que trabaja con el driver de canal chan_sip, que actualmente es obsoleto y no se recomienda, el comando en el CLI de Asterisk es: sip show peers El comando te muestra en pantalla todas las extensiones del Asterisk, la dirección IP de cada una de ellas y el estado de las mismas, que cuando es OK significa que la extensión está operativa.

    Si se trata de una versión de Asterisk que trabaja con el nuevo driver de canal chan_pjsip, el comando a ejecutar en la consola de Asterisk es: pjsip show aors Este comando también muestra todas las extensiones del Asterisk, su dirección IP y si están disponibles (Available) o no disponibles (Unavailable).

    Un saludo

    Enrique del Río
    CIFP Tartanga LHII
    Erandio
    Bizkaia

  2. ROMSAT dijo:

    Hola, Enrique

    Genial el blog que llevas, te felicito por ello.

    Tan solo una pregunta me gustaría hacerte: ¿cómo podría saber el número total de extensiones que hay configuradas en una centralita Asterisk? ¿hay para ello algún comando?

    Es todo. Muchas gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada.