Вы находитесь на странице: 1из 42

LINUX CENTRAL DE SERVICIOS INTEGRADOS TELEFONIA IP

JESSE PADILLA AGUDELO

UNIVERSIDAD NACIONAL DE COLOMBIA


FACULTAD DE INGENIERA Y ARQUITECTURA PROGRAMA DE INGENIERA ELECTRNICA MANIZALES

RESUMEN Asterisk en un software que ha evolucionado a pasos agigantados, esto se debe a su naturaleza de ser software de cdigo abierto y por tanto muchos desarrolladores alrededor del mundo que comparten la filosofa del Software Libre y del OpenSource han aportado a su rpido desarrollo y crecimiento como pasarela de Telefona IP, por lo cual en este documento se presenta como prestar servicios de Telefona IP con esta herramienta. En el caso particular como implementar un PBX IP (Centralita IP) con una cierta cantidad de servicios adicionales en una plataforma libre GNU/Linux. .

INTRODUCCIN
Realmente la integracin de datos, voz y video en una misma red no es una idea nueva, pues desde hace tiempo han surgido soluciones desde distintos fabricantes que, mediante el uso de diversos equipos, permiten utilizar las redes de datos de las empresas para la transmisin del trfico de voz y video, adems es importante resaltar que el paquete de voz o video es indistinguible del paquete de datos, y por lo tanto puede ser transportado a travs de una red que estara normalmente reservada para transmisin de datos, donde los costos son frecuentemente mas bajos. Es innegable la implantacin definitiva del protocolo IP desde los mbitos empresariales a los domsticos y la aparicin de los estndares de VoIP y IPTv no podan hacerse esperar. La aparicin de VoIP junto con rebaja de precios de los DSPs, los cuales son claves en la compresin y descompresin de la voz, son los elementos que han hecho posible el despegue de estas tecnologas. La convergencia de las redes telefnicas, las redes de datos y los sistemas de televisin es una de las tendencias tecnolgicas ms importantes de esta dcada. El potencial de esta unin es de una gran envergadura, siendo capaz de provocar notables mejoras y ahorros en las redes de comunicaciones de las corporaciones y mayores servicios y prestaciones para el usuario final. Lo que se tiende en estos momentos es ofrecer al mercado productos y soluciones que aprovechen la infraestructura de red IP, con el propsito de mejorar la efectividad y productividad de las comunicaciones en las empresas y los servicios domsticos. La integracin de la infraestructura telefnica y de datos permite simplificar la administracin de los recursos de red y facilita la expansin en capacidad. La ventaja real de la fusin datos, telefona y televisin es su potencial para soportar nuevas aplicaciones hacia el usuario Las redes IP hacen desaparecer los lmites fsicos asociados a los telfonos y funcionalidades telefnicas tradicionales, fuera de esto al alcance y cubrimiento de los sistemas de radio y televisin. Dentro de poco ser posible acceder simultneamente a todos los servicios tradicionales y a la capacidad de responder llamadas desde cualquier lugar del mundo, fuera de eso acceder a servicios de entretenimiento como los son la radio y la televisin. En el mundo moderno el avance en las tecnologas informticas y de telecomunicaciones han llevado a desarrollos muy importantes e impresionantes, uno de esos es, el streaming de video y audio a travs de las redes de datos, con el fin de ofrecer un servicio adicional por este medio de comunicacin. Debido a ste motivo, en ste del documento se da una opcin para lograr implementarlo con algunas aplicaciones de software libre ya existentes:

1. ASTERISK Y LA TELEFONA IP
La Telefona IP, es una tecnologa emergente en el mundo de las Telecomunicaciones y bsicamente consiste en brindar los mismos servicios de la telefona tradicional, pero usando como base la pila de protocolos TCP/IP. Esto proporciona una gran ventaja, al darle mayor uso a la infraestructura ya establecida de datos en un rea local, pero tambin grandes retos cuando se quiera implementar este servicio en Internet, pues no se cuenta con la calidad garantizada. Actualmente existen diversas empresas que ofrecen soluciones propietarias de servicios de telefona IP, entre las cuales se encuentran Cisco con su Call Manager, Avaya con MultiVantage, Alcatel, Mitel, etc. Estas compaas normalmente trabajan con estndares y protocolos propietarios, lo que dificulta su interaccin con soluciones de otros fabricantes. En cuanto a soluciones usando protocolos abiertos, existen varias implementaciones, entre las cuales se destacan OpenPBX, PBX4Linux, YATE, FreeSwitch y Asterisk, siendo predominante esta ultima y por lo cual este documento se centra en ella. La convergencia de las redes de datos y las redes telefnicas ser un detonante decisivo para la evolucin de la industria de PBXs. La tendencia ms importante prevista ser la migracin desde una estructura predominantemente compuesta por sistemas propietarios a una industria ms abierta y con sistemas compatibles sobre el formato IP. Asterisk es una aplicacin de cdigo abierto, una centralita telefnica (PBX). Como cualquier PBX, se puede conectar un nmero determinado de telfonos para hacer llamadas entre s e incluso conectar a un proveedor de servicio o bien a una RDSI, Asterisk permite conectividad entre la red RTPC y las redes VoIP. Asterisk esta licenciado bajo la licencia GPL. Mark Spencer de Digium inicialmente cre Asterisk y actualmente es su principal desarrollador junto con otros programadores han contribuido a corregir errores, aadir novedades y funcionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux. Asterisk actualmente tambin funciona en BSD, MacOSX, Solaris y Microsoft Windows aunque la plataforma nativa (GNU/Linux) es la mejor soportada de todos. Asterisk esta soportado para la gran mayora de distribuciones de GNU/Linux RedHat, Fedora, Ubuntu, Debian, Mandriva, Slackware y Gentoo han sido usadas exitosamente por los desarrolladores. Asterisk incluye muchas caractersticas anteriormente solo disponibles en costosos sistemas propietarios PBX. Los usuarios pueden aprovechar las capacidades de Asterisk tan solo editando sus archivos de configuracin segn la estructura predeterminada de Asterisk.

Quiz lo ms interesante de Asterisk es que soporta muchos protocolos VoIP como pueden ser SIP, H.323, IAX, IAX2, MGCP. Asterisk puede interoperar con telfonos IP actuando como un registrador y como gateway entre ambos. Las compaas de telecomunicaciones de todo el mundo empiezan a utilizar Asterisk como sistema nativo de Telefona IP en lugar de otras marcas que ofrecen PBX propietarios como Alcatel, Cisco o Avaya. Asterisk no necesita ningn hardware adicional para Telefona IP. Para interconectarse con algn tipo de telefona digital o anloga Asterisk es compatible con una gran numero de hardware, los mas notables es el hardware fabricado por el esponsor de Asterisk, DIGIUM. DIGIUM, desarrolla interfaces T1 y E1 para la interconexin con lneas PRI y bancos de canales as como tambin tarjetas de puertos individuales FXO y un puerto modular FXS y una tarjeta FXO. Asterisk es compatible con una amplia gama de protocolos TMD para el manejo y transmisin de interfaces de telefona tradicional. Asterisk tambin es compatible con el tipo de sealizacin estndar americano y europeo en sistemas de telefona, permitiendo ser un nexo entre las redes integradas de datos de voz de siguiente generacin y la infraestructura existente. Asterisk no solo apoya a los equipos de telefona tradicionales sino que tambin los habilita con capacidades adicionales. Asterisk esta cuidadosamente desarrollado para mxima flexibilidad. APIs especficos son definidos en un sistema central PBX. Este centro avanzado maneja interconexin interna del PBX, abstrados limpiamente por protocolos especficos, codecs, e interfaces de hardware de aplicaciones de telefona. Esto le permite al Asterisk utilizar cualquier hardware conveniente y tecnologa disponible, ahora en el futuro para realizar sus funciones esenciales, conectando hardware y aplicaciones. La esencia del Asterisk, por supuesto es un sistema de conmutacin de intercambio privado (PBX o Centralita), conectando llamadas entre varios usuarios y tareas automatizadas. La base de conmutacin conecta a los usuarios llegando a varios software y hardware de interfaces. Asterisk ofrece funcionalidades bsicas PBX y caractersticas ms avanzadas as como tambin interopera con sistemas bsicos de telefona estndar y sistemas de Telefona. Asterisk ofrece tambin caractersticas como voicemail, conferencias, llamada en espera, fax, video conferencia, etc. Asterisk incluye muchas ms caractersticas, no solo las dadas anteriormente sino tambin sistemas de mensajera tales como: Msica para clientes en espera, como msica en mp3. Llamadas en espera, donde habrn agentes en comn atendiendo y monitorizando llamadas entrantes y en espera. Sistema de integracin del texto a la conversacin. Grabacin de datos de la llamada. Sistema de integracin de reconocimiento de voz.

La capacidad de interfaces con lneas de telfono normales, tarifas bsicas y primarias de interfaces ISDN. Integracin de Fax. Integracin con otros sistemas de Telefona IP de diferentes fabricantes. Salas de Conferencia con un nmero ilimitado de participantes. Notificacin por e-mail de voicemails recibidos. Transferencia de llamadas. Soporte para Video Conferencia.

En la historia de las telecomunicaciones nunca antes existi un sistema tan adaptado a las necesidades de los negocios, a cualquier precio. Asterisk es una tecnologa con disponibilidad, y como en el caso de GNU/Linux, en un futuro inmediato ser difcil encontrar un sistema de telefona que no use alguna versin de Asterisk funcionando de alguna manera en algn lugar de la red.

Figura 1.1

2. VENTAJAS DE ASTERISK
Reduccin de costos, Asterisk es Software Libre y adems es software es gratuito. Asterisk es una herramienta de rpido desarrollo y crecimiento, dado que miles de programadores en todo el mundo contribuyen al desarrollo continuo, permitiendo que Asterisk mejore todos los das. Como resultado, con Asterisk es posible construir un sistema de telefona de altas prestaciones a una fraccin del costo del de una plataforma tradicional. Asterisk puede operar perfectamente dentro de un entorno de telefona IP, as como con telfonos y lneas analgicas. Este modelo de telefona permitir cambios dramticos en el mercado de centrales telefnicas privadas (PBX). Los integradores de tecnologa podrn ofrecer soluciones que compitan con sistemas propietarios de grandes fabricantes de centrales. Este nuevo enfoque representar un problema a las empresas que inviertan en costosos sistemas telefnicos. Existen distintos tipos de usuarios de Asterisk, desde pequeas empresas con unos pocos internos hasta call centers. Como Asterisk es Software Libre las implementaciones son muy flexibles y muy sencillas de administrar. Asterisk puede funcionar junto con una PBX tradicional. Esto protege la inversin original y al mismo tiempo brinda todas las nuevas funciones de las centrales IP. Asterisk soporta protocolos estndar como MGCP, IAX, SIP, y H.323. El sistema no necesita hardware adicional para hacer comunicaciones por voz sobre IP. Una PC, o un servidor con redundancia, junto con un proveedor de telefona IP es todo lo que una empresa necesita para hacer y recibir llamadas. Permite que los usuarios se conecten en forma remota y tengan su nmero interno como si estuvieran dentro de la empresa en cualquier lugar que posea Internet de alta velocidad. El sistema puede dar servicio desde 10 usuarios en una sede de una pequea empresa, hasta 10.000 de una multinacional repartidos en mltiples sedes. Asterisk al ser Software Libre, permite la creacin de mdulos extra o la personalizacin de los mismos, que permiten darle nuevas funcionalidades y una mejor adecuacin a las necesidades de comunicacin que tengan. Asterisk est preparado para cubrir prcticamente todas las necesidades de Comunicaciones existentes y lo ms importante, es siempre actualizable para nuevos servicios que se vayan aadiendo. La Videoconferencia, el envo de SMS mediante la lnea Fija. Servicios Automticos de respuesta interactiva y dems aplicaciones pueden cubrir prcticamente todas las necesidades existentes en el sector de la Comunicaciones. Integracin GSM de telefona Celular.

3. INSTALACIN DE ASTERISK
3.1 Consideraciones y pasos de Instalacin
Antes de iniciar la instalacin de Asterisk como servicio de Telefona IP, se debe primero tener muy en cuenta el tipo de servicio que se va a prestar y a cuantos clientes se les pretende prestar el servicio, dado que Asterisk consume bastantes recursos de maquina, en especial los del procesador, dado que usa este para hacer el procesamiento de los canales de Voz. A continuacin se presenta una tabla con los requisitos mnimos que se deben tener en hardware para un nmero determinado de clientes.
Proposito Hobby/Pruebas/Desarrollo Red SOHO Empresa Pequea Empresa Mediana o Grande Numero de Clientes No mas de 5 De 5 a 10 Hasta 15 Mas de 15 Hardware Minino Procesador 400Mhz, 256MB de Ram Procesador 1Ghz, 512MB de Ram Procesador 3Ghz, 1GB de Ram Mas de un procesador, recomendable Cluster de Servidores

Asterisk fue originalmente desarrollado para correr en sistemas GNU/Linux, ahora puede ser usado en BSD y OS X, es muy recomendado usar GNU/Linux ya que las placas RTPC de Digium fueron diseadas para trabajar con Linux i386, trabajando en este se garantiza mxima compatibilidad y mximo rendimiento. Asterisk ha sido probado en varias distribuciones y tericamente funcionara en cualquiera de estas, se recomienda usar alguna de las mostradas a continuacin. RedHat Fedora Mandriva Gentoo Debian Ubuntu Slackware

Para la instalacin de una centralita telefnica o un PBX con Asterisk se tienen dos opciones, la primera opcin consiste en descargar los cdigos fuentes de la pgina oficial de Asterisk http://www.asterisk.org o utilizar el mtodo de paquetes precompilados disponibles en la distribucin de GNU/Linux sobre la cual estamos trabajando.

Para este caso particular se esta trabajando en Debian GNU/Linux, se analizara el mtodo de los paquetes precompilados con APT, si se esta trabajando con otra distribucin mas adelante se explica cuales son los pasos que se deben seguir para instalar Asterisk desde sus fuentes. En primer lugar se debe iniciar como administrador del sistema: server:~$ su Se busca si los paquetes de asterisk estn disponibles en nuestra distribucin: server:~$ apt-cache search asterisk Se procede a instalar los paquetes necesarios para que nuestro servidor de Telefona IP: server:~$ apt-get install asterisk Al ejecutar este comando se descargan todos los componentes de Asterisk como adems de las dependencias de cada paquete, con este comando ya tendremos la Centralita o PBX instalada en el sistema. Si se desea un mayor rendimiento y un conjunto mayor de funcionalidades se puede proceder a compilar la aplicacin y sus complementos. Para obtener las fuentes de Asterisk y los drivers necesarios para el manejo de hardware de DIGIUM, como se menciono anteriormente se pueden obtener los fuentes dirigindonos al portal Web de Asterisk http://www.asterisk.org o descargar los archivos usando el comando wget. Primero se inicia como administrador y se procede a dirigirse al directorio /usr/src. #cd /usr/src #wget http://ftp.digium.com/pub/zaptel-1.4.*.tar.gz #wget http://ftp. digium.com/pub/libpri-1.4.*.tar.gz #wget http://ftp. digium.com/pub/ asterisk /asterisk-addons-1.4.*.tar.gz #wget http://ftp. digium.com/pub/ asterisk /asterisk -1.4.*.tar.gz Nota: En Sistemas Operativos basados en Unix, el carcter asterisco (*), se usa como comodn, por lo cual no se tiene la necesidad de conocer el nombre exacto de la versin de los paquetes de Asterisk a descargar, esta comodn se reemplazara por el nombre completo del paquete que encuentre disponible para descarga. Ahora se procede a descomprimir cada uno de los archivos descargados: #tar xzvf asterisk-1.4.*.tar.gz #tar xzvf asterisk-addons-1.4.*.tar.gz #tar xzvf libpri-1.4.*.tar.gz #tar xzvf zaptel-1.4.*.tar.gz Se inicia la instalacin de Asterisk por el paquete Zaptel, Zaptel es un modulo que se puede cargar al kernel de Linux este provee soporte para hardware y drivers de tarjetas (Para conexiones Analgicas o Digitales), este brinda una capa de abstraccin entre el los drivers del hardware y el modulo Zapata en

Asterisk, es este concepto el que permite a los drivers del hardware usado para proveer algn servicio con Asterisk sean modificados sin tener que efectuar cambios en el cdigo fuente de Asterisk, lo que hace a Asterisk independiente del fabricante. #cd zaptel-1.4.* #./configure #make #make install A continuacin se procede con la instalacin de Libpri, Libpri es un modulo opcional pero bastante til dado que provee soporte para conexiones digitales que usen TDM Mltiplexacin por Divisin en el Tiempo. #cd ../ libpri-1.4.* #./configure #make #make install Los paquetes Zaptel y Libpri solo son necesarios de instalar cuando se pretende proveer servicios con hardware (Telfonos IP, Telfonos Analgicos, Conversores ATA) y conexiones a lneas Analgicas o conexiones digitales (Ejemplo Conexiones RDSI). Por ultimo se procede con la instalacin de Asterisk y sus Addons (Paquetes y libreras que complementan las funcionalidades de Asterisk, no es necesario instalarlo pero es recomendable), estos paquetes son fundamentales y deben instalarse para el funcionamiento de Asterisk. #cd ../ asterisk-1.4.* #./configure #make #make install #cd ../ asterisk-addons-1.4.* #./configure #make #make install Luego de haber completado la instalacin de Asterisk, se debe hacer que cada vez que la maquina se reinicie el servidor Asterisk se cargue y inicie su servicio, para lograr esto se debe programar un pequeo script (En este caso bash, pero podra hacerse en otro lenguaje de scripts dependiendo del shell que se este usando), luego de tener el script, este se debe guardar en /etc/rc.d/asterisk y se le deben asignar los permisos de ejecucin correspondientes. El script de arranque, parada y reinicio debe quedar de la siguiente forma: #!/bin/sh

# # Start/stop/restart Asterisk PBX # Asterisk_start() { if [ -x /usr/sbin/Asterisk ]; then echo "Starting Asterisk /usr/sbin/Asterisk" /usr/sbin/Asterisk fi } Asterisk_stop() { # If there is no PID file, ignore this request... if [ -r /var/run/Asterisk.pid ]; then killall Asterisk fi } Asterisk_restart() { Asterisk_stop Asterisk_start } case "$1" in 'start') Asterisk_start ;; 'stop') Asterisk_stop ;; 'restart') Asterisk_restart ;; *) echo "usage $0 start|stop|restart" ;; esac Las lneas que inician con el smbolo numero (#) son comentarios son lneas que no inciden en la ejecucin del script. Los permisos de ejecucin del script se asignan de la siguiente forma: # chmod 755 /etc/inid.d/asterisk Permisos con los cuales se le permite a todos los usuarios leer el contenido del script, ejecutarlo pero solo tiene se le asignan permisos de modificarlo al administrador del sistema. Adems se debe agregar las siguientes lneas al archivo /etc/rc.d/rc.local: . /etc/rc.d/asterisk start Con el propsito de que Asterisk arranque siempre que se inicie la maquina. Para ejecutar el script se debe usar de la siguiente forma:

#/etc/inid.d/asterisk parmetro Donde parmetro puede ser start stop, o restart.

3.2 Directorios y Archivos usados por Asterisk


Asterisk usa algunos del los directorios del sistema GNU/Linux para su debido funcionamiento. A continuacin veremos la estructura de archivos del Asterisk y que informacin indispensable contienen estos.

3.3.1 /etc/asterisk
En este directorio se encuentran todos los archivos necesarios para configurar cada uno de los servicios que provee una central telefnica IP con Asterisk. A continuacin se presentan los archivos principales para la configuracin de servicios que presta Asterisk asterisk.conf: En este archivo se encuentra las configuraciones generales de la ubicacin de directorios de configuracin, mdulos compilados, etc. En general este archivo no se manipula salvo en casos muy especficos. codecs.conf: A menos que se desee configurar el codec Speex, y deshabilitar por completo el resto de codecs, este archivo de configuracin se usa, de lo contrario se debe dejar intacto. extensions.conf: Se puede considerar como el archivo de configuracin de Asterisk mas importante de todos, en este archivo se define cada una de las extensiones de los usuarios del servicio y de los servicios que se prestan, adems gracias a este archivo se tomas las decisiones de enrutamiento de llamadas. features.conf: Este archivo tambin es de gran importancia, ya que permite habilitar y configurar servicios genricos dentro del PBX como transferencia asistida y monitoreo de llamadas. iax.conf: Importante archivo para el funcionamiento del canal IAX que le permite a Asterisk interactuar con otros dispositivos IAX, incluyendo otros PBX con Asterisk. sip.conf: Anlogo al iax.conf pero para el uso del protocolo SIP. h323.conf: Anlogo al iax.conf pero para el uso del protocolo H.323. indications.conf: Configuracin para los grupos de frecuencias a utilizar para la indicacin del proceso de llamadas. Los por defecto suelen ser suficientes. manager.conf: Configuracin importante del servicio AMI (Asterisk Manager Interface) que permite conectarnos a un socket TCP y administrar el PBX. modules.conf: En este archivo se determina que mdulos sern cargados por Asterisk al iniciar el servicio.

zapata.conf: Configuracin de los canales ZAP. Las configuraciones en este archivo deben coincidir con el hardware instalado y la configuracin del driver Zaptel. meetme.conf: Archivo en el cual se crean y configuran las salas de conferencia. voicemail.conf: En este archivo se configura en sistema de mensajes de voz.

3.3.2 /usr/lib/asterisk/modules
En este directorio se encuentran todos los mdulos cargados por Asterisk, por defecto Asterisk carga todos los mdulos de este directorio, los mdulos se habilitan y se deshabilitan editando el archivo modules.conf ubicado en el directorio /etc/asterisk, para que sean o no cargados en el arranque del servicio.

3.3.3 /var/lib/asterisk/
En este directorio encontramos el archivo astdb y otros subdirectorios, el archivo astdb es la base de datos del sistema Asterisk. La base de datos de Asterisk es una simple implementacin basada en la base de datos v1 de la Universidad de Berkeley. Entre los subdirectorios podemos encontrar: agi-bin/: Contiene los script para las aplicaciones AGI (Asterisk Gateway Interface). firmware/: Contiene los firmwares de los dispositivos compatibles con Asterisk. images/: Contiene las aplicaciones para la conexin con canales que soportan imgenes, comnmente los canales de Asterisk no soportan aplicaciones graficas por lo cual este directorio es rara vez usado. keys/: Contiene las llaves publicas y privadas que asterisk puede utilizar para la autentificacin de usuarios, va RSA mohmp3/: Contiene los mp3 para la configuracin de la msica de espera para las llamadas. sounds/: Contiene los archivos de audio usados por las aplicaciones de Asterisk. Los sonidos por defecto estn en ingles y francs, pero se pueden descargar de http://www.asterisk.org los sonidos en espaol (Voces Espaolas) o de http://www.asteriskcolombia.org/ si se desean unos sonidos completamente neutros. Para instalarlos simplemente debemos descomprimir los sonidos y moverlos a la carpeta de sonidos de Asterisk. # tar xzvf asterisk-sonidos-esCO-ac_0.1.tar.gz # cd asterisk-sonidos-esCO-ac_0.1 # mv * /var/lib/asterisk/ sounds/

Como se menciono anteriormente en los sistemas basados en Unix el carcter asterisk (*) reemplaza a cualquier carcter o conjunto de caracteres, entonces en este caso mover todo lo que encuentre en la carpeta asterisk-sonidos-esCo-ac_0.1 a /var/lib/asterisk/sounds.

3.3.4 /var/spool/asterisk/
Contiene subdirectorios como: outgoing/, qcall/, tmp/, and voicemail/, Asterisk supervisa los directorios outgoing/, qcall/ con los archivos de textos que contienen las llamadas, con el fin de generar una llamada tan solo moviendo o copiando el archivo estructurado a outgoing/. En el directorio tmp/ guarda informacin temporal, para que dos llamadas no puedan escribir y leer al mismo tiempo. En el directorio voicemail/ se guardan todos los voicemail y los saludos de los usuarios.

3.3.5 /var/run/
En este directorio se guardan toda la informacin de los procesos (PID) del sistema, incluidos los de Asterisk

3.3.6 /var/log/asterisk/
Contiene los logs del sistema estos pueden ser configurados segn las necesidades en el archivo logger.conf. Cuando hay fallos o problemas del servicio, se ingresar a la informacin de este directorio ya que en este se encuentra los archivos de registro de las operaciones de Asterisk.

3.3 Iniciando y Deteniendo Asterisk


Con esta configuracin mnima ya es posible arrancar Asterisk con xito. Dos formas de arrancarlo serian: # /usr/sbin/asterisk # /usr/sbin/asterisk vvvgc Se inicia Asterisk y se conecta a la consola de Asterisk. Tambin se podra correr simplemente ejecutando # asterisk Como se mostr anteriormente cuando se ejecuto # /usr/sbin/asterisk vvvgc, se pueden pasar opciones a Asterisk para iniciar un determinado comportamiento, entre las ms usadas son:

-c : Habilita el modo consola. -v : Habilita la salida para manejo de fallos. -g : Fuerza a botar al ncleo si ocurre una violacin de segmento. -r : Reconecta remotamente a un proceso corriendo de Asterisk -x : Ejecuta comandos en Asterisk. -h : Muestra la ayuda de comandos. -d : Activa los mdulos extra de eliminacin de fallos.

Si Asterisk es corrido sin argumentos como se mostr anteriormente, Asterisk es lanzado como un Daemon (En espera de conexiones en un puerto TCP o UDP). # asterisk Se puede acceder a una consola del proceso de Asterisk que ya esta en ejecucin usando la opcin r. Con esta opcin se permite conectarse a ms de una consola de Asterisk simultneamente. # asterisk r En el resto del documento se presenta el arranque y conexin a Asterisk usando la combinacin de los dos comando anteriores. # asterisk # asterisk r Una vez ejecutados los comandos anteriormente vistos la Terminal nos ubicara en la consola de Asterisk o como normalmente se conoce CLI (Asterisk Command Line). Una vez dentro de la CLI de Asterisk se podrn ejecutar comandos para monitoreo y depuracin de interfaces, canales y en general la configuracin del servicio. Normalmente se tendr lo siguiente al entrar en la CLI.

Figura 3.1 Como notas finales con respecto a la instalacin, se debe prestar mucha atencin al entorno de produccin en el cual se usara un servicio de telefona IP con Asterisk, es decir, el servidor debe ser optimizado de forma que las funciones de telefona tengan prioridad sobre otros procesos del sistema. En la mayora de los casos la maquina con la que se presta el servicio de telefona IP con Asterisk no debe correr otros procesos, principalmente si son intensivos en la CPU, estos servicios deben ser instalados en un servidor por separado.

Adems de esto, Asterisk es muy sensible a las variaciones de la configuracin de la maquina. Esto significa que en un sistema en produccin lo ideal es no usar un entorno de escritorio como por ejemplo XFCE o GNOME.

4. CONFIGURACIN DE UNA CENTRAL TELEFNICA CON ASTERISK


Asterisk es controlado a travs de archivos de configuracin localizados en el directorio /etc/asterisk. Lo cuales manejan una sintaxis muy sencilla, muy semejantes a los archivos (.ini) de Windows. El punto y coma (;) se usa para hacer comentarios en los archivos de configuracin estos son ignorados por la aplicacin a leer el contenido de estos, se usa el signo igual (=) o la combinacin del signo igual y el mayor que (=>) para asignar variables. Las lneas en blanco, espacios y tabuladores son ignorados por el sistema. A continuacin se presenta la configuracin del sistema y de cada uno de los clientes a atender, con el fin de configurar un centralita telefnica IP, con esto quedara claro la gramtica de los archivos y el proceso de configuracin del servicio.

4.1 Configuracin de Clientes SIP


A continuacin se presenta de forma general como se debe configurar un cliente SIP en el proceso de configuracin de una centralita telefnica IP con Asterisk. SIP es el acrnimo de Session Initiation Protocol, SIP es un protocolo de sealizacin de capa de aplicacin que define la iniciacin, modificacin y la terminacin de sesiones interactivas de comunicacin multimedia entre usuarios, SIP es un protocolo de sealizacin para establecer las llamadas y conferencias en redes IP. Usado a menudo en telfonos de VoIP (Ya sea en HardPhones o en SoftPhones), SIP no lleva contenido media o multimedia, ms bien para eso SIP se apoya en el Protocolo de Transporte en Tiempo Real (RTP) para transferir el contenido media entre un usuario y otro una vez haya sido establecida la llamada. SIP es configurado desde el archivo /etc/asterisk/sip.conf y contiene parmetros relacionados con la configuracin de los clientes y operadores SIP. Los clientes SIP deben estar configurados antes de recibir o realizar una llamada. El archivo sip.conf, debe ser ledo de arriba hacia abajo, en la parte superior esta la seccin para la configuracin de las opciones generales del servidor, como direccin IP y puerto de escucha, las entradas que siguen en el archivo de configuracin son las secciones para los clientes, tales como nombre de usuario, contrasea y la IP por defecto para los usuarios no registrados. Las secciones estn denotadas por corchetes ([]). La primera seccin es [general], la cual contiene las opciones globales para la configuracin de los clientes. Tales como: allow: Permite que un determinado codec sea usado. bindaddr: Direccin IP donde Asterisk espera por las conexiones SIP.

context: Configura el contexto general donde todos los clientes son colocados, a menos que sea sobrescrito en la definicin de entidad. disallow: Prohbe el uso de un determinado codec. bindport: Puerto que Asterisk debe esperar por conexiones de entrada SIP, en general el puerto 5060. maxexpirey: Tiempo mximo para registro en segundos. register: Registra Asterisk con otro host.

Ejemplo: [general] Bindport = 5060 bindport = 172.16.1.32 context = default disallow = all maxepirey = 120 defaultepirey = 80 Despus de la seccin [general] siguen las definiciones de las entidades o clientes SIP, las entidades aqu establecidas pueden pertenecer al contexto por defecto, para fines prcticos se crea a continuacin un nuevo contexto, el contexto Unal el cual ser definido cuando se procesada a configurar las extensiones de cada uno de los clientes. Para crear un cliente SIP se siguen lo parmetros y opciones: [nombre]: Nombre del Cliente. type: Tipo de cliente y conexin ya sea peer, user o friend, peer hace referencia a un tipo de cliente que solo recibe llamadas en el PBX, user hace referencia a un cliente que solo puede hacer llamadas a travs del PBX y por ultimo friend que hace referencia al cliente que puede hacer y recibir llamadas a travs del PBX. host: Configura la direccin IP o el nombre de host del cliente, si al cliente su direccin IP se asigna va DHCP se usa como parmetro la opcin dinamyc, donde se espera que el cliente se registre para entablar comunicacin con este. secret: Contrasea usada para autentificar a cada uno de los clientes. canreinvite: Este parmetro es utilizado para decirle al servidor que no intente re-invitar al cliente. context: Cuando se define este parmetro dentro de la definicin del cliente, se define el contexto para ese cliente en particular. language: Especifica un cdigo de lenguaje definido en indications.conf . nat: Define si el servidor est detrs de NAT o no. videosupport: Activa o desactiva el soporte de video en dispositivos SIP. mailbox: Extensin de correo de voz para indicacin de nuevos mensajes. qualify: Verificar si el cliente es alcanzable. port: Puerto SIP del cliente.

A continuacin se presenta como ejemplo uno de los clientes SIP configurados en nuestra central telefnica. [estudiante1] ; Nombre del Cliente type=friend ; Tipo de Cliente secret=803000 ; Contrasea de Autenticacin de Cliente qualify=yes ; El cliente es alcanzable nat=yes ; Esta el servidor detrs de NAT host=dynamic ; La direccin IP del Cliente es dinmica, por lo cual se debe registrar canreinvite=no ; No re-invita al cliente context=unal ; El cliente Pertenece al contexto Unal

4.2 Configuracin de Clientes IAX


Cuando se habla de Protocolo IAX y clientes IAX, se refiere propiamente a IAX2 ya que este sustituyo al versin original de IAX, aadindole nuevas capacidades y corrigiendo sus fallos y defectos, como aclaracin en el transcurso del texto, siempre que se haga referencia al protocolo IAX se va a estar hablando de la versin IAX2. Inter-Asterisk eXchange Protocol IAX proporciona control y transmisin de voz sobre redes IP. IAX puede ser usado con cualquier tipo de propsito ya sea transmisin de voz o video, pero fue pensado principalmente para llamadas de voz. Los objetivos del proyecto IAX se derivan de la experiencia con los protocolos de Voz Sobre IP como el SIP (Session Initiated Protocol) y el MGCP (Media Gateway Control Protocol) para control y el RTP para el flujo multimedia (Streaming Multimedia), IAX no es un protocolo estndar, pero va en camino a serlo dado su gran uso y sus grandes cualidades las cuales lo hacen flexible y verstil frente a otros protocolos. IAX nace como fruto del esfuerzo de la comunidad de Software Libre mundial y de la comunidad de usuarios y desarrolladores de Asterisk por tener un gran servidor, el cual usara protocolos robustos, verstiles y flexibles para prestar un gran servicio (Ver Anexo). La configuracin de clientes IAX nos es muy diferente a la configuracin de un cliente SIP, en realidad la nica diferencia relevante he importante es el archivo de configuracin que se debe usar, para configurar clientes SIP se usaba el archivo /etc/asterisk/sip.conf, pero para configurar los clientes IAX se debe usar el archivo /etc/asterisk/iax.conf [estudiante2] type=friend secret=803000 username= estudiante2 login. host=dynamic DHCP ; Nombre del Cliente ; Tipo de Cliente ; Contrasea de Autenticacin de Cliente ; Se puede especificar el nombre de usuario para el ; Se especifica la IP del cliente o se indica que usa

context=unal qualify=yes

; El cliente Pertenece al contexto Unal ; El cliente es alcanzable

Como se mostr en este ejemplo la configuracin de un cliente IAX es idntica a la de un cliente SIP, se puede jugar haciendo unos determinados cambios a estos segn el tipo de aplicacin que se requiera, las sentencias mostradas anteriormente para agregarle funcionalidades y mejor operacin a un cliente SIP, estn igualmente disponibles para los clientes IAX. Mas adelante se mostrara una configuracin ms avanzada para cada uno de los clientes con el fin de prestar una mayor cantidad de servicios, tales como buzn de mensajes de voz, salas de conferencia, operadora, y servicios de video conferencia.

4.3 Configuracin del DialPlan


Una vez se tenga configurado ya sea los clientes que usan el protocolo SIP o los clientes que usan el protocolo IAX o ambos, procederemos a crear el DialPlan o Plan de Discado correspondiente, el DialPlan es bsicamente una lista de instrucciones que el PBX debe realizar cada vez que se marca un nmero o entra una llamada por un canal, indicando cada una de las acciones a seguir cuando uno de estos dos eventos ocurre. A diferencia de otros sistemas telefnicos tradicionales, el DialPlan en Asterisk es totalmente configurable. La mayor parte del DialPlan o plan de discado se encuentra en el archivo /etc/asterisk/extencions.conf, en el cual se hace la mayor gestin de los servicios prestados. Un DiaPlan bsicamente esta dividido en cuatro secciones estas son: Contexto, Extensiones, Prioridades y Aplicaciones.

4.3.1 Contexto
Se define como Contexto a un grupo o coleccin de extensiones o nmeros telefnicos, estos son de suma importancia dado que ofrece organizacin y seguridad a la hora de crear el plan de discado, estos definen y separan diferentes partes del plan de discado, por esto estn altamente relacionados con la configuracin de cada uno de los canales a usar (SIP, IAX, H323, etc), dado que cada canal existe dentro de un contexto, cuando se realiza una llamada a la central con Asterisk por un canal determinado es el contexto el que se encarga de procesarla. Aparte de esto los contextos son usados para crear mens de voz, con el fin de proveerle una atencin ms agradable al cliente, sin dejar de ser completamente automatizada. Los contextos se definen indicando su nombre entre corchetes ([]) y todas las sentencias y definiciones usadas despus de este pertenecen al contexto, generalmente extensiones.

4.3.2 Extensiones
Las extensiones corresponden a cada una de las instrucciones que un PBX o una Centralita con Asterisk debe seguir cuando se marca un nmero o recibe una llamada en un canal particular. La palabra reservada para definir una extensin es exten seguido del smbolo igual (=) y del smbolo mayor que (>), quedando as de la siguiente forma: exten => Este va seguido del nombre de la extensin, normalmente este es el nmero de la lnea del abonado, pero en Asterisk no solo se limita a usar nmeros como en la telefona convencional sino que tambin podemos usar caracteres alfanumricos al crear el plan de discado. Todas las extensiones estn compuestas por tres elementos. 1. Nombre: Sea el nombre de la extensin o el numero de esta. 2. Prioridad: Cada extensin puede tener mltiples pasos de prioridad con los que definir que tipo de acciones debe seguir y en que orden al presentarse un evento determinado, como lo es una llamada. 3. Aplicacin: Este es el comando a aplicacin a llamar o que se desee ejecutar segn sea el caso. La estructura completa de una extensin ser la siguiente: exten => nombre, prioridad, aplicacin() Un ejemplo de esta seria: exten => 911, 1, Answer() En este ejemplo se puede ver que el nombre de la extensin es un nmero como en la telefona convencional, la prioridad para ejecutar este pas es de 1 y el comando o aplicacin que se va a ejecutar con este orden de prioridad es responder la llamada.

4.3.3 Prioridades
Cada extensin puede ejecutar mltiples pasos, cada uno de estos se conocen como prioridades, cada una de estas prioridades ejecuta una accin especifica. Cada prioridad tiene una numeracin secuencial, iniciando por el 1 que es el mayor grado de prioridad disponible (Esta prioridad se ejecutara en primera instancia). Un ejemplo de prioridades seria: exten => 911, 1, Answer() exten => 911, 2, Hangup() En este ejemplo se puede ver claramente las prioridades, la prioridad 1 ejecuta el comando responder la llamada y la prioridad 2 ejecuta el comando para cortar la llamada.

4.3.4 Aplicaciones
Las Aplicaciones son los pilares muy importantes de Asterisk y de su plan de discado o DialPlan, dado que estas indican como tratar el canal de voz, la accin especfica a realizar en un canal en el momento que se genera un llamada, como tratar y manipular los sonidos, etc. Las aplicaciones determinan el funcionamiento y el comportamiento de la central Telefnica IP. Como en cualquier lenguaje de programacin o de scripts estas aplicaciones en Asterisk pueden o no recibir parmetros o argumentos. Entre las aplicaciones mas usadas tenemos: Answer(): Contestar cuando se escuche el tono y se acepte la llamada entrante por el canal, esta aplicacin no recibe ningn argumento. Hangup(): Esta aplicacin se usa para cortar una llamada en un canal activo, al igual que Answer no recibe ningn tipo de argumento. PlayBack(): Esta aplicacin se usa para emitir algn archivo de audio previamente guardado en el servidor, por ejemplo las voces de la operadora, como antes se menciono los sonidos que usa Asterisk deben estar guardados en /var/lib/asterisk/ sounds/. PlayBack si necesita recibir un argumento para su correcto funcionamiento, el argumento que se le debe pasar es el nombre del archivo de audio sin la extensin correspondiente, si el archivo de audio no esta en la carpeta por defecto de los sonidos de Asterisk se debe especificar la ruta absoluta de este como parte del argumento de la aplicacin PlayBack. Ejemplo: exten => 911,2,Playback(saludo) Background(): Esta aplicacin es muy similar al PlayBack dado que tambin se encarga de reproducir un archivo de audio, pero a diferencia de PlayBack, Background en el momento que el cliente presione una tecla o un digito la reproduccin del archivo de audio ser interrumpida, si se marca un numero de extensin se realizara la peticin de llamada. Background se usa igual que PlayBack. Ejemplo: exten => 123,2,background(saludo)
Goto(): Esta aplicacin se usa para redirigir una llamada entrante a una extensin hacia otra. Su estructura de uso es la siguiente: exten => 123,2,Goto(contexto, extension, prioridad ) Los parmetros que recibe Goto() son primero el contexto, este no la extensin pertenece al contexto actual con el que estamos segundo parmetro es la extensin, es el numero de extensin al redirigir la llamada entrante, y por ultimo la prioridad, esta hace prioridad en particular a la que se redirige la llamada. es necesario si trabajando. El cual queremos referencia a la

Ejemplo: exten => 123,2,Goto(unal, 911, 1 )


Dial():Una de las funciones bsicas de cualquier Centralita o PBX es el de conectar llamadas telefnicas de una extensin (telefnica) a otra. En Asterisk, esto es posible usando la aplicacin Dial(). Esta aplicacin es usada crear llamadas telefnicas a una Centralita Asterisk o desde una Centralita Asterisk. El objetivo de esta aplicacin es ser el puente de comunicacin para las llamadas entrantes que usen tecnologas distintas (Analgica o Digital) o protocolos distintos de VoIP(SIP, IAX2, H.323). La sintaxis de uso de la aplicacin es la siguiente: Dial(tecnologia/identificador_extension,time_espera,opciones)

Ejemplo: exten => 123,1,Dial(SIP/estudiante1,15) exten => 124,1,Dial(IAX2/estudiante2,15)


El uso es similar a las aplicaciones anteriormente mencionadas, el primer campo corresponde a la tecnologa o protocolo usado, el segundo campo corresponde al identificador o nombre de la extensin, el campo siguiente corresponde a el tiempo de espera para que se conteste o no el telfono. La aplicacin Dial() comnmente es usada para definir nmeros de extensin a telfonos fsicos o hardphones, pero puede ser usada para cualquier aplicacin con softphones. Si en algn momento se desea ver cada una de las aplicaciones instaladas disponibles para Asterisk lo nico que se necesita es entrar a la interfaz de comandos de Asterisk y escribir:

CLI> core show applications


Generalizando y integrando cada uno de los conceptos mencionados anteriormente sobre el DialPlan o Plan de Discado y el como se deben crear cada una de las extensiones de la centralita Telefnica IP, se muestra a continuacin un ejemplo de cmo crear las extensiones para los usuarios SIP y IAX2 anteriormente creados. Ejemplo: ; Usuario SIP exten => 100,1,Dial(SIP/sm10,15,t) exten => 100,2,Answer() exten => 100,3,Playback(es/vm-nobodyavail) informa al usuario mediante una grabacin. exten => 100,5,Goto(911,1) llamada a la operadora exten => 100,6,Hungup()

; Se responde la llamada ; Si no hay nadie disponible, se le ; Si no hay nadie se reenva la ; Se cuelga la llamada

; Usuario IAX2 exten => 101,1,Dial(IAX2/sm11,15,t) exten => 101,2,Answer() ; Se responde la llamada exten => 101,3,Playback(es/vm-nobodyavail) ; Si no hay nadie disponible, se le informa al usuario mediante una grabacin. exten => 101,5,Goto(911,1) ; Si no hay nadie se reenva la llamada a la operadora exten => 101,6,Hungup() ; Se cuelga la llamada Despus de tener estas dos extensiones creadas y configuradas se puede proceder a iniciar el servicio y a que cada uno de los clientes haga uso de este, para la implementacin presentada se usaron cliente Softphones dado que no se contaba con presupuesto para trabajar con hardware (Hardphones, Conversores ATA y Tarjetas Analgicas).

4.4 Configuracin de Servicios


4.4.1 Correo de Voz
El recurso de buzn de voz o correo de voz permite que una llamada ocupada o no atendida sea enviada a un contestador automtico. Un mensaje de aviso con audio anexado es enviado para el receptor del mensaje. Es uno de los recursos estndar de Asterisk. Es interesante que sistemas en una arquitectura de conmutacin de circuitos fueran antes mucho ms costosos y ahora con telefona IP se tornan estndar y un valor agregado sin costo alguno. Para configurar el buzn de voz se debe seguir los siguientes pasos: 1. Configurar el archivo voicemail.conf para crear los usuarios y contraseas del correo de voz. 2. Configurar el archivo extensions.conf para que una llamada ocupada o no atendida sea direccionada para la aplicacin VoiceMail(). 3. Configurar las respectivas extensiones para que los usuarios puedan or su buzn de voz y administrarlo. Siguiendo el esquema anterior, procedemos a editar el archivo voicemail.conf ubicado en el directorio /etc/asterisk. Procedemos a buscar el contexto [general], y seleccionamos el formato de audio en el que se desea guardar los mensajes de voz.

[general] ; Default formats for writing Voicemail ;format=g723sf|wav49|wav|gsm format=wav Recordando un poco todo lo que este con punto y coma (;) son comentarios, en este caso se nos muestra los formatos de audio disponibles para guardar los mensajes de voz, se pueden seleccionar varios al tiempo, segn las necesidades del usuario y los requisitos de administracin, pero no es recomendable dado que si desea prestar un servicio a gran escala ser necesario una gran capacidad de almacenamiento ya que todos los mensajes se almacenan en el servidor. Para esta aplicacin se selecciono wav como el formato de audio de los mensajes dado que es un formato rico y de alta calidad, aunque es el que mas espacio en almacenamiento consume. A continuacin se procede a crear los buzones de voz por cada uno de los usuarios de la centralita telefnica IP. La sintaxis para crear los buzones de voz es la siguiente: Extensin => Contrasea, Usuario Buzon, root@localhost, correo externo Ejemplo: 100 => 1234, estudiante1, root@localhost, jpadillaa@unal.edu.co 101 => 1234, estudiante2, root@localhost, javargasa@unal.edu.co Bueno el ejemplo indica que a los clientes estudiante1 y estudiante2, con extensiones 100 y 101 respectivamente, tienen como contrasea de su buzn de voz la secuencia de nmeros 1234 y que van a guardar sus mensajes de voz en el servidor local de la centralita con Asterisk y aparte de eso se mandara una copia del mensaje de voz al correo electrnico de cada usuario. Ahora se procede a indicar a cada uno de los clientes ya sean SIP o IAX2, cual es el buzn de voz que les corresponde, para la cual es necesario editar los archivos sip.conf y iax.conf. Para indicar que buzn de voz va a usar el cliente es necesario usar el parmetro mailbox de la siguiente forma: [estudiante1] type=friend secret=803000 qualify=yes nat=yes host=dynamic canreinvite=no context=unal mailbox=100@default

[estudiante2] type=friend secret=803000 qualify=yes nat=yes host=dynamic canreinvite=no context=unal mailbox=101@default El parmetro mailbox recibe el numero de extensin del usuario @ la configuracin del buzn, en este caso es la configuracin por defecto por lo cual recibe @default. A continuacin se configura el archivo extensions.conf para que en el momento de que se realice una llamada y esta no sea atendida se proceda a usar la aplicacin VoiceMail() para guardar un mensaje en el buzn de voz. Se necesita simplemente agregar un prioridad mas a cada una de las extensiones con el fin de que sino hay respuesta en ningn momento de la llamada se procede a guardar en mensaje de voz. La sintaxis de esta es la siguiente: exten => Numero de Extension, Prioridad,Voicemail(uExtension@default) Como toda prioridad se debe indicar el numero de extensin y la prioridad con la que se debe ejecutar, cabe aclarar que la prioridad del buzn de voz debe ser menor que la prioridad de responder una llamada, con el fin de que primero se verifique si hay respuesta y de no ser as se proceda a dejar un mensaje en el buzn de voz, usando la aplicacin Voicemail() la cual recibe como parmetros la extensin anteponiendo el carcter u y @default, para la configuracin por defecto del buzn de voz. Ejemplo: exten => 100,1,Dial(SIP/estudiante1,15,t) exten => 100,2,Answer() exten => 100,3,Playback(es/vm-nobodyavail) exten => 100,4,Voicemail(u100@default) exten => 100,5,Goto(911,1) exten => 100,6,Hungup() exten => 111,1,Dial(IAX2/estudiante2,15,t) exten => 111,2,Answer() exten => 111,3,Playback(es/vm-nobodyavail) exten => 111,4,Voicemail(u101@default) exten => 111,5,Goto(911,1) exten => 111,6,Hungup()

En este ejemplo se ve claramente el uso de la aplicacin Voicemail(), como a esta se le indica a que buzn de voz se le debe guardar el mensaje dado que la llamada no se contexto y adems de esto que la prioridad de esta aplicacin es mas baja que la prioridad de responder la llamada. Por ultimo y para que el servicio quede totalmente funcional se procede a crear una extensin adicional donde cada uno de los usuarios acceder para recuperar sus mensajes de voz. Para esto creamos una extensin simple que use la aplicacin VoicemailMain la cual se encarga de gestionar la administracin del buzn de voz. Ejemplo: ; BUZON DE VOZ exten => *123,1,VoicemailMain Cabe resaltar que la aplicacin VoicemailMain no recibe ningn tipo de parmetros y que los nmeros de extensin como se menciono anteriormente no pueden usar caracteres diferentes a los numricos. La aplicacin VoicemailMain va a llevarlo a un men de opciones donde podr ejecutar una serie de opciones, las cuales son: 0 Opciones de casilla postal o 1 Graba mensaje de no disponible o 2 Graba mensaje de ocupado o 3 Graba nombre o 4 Graba mensaje temporneo o 5 Cambia contrasea o * Retorna al men principal 1 Lee los mensajes de voicemail o 3 Opciones avanzadas 1 Reply 2 Call Back 3 Envelope 4 llamada de salida o 4 Reproduce el mensaje anterior o 5 Repite el mensaje actual o 6 Reproduce el prximo mensaje o 7 Apaga el mensaje actual o 8 Reencamina el mensaje para otra casilla o 9 Salva el mensaje en una carpeta o Ayuda o * Salir Cambios de Pista *Ayuda # Salida

4.4.2 Salas de Conferencia


La conferencia en Asterisk es posible usando la aplicacin MeetMe(). El MeetMe() es una aplicacin que permite realizar una llamada en la que participen mas de dos clientes donde se pueden reuniones virtuales, muy simple de usar con la ventaja de que funciona con cualquier tipo de canal. Algunos telfonos estndar SIP, por ejemplo, tienen sus propios mecanismos de conferencia que tambin pueden ser usados, pero el mtodo estndar para conferencia es el MeetMe(). Asterisk usando la aplicacin MeetMe() permite: o o o o o o Permite crear salas de conferencia de libre acceso. Permite crear salas de conferencia protegidas por clave. Administracin de conferencias. Callar o expulsar a un miembro de la conferencia. Creacin de conferencias estticas (en el meetme.conf). Creacin de conferencias dinmicas (utilizando el plan de marcacin).

Para crear las salas de conferencia es necesario editar el archivo meetme.conf ubicado en el directorio /etc/asterisk. Este archivo es pequeo, se debe buscar el contexto [rooms] y en el crear cada una de las salas de conferencia que desea prestar en el servicio de la centralita. La sintaxis para crear una sala de conferencia es la siguiente: conf => numero_sala, contrasea_sala, contrasea_administrador_sala Solo es necesario al crear las salas de conferencia especificar el numero de la sala, las contraseas se establecen dependiendo del tipo de servicio a prestar. Ejemplo: [rooms] conf => 600 conf => 601, 123 conf => 602, 123, 456 En este ejemplo se crean las salas de conferencia, se crea una sala pblica la 600 sin contrasea, se crean dos salas privadas con contrasea 123 la sala 601 y la sala 602 y se especifica que en la 602 se va a tener un administrador de la conferencia que identificara con la contrasea 456. Por ultimo es necesario crear una extensin para cada sala de conferencia, esto se hace en el archivo extensions.conf.

Ejemplo: exten => 997,1,Answer exten => 997,2,Playtones,ring exten => 997,3,Wait,3 exten => 997,4,Meetme(600|M) exten => 997,5,Hangup exten => 998,1,Answer exten => 998,2,Playtones,ring exten => 998,3,Wait,3 exten => 998,4,Meetme(601|M) exten => 998,5,Hangup exten => 999,1,Answer exten => 999,2,Playtones,ring exten => 999,3,Wait,3 exten => 999,4,Meetme(601|M) exten => 999,5,Hangup Como se ve en el ejemplo la aplicacin MeetMe() recibe como parmetros el numero de la sala de conferencias, y ciertas opciones anteponiendo el carcter |, en este caso recibe la opcin M que habilita el MusiconHold o msica en espera cuando solo hay un cliente en la sala de conferencia, se podra por ejemplo agregar la opcin P la cual permite a los usuarios salir de la sala de conferencia usando la tecla #. La aplicacin MeetMe() necesidad de un Timer para que funcione el servicio de salas de conferencia, este generalmente es provedo por las interfaces Zaptel (Tarjetas como FXO, E1 o T1) , dado que esta aplicacin las pruebas son enteramente en Software este Timer no esta disponible por lo cual no se podra hacer pruebas de este servicio; esto se soluciona subiendo y habilitando un modulo al kernel de Linux para que este se encargue de hacer el sincronismo por Software. Para lograr que el kernel de Linux haga este sincronismo (La funcin de Timer) es necesario subir el modulo ztdummy para lo cual si es necesario la instalacin del paquete Zaptel mencionado anteriormente. Se establece una sesin de Terminal y se ingresan los siguientes comandos: $ su # modprobe ztdummy o $ su # insmod ztdummy Primero es necesario loguearse como administrador del sistema para esto se usa el comando su, luego se sube el modulo al kernel esto se hace con

modprobe o insmod, luego de ejecutar estos comando ya se puede iniciar el servicio de salas de conferencia.

Figura 4.1

4.4.3 Servicio de Video Conferencia o Video Llamada


Asterisk es una prueba tangible de la evolucin de la tecnologa y la realidad de muchos visionarios y cineastas, que pensaron que un futuro la telefona ya no solo seria la clsica llamada de voz sino que en algn momento se transmitira video, con esto prcticamente las barreras de la distancia desaparecern. Aunque esto no es nada nuevo, dado que muchos vendedores ya lo estn implementando, Asterisk es una solucin econmica y flexible para que este servicio se masifique. Asterisk por el momento solo permite Video Conferencia uno a uno, es decir en una llamada donde solo participen dos clientes se permite la transmisin de Video, en servicios de conferencia, es decir en llamadas donde participen tres o mas clientes no se tiene soporte para la transmisin de video, los desarrolladores de este proyecto tienen previsto que para las futuras ramas de Asterisk se tenga soporte para salas de conferencia con transmisin de video y video conferencia 3G es decir video conferencia en la red GSM de la telefona celular. Cabe aclarar que Asterisk solo provee soporte de transmisin de Video para clientes SIP y IAX2, clientes que usen protocolos H.323, Skinny, MGCP solo pueden transmitir voz. Dado esto inicialmente se debe habilitar el soporte para video conferencia en los archivos de configuracin de los clientes SIP y IAX2, es decir el archivo sip.conf y iax.conf. Se busca el contexto [general] y se escribe: [general] context=default bindport=5060

bindaddr=0.0.0.0 srvlookup=yes videosupport=yes Se habilita el soporte para transmisin de video con videosupport=yes. Ahora se procede a indicar que clientes van a tener activo el servicio de video conferencia. Primer cambio importante se deben deshabilitar todos los codecs, dado que el servicio de video conferencia consume altos recursos de la red y lo mejor es seleccionar los que consuman un mejor ancho de banda, esto se consigue mediante la lnea disallow=all. Como dato anexo, para realizar una adecuada transmisin de voz es necesario que los clientes tengan un ancho de banda de subida y bajada de mnimo 60kbps garantizados para poder proveer un servicio de calidad, para el caso de transmisin de video o Video Conferencia se requiere que el ancho de banda de subida y de bajada sea de 128 kbps garantizados. [estudiante1] type=friend secret=803000 qualify=yes nat=yes host=dynamic canreinvite=no context=unal mailbox=100@default disallow=all allow=alaw allow=ulaw allow=H263 allow=H264 allow=gsm allow=ilbc Alaw, Ulan, GSM, iLBC son codecs de audio de un alto nivel de compresin y un bajo consumo de recursos de red por lo cual son los seleccionado para este servicio. H.263 y H.264 son los seleccionado para la transmisin de video, para esta aplicacin en particular solo se necesitara H.264 dada la rama de Asterisk con la que se esta trabajando, si se estuviera usando la rama 1.2.x de Asterisk es necesario usar H.263 dado que esta solo tiene soporte para este codec. H.264 o MPEG-4 parte 10 es una norma que define un codec de vdeo de alta compresin, desarrollada conjuntamente por el Video Coding Experts Group (VCEG) y el ISO/IEC Moving Picture Experts Group (MPEG). El objetivo del proyecto H.264 fue la de crear un estndar capaz de proporcionar una buena calidad de imagen con tasas binarias notablemente inferiores a los estndares previos (MPEG-2, H.263 o MPEG-4 parte 2), adems de no incrementar la complejidad de su diseo.

ANEXO A PROTOCOLO IAX2


Es el protocolo usado por Asterisk. La versin 1 de este protocolo ha cado en desuso, en favor de la versin 2 (IAX2). El objetivo con el que se cre este protocolo fue minimizar la tasa de bits requerida en las comunicaciones VoIP y tener un soporte nativo para traspasar dispositivos de NAT (Network Address Translation). En otras palabras, provee soluciones a los problemas dados en SIP y H.323. Fue creado por Mark Spencer, quien tambin participa en el desarrollo de Asterisk. IAX2 usa un nico puerto UDP (4569) para transmitir tanto sealizacin como datos. El trfico de voz es transmitido en banda (in-band), es decir, los datos de voz van encapsulados en el protocolo; SIP, en cambio, se basa del protocolo RTP para la transmisin de los datos (su transmisin es out-band). Esto le permite al protocolo IAX2 prcticamente transportar cualquier tipo de dato. Otra caracterstica de IAX2 es que soporta Trunking; es decir, un solo enlace puede enviar datos y sealizacin de varios canales. Cuando se hace Trunking, un solo datagrama IP puede contener informacin de varias llamadas sin crear latencia adicional. Esto genera una disminucin de la tasa de bits y del retraso de los paquetes debido a que ahorra enviar varias veces la cabecera IP. Todas estas caractersticas del IAX2 se deben a que en su diseo se basaron en muchos estndares de sealizacin y de transmisin de datos, quedndose solo con lo mejor de cada uno. Algunos protocolos tomados como base para el IAX2 son: SIP, MGCP y RTP (Real-time Transfer Protocol). IAX2 es un protocolo de media y sealizacin peer-to-peer. Eso significa que los dispositivos mantienen conexiones asociadas con las operaciones de protocolo. Con respecto a los componentes de sealizacin de IAX2, este tiene ms parecido con el SIP que con el MGCP, que es un protocolo de control de tipo maestro-esclavo. El proyecto IAX2 multiplexa la sealizacin y mltiples flujos sobre una nica asociacin UDP entre dos hosts de Internet. Este se aborda con dos protocolos, el primero es el protocolo de sealizacin de las sesiones, el segundo el protocolo para transportar los flujos de media. Este abordaje difiere de la arquitectura general de los protocolos basados en la IETF con los protocolos separados para, sealizacin (MGCP e SIP) y flujo de media (RTP/RTCP). Como el IAX2 usa el mismo protocolo para sealizacin y media en un mismo puerto UDP, este no sufre de los problemas de atravesar dispositivos que realizan NAT (Network Address Translation), como, por ejemplo, enrutadores ADSL.(Caracterstica fundamental para operadoras de telefona IP). IAX2 usa el puerto UDP 4569 para comunicar todos los paquetes. IAX2 entonces usa un nmero de llamada de 15 bits para multiplexar los flujos sobre una nica asociacin UDP.

Figura A.1 El valor 0 es un nmero especial de llamada reservado en cada host. Cuando intenta hacer una llamada, el nmero de llamada de destino todava no es conocido. Un nmero de llamada cero es usado en esta situacin. IAX2 es un protocolo binario. El diseo fue hecho para mejorar la eficiencia en el uso de banda ancha. Ms all de eso, el protocolo es optimizado para hacer un uso eficiente de banda ancha para cada llamada individual. El protocolo IAX2 emplea un proceso similar de registro y autenticacin al que usa SIP. IAX permite el uso del modo Trunked. En este caso, cuando ms de una llamada es hecha, el overhead de los encabezados IP es disminuido, encaminando mltiples paquetes de voz de diferentes llamadas en un nico paquete. Con esto la necesidad de banda ancha es reducida. Los mensajes IAX son llamadas frames. Existen varios tipos bsicos de frames. Cada un de los tipos es descrito en esta seccin. Un bit F es usado para indicarse que el frame esta completo (Full) o no lo esta. El valor 0 indica que esta completo. Un nmero de llamada de 15 bits es usado para identificar el punto final de flujo de media. Un valor de 0 indica que el punto final no es conocido. Una llamada tiene dos nmeros de llamada asociados con ella en cualquier de las dos direcciones. El horario (timestamp) puede ser un campo de 32 o 16 bits. De cualquier forma el campo ocupa 32 bits. Un frame completo puede ser usado para enviar sealizacin, audio y vdeo de forma confiable. El frame completo es el nico tipo de frame que es transmitido de forma confiable. Esto significa que el receptor debe retornar algn tipo de mensaje al emisor despus haberlo recibido.

Figura A.2 La figura de arriba ilustra el formato binario de un frame completo. La tabla de abajo describe cada uno de los campos. El bit R es marcado para indicar que un frame est siendo retransmitido. La retransmisin ocurre despus de un perodo de timeout y las retransmisiones son intentadas varias veces, dependiendo del contexto. El nmero de secuencia del flujo de salida Oseqno" inicia con 0 y se incrementa de uno en uno. El campo OSeqno es usado para identificar el orden de los frames de media. ISeqno es lo mismo solo que en el sentido de entrada (Inbound).

Figura A.3 El miniframe es usado para enviar el audio o vdeo (media) con un mnimo de sobrecarga de protocolo. El formato del miniframe se describe abajo.

Figura A.4 El timestamp del Mini Frame esta truncado. El cliente generalmente mantiene el timestamp completo de 32 bits. Cuando es enviando el miniframe, los 16 bits de orden ms bajo son enviados en el campo timestamp. Cuando el timestamp de 16 bits da la vuelta (imprevisto) un frame completo es enviado para permitir que el otro lado sincronice.

Figura A.5

ANEXO B CONFIGURACIN SOFTPHONES

DE

CLIENTES

Para realizar las pruebas respectivas del servicio, es necesario contar con el equipo necesario de pruebas, lo mas comn seria contar con Telfonos IP, conversores ATA e interfaces Analgicas/Digitales para tener conexin con la red telefnica publica conmutada; pero dado que esto no es factible ya que implica hacer una inversin econmica fuerte, la mejor alternativa de prueba en este caso es usar un cliente Softphone, un Softphone es un software que permite convertir un computador en un telfono IP y hacer llamadas a otros Softphones, o a telfonos IP, incluso a telfonos convencionales si se contratado el servicio, este con un bueno micrfono, parlantes y una buena webcam tambin se convierte en una gran alternativa para vender el servicio. Se puede contar con una gran variedad de Clientes Softphones para trabajar, entre los ms populares estn: X Lite, Este Softphone disponible para Windows 98/2000/Me/NT/XP y GNU/Linux, trabaja con protocolo SIP. Licencia Freeware. Zoiper, Cliente mltiplaforma al igual que el X Lite, trabaja con protocolo IAX2, este software antes era conocido como Idefisk. Licencia GPL. Eyebean Xten, versin comercial del X Lite, al igual que este trabaja con protocolo SIP. Licencia Comercial. Ekiga, Softphone SIP exclusivo para GNU/Linux. Licencia GPL. WengoPhone, Softphone multiplataforma usa protocolo SIP. Licencia GPL. VoixPhone, cliente multiplataforma el cual soporta protocolo SIP y IAX2. licencia GPL.

A continuacin se presenta la configuracin de dos de estos Softphones dado que son muy verstiles y sumamente sencillos de manejar.

Configuracin X Lite
X Lite es un cliente gratuito para telefona IP, muy verstil, que adems incorpora la opcin llamadas con video sobre IP si se tiene una cmara y el servicio disponible. Su configuracin se presenta a continuacin. Luego de realizar la instalacin respectiva del software, se tendr una ventana como esta:

Figura B.1

Para iniciar la configuracin de este Softphone solo es necesario ubicar el cursor del Mouse sobre este y presionar el botn derecho del Mouse y seleccionar la opcin SIP Account Settings.

Figura B.2 Al hacer esto se presentara una ventana como esta, en la cual presionaremos el botn add para agregar una nueva cuenta de usuario.

Figura B.3 Para agregar un usuario se presentara la siguiente ventana:

Figura B.4 Donde Display Name corresponde al nombre con el que se desea mostrar en el Softphone, puede ser cualquiera, el User Name es el nombre de usuario con el que se desea aparecer registrado en la centralita telefnica con Asterisk este tambin puede ser cualquiera, el Password corresponde a la contrasea de registro en el centralita, el Authorization User Name es el nombre de usuario con el que se aparece registrado en la centralita telefnica con Asterisk, este y la contrasea son obligatorios y deben coincidir con los registros de Asterisk para que el usuario se puede autenticar, el domino corresponde al la Direccin del Servidor en este caso la direccin IP dado que no se cuenta con un dominio. En el momento de ingresar todos los datos y esta seguro que estos son validos, se presiona el botn aplicar y luego el botn aceptar para activar los cambios, en el momento que estos se activen, se tenga conexin al servidor y este se encuentre prestando el servicio, ya se pueden hacer uso de este y realizar las llamadas deseadas.

Configuracin VoixPhone
Como se menciono anteriormente VoixPhone es un cliente que soporta tanto protocolo SIP como protocolo IAX2, a continuacin se presenta como usarlo para prestar el servicio de telefona IP con Asterisk.

Para obtener VoixPhone se puede descargar desde la seccin de descargas de http://www.voixphone.com/. La instalacin es sumamente sencilla por lo cual no se mostrar ac. Luego de instalar la aplicacin se tendr la siguiente ventana. Para iniciar la configuracin de este cliente se presiona o se da clic en el botn ubicado en la esquina inferior izquierda de la ventana. Luego de presionar este botn tendremos la siguiente ventana, donde se podrn ingresar los datos de configuracin del proveedor del servicio en la opcin Telfono, configurar las opciones de audio del Softphone, tales como los dispositivos de entrada/salida, esto en Opciones de Audio, se puede configurar el volumen de audio deseado en la opcin Volumen de Audio, algo importante se puede seleccionado los codecs a usar para acomodar el servicio a la necesidad del cliente, obviamente hay dependencia directa con el servidor dado que este el que pone a disposicin del usuario que codecs puede usar, esto en la opcin Codificador, en la opcin Filtro se puede ajustar la ganancia y parmetros para mejorar la calidad del sonido entrante y saliente. Los detalles de la cuenta deben ser ingresados en el orden que la aplicacin lo requiere son: Direccin del Servidor: Este campo corresponde a la Direccin IP o al Dominio del servidor. Puerto: Puerto de conexin, en este caso el puerto 4569 para IAX2. Nombre de Usuario: Login del usuario, en este caso estudiante2. Nombre del identificador de llamada: Nombre con el que se desea aparecer al realizar una llamada. Numero identificador de llamada: Nmero de extensin asignado. El Softphone adems permite revisar automticamente el buzn de voz en informarle al usuario este se consigue llenando los campos:

Donde el Numero a chequear corresponde al numero de extensin del buzn de voz para el caso de la centralita implementada *123, usuario corresponde al numero de extensin del usuario para esta caso 101 y la contrasea del buzn de voz de este usuario que en esta implementacin es 1234. Finalmente se presiona el botn para guardar y activar los cambios, en el momento que estos se activen, se tenga conexin al servidor y este se encuentre prestando el servicio, ya se pueden hacer uso de este y realizar las llamadas deseadas.

CONCLUSIONES
Asterisk es una completa solucin de centralita IP o PBX por software. Se instala sobre plataforma de servidor con sistema operativo Linux (GNU/Linux), y junto con los convenientes interfaces de telefona (para lneas analgicas o RDSI) convierte a dicho sistema en una potente centralita telefnica. Asterisk tiene todas las ventajas y ofrece todas la virtudes que ofrecen las Centralitas o PBX tradicionales y de centrales IP propietarias como Cisco, Huawai, Avaya. El Software Libre, los sistemas GNU/Linux y Asterisk, se muestran como una gran solucin a empresas e instituciones que no tienen recursos para comprar equipos o contratar servicios tanto en Telefona como en otros campos. Asterisk posee muchas funcionalidades que crecen da a da. Adems de las prestaciones bsicas (enrutamiento de llamadas, reenvo, msica en espera), Asterisk puede funcionar como un gateway de comunicaciones integradas. Por ejemplo, tiene la funcionalidad de digitalizar y enviar por email los mensajes de voicemail. Tambin es posible brindar soluciones IVR (Interactive Voice Response) y mucho ms. Asterisk se ha convertido en un estndar en PBX de cdigo abierto. Permite utilizar hardware de bajo costo y al mismo tiempo brindar soluciones empresariales. El desafo ms grande para una implementacin confiable es contar con un proveedor con experiencia y conocimientos. Cualquier persona puede descargar el cdigo fuente, pero ese es solo el primer paso. Se necesita un alto grado de personalizacin y configuracin para brindar un producto 100% confiable. Asterisk ha incorporado la mayora de estndares de telefona del mercado, tanto los tradicionales (TDM) con el soporte de puertos de interfaz analgicos (FXS y FXO) y RDSI (bsicos y primarios), como los de telefona IP (SIP, H.323, MGCP, SCCP/Skinny). Eso le permite conectarse a las redes pblicas de telefona tradicional e integrarse fcilmente con centralitas tradicionales (no IP) y otras centralitas IP. Al soportar una mezcla de la telefona tradicional y los servicios de VoIP, Asterisk permite a los desarrolladores construir nuevos sistemas telefnicos de forma eficiente o migrar de forma gradual los sistemas existentes a las nuevas tecnologas. Algunos sitios usan Asterisk para reemplazar a antiguas centralitas propietarias, otros para proveer funcionalidades adicionales y algunas otras para reducir costes en llamadas a larga distancia utilizando Internet.

REFERENCIAS
[1] ASTERISK THE FUTURE OF TELEPHONY. Jim Van Meggetenm, Jared Smith and Leif Madsen, Editorial OREILLY Septiembre de 2005 [2] ASTERISK DESCONSOLADO. Eduardo Viegas y Facundo Correa. [3] DISEO E IMPLEMENTACIN DE UNA RED DE TELEFONIA IP CON SOFTWARE LIBRE EN LA RAAP. Diego Quintana Cruz [4] ASTERISK Y LA TELEFONIA TRADICIONAL. Eric Alexis Gonzles Erices [5] THE ASTERISK HANDBOOK, Mark Spencer, Mark Allison and Christopher Rhodes. [6] BUILDING TELEPHONY SYSTEMS WITH ASTERISK, David Gomillion and Barrie Dempster. [7] VOIP HOWTO, Roberto Arcomano. [8] VOIP PARA EL DESARROLLO Una Gua para crear una infraestructura de voz en regiones en desarrollo, Alberto Escudero Pascual. [9] INTER-ASTERISK EXCHANGE (IAX) VERSION 2, Mark Spencer [10] www.asterisk.org [11] http://www.digium.com [12] www.voip-info.org [13] http://www.voipforo.com/ [14] www.icecast.org

Вам также может понравиться