Proyecto-Víctor-Manuel-Rodríguez-García

27

Transcript of Proyecto-Víctor-Manuel-Rodríguez-García

Page 1: Proyecto-Víctor-Manuel-Rodríguez-García
Page 2: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado IES Punta del Verde - Sevilla

Asterisk, centralita para una empresa

Técnico Superior en Administración de Sistemas Informáticos en Red Víctor Manuel

Rodríguez García http://www.chafarina.es 13/06/2013

Page 3: Proyecto-Víctor-Manuel-Rodríguez-García
Page 4: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado Asterisk, centralita para una empresaIES Punta del verde

ÍndiceIntroducción ......................................................................... Página 3

Distribución ......................................................................... Página 3

¿Qué es Asterisk? ................................................................... Página 3

¿Por qué Asterisk? .................................................................. Página 4

Funcionalidades más usadas ................................................... Página 5

Requerimientos de hardware previos ...................................... Página 5

Mapa de red ............................................................................. Página 7

Archivos de configuración y directorios ................................. Página 7

Consola de Asterisk ................................................................ Página 8

Instalación de Asterisk ............................................................ Página 10

Configuración de Asterisk y creación de extensiones ............ Página 14

Configuración de Linksys SPA3102 ....................................... Página 20

Configuración de música de espera para las llamadas ............ Página 31

Configuración de menús (IVR) ............................................... Página 32

Instalación de locuciones en español ...................................... Página 35

Configuración del buzón de voz (Voicemail) ......................... Página 37

Integración de Voicemail con Correo Electrónico Gmail ....... Página 41

Integración de Asterisk con Google Talk ............................... Página 46

Grabación de llamadas por extensión ..................................... Página 51

¿Cómo acceder a nuestro Asterisk de forma remota? ............. Página 55

Usar nuestra línea de Asterisk de forma remota ..................... Página 61

Bibliografía recomendada ....................................................... Página 64

2

Page 5: Proyecto-Víctor-Manuel-Rodríguez-García
Page 6: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado Asterisk, centralita para una empresaIES Punta del verde

IntroducciónEste 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 distribución Debian 6.0.7. En ella instalaremos y configuraremos la aplicación “Asterisk” la cual tiene la función de instalar libremente nuestra centralita para uso personal y comercial.

DistribuciónComo ya puedes saber, hemos utilizado la distribución de Linux Debian 6.0.7. ¿Por qué Debian? Debian nació allá por el año 93 lo que contiene millones de paquete especialmente diseñados para esta distribución. Estamos hablando de 20 años 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”, además de ser la más actualizada para este tipo de instalación y la que contiene más 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 telefónica PBX. Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI.

Asterisk incluye muchas características que anteriormente sólo estaban

Page 7: Proyecto-Víctor-Manuel-Rodríguez-García

disponibles en costosos sistemas propietarios PBX, como buzón de voz, conferencias, IVR, distribución automática de llamadas, y otras muchas.

3

Page 8: Proyecto-Víctor-Manuel-Rodríguez-García
Page 9: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado Asterisk, centralita para una empresaIES Punta del verde

Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan que es el lenguaje de script de Asterisk o añadiendo módulos escritos en lenguaje C o en cualquier otro lenguaje de programación soportado en GNU/Linux, como por ejemplo Shell Script.

Para conectar teléfonos estándares analógicos son necesarias tarjetas electrónicas telefónicas FXS o FXO, ya que para conectar el servidor a una línea externa no basta con un simple módem, de esto hablaremos más adelante en los requisitos de hardware previos. Las versiones tanto estables como de desarrollo de cada módulo pueden descargarse en la web de la página oficial de Asterisk.____________________________________________________________ PBX: Sigla de “Private Branch Exchange” en realidad cualquier central telefónica conectada directamente a la red pública de telefonía por medio de líneas troncales para gestionar además de las llamadas internas, las entrantes y salientes.

FXS: Sigla de “Foreing Exchange Station”. Es el conector que permite conectar un teléfono analógico estándar.

FXO: Sigla de “Foreign Exchange Office”. Sirve sobre todo para implementar centralitas telefónicas con un ordenador.

¿Por qué Asterisk?El programa de software Asterisk fue desarrollado por Mark Spencer, por entonces estudiante de ingeniería informática en la Universidad de Auburn, Alabama. Mark había creado en 1999 la empresa "Linux Support Services" con el objetivo de dar soporte a usuarios de GNU/Linux. Para ello necesitaba una central telefónica, 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 pequeñas tenga implantada esta centralita. Es cierto que la administración de Asterisk es muy compleja (todo por consola, sin versión gráfica gratuita...) pero si eres un usuario experimentado en el uso de Linux no tendrás ningún problema siguiendo este proyecto. Asterisk lo podemos

Page 10: Proyecto-Víctor-Manuel-Rodríguez-García

encontrar en los repositorios de Debian, por lo que al elegir esta distribución de Linux es casi obligatorio instalar el paquete Asterisk como centralita principal.

4

Page 11: Proyecto-Víctor-Manuel-Rodríguez-García
Page 12: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado Asterisk, centralita para una empresaIES Punta del verde

Funcionalidades más usadasLas funcionalidades que podemos realizar en Asterisk son muy diversas, aquí hemos catalogado las más usadas y/o importantes.

> Auto attendant (operadora automática). Permite crear menúsinteractivos. Generalmente usado para las llamadas entrantes.

> Buzones de voz. Integrable con cuentas de correo y BBDD

relacionales.

> Grabaciones de llamadas. Podemos grabar las conversaciones automáticamente o bajo demanda, es decir, pulsado una serie de teclas en el teléfono cuando queramos grabar una llamada.

> Callbacks. Existe la posibilidad de llamar a través de la centralita

sin coste alguno para el llamante.

> Salas de conferencia. Se pueden crear salas con múltiples usuarios y

que estos escuchen una conversación a la misma vez.

Requerimientos de hardware previosPara que nuestro sistema Asterisk funcione correctamente necesitaremos lo siguiente:

> Servidor dónde 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 versión 6.0.7.

> Teléfono VoIP, en mi caso he utilizado el teléfono que te “regalan” contratando una conexión a internet en casa. Este teléfono no es VoIP pero podremos convertirlo mediante un dispositivo llamado Linksys SPA3102. Otra opción es utilizar un Smartphone, que también puede funcionar como teléfono VoIP.

Page 13: Proyecto-Víctor-Manuel-Rodríguez-García

5

Page 14: Proyecto-Víctor-Manuel-Rodríguez-García
Page 15: Proyecto-Víctor-Manuel-Rodríguez-García

Asterisk, centralita para una empresa

> Linksys SPA3102, este dispositivo hará de intermediario entre nuestro router, nuestro teléfono, y nuestro servidor. Este dispositivo es imprescindible ya que sin él no podremos convertir nuestra línea analógica a digital, es decir, este dispositivo hará uso de nuestra línea de teléfono doméstica y convertirá nuestro teléfono de toda la vida a un teléfono 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 Fundación Raspberry Pi. El diseño incluye un procesador central a 700 Mhz, un procesador gráfico 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

Page 16: Proyecto-Víctor-Manuel-Rodríguez-García
Page 17: Proyecto-Víctor-Manuel-Rodríguez-García

Asterisk, centralita para una empresa

Mapa de RedNuestro mapa de la red quedaría de la siguiente manera:

Archivos de Configuración y DirectoriosDirectorios> /etc/asterisk → Contiene todos los archivos de configuración. > /var/lib/asterisk/sounds/ → Locuciones por defecto de Asterisk. > /var/lib/asterisk/moh → Música 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 buzón de voz. > /usr/lib/asterisk/modules→ Contiene las librerías, aplicaciones y

módulos. Ficheros Cuando modifiquemos algún fichero de configuración es necesario hacer un “reload” desde la consola de asterisk. Los ficheros más importantes o los que manejaremos con más frecuencia son:Proyecto Integrado IES Punta del verde

7

Page 18: Proyecto-Víctor-Manuel-Rodríguez-García
Page 19: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado Asterisk, centralita para una empresaIES Punta del verde

> /etc/asterisk/extensions.conf → También conocido como Dialplan, es el corazón de la aplicación. En él se especifica cómo se va a comportar Asterisk a la hora de recibir una llamada, es decir, redireccionarla a dónde nosotros deseemos tanto extensiones, como menús internos, etc...

> /etc/asterisk/sip.conf → En este fichero se guarda toda la información 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 AsteriskEn la consola de Asterisk se muestra todo lo que está ocurriendo en el momento en nuestra centralita. Desde aquí se puede controlar nuestra aplicación manualmente. Los mensajes que se muestran en esta consola son configurables mediante los archivos de configuración que se han explicado anteriormente. Para acceder a ella debemos poner el comando siguiente:

>> asterisk -r

Esta consola también tiene función de autocompletado, por lo que podemos usar la tecla tabulador.

8

Page 20: Proyecto-Víctor-Manuel-Rodríguez-García
Page 21: Proyecto-Víctor-Manuel-Rodríguez-García

Asterisk, centralita para una empresa

Para realizar un “reload” y que nos guarde los cambios realizados en algún archivo de configuración podríamos lo siguiente:

>> reload

Otros comandos muy usados en la consola de Asterisk son los siguientes:

>> set verbose X → Configurar el nivel de información que queremos que muestre la consola. Dónde “X” es el número de líneas de información. >> 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 información 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 atProyecto Integrado IES Punta del verde

9

Page 22: Proyecto-Víctor-Manuel-Rodríguez-García
Page 23: Proyecto-Víctor-Manuel-Rodríguez-García

Proyecto Integrado Asterisk, centralita para una empresaIES 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 línea “verbose” y hemos puesto la cantidad de líneas de información a “10”, por lo que por defecto la consola nos mostrará un nivel de información de unas 10 líneas. Todo lo que modifiquemos en este archivo se aplicará por defecto cada vez que ejecutemos la consola de Asterisk.

Servicios del SistemaLa instalación de Asterisk, instala un solo servicio, que mediante la consola de la aplicación 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.

Instalación de AsteriskPoco 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 válido desde una instalación pequeña (como la mía) hasta una gran multinacional con sedes por todo el mundo, miles de extensiones y conexiones con el mundo.

10