Asterisk, centralita para una empresa Tcnico Superior en Administracin de Sistemas Informticos en Red Vctor Manuel Rodrguez Garca http://www.chafarina.es 13/06/2013
Proyecto Integrado Asterisk, centralita para una empresa IES Punta del verde ndice Introduccin ......................................................................... Pgina 3 Distribucin ......................................................................... Pgina 3 Qu es Asterisk? ................................................................... Pgina 3 Por qu Asterisk? .................................................................. Pgina 4 Funcionalidades ms usadas ................................................... Pgina 5 Requerimientos de hardware previos ...................................... Pgina 5 Mapa de red ............................................................................. Pgina 7 Archivos de configuracin y directorios ................................. Pgina 7 Consola de Asterisk ................................................................ Pgina 8 Instalacin de Asterisk ............................................................ Pgina 10 Configuracin de Asterisk y creacin de extensiones ............ Pgina 14 Configuracin de Linksys SPA3102 ....................................... Pgina 20 Configuracin de msica de espera para las llamadas ............ Pgina 31 Configuracin de mens (IVR) ............................................... Pgina 32 Instalacin de locuciones en espaol ...................................... Pgina 35 Configuracin del buzn de voz (Voicemail) ......................... Pgina 37 Integracin de Voicemail con Correo Electrnico Gmail ....... Pgina 41 Integracin de Asterisk con Google Talk ............................... Pgina 46 Grabacin de llamadas por extensin ..................................... Pgina 51 Cmo acceder a nuestro Asterisk de forma remota? ............. Pgina 55 Usar nuestra lnea de Asterisk de forma remota ..................... Pgina 61 Bibliografa recomendada ....................................................... Pgina 64 2
Proyecto Integrado Asterisk, centralita para una empresa IES Punta del verde Introduccin Este proyecto trata de documentar como montar una centralita para una empresa, la cual tratar de atender las llamadas, registrarlas, guardar las conversaciones e informar a los administradores de las llamadas que se han perdido y/o realizado. El proyecto est desarrollado sobre el sistema operativo Linux, concretamente en la distribucin Debian 6.0.7. En ella instalaremos y configuraremos la aplicacin Asterisk la cual tiene la funcin de instalar libremente nuestra centralita para uso personal y comercial. Distribucin Como ya puedes saber, hemos utilizado la distribucin de Linux Debian 6.0.7. Por qu Debian? Debian naci all por el ao 93 lo que contiene millones de paquete especialmente diseados para esta distribucin. Estamos hablando de 20 aos de trabajo consecutivo. Otro de los puntos a favor a la hora de elegir Debian, es que, en mi caso usaremos como servidor una RasberryPi y es una de las pocas distribuciones que es soportada por este servidor, adems de ser la ms actualizada para este tipo de instalacin y la que contiene ms soporte de cara al usuario. Debemos de tener en cuenta que para que funcione nuestra centralita, el servidor siempre tiene que estar encendido y trabajando correctamente. Qu es Asterisk? Asterisk es un programa de software libre (bajo licencia GPL) que proporciona funcionalidades de una central 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 VoIP o bien a una RDSI. Asterisk incluye muchas caractersticas que anteriormente slo estaban disponibles en costosos sistemas propietarios PBX, como buzn de voz, conferencias, IVR, distribucin automtica de llamadas, y otras muchas. 3
Proyecto Integrado Asterisk, centralita para una empresa IES Punta del verde Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan que es el lenguaje de script de Asterisk o aadiendo mdulos escritos en lenguaje C o en cualquier otro lenguaje de programacin soportado en GNU/Linux, como por ejemplo Shell Script. Para conectar telfonos estndares analgicos son necesarias tarjetas electrnicas telefnicas FXS o FXO, ya que para conectar el servidor a una lnea externa no basta con un simple mdem, de esto hablaremos ms adelante en los requisitos de hardware previos. Las versiones tanto estables como de desarrollo de cada mdulo pueden descargarse en la web de la pgina oficial de Asterisk. ____________________________________________________________ PBX: Sigla de Private Branch Exchange en realidad cualquier central telefnica conectada directamente a la red pblica de telefona por medio de lneas troncales para gestionar adems de las llamadas internas, las entrantes y salientes. FXS: Sigla de Foreing Exchange Station. Es el conector que permite conectar un telfono analgico estndar. FXO: Sigla de Foreign Exchange Office. Sirve sobre todo para implementar centralitas telefnicas con un ordenador. Por qu Asterisk? El programa de software Asterisk fue desarrollado por Mark Spencer, por entonces estudiante de ingeniera informtica en la Universidad de Auburn, Alabama. Mark haba creado en 1999 la empresa "Linux Support Services" con el objetivo de dar soporte a usuarios de GNU/Linux. Para ello necesitaba una central telefnica, pero ante la imposibilidad de adquirirla dados sus elevados precios, decidi construir una con un PC bajo Linux, utilizando lenguaje C. Como hemos comentado Asterisk es un programa de software libre (bajo licencia GPL) y esto hace que muchas empresas pequeas tenga implantada esta centralita. Es cierto que la administracin de Asterisk es muy compleja (todo por consola, sin versin grfica gratuita...) pero si eres un usuario experimentado en el uso de Linux no tendrs ningn problema siguiendo este proyecto. Asterisk lo podemos encontrar en los repositorios de Debian, por lo que al elegir esta distribucin de Linux es casi obligatorio instalar el paquete Asterisk como centralita principal. 4
Proyecto Integrado Asterisk, centralita para una empresa IES Punta del verde Funcionalidades ms usadas Las funcionalidades que podemos realizar en Asterisk son muy diversas, aqu hemos catalogado las ms usadas y/o importantes. > Auto attendant (operadora automtica). Permite crear mens interactivos. Generalmente usado para las llamadas entrantes. > Buzones de voz. Integrable con cuentas de correo y BBDD relacionales. > Grabaciones de llamadas. Podemos grabar las conversaciones automticamente o bajo demanda, es decir, pulsado una serie de teclas en el telfono cuando queramos grabar una llamada. > Callbacks. Existe la posibilidad de llamar a travs de la centralita sin coste alguno para el llamante. > Salas de conferencia. Se pueden crear salas con mltiples usuarios y que estos escuchen una conversacin a la misma vez. Requerimientos de hardware previos Para que nuestro sistema Asterisk funcione correctamente necesitaremos lo siguiente: > Servidor dnde se instalar el paquete Asterisk. No necesitamos una gran infraestructura, en mi caso he utilizado una RaspberryPi con una tarjeta SD como disco duro y 256 MB de Ram. Como debemos de saber, el S.O. que soportar la infraestructura ser Debian, concretamente la versin 6.0.7. > Telfono VoIP, en mi caso he utilizado el telfono que te regalan contratando una conexin a internet en casa. Este telfono no es VoIP pero podremos convertirlo mediante un dispositivo llamado Linksys SPA3102. Otra opcin es utilizar un Smartphone, que tambin puede funcionar como telfono VoIP. 5
Asterisk, centralita para una empresa > Linksys SPA3102, este dispositivo har de intermediario entre nuestro router, nuestro telfono, y nuestro servidor. Este dispositivo es imprescindible ya que sin l no podremos convertir nuestra lnea analgica a digital, es decir, este dispositivo har uso de nuestra lnea de telfono domstica y convertir nuestro telfono de toda la vida a un telfono VoIP. > Router de toda la vida para poder tener acceso a internet. ___________________________________________________________ RaspberryPi: es una placa computadora (SBC) de bajo coste desarrollada en Reino Unido por la Fundacin Raspberry Pi. El diseo incluye un procesador central a 700 Mhz, un procesador grfico y 256 MB de memoria RAM. El dispositivo no incluye Disco Duro, por lo que podemos usar tarjetas SD o SDHC. Proyecto Integrado IES Punta del verde 6
Asterisk, centralita para una empresa Mapa de Red Nuestro mapa de la red quedara de la siguiente manera: Archivos de Configuracin y Directorios Directorios > /etc/asterisk Contiene todos los archivos de configuracin. > /var/lib/asterisk/sounds/ Locuciones por defecto de Asterisk. > /var/lib/asterisk/moh Msica de espera por defecto. > /var/log/asterisk Contiene los logs de Asterisk. > /var/spool/asterisk/voicemail Contiene los archivos de llamadas que se almacenan en el buzn de voz. > /usr/lib/asterisk/modules Contiene las libreras, aplicaciones y mdulos. Ficheros Cuando modifiquemos algn fichero de configuracin es necesario hacer un reload desde la consola de asterisk. Los ficheros ms importantes o los que manejaremos con ms frecuencia son: Proyecto Integrado IES Punta del verde 7
Proyecto Integrado Asterisk, centralita para una empresa IES Punta del verde > /etc/asterisk/extensions.conf Tambin conocido como Dialplan, es el corazn de la aplicacin. En l se especifica cmo se va a comportar Asterisk a la hora de recibir una llamada, es decir, redireccionarla a dnde nosotros deseemos tanto extensiones, como mens internos, etc... > /etc/asterisk/sip.conf En este fichero se guarda toda la informacin relacionada con el canal SIP (Extensiones). > /etc/asterisk/asterisk.conf En este fichero contiene todo lo relacionado con la consola de Asterisk, todo lo que se configure aqu se ejecutar al iniciar la consola. > /etc/asterisk/meetme.conf En este fichero se configuran las salas de conferencias para hacer escuchas a la misma vez de unas extensiones a otras. > /etc/asterisk/voicemail.conf En este fichero se configuran los buzones de voz para las extensiones que definamos en el Dialplan. Consola de Asterisk En la consola de Asterisk se muestra todo lo que est ocurriendo en el momento en nuestra centralita. Desde aqu se puede controlar nuestra aplicacin manualmente. Los mensajes que se muestran en esta consola son configurables mediante los archivos de configuracin que se han explicado anteriormente. Para acceder a ella debemos poner el comando siguiente: >> asterisk -r Esta consola tambin tiene funcin de autocompletado, por lo que podemos usar la tecla tabulador. 8
Asterisk, centralita para una empresa Para realizar un reload y que nos guarde los cambios realizados en algn archivo de configuracin podramos lo siguiente: >> reload Otros comandos muy usados en la consola de Asterisk son los siguientes: >> set verbose X Configurar el nivel de informacin que queremos que muestre la consola. Dnde X es el nmero de lneas de informacin. >> sip show peers Muestra las extensiones configuradas. >> help Muestra los comandos de la consola >> exit Salir de la consola Para que la consola por defecto nos muestre un nivel de informacin importante debemos editar el archivo asterisk.conf que se encuentra en la ruta /etc/asterisk. En el contenido de este archivo debemos realizar lo siguiente: [options] verbose = 10 ;debug = 3 ;alwaysfork = yes ; Same as -F at startup. ;nofork = yes ; Same as -f at startup. ;quiet = yes ; Same as -q at startup. ;timestamp = yes ; Same as -T at Proyecto Integrado IES Punta del verde 9
Proyecto Integrado Asterisk, centralita para una empresa IES Punta del verde startup. ;execincludes = yes ; Support #exec in config files. ;console = yes ; Run as console (same as -c at startup). ;highpriority = yes ; Run realtime priority (same as -p at ; startup). ;initcrypto = yes ; Initialize crypto keys (same as -i at ; startup). ;nocolor = yes ; Disable console colors. Como vemos hemos descomentado la lnea verbose y hemos puesto la cantidad de lneas de informacin a 10, por lo que por defecto la consola nos mostrar un nivel de informacin de unas 10 lneas. Todo lo que modifiquemos en este archivo se aplicar por defecto cada vez que ejecutemos la consola de Asterisk. Servicios del Sistema La instalacin de Asterisk, instala un solo servicio, que mediante la consola de la aplicacin podemos iniciar, parar, reiniciar o detenerlo. Para ello podemos usar los comandos siguientes: >> /etc/init.d/asterisk start Iniciar servicio. >> /etc/init.d/asterisk stop Parar servicio. >> /etc/init.d/asterisk status Comprobar el estado del servicio. >> /etc/init.d/asterisk restart Reiniciar servicio. Instalacin de Asterisk Poco a poco Asterisk esta desbancando a las grandes empresas (CISCO, Avaya, Panasonic, ...) en a lo que centralitas se refiere. Es escalable en todos los sentidos, siendo perfectamente vlido desde una instalacin pequea (como la ma) hasta una gran multinacional con sedes por todo el mundo, miles de extensiones y conexiones con el mundo. 10