Anda di halaman 1dari 8

Implementacin Asterisk-VoIP

Implementacin Asterisk-VoIP
Introduccin
Desde el punto de vista tcnico, la red telefnica tradicional (PSTN [1]) no ha tenido una gran evolucin desde su invencin a fines del siglo XIX. A la vez, existe una tendencia cada vez mayor a enviar la seal de voz en forma digital, en paquetes a travs de la red de datos, en lugar de utilizar la red telefnica convencional (PSTN). Esto muestra que la convergencia de la voz y los datos hacia una misma red, es y ser una realidad del siglo XXI. El grupo de recursos que hacen posible que la seal de voz viaje a travs de Internet empleando el protocolo IP [2], es llamado Voz sobre IP (VoIP [3]). Es una tecnologa con un crecimiento muy alto, en la cual apostaron muchas empresas. La principal ventaja de este tipo de servicios es que evita los cargos altos de telefona (principalmente de larga distancia) usuales de la red PSTN. La reduccin en los costos se debe principalmente a la utilizacin de una misma red para transportar voz y datos; en especial cuando los usuarios no utilizan la totalidad de la capacidad de su red, la cual puede ser usada para VoIP sin un gran costo adicional. Otro beneficio a destacar, es la amplia gama de soluciones comerciales, que permiten construir redes de telefona con servicios adicionales, tales como buzn de voz, Voice-mail, multiconferencia, servidor vocal interactivo (IVR [4]), distribucin automtica de llamadas, entre otras. Al mismo tiempo, se crearon comunidades de programadores con el fin de desarrollar soluciones Open Source [5] de VoIP. Los programas Open Source tuvieron un gran xito en los mbitos empresariales y universitarios debido a su eficiencia, lo que los volvi competitivos, en muchas reas, en relacin a las soluciones propietarias existentes. Dichos programas Open Source buscaron evitar los problemas inherentes a los sistemas propietarios tradicionales con lo que lograron; minimizar los costos, mejorar la flexibilidad, el mantenimiento y soporte de equipos, as como tambin permitir que cada usuario pueda tener el control de su propio sistema. El desarrollo de aplicaciones open source, hace posible el fcil acceso y en forma econmica, a sistemas de comunicacin VoIP y a informacin asociada (manuales, tutoriales, HowTo, URL oficiales, foros, etc) lo que facilita la implementacin de estos sistemas. Ejemplo Es posible tener acceso a una central telefnica PBX (Asterisk [6]), a la cual se le conecten usuarios VoIP mediante softphones [7] ambos disponibles en Open Source. Con esto se puede realizar una implementacin donde se les asigna extensiones telefnicas y buzones de voz [8] a estos usuarios, con lo cual se pueden comunicar entre s o dejarse mensajes de voz en caso que el destinatario no est disponible. Adems es posible agregar una funcionalidad ms avanzada que permita que el mensaje de voz sea enviado al correo electrnico de su destinatario con un cierto formato. Para ello se requiere el uso de un servidor de correo, tambin disponible en Open Source.

Implementacin Asterisk-VoIP

Sistemas requeridos para el ejemplo citado


Asterisk
Asterisk es un software Open Source que proporciona funcionalidades de central telefnica (PBX). Originalmente fue creado para sistemas Linux [9], actualmente existen versiones para sistemas OpenBSD, FreeBSD, Mac OS X, Solaris y Windows. Igualmente Linux sigue siendo la que ms soporte presenta. Permite la conexin de telfonos analgicos (para los cuales es necesario utilizar tarjetas electrnicas telefnicas FXO o FXS), telfonos digitales, terminales IP y softphones ya que soporta muchos protocolos de VoIP como ser SIP [10], IAX [11], H.323 [12] y MGCP [13] Cuenta con servicios de buzn de voz, creacin de extensiones, mailserver, envo de mensajes de voz a e-mail, llamadas en conferencia, IVR, distribucin automtica de llamadas, entre otras. A su vez, cada usuario puede crear su propias funcionalidades a travs de la creacin de un dialplan o aadiendo mdulos en lenguajes de programacin soportados por Linux.

Dialplan
Es el corazn del sistema Asterisk, en l se define como se van a manejar las llamadas. Consiste en un conjunto de instrucciones o pasos que Asterisk debe seguir y es completamente customizable. El dialplan se configura en el archivo extensin.conf. Dentro de l se manejan los siguientes conceptos: contextos, extensiones, prioridad y aplicaciones. Contextos Los dialplan estn separados en secciones llamadas contextos. El contexto es uno de los parmetros que se especifica al definir un canal, por lo que es el punto de partida para que el dialplan pueda realizar la conexin al mismo. Uno de los usos ms importantes del contexto es la seguridad. Permite establecer una comunicacin (por ejemplo de larga distancia) sin que quede disponible para otros usuarios. Las extensiones que se encuentran definidas dentro de un contexto, no puede interactuar (a no ser que se le permita) con una extensin de otro contexto. Se determina con su nombre entre [ ] y tiene una extensin mxima de 79 caracteres. Todas las instrucciones situadas debajo de su nombre, son parte del mismo (hasta el comienzo de uno nuevo). Extensions En el mundo de las comunicaciones, una extensin se refiere al nmero que identifica el ring de cierto telfono. En Asterisk es mucho ms que eso. La extensin es la que le indica a Asterisk que pasos debe seguir cuando esa extensin es requerida. La sintaxis de una extensin es la palabra exten seguida del signo de igual y el de mayor, como se muestra a continuacin: exten => Esta expresin es seguida por el nmero de la extensin (el cual puede ser una combinacin de nmeros y letras), la prioridad (cada extensin esta compuesta por varios pasos, los cuales se ejecutan en el orden establecido por la prioridad), y por la aplicacin (o comando) que es la que realiza la accin. Por lo cual una extensin tiene la siguiente sintaxis: exten => nmero, prioridad, aplicacin()

Implementacin Asterisk-VoIP Prioridad La prioridad es un nmero que indica el orden en el que se ejecutan los pasos de la extensin. Generalmente se suele poner la prioridad 1 (en el primer paso a ejecutarse) y luego una n que significa next, la prioridad anterior +1. Esto es as para poder agregar pasos intermedios, en un plan de numeracin ya existente, sin tener que renumerar las prioridades manualmente, lo cual puede tornarse engorroso. A continuacin se muestra un ejemplo: exten => 123,1,Answer() exten => 123,n,hacer algo exten => 123,n,hacer algo ms exten => 123,n,Hangup() Se pueden colocar etiquetas a la prioridad de manera de poder referirse a ella no solo por su nmero. Para ello se coloca la etiqueta entre parntesis curvos a continuacin del nmero de prioridad. exten => 123,n(etiqueta),aplicacin() Aplicaciones Las aplicaciones son aquellas que especifican una accin concreta en el canal, por ejemplo, reproducir un cierto sonido, aceptar un tono de entrada, terminar una llamada, etc. Hay algunas aplicaciones que no requieren de informacin adicional (argumentos) como ser Answer() y Handup(). Hay otras a las que se les debe o puede pasar argumentos. Estos se deben colocan entre parntesis a continuacin del nombre de la aplicacin. Si son varios argumentos se separan con comas , .

Softphones
Un softphone es un software que provee funcionalidades de un telfono convencional. Generalmente opera en un entorno Voz sobre IP. Est basado en un protocolo de sealizacin, el cual puede ser estandarizado (SIP, H.323, IAX) o privativo. Existen diversos softphones disponibles, algunos de estos son: sjphone, X-Lite, Ekiga, kphone y kiax.

Servidores de correo
Un servidor de correo [14] est conformado por varios agentes que pueden estar presentes o no en el mismo servidor. Uno de ellos es el agente de transporte de mail o MTA (Mail Transport Agente), encargado de enviar y recibir mensajes desde y hacia otros MTA. El MTA toma el mensaje enviado por el cliente MUA (Mail User Agent) y determina a donde enviarlo, sabiendo adems como actuar ante un error. Tambin recibe los mensajes dirigidos a los clientes MUA y los coloca en sus respectivas casillas de correo. Existen diversos MTA en Unix/Linux, entre ellos cabe mencionar a sendmail y postfix. Otro agente es el cliente de correo electrnico (MUA). ste es un programa ejecutado por los usuarios para poder leer y escribir los mensajes.

Implementacin Asterisk-VoIP

Configuraciones
Tomando el ejemplo citado en la introduccin, a continuacin se van a detallar las configuraciones necesarias en cada uno de los sistemas para lograr su realizacin.

Asterisk
Los archivos de configuracin de Asterisk, en Ubuntu, se ubican en /etc/asterisk. De todos estos, slo es necesario configurar tres de ellos para la creacin de nuevos usuarios SIP cada uno con su extensin, su buzn de voz y el voicemail activado. Por lo que los archivos a configurar en este caso son: sip.conf (en el caso de haber elegido SIP como protocolo de sealizacin), extensions.conf y voicemail.conf. sip.conf En el archivo sip.conf se configura todo lo relacionado a la creacin de nuevos usuarios SIP, las conexiones con proveedores SIP y al propio protocolo SIP. Este archivo se divide en secciones. Una de ellas es la seccin [general] donde se encuentra la configuracin por defecto de todos los usuarios y "peers" (proveedores). Los distintos parmetros de dicha configuracin se pueden sobrescribir en las secciones de cada usuario, donde tambin se configuran los perfiles de los usuarios SIP, que van a ser identificados por Asterisk. Un usuario puede ser un peer (autentica llamadas salientes), un user (autentica llamadas entrantes) o un friend (autentica llamadas en ambos sentidos). Su perfil se define a partir del nombre entre corchetes []. A continuacin se presentan algunos parmetros de inters a configurar con sus valores asociados. Cabe destacar en la seccin general los siguientes: [general] context=default ;Define el contexto por defecto para llamadas entrantes port=5060 ;Puerto UDP donde responder Asterisk bindaddr=0.0.0.0 ;En el caso de especificar una IP donde est Asterisk (si un equipo tiene ms de una IP por ejemplo) 0.0.0.0 vale para cualquiera srvlookup=yes ;Habilita servidor DNS (se permite llamadas SIP basadas en nombre de dominios) Para el caso en estudio, se crean dos nuevos usuarios SIP. Dentro de la configuracin de estos es importante notar que ambos se asocian a un mismo contexto, denominado comunicaciontel, para que puedan comunicarse entre s sin necesidad de realizar configuraciones adicionales. Los parmetros username y secret permiten identificar al nuevo usuario SIP. Esta informacin es empleada para que el usuario se pueda autenticar en el softphone. Un ltimo parmetro a destacar es mailbox. En l se define el nmero de identificacin del buzn de voz, que generalmente corresponde al nmero de extensin asociada y el dominio al cual pertenece. [UsuarioA] type=friend host=dynamic username=UsuarioA secret=1234 nat=no canreinvite=no context=comunicaciontel mailbox=20000@local

Implementacin Asterisk-VoIP [UsuarioB] type=friend host=dynamic username=UsuarioB secret=4321 nat=no canreinvite=no context=comunicaciontel mailbox=20100@local extensions.conf El archivo extensions.conf es el de mayor importancia de Asterisk. Su principal misin es definir el plan de numeracin (dialplan) que seguir la central para cada contexto y en consecuencia para cada usuario. Al igual que el archivo sip.conf, extensions.conf se compone de secciones o contextos identificados por su nombre entre corchetes []. Dentro de estos cabe mencionar dos que siempre se encuentran presentes: [general] y [globals]. El primero de ellos configura unas pocas opciones generales cuyos valores por defecto se pueden mantener. El otro define variables globales que se van a poder emplear en los dems contextos. Los restantes contextos presentan los planes de numeracin personalizados. La sintaxis de las lneas de un contexto para el plan de numeracin es: exten => extension, prioridad, aplicacin(argumentos) Cada uno de estos conceptos fueron explicados anteriormente en la seccin referente a Dialplan. Para el caso particular del ejemplo con el que se est trabajando, se definen dos extensiones (20000 y 20100) cada una correspondiente a uno de los usuarios creados en el archivo sip.conf. Ambas presentan el mismo comportamiento y se encuentran bajo el mismo contexto, definido anteriormente en sip.conf. Al discar el nmero de una de las extensiones en el softphone, se llamar al usuario SIP correspondiente haciendo timbrar su softphone por un perodo de tiempo de 20 segundos. Si el usuario llamado no contesta durante ese perodo, se activar el buzn de voz, permitiendo escuchar el mensaje de bienvenida, las instrucciones y para posteriormente dar el espacio para la grabacin del mensaje. Las tres aplicaciones empleadas para lograr el funcionamiento descrito anteriormente son Dial, Voicemail y Hangup. Los parmetros de Dial para este ejemplo, especifican a que usuario SIP llamar y el perodo de tiempo en el cual se escucha el timbrado. Los de Voicemail, determinan el nmero de buzn de voz con el dominio correspondiente (local) al cual se debe acceder y bajo que circunstancias (por ejemplo: ausencia del destinatario (u) o lnea ocupada (b)). Se definieron adems otras dos extensiones (3200 y 3201) para poder acceder directamente, mediante el marcado del nmero, a cada una de las casillas de voz de los usuarios. Esto se logra a travs de la aplicacin VoiceMailMain. [comunicaciontel] exten => 20000,1,Dial(SIP/UsuarioA,20) exten => 20000,2,Voicemail(20000@local,u) exten => 20000,3,Hangup() exten => 20100,1,Dial(SIP/UsuarioB,20) exten => 20100,2,Voicemail(20100@local,u) exten => 20100,3,Hangup() exten => 3200,1,VoiceMailMain(20000@local)

Implementacin Asterisk-VoIP exten => 3201,1,VoiceMailMain(20100@local) Voicemail.conf En el archivo voicemail.conf se crean y gestiona los buzones de voz de los usuarios. Este fichero, al igual que los dos archivos de configuracin anteriores, se compone de secciones o contextos. Dos contextos a destacar aqu, siempre presentes son: [general] relativo a las configuraciones generales del buzn de voz y [zonemessages] donde se definen las zonas horarias, necesarias para informar la hora en que recibi el mensaje. Los dems contextos estn relacionados a la personalizacin de los buzones de voz, y se encuentran identificados por el nombre del dominio del buzn de voz. En estos contextos se define la clave secreta necesaria para autenticarse y escuchar los correos de voz y la direccin de correo a la cual se le enviar el mensaje de voz, en formato .wav segn como fue configurado en la seccin general. [general] format=wav|wav49|gsm attach=yes ;Adjunta el mensaje de voz al enviar el correo maxmessage=180 minmessage=3 saycid=yes maxlogins=3 cidinternalcontexts=house_local,house_toll,house_admin mailcmd=/usr/sbin/sendmail t [local] 20000 => 5678,Federica,federica@localhost.org 20100 => 8765,Claudia,claudia@localhost.org

Softphone
Para la configuracin de un softphone se requiere crear los perfiles de usuarios. En ellos se define: el SIP Proxy (IP del servidor Asterisk) el puerto (generalmente 5060, como se especific en el archivo sip.conf) nombre del usuario (para ser identificado al realizar una llamada) cuenta y contrasea (aquella asignada en el archivo sip.conf)

Para obtener ms detalles relativos a la configuracin (HowTo) es recomendable el siguiente link: configuracin softphone [15]

Implementacin Asterisk-VoIP

Postfix
Para enviar por correo electrnico los mensajes del buzn de voz, es necesario instalar por lo menos un MTA. Por facilidad en la administracin, instalacin y configuracin es recomendable postfix. La comunicacin entre Asterisk y postfix se logra mediante la sentencia: sendmail t presente en el archivo de configuracin voicemail.conf dentro del parmetro mailcmd (mailcmd=/usr/sbin/sendmail t)

Conclusin
Se pudo experimentar que es posible realizar soluciones telefnicas utilizando nicamente herramientas Open Source las cuales se encuentran disponibles en forma gratuita y cuentan con abundante informacin accesible a cualquier usuario.

Referencias
[1] [2] [3] [4] http:/ / es. wikipedia. org/ wiki/ PSTN http:/ / es. wikipedia. org/ wiki/ Protocolo_IP http:/ / es. wikipedia. org/ wiki/ VoIP http:/ / es. wikipedia. org/ wiki/ IVR

[5] http:/ / es. wikipedia. org/ wiki/ Open_source [6] http:/ / es. wikipedia. org/ wiki/ Asterisk [7] http:/ / es. wikipedia. org/ wiki/ Softphone [8] http:/ / es. wikipedia. org/ wiki/ Buz%C3%B3n_de_voz [9] http:/ / es. wikipedia. org/ wiki/ Linux [10] http:/ / es. wikipedia. org/ wiki/ Session_Initiation_Protocol [11] http:/ / es. wikipedia. org/ wiki/ IAX [12] http:/ / es. wikipedia. org/ wiki/ H. 323 [13] http:/ / es. wikipedia. org/ wiki/ MGCP [14] http:/ / es. wikipedia. org/ wiki/ Servidor_de_correo [15] http:/ / www. voipforo. com/ Telefonos/ sjphone_configuracion. php

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Implementacin Asterisk-VoIP Fuente: http://es.wikibooks.org/w/index.php?oldid=107776 Contribuyentes: Cf ucu

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/