Asterisk: Demasiado Bueno y Aun Así, es Cierto

Durante el año pasado tuvimos la oportunidad de publicar varios artículos relacionados con tecnologías de VoIP (voz sobre IP), ToIP (telefonía IP), protocolos y aplicaciones basados en SIP (Session Iniciation Protocol). Toda esta tecnología se integra para poder brindarnos comunicaciones punto a punto de voz, datos y video. En esta ocasión, vamos a conjuntar todos estos conceptos en una aplicación open source, que está siendo adoptada significativamente y merece nuestra atención en este número. �Para aquellos que no están familiarizados con el mundo de la telefonía y desconocen las características de un PBX (Private Branch Exchange), por favor continúen leyendo. Para quienes cuentan con amplia experiencia en este tema, si así lo desean, pueden ir directamente a la explicación de Asterisk (www.asterisk.org).

¿Qué es un PBX?
Un PBX en la jerga de TI, es lo que conocemos terrenalmente como un conmutador de teléfonos. Sin embargo, hay que hacer la distinción del alcance de funcionalidad que tiene este equipo. El PBX usualmente está compuesto por tarjetas de circuitos electrónicos, semejantes a un motherboard, que se insertan en gabinetes. Con este hardware, además de la funcionalidad de telefonía interna, tenemos servicios de correo de voz, transferencia de llamadas, conferencias, enrutamientos, configuraciones de call center, identificador de llamadas, códigos de seguridad, tarificación, etcétera. Por lo general, algunos servicios como por ejemplo, el correo de voz, viene asociado a una tarjeta en el gabinete.

Típicamente, dichos equipos trabajan con troncales analógicas o digitales, con conexión directa a las centrales de fibra óptica o cobre de los proveedores telefónicos. En algunos casos es posible trabajar con líneas directas comerciales, pero esto sucede por lo regular en implementaciones pequeñas, donde quizás no sea necesario el uso de un PBX, dado los costos que implica tenerlo, que provienen de mantenimiento de hardware y software de las tarjetas, servicios de programación o capacitación para hacerlo con personal interno, contratos de 7x24 en caso de fallas, dada la criticidad del servicio, etcétera.

La tecnología de ToIP, trajo la evolución de estos equipos PBX en los hoy llamados call managers. Un call manager es simplemente un servidor que, a través de software provee la misma funcionalidad de un PBX, sin necesidad de adquirir y mantener las costosas tarjetas y gabinetes de los PBX.

A través de la implementación de ToIP, los costos de operación y mantenimiento del equipo de telefonía se reducen de forma dramática, dado que ofrecen la misma funcionalidad a precios más bajos con mayor redundancia, y una mejor oferta de soluciones, dado que se incorpora el video en tiempo real y los beneficios del mundo IP.

Aunque un call manager es más eficiente en términos de costos que un PBX, también requiere de una inversión considerable de capital para su implementación. O cuando menos, así lo era antes de que el open source llegara al mundo de la telefonía IP. Aquí es donde entra Asterisk.

¿Qué es Asterisk?
Asterisk es una aplicación que tiene toda la funcionalidad de un call manager, y por ende, las de un PBX, corre bajo plataforma Linux BSD o Mac OSX, y además tiene la fabulosa cualidad de ser open source.

Antes de continuar, deseo resaltar la magnitud del párrafo anterior con un ejemplo: una solución de ToIP o de un PBX con la funcionalidad antes mencionada, significa una inversión que va desde 50 hasta 100 mil dólares, en una implementación pequeña. No puedo ser más explicito en el impacto que podría tener Asterisk en nuestra empresa.

El software fue escrito originalmente por Mark Spencer de Digium Inc. y constantemente el código se está enriquecido por la comunidad open source de todo el mundo. A la fecha, se continúan realizando pruebas, desarrollo de parches y extensiones que han impulsado fuertemente al desarrollo y adopción de dicha aplicación

El programa no requiere de hardware adicional para soportar VoIP, y existe una buena variedad de dispositivos para que Asterisk pueda interconectarse con equipo tanto digital como analógico. La mayor parte de estos dispositivos provienen de Digium, que es la marca que patrocina a Asterisk. Se cuenta con hardware para poder conectar la aplicación a troncales E1 y T1 para conexiones PRI (Primary Rate Interface) que son las interfaces más comunes usadas por las empresas con un alto volumen de llamadas. Para las pequeñas y medianas empresas, se cuentan con dispositivos para la conexión de líneas tradicionales, que pueden usarse a través de módulos con puertos FXS, FXO.

Asterisk cuenta con un amplio rango de protocolos TDM que le permiten el manejo y transmisión de voz sobre interfases tradicionales, soporta la señalización estándar de los sistemas telefónicos comerciales, tanto americanos como europeos, lo cual le permite conectarse a los sistemas de nueva generación o, a una infraestructura existente.

Arquitectura
Asterisk está diseñado para brindar una alta flexibilidad en su funcionalidad. Existen APIs que se diseñaron específicamente, como el núcleo central de un PBX. Este núcleo es el encargado de administrar las interconexiones internas, abstrayéndolo de los protocolos específicos, codecs, e interfaces de hardware de las aplicaciones de telefonía.

El núcleo de Asterisk administra las siguientes funciones de forma interna:
•PBX Switching. Esta unidad de switching conecta de forma transparente las llamadas que llegan desde cualquier interfase, ya sea de hardware o software. Es el corazón de Asterisk, y contiene el núcleo de la funcionalidad de PBX conectando las llamadas entre los usuarios y automatizando tareas.
•Lanzador de Aplicaciones. Lanza las aplicaciones para los servicios como correo de voz, directorio, grabación y reproducción de llamadas.
•Traductor de Codecs. Utiliza los módulos de codecs para la codificación y decodificación de los formatos de audio estándar de la industria. Se cuentan con los codecs más comunes para satisfacer las distintas necesidades que pueden surgir, para encontrar el balance entre calidad de audio y ancho de banda de nuestra implementación.
•Scheduler and I/O Manager. Administra las tareas programadas de bajo nivel y es el encargado del manejo del sistema, para el desempeño óptimo bajo cualquier condición de carga.

Módulos APIs
A través del uso de este sistema de módulos, el núcleo de Asterisk se despreocupa de detalles como de dónde proviene una llamada, qué codec utiliza, etcétera.

•API de Canal. El API de canal administra el tipo de conexión de la llamada que está llegando al sistema. Esta puede ser una conexión VoIP, ISDN, PRI u otra tecnología. Los módulos dinámicos se cargan para manejar las capas de bajo nivel para la detección y manejo de estas conexiones.
•API de Aplicación. El API de aplicación permite que se corran varios módulos de tareas para ejecutar distintas funciones, como conferencias, directorio, correo de voz, y cualquier otra tarea que un sistema PBX podría desempeñar ahora o en el futuro. Estos módulos pueden administrarse por separado.
•API Traductor de Codec. Este API tiene la función de cargar los módulos de codecs para soportar los distintos formatos para la codificación y decodificación del audio. Estos pueden ser: GSM, Mu-Law, A-law, e incluso MP3.
•API de Formato de Archivos. Administra la lectura y escritura de varios formatos para el almacenamiento de datos en el sistema de archivos.

Gracias a este manejo de módulos, es posible integrar los sistemas de hardware actuales de telefonía o las nuevas tecnologías de voz que puedan emerger.

La implementación y puesta a punto de esta aplicación, podría parecer complicada, pero la realidad es distinta. Existen varias guías para llevar acabo una implementación completa de Asterisk, y adquiriendo el hardware adecuado, se puede implementar como el equipo de telefonía de cualquier oficina, sin importar su tamaño o complejidad.

Aunque usted no lo crea, hoy en día existen varias empresas mexicanas que ya están utilizando este software como su sistema de telefonía. Lejos de pensar que su operación se ve comprometida al trabajar con una aplicación open soruce, resulta que su comunicación se ve incrementada, al poder contar con los beneficios de la telefonía IP a un costo bajo. Esto, sumado con el soporte y contribución continua de la comunidad del open source, debería llevar a cuestionarnos si realmente deseamos continuar operando con nuestro PBX actual o realizar inversiones fuertes para implementar una solución de telefonía IP propietaria.

Como siempre, la decisión es del negocio, y la única forma de comprobar los beneficios de tal aplicación es, evaluándola y presentando los resultados con un análisis de riesgos. Por ello, los invito a que instalen Asterisk en su ambiente de desarrollo y vean si cumple las expectativas de su negocio.

Referencias
www.asterisk.org
www.digium.com/en/index.php
www.voip-info.org/wiki-Asterisk+installation+tips