Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Elastix slide book-ect

187 views

Published on

ELASTIX ECE

Published in: Technology
  • Be the first to comment

Elastix slide book-ect

  1. 1. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   INSTALACIÓN DE ELASTIX Instalando desde CD  Es recomendable instalar la última versión estable de Elastix disponible en la página del proyecto.  Para realizar la instalación desde CD, debemos descargar el archivo de imagen (con extensión iso), y grabarlo en un disco en blanco.  Es importante grabar el iso usando software especializado para este propósito.  muchas veces caemos en el error de descomprimir la imagen y copiar la estructura de directorios resultantes en un disco, con lo cual NO obtendremos un CD de arranque.  Una vez que tenemos un CD de instalación creado, lo insertamos en la unidad y procedemos a encender el equipo.  Es importante verificar que el computador esté configurado para arrancar desde CD.  Esto puede ser configurado en el BIOS.  El instalador de Elastix aparecerá en nuestra pantalla.  Una vez que tenemos un CD de instalación creado, lo insertamos en la unidad y procedemos a encender el equipo.  Es importante verificar que el computador esté configurado para arrancar desde CD.  Esto puede ser configurado en el BIOS.  El instalador de Elastix aparecerá en nuestra pantalla.  Para realizar una instalación estándar basta con presionar ENTER Advertencia: La instalación estándar borrará completamente el disco duro. 1
  2. 2. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Seleccionamos el idioma para la instalación.  El instalador nos pide seleccionar el esquema del teclado  Seleccionamos el tipo de particionamiento (primera opción). 2
  3. 3. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Confirmamos que se remuevan todas las particiones (Sí).  Revisar/modificar la capa de partiticiones (No).  Configurar interfaces de red (Sí). 3
  4. 4. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Seleccionar que se active al inicio y soporte para IPv4.  Seleccionar ya sea DHCP o configuración manual.  Si se utiliza configuración manual, ingresar la dirección y la máscara. 4
  5. 5. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Ingresar la dirección IP de la puerta de enlace y del servidor DNS.  Ingresar el nombre del host.  Seleccionamos el huso horario adecuado. 5
  6. 6. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Ingresar la contraseña del usuario root  Esperar hasta que finalice la instalación automática de paquetes.  Ingresamos la contraseña para el usuario root de MySQL (no confundir con usuario root de linux). 6
  7. 7. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Ingresar nuevamente la contraseña de root de MySQL.  Ingresar la contraseña para el usuario ‘admin’ del web GUI de Elastix. Nota: Esta será además la contraseña para los siguientes servicios: FreePBX, Vtiger, A2Billing y FOP. Aunque no se menciona esta contraseña es además la contraseña del AMI admin.  Ingresar nuevamente la contraseña ‘admin’ de Elastix. 7
  8. 8. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    La instalación ha sido completada, podremos ingresar a nuestro sistema con usuario root y su contraseña ingresada durante la instalación. Instalación con soft RAID  RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para ofrecer redundancia de información.  Dependiendo el número de discos que se disponga y la forma en la que se configure el arreglo, se pueden obtener diferentes niveles de RAID.  El que se verá a continuación es de nivel 1, en el que intervienen dos discos duros y uno es espejo del otro.  RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para ofrecer redundancia de información.  Dependiendo el número de discos que se disponga y la forma en la que se configure el arreglo, se pueden obtener diferentes niveles de RAID.  El que se verá a continuación es de nivel 1, en el que intervienen dos discos duros y uno es espejo del otro.  RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para ofrecer redundancia de información.  Dependiendo el número de discos que se disponga y la forma en la que se configure el arreglo, se pueden obtener diferentes niveles de RAID.  El que se verá a continuación es de nivel 1, en el que intervienen dos discos duros y uno es espejo del otro. 8
  9. 9. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Observaremos ambos discos, debemos crear tres (3) particiones en cada uno.  Seleccione la opción "Nuevo”  Tamaños de disco:  1era partición = 100MB para el boot,  2da partición = el doble del tamaño del RAM del sistema para swap (en este ejemplo el RAM es 512 MB),  3ra partición = debe ser completada con el espacio disponible. 9
  10. 10. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    En cada partición debemos seleccionar "software RAID" como el "Tipo de sistema de archivos".  Recuerde seleccionar la correspondiente "Unidad admisible", en la imagen del ejemplo es "hda". Imagen del proceso para la segunda partición (swap) Imagen del proceso para la tercera partición (seleccionamos ocupar todo el espacio disponible)  Al final tendremos 3 particiones en cada disco.  No se preocupe por el orden de cada partición se re-ordenarán cuando configuremos el RAID. 10
  11. 11. Capítulo 1 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Para iniciar la partición en espejos debemos seleccionar la opción "RAID".  Aquí seleccionaremos las particiones que serán miembros del RAID, el "Tipo de sistema de archivos" y el "Punto de montaje".  Punto de Montaje: partición boot = /boot, swap = no coloque nada, partición "root" = use /  Tipo de sistema de archivos: partición boot = seleccione ext3, partición swap = seleccione swap, y seleccione ext3 para la partición "root".  Niveles de RAID: Seleccione RAID1 para todas las particiones.  Miembros del RAID: Escoja el par de particiones que han sido creadas en cada uno de los discos respectivamente. Ejemplo del espejo en la partición boot. Nota: Es importante seleccionar los particiones correspondientes en la sección “Miembros del RAID”. En este ejemplo hda2 y sda2 son las particiones con 100MB para boot.  Las configuraciones de RAID aparecerán sobre las particiones previamente creadas.  Cuando finalice seleccione "Aceptar" para continuar con la instalación normalmente. 11
  12. 12. Capítulo 2 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   VIRTUALIZACIÓN Virtualización  Una máquina virtual simula un sistema físico con características de hardware específicas.  En un solo servidor se pueden implementar varias máquinas virtuales para cumplir varios servicios.  Esto nos permite la reutilización de hardware existente, lo cual implica ahorro de recursos.  Nos permite además reducción de costos y una administración global centralizada y simple.  En un solo espacio podemos tener varios servidores virtuales sin incrementar el consumo de energía.  Eso ha hecho muy populares los servicios de Hosted PBX, debido a la posibilidad de virtualizar Elastix en lugar de disponer de un servidor por cliente.  Permite crear un ambiente de pruebas sin afectar la operación real, lo cual es útil previo a una actualización y nos será útil en este curso para probar el potencial de Elastix. 12
  13. 13. Capítulo 2 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Entre las alternativas que revisaremos están:  VMware  VirtualBox  XEN VMware  Una máquina virtual simula un sistema físico con características de hardware específicas.  En un solo servidor se pueden implementar varias máquinas virtuales para cumplir varios servicios.  Esto nos permite la reutilización de hardware existente, lo cual implica ahorro de recursos.  Nos permite además reducción de costos y una administración global centralizada y simple.  VMware Player está creada para usuarios sin licencia para usar Workstation.  Inicialmente no permitía crear máquinas virtuales, pero esta limitación fue removida en la versión 3.0.1. Está disponible para Windows y Linux.  VMware Server es distribuida gratuitamente para uso no comercial y es la alternativa para servidores. Se recomienda para pruebas y no para servidores en producción  Página web: http://www.vmware.com/ VirtualBox  Es un software de virtualización para arquitecturas x86/amd64 desarrollado actualmente por Oracle Corporation.  Funciona bajo el concepto de sistemas tipo Guest instalados en un sistema operativo host, cada uno con su propio ambiente virtual  Sistemas operativos soportados en modo anfitrión: GNU/Linux, Mac OS X, OS/2, Microsoft Windows y Solaris/OpenSolaris.  Sistemas operativos Guest: FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS, entre otros. 13
  14. 14. Capítulo 2 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Es un software de virtualización para arquitecturas x86/amd64 desarrollado actualmente por Oracle Corporation.  Funciona bajo el concepto de sistemas tipo Guest instalados en un sistema operativo host, cada uno con su propio ambiente virtual  Sistemas operativos soportados en modo anfitrión: GNU/Linux, Mac OS X, OS/2, Microsoft Windows y Solaris/OpenSolaris.  Sistemas operativos Guest: FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS, entre otros.  Es un software de virtualización para arquitecturas x86/amd64 desarrollado actualmente por Oracle Corporation.  Funciona bajo el concepto de sistemas tipo Guest instalados en un sistema operativo host, cada uno con su propio ambiente virtual  Sistemas operativos soportados en modo anfitrión: GNU/Linux, Mac OS X, OS/2, Microsoft Windows y Solaris/OpenSolaris.  Sistemas operativos Guest: FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS, entre otros. Redes en VirtualBox  Es necesario configurar el tipo de red que utilizará Elastix. Existen 6 tipos de redes  No conectado: simula una computadora sin cable de red  NAT: Funciona sólo para acceder a redes externas pero no se puede acceder a la máquina remotamente  Adaptador puente: Simula redes. Cuando está habilitado, VirtualBox conecta uno de los dispositivos de red e intercambia paquetes directamente.  Red interna: Sirve para simular redes con otras máquinas virtuales  Adaptador solo-anfitrión: La máquina virtual es vista como otra máquina en la red.  Controlador genérico: usado para compartir una interfaz de red genérica. Un ejemplo es la interconexión entre dos máquinas virtuales ubicados en diferentes hosts.  Con Elastix podemos usar: Adaptador puente y Adaptador solo anfitrión. Para este curso utilizaremos Adaptador puente. 14
  15. 15. Capítulo 2 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   XEN  Es la alternativa más eficiente de virtualización  Solución recomendada para servidores por su eficiencia  Es lo que utilizan la mayoría de proveedores de hosting de VPS con Elastix  Existe 2 tipos de virtualización: completa y para-virtual  Permite hacer migraciones de máquinas virtuales en caliente  Es software libre: http://www.xen.org/ Arquitectura en XEN  XEN se comunica directamente con el hardware a través de un componente llamado Hipervisor.  Cuando XEN arranca levanta automáticamente un dominio conocido como dom0  Dom0 es un dominio privilegiado donde se administran otros dominios.  Los demás dominios son conocidos como domU Instalar Elastix en XEN  Existen varias formas en las que se puede instalar Elastix con XEN  Se necesita un servidor XEN sobre el cual se instalará Elastix. CentOS es muy buena opción para este servidor  Se puede instalar con virtualización completa o paravirtual  Se puede instalar sobre una máquina virtual de CentOS 5.x. Esto es muy útil si tenemos un servidor VPS remoto con CentOS cargado 15
  16. 16. Capítulo 3 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   LINUX PARA ADMINISTRADORES DE ELASTIX Introducción  GNU/Linux es un sistema operativo de software libre  Asterisk y Elastix funcionan sobre Linux  Para administrar una central Elastix no es necesario ser experto en Linux pero es muy útil conocer del tema.  Es la interfaz de texto entre el usuario y el sistema operativo  Se puede acceder localmente  Se puede acceder remotamente a través del protocolo SSH (Secure Shell)  El SSH es un protocolo encriptado. Línea de Comandos en Linux  Ejemplo terminal Linux de Elastix:. 16
  17. 17. Capítulo 3 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Comandos Básicos Sistema de Archivos  Estructura de árbol de directorios  Todos empiezan en la raíz → /  Directorios importantes en Elastix: o /etc/asterisk: guarda la configuración de Asterisk o /var/www/html: se encuentra Elastix o /var/lib/mysql: las bases de datos de mysql o /var/log: los archivos de log. Comando Descripción ls Lista los archivos en el directorio actual. ls -la Lista los archivos y sus atributos cd Cambia de directorio cd .. Cambia el directorio padre cat Muestra el contenido de un archivo en la pantalla pwd Muestra la ruta actual cp Copia un archivo o grupo de ellos. mv Mueve un archivo. También se lo usa para renombrar archivos. rm Elimina un archivo tail -f filename Muestra las últimas líneas de un archivo mkdir Crea un directorio tar zxvf filename.tar.gz Descomprime un archivo .tar.gz top Muestra un reporte en tiempo real de los procesos que se ejecutan en el sistema. Puede ser ordenado por consumo de memoria o CPU. Muy útil para diagnóstico. find Permite buscar archivos vim Programa para ver y editar archivos de texto plano. ifconfig Muestra información de las interfaces de red y permite modificarlas temporalmente. ps -aux Muestra un reporte de los procesos que se están ejecutando en el servidor. reboot Reinicia el equipo shutdown -h now Apaga el equipo   17
  18. 18. Capítulo 3 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Permisos  Todo archivo pertenece a un usuario y a un grupo  Los permisos son 3 niveles: usuario, grupo, otros  Los permisos pueden ser de lectura (r), escritura(w) y ejecución(x)  Ejemplo: rwxrw-rw- ; juan - elastix - archivo o En este caso el archivo pertenece a juan y al grupo elastix. Los permisos para juan son de rwx, grupo elastix rw y otros rw Permisos: Notación Octogonal  Los permisos se pueden representar con números  r=4, w=2 y x=1  Ejemplos: o 766=rwxrw-rw- o 600= rw------- o 644=rw-r--r-- RPM  Forma tradicional de instalar paquetes  Se usa para instalar y desinstalar paquetes o Instalar: rpm -ivh paquete.rpm o Desinstalar: rpm -e paquete  Consultas sobre paquetes instalados  Todos paquetes instalados: rpm -qa  Todos los paquetes que contengan asterisk: o rpm -qa | grep asterisk  Rpm tiene problemas de dependencias 18
  19. 19. Capítulo 3 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   YUM  Maneja la instalación de paquetes desde repositorios  Los repositorios pueden estar en Internet o en la lan  No existe problemas de dependencias  Ejemplos de uso: o Instala paquete: yum install paquete o Borra paquete: yum remove paquete o Actualiza paquete: yum update paquete o Actualiza todo el sistema operativo: yum update 19
  20. 20. Capítulo 4 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   ELASTIX: GENERALIDADES ¿Qué es Elastix?  Una solución de servidor de comunicaciones unificadas: telefonía, fax, IM, email, colaboración.  Es Software Libre.  Se distribuye como una imagen ISO para quemar en CD.  Incluye instalador.  Basada en Linux (CentOS), Asterisk, FreePBX, Hylafax, Postfix y Openfire.  Además de otros paquetes de código abierto.  Rápido crecimiento, 1’000.000 descargas hasta Noviembre de 2010.  Reconocimiento con el premio INTERNET TELEPHONY product of the year Award años 2011 y 2012 ¿Servidor de Comunicaciones Unificadas?  Integración de diferentes sistemas de comunicaciones.  Por ejemplo, el teléfono es contestado por Asterisk (telefonía) y en caso de resultar un documento de fax le pasa el control a Hylafax (FAX) quien recibe el documento y lo envía por email a través de Postfix a su destinatario.  Mejora la productividad: ahorro de tiempo, papel, mejor acceso a la información compartida. Esquema General 20
  21. 21. Capítulo 4 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Breve historia del Proyecto  Lanzado en Marzo de 2006 por la compañía PaloSanto Solutions de Ecuador.  Inicialmente no era una distro sino una interfaz de reportación para llamadas de Asterisk  En Diciembre de 2006 se lanza la primera versión en formato distro. Ganó popularidad por su usabilidad.  En 2007 y 2008 el proyecto estuvo nominado a los premios CCA de SourceForge.  Actualmente es una de las distros basadas en Asterisk líder del mercado. Características de Elastix  Algunas de las características y funcionalidades de Elastix son:  Voicemail  Fax-a-email  Soporte para soft phones  Consola de operador  IVR (recepcionista digital)  Interfaz de configuración Web  Sala de conferencias  Music-on-hold con soporte mp3s  Campañas de tele-mercadeo  Grabación de llamadas  Parqueo de llamadas  Call-pickup  Colas de atención  Limitación de tiempo de llamada  Least Cost Routing  Roaming de extensiones  Interconexión entre PBXs  Identificación del llamante  CRM incluido Reportación avanzada  Personalización y desarrollo  Para un mayor detalle de todas las funcionalidades consulte Elastix.org Licenciamiento de Elastix  Elastix es software libre licenciado bajo GPL versión 2:  http://elx.ec/gpl2  Esto quiere decir que se puede copiar, distribuir y modificar el software libremente.  No existen versiones cerradas ni doble licenciamiento (como es el caso de Asterisk o MySQL).  Por si todavía existe la duda: Elastix puede ser descargado sin costo alguno. 21
  22. 22. Capítulo 4 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Interfaz Web de administración Menú System Menú PBX Menú Email Menú Fax 22
  23. 23. Capítulo 4 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Menú Reports Menú extendido Interfaz Web de administración  Módulo de Add-ons: Funcionalidad adicional disponible en un sólo clic www.elastix.org  Sitio Web oficial del proyecto.  Mantenido por PaloSanto Solutions y la comunidad Elastix.  Aquí podemos encontrar:  Foros  Wiki (Documentación)  Chat en vivo IRC  Suscripción a listas de correo  Links de descargas  Información Comercial y Proyectos  Eventos 23
  24. 24. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   FUNCIONAMIENTO INTERNO DE FREEPBX Fundamentos de FreePBX  Software de configuración de Asterisk  Integrado en la distribución Elastix  Genera los archivos de configuración de Asterisk o Incluye el plan de marcado o Basados en la configuración ingresada por el usuario  Dos pasos para la configuración: o Guarda la información en una base de datos de configuración. o En el caso de Elastix el motor de base de datos usado es MySQL. o Convierte la información de la base de datos en archivos de configuración a través de parsing. 24
  25. 25. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Organización de archivos Configuración de FreePBX amportal.conf:  Archivo de texto plano, leído por FreePBX.  Información general de configuración.  Editable en caso de requerirse.  Información de acceso a la base de datos.  Tipo de autenticación para usuarios Web.  Documentación para manejo de opciones y directivas de configuración. retrieve.conf:  Escrito en PHP  Genera el plan de marcado a partir de la información almacenada en la base de datos. Directorio Descripción /var/www/html/admin/ Directorio principal del GUI de FreePBX. /var/www/html/panel/ Directorio del Flash Operator Panel. /etc/asterisk/ Directorio de archivos de configuración de Asterisk. /var/lib/asterisk/agi-bin/ Directorio de scripts AGI de Asterisk /var/lib/asterisk/bin/ Directorio de binarios, links simbólicos a carpetas de módulos. /usr/local/sbin/ Directorio con script amportal, manipulado solo por root. /var/lib/asterisk/sounds/ Directorio con sonidos del plan de marcado. /var/lib/asterisk/sounds/custom/ Directorio con sonidos creados por el usuario. /var/spool/asterisk/voicemail/ Directorio de almacenamiento de voicemails. /var/spool/asterisk/monitor/ Directorio de almacenamiento de grabaciones de voz. 25
  26. 26. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Programa ejecutable desde la línea de comandos.  Se ejecuta a través de un script PHP, cada vez que se da clic en la barra roja de FreePBX (”Apply Configuration Changes Here”).  Esta operación será muy frecuente en la mayoría de las configuraciones que realicemos en el menú de PBX. dialparties.agi:  Script AGI escrito en PHP  Se ejecuta desde el plan de marcado cuando se realiza una llamada.  Revisa el estado de la extensión y otras configuraciones de la misma (call forward, call waiting, do not disturb).  Toma acciones a partir del estado y la configuración de la extensión.  dialparties.agi consulta la base de datos de Asterisk ubicada en /var/lib/asterisk/astdb/  Se puede ejecutar desde el CLI (Command Line Interpreter) de asterisk  dialparties.agi está ubicado en /var/lib/asterisk/agi-bin/dialparties.agi Módulo de FreePBX: Estructura Nombre del Archivo Descripción module.xml Información del módulo en formato XML. page.nombredelmodulo.php Archivo principal del módulo escrito en PHP. functions.inc.php Librería especial con funciones PHP. install.sql Contiene sentencias SQL que se ejecutan sobre la base de datos al instalar el módulo. uninstall.sql Contiene sentencias SQL para desinstalar el módulo. install.php Script PHP que se ejecuta al momento de instalar el módulo. uninstall.php Script PHP que se ejecuta al momento de desinstalar el módulo 26
  27. 27. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   ¿Cómo se embebe en Elastix?  Para poder embeber freePBX en Elastix se desarrolló un código WRAPPER  Este código se acopla los módulos de freePBX como un módulo Elastix.  Este desarrollo consiste en: o Módulo pbxadmin de Elastix o Archivo /var/www/html/config.php Módulo pbxadmin de Elastix  Encargado de obtener el contenido de módulos de freePBX por medio de inclusión de archivos de PHP.  El index.php de éste módulo (Elastix) es muy parecido al index de freePBX (llamado config.php), pero quitando todos los estilos propios de freePBX.  Contiene un archivo javascript (libfreepbx.javascripts.js) que es una copia mínima del que esta ubicado dentro del código de freePBX para mantener las acciones que se dan en la GUI Archivo /var/www/html/config.php  Este archivo recibe las peticiones hechas desde módulos de freePBX.  Lo que hace es redireccionar las peticiones al módulo pbxadmin de Elastix e incluir el index.php del framework Elastix. Gráfico ilustrativo de FreePBX embebido config.php Index.php Framework Elastix Módulo pbxadmin de Elastix Redirecciona las peticiones a Redirecciona a Obtiene el contenido de módulos de FreePBX pero sin estilos Módulos de FreePBX Hacen las peticiones al config.php ubicado en la raíz WRAPPER 1 2 3 4 27
  28. 28. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   FUNCIONAMIENTO INTERNO DE FREEPBX Fundamentos de FreePBX  Software de configuración de Asterisk  Integrado en la distribución Elastix  Genera los archivos de configuración de Asterisk o Incluye el plan de marcado o Basados en la configuración ingresada por el usuario  Dos pasos para la configuración: o Guarda la información en una base de datos de configuración. o En el caso de Elastix el motor de base de datos usado es MySQL. o Convierte la información de la base de datos en archivos de configuración a través de parsing. 28
  29. 29. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Organización de archivos Configuración de FreePBX amportal.conf:  Archivo de texto plano, leído por FreePBX.  Información general de configuración.  Editable en caso de requerirse.  Información de acceso a la base de datos.  Tipo de autenticación para usuarios Web.  Documentación para manejo de opciones y directivas de configuración. retrieve.conf:  Escrito en PHP  Genera el plan de marcado a partir de la información almacenada en la base de datos. Directorio Descripción /var/www/html/admin/ Directorio principal del GUI de FreePBX. /var/www/html/panel/ Directorio del Flash Operator Panel. /etc/asterisk/ Directorio de archivos de configuración de Asterisk. /var/lib/asterisk/agi-bin/ Directorio de scripts AGI de Asterisk /var/lib/asterisk/bin/ Directorio de binarios, links simbólicos a carpetas de módulos. /usr/local/sbin/ Directorio con script amportal, manipulado solo por root. /var/lib/asterisk/sounds/ Directorio con sonidos del plan de marcado. /var/lib/asterisk/sounds/custom/ Directorio con sonidos creados por el usuario. /var/spool/asterisk/voicemail/ Directorio de almacenamiento de voicemails. /var/spool/asterisk/monitor/ Directorio de almacenamiento de grabaciones de voz. 29
  30. 30. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Programa ejecutable desde la línea de comandos.  Se ejecuta a través de un script PHP, cada vez que se da clic en la barra roja de FreePBX (”Apply Configuration Changes Here”).  Esta operación será muy frecuente en la mayoría de las configuraciones que realicemos en el menú de PBX. dialparties.agi:  Script AGI escrito en PHP  Se ejecuta desde el plan de marcado cuando se realiza una llamada.  Revisa el estado de la extensión y otras configuraciones de la misma (call forward, call waiting, do not disturb).  Toma acciones a partir del estado y la configuración de la extensión.  dialparties.agi consulta la base de datos de Asterisk ubicada en /var/lib/asterisk/astdb/  Se puede ejecutar desde el CLI (Command Line Interpreter) de asterisk  dialparties.agi está ubicado en /var/lib/asterisk/agi-bin/dialparties.agi Módulo de FreePBX: Estructura Nombre del Archivo Descripción module.xml Información del módulo en formato XML. page.nombredelmodulo.php Archivo principal del módulo escrito en PHP. functions.inc.php Librería especial con funciones PHP. install.sql Contiene sentencias SQL que se ejecutan sobre la base de datos al instalar el módulo. uninstall.sql Contiene sentencias SQL para desinstalar el módulo. install.php Script PHP que se ejecuta al momento de instalar el módulo. uninstall.php Script PHP que se ejecuta al momento de desinstalar el módulo 30
  31. 31. Capítulo 5 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   ¿Cómo se embebe en Elastix?  Para poder embeber freePBX en Elastix se desarrolló un código WRAPPER  Este código se acopla los módulos de freePBX como un módulo Elastix.  Este desarrollo consiste en: o Módulo pbxadmin de Elastix o Archivo /var/www/html/config.php Módulo pbxadmin de Elastix  Encargado de obtener el contenido de módulos de freePBX por medio de inclusión de archivos de PHP.  El index.php de éste módulo (Elastix) es muy parecido al index de freePBX (llamado config.php), pero quitando todos los estilos propios de freePBX.  Contiene un archivo javascript (libfreepbx.javascripts.js) que es una copia mínima del que esta ubicado dentro del código de freePBX para mantener las acciones que se dan en la GUI Archivo /var/www/html/config.php  Este archivo recibe las peticiones hechas desde módulos de freePBX.  Lo que hace es redireccionar las peticiones al módulo pbxadmin de Elastix e incluir el index.php del framework Elastix. Gráfico ilustrativo de FreePBX embebido config.php Index.php Framework Elastix Módulo pbxadmin de Elastix Redirecciona las peticiones a Redirecciona a Obtiene el contenido de módulos de FreePBX pero sin estilos Módulos de FreePBX Hacen las peticiones al config.php ubicado en la raíz WRAPPER 1 2 3 4 31
  32. 32. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   CONFIGURACIÓN BÁSICA DE ELASTIX Ingreso a Elastix vía Web  Abrir en un navegador web: https://ip-servidor (Dirección IP de Elastix)  La primera vez se debe aceptar el certificado digital. De ser necesario establezca un excepción en su navegador web  Ingresar con los siguientes datos  Usuario: admin  Password: La clave de admin registrada durante la instalación Configuración de Red  Elastix utiliza DHCP por defecto  En la mayoría de casos se debe configurar:  IP estático  Puerta de Enlace  DNS  Para configurar se debe acceder al menú Sistema → Red  Los dispositivos de red se reconocen como ethernet1, ethernet2, etc... 32
  33. 33. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Creando una extensión  Se pueden crear extensiones: sip, iax, zap, dahdi y custom  SIP: protocolo estándar para terminales de voz/ip. Soportado por la mayoría de teléfonos de ip  IAX: Protocolo propio de Asterisk y no muy difundido. Se comporta mejor que sip en ambientes nat  Zap: Usada para extensiones análogas o tradicionales  dahdi: Usada para extensiones análogas o tradicionales  Custom: Se puede utilizar para opciones avanzadas. Por ejemplo mapear una línea externa a una extensión Ejemplo para crear extensión SIP  Para crear una extensión ingrese a:  PBX → PBX Configuration → extensiones  Seleccione: Generic SIP Device  Como mínimo debe ingresar: número de extensión, display name y el secret  El mode DTMF (dtmfmode) de la extensión y teléfono debe ser el mismo.  El dtmfmode predeterminado es: rfc2833  Otras opciones para el modo rfc son:  info  inband  auto 33
  34. 34. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Ejemplo: Configuración de Softphone  La configuración de un teléfono IP de software debe incluir por lo menos: el usuario (normalmente la extensión), el password (secret) y la dirección IP del servidor Elastix.  En la gráfica: configuración de cuenta en el softphone Zoiper Configuraciones generales  Configuraciones importantes  Opciones de marcado: Se definen opciones como transferencia de llamada y grabación de llamadas  Company Directory: Para acceder al directorio telefónico desde un ivr con *411 o #  Security Settings: No permite llamadas sip anónimas  Actualizaciones: Bloqueada por defecto Colas  Agrupan a varias extensiones conocidas como agentes  Agentes estáticos o dinámicos  Existen varias Estrategias de marcado:  Sonar todos: Timbra a todos los miembros de la cola  Agente con última llamada más antigua: Timbra al agente que fue llamado menos recientemente  Agente con menos llamadas: Timbra al agente que menos llamadas a contestado  Estrategias de marcado:  Aleatorio: Timbra aleatoriamente  Con memoria: Timbra a cada agente de manera secuencial  Linear: Timbra a los agentes en el orden especificado 34
  35. 35. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Wrandom: Timbra las extensiones de los agentes e manera aleatoria pero utilizando una penalidad como medida de probabilidad. Colas: configuración básica  Queue number: El número por el que se podrá llamar a la extensión  Queue name: El nombre de la cola que usaremos para identificar en la interfaz administrativa  Queue password: Clave que deberá ingresar un agente dinámico  CID name prefix: Como un agente puede hacer login en varias colas al mismo tiempo, es útil colocarle un prefijo al Caller ID para que cuando el agente vea la llamada entrante en el teléfono sepa a que cola pertenece la llamada.  Static Agents: Se lista las extensiones a agentes y su prioridad en la cola.  Max callers: El número máximo de personas que esperan en una cola si todos los agentes están ocupados.  Join Empty: Se puede permitir que la cola funcione sin agentes. No se recomienda  Leave when empty: si se pone en yes, los usuarios que estén en espera en la cola serán removidos de la misma si todos los agentes abandonan la cola.  Ring strategy: Existen 6 tipos de estrategias: ringall, leastrecent, fewestcalls, random, rrmemory, linear, wrandom.  Wrap-up-time: Tiempo entre llamadas exitosas por agente  Call Recording: Opción para grabar llamadas  Fail Over Destination: Destino a donde van las llamadas entrantes no contestadas IVR  Un IVR funciona como una recepcionista digital  Es necesario grabar o subir sonidos al servidor antes de configurar el IVR  Se pueden tener tantos IVR como sean necesarios  Para que sean accesibles desde las troncales se deben configurar rutas entrantes IVR: Grabar o subir sonido  Para grabar o subir un sonido se debe ingresar a PBX → PBX Configuration → Grabaciones del Sistema 35
  36. 36. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Para subir un audio haga clic en “Subir un Archivo”, navegue hasta ubicarlo, selecciónelo y haga clic en “Enviar”.  Continúe al paso 2, asigne un nombre a su grabación y haga clic en “Guardar”.  Archivos WAV deben estar codificados en PCM, 16 bits y a 8000Hz.  Si desea grabar desde un teléfono ingrese el número de extensión y haga clic en “ir”  Marque *77 para grabar el mensaje (desde la extensión que ingresó)  Marque *99 para escuchar la grabación (desde la extensión que ingresó)  Una vez grabado el mensaje asignamos un nombre y hacemos clic en “Guardar” IVR: Grabar o subir sonido  Ir a PBX → PBX Configuration → IVR – clic en Añadir IVR  Configurar las siguientes variables:  Cambiar nombre: Asignamos un nombre al IVR  Tiempo de espera: Tiempo de espera, en segundos, antes de ir al destino por defecto.  Habilitar marcación directa: Permitir marcar directamente a extensiones 36
  37. 37. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Anuncio: Seleccionamos un anuncio previamente grabado o cargado en el sistema.  Se agregan los números de opción y sus destinos.  La opción t sirve para timeout  La opción i para opciones equivocadas  Una vez concluido hacemos clic en “Guardar “  La forma mas sencilla de hacer un IVR es con único Audio que al ser reproducido indique todas las opciones.  Cuando tenemos varios Audios, tendremos que hacer un IVR para cada Audio.  Una vez que tenemos cada IVR creado, los relacionamos en orden colocando t como la opción que enlazará el actual IVR al siguiente (siendo t la opción de timeout)  Es necesario incluir todas las opciones de marcado disponibles en todos los IVRs creados para no tener errores. Salas de Conferencia  Una sala de conferencia permite hablar a 3 o más personas simultáneamente  Se pueden hacer conferencias con extensiones locales y números remotos  Existen 2 tipos de salas de conferencias:  Permanentes y temporales  De ser necesario se pueden proteger con clave Salas de conferencia: Temporales  Se crean por un tiempo definido y desaparecen  Para crear se debe ingresar a PBX → Conference  Ejemplo de configuración: 37
  38. 38. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Salas de conferencia: Estáticas  Se crean para uso permanente  Ejemplo de Configuración: Ir a PBX → PBX Configuration → Conferencias  Número de conferencia: la extensión a la que marcaremos para acceder.  Nombre de la conferencia: Un nombre referencial  PIN de usuario: Clave para acceso a la conferencia (opcional)  PIN de administración: Necesaria únicamente si se selecciona la opción esperar al administrador.  Opciones de la conferencia 38
  39. 39. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Parqueo de llamadas  Sirve para enviar las llamadas a un lugar temporal cuando el destino no es conocido.  Esto permite que sean recuperadas desde otra extensión.  La llamada es transferida desde una extensión inicial a un estacionamiento o parking slot.  Después puede ser recuperada desde otra locación marcando un número asignado.  Para crear un estacionamiento ingrese a:  PBX → PBX Configuration → Estacionamiento  La extensión de marcado para enviar una llamada a aparcamiento es por defecto 70.  El tiempo de configuración para espera en el estacionamiento va de 15 segundos a 10 minutos.  El contexto de aparcamiento por defecto es: parkedcalls. Esto no debería ser cambiado.  Al activar la opción de estacionamiento es necesario configurar el destino donde deben ir las llamadas que no son recuperadas.  Ejemplo:  Durante la llamada marque ## 70 # - Usted escuchará un número de estacionamiento.  Usualmente 71, 72, 73,...n (un máximo de 20).  Luego usted puede recuperar la llamada que puso en el estacionamiento, desde otra extensión ´marcando el número que escuchó en la grabación. 39
  40. 40. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Música en espera  Se puede subir música en formatos wav o mp3 al servidor  Se pueden crear listas de música para asignar en diferentes lugares de nuestra central. Ej. Callcenter, colas, etc..  Para configurar se debe ingresar a PBX → Configuración → Música en Espera.  Es recomendable usar .wav estar codificado en PCM, 16 bits y a 8000Hz. Mp3 podría consumir mas recursos. Bookmark de menúes comunes  Elastix 2.2 permite marcar menúes comunes para fácil.  Esta funcionalidad está localizada en la esquina derecha de cada sección con un icono ★ (estrella).  Para añadir un bookmark basta con hacer clic en ★ Iy la sección se mostrará en el menú de la columna izquierda 40
  41. 41. Capítulo 6 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Flash Operator Panel (1)  Es una aplicación web hecha en flash que permite monitorizar la central  Cumple las funciones de un teléfono de recepcionista  Se pueden transferir llamadas, crear conferencias, etc.  La clave de administración es la que configuramos al instalar Elastix en la clave del admin de la interfaz web.  Flash Operator Panel es un desarrollo de terceros. Elastix introdujo desde la versión 2.0 su propio panel de operador denominado: Elastix Operator Panel.  Pantalla del FOP: 41
  42. 42. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   CONFIGURACIÓN DE TELÉFONO IP ¿Qué es un teléfono IP?  Un teléfono IP es un dispositivo que permite realizar una comunicación de voz utilizando la red IP, ya sea mediante red de área local o a través de Internet.  La tecnología que hace esto posible esto se conoce como VoIP (Voz sobre IP).  El teléfono IP convierte y comprime la señal de la voz en paquetes de datos que serán enviados en la red IP, en lugar de utilizar una conexión de red teléfonica. Configuración de teléfono IP  Para configurar un teléfono IP debemos tener en cuenta tres aspectos: 1. Configuración de red 2. Registro del dispositivo con el servidor Elastix 3. El Teléfono IP apropiado  Para ilustrar de mejor manera los puntos mencionados, utilizaremos un teléfono Yealink SIP-T22P. Configuración de red  La configuración de red puede realizarse por DHCP (lo más común) o se puede asignar una dirección IP estática. DHCP  Mediante esta opción, el teléfono obtendrá una dirección IP desde un setvidor DHCP ubicado dentro de la red local.  Elastix puede ser nuestro servidor DHCP, si no se cuenta con uno en la red local. 42
  43. 43. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   IP estática  Esta opción es útil si deseamos contar contar con un registro exacto de las direcciones IP de cada teléfono.  Es también útil si deseamos colocar los dispositivos IP en segmentos específicos de nuestra red.  En esta opción, además de la IP se necesita ingresar la máscara de red y la puerta de enlace en el caso de que su teléfono se encuentre en otro segmento de red.  La configuración de Teléfonos Yealink SIP-T22P o cualquier otro modelo de Yealink se puede realizar ingresando a un web browser colocando la dirección IP del teléfono.  El usuario y contraseña por defecto en todos los modelos Yealink es: admin Nota: también es posible configurar la extensión del teléfono desde el Endpoint Configurator de Elastix (PBX → Endpoint Configurator) , esto lo veremos más adelante.  Para configurar la extensión debe ir a Cuenta.  El teléfono Yealink SIP-T22P puede ser configurado con 3 cuentas.  La información básica necesaria para la configuración es:  Línea Activa: Habilita la cuenta  Nombre de registro: Extensión de usuario  Nombre de usuario: Extensión de usuario  Contraseña: Secret - La contraseña de la extensión  Servidor SIP: Dirección IP del servidor Elastix  Servidor de salida Proxy: IP del servidor Elastix  Interfaz de administración web de Yealink       43
  44. 44. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Aprovisionamiento  El aprovisionamiento permite la configuración en lote de teléfonos IP.  Este proceso se realiza desde la interfaz web de Elastix y su principal herramienta es el módulo de configuración de Endpoints (Endpoint Configurator).  El proceso adecuado es: 1. Creación de extensiones 2. Habilitar los teléfonos IP para el aprovisionamiento 3. Detección de los dispositivos en la red 4. Asignación de extensiones desde la interfaz. Aprovisionamiento:  Endpoint Configurator  El Endpoint Configurator realiza un scan de la red del servidor Elastix.  En el scan se obtiene información de las direcciones IP y MAC de los dispositivos conectados.  Al obtener la información de todos los dispositivos este trata de identificar los equipos que pudieran ser teléfonos IP.  Luego trata de recabar información del fabricante y modelo para elegir cuáles se pueden configurar.  Actualmente Elastix soporta las siguientes marcas: Aastra, Atcom, AudioCodes, Cisco, Grandstream, Linksys, Polycom, Siemens, Snom, Yealink y Zultys.  Se prevé soportar en versiones teléfonos Escene, Voptech y otros.  Cuando ya se tiene el grupo de teléfonos a configurar se presenta la información de los mismos en la interfaz Web de Elastix.  Se mostrará algo similar a la siguiente imagen: 44
  45. 45. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Para la mayoría de teléfonos, el Endpoint Configurator generará un archivo de configuración que se graba en el directorio /tftboot del servidor Elastix.  Este archivo lleva el nombre mac_address_del_telefono.cfg (ej: 0015651ab08f.cfg).  En este archivo se guarda la configuración de los teléfonos para hacer el aprovisionamiento via tftp desde Elastix Aprovisionamiento:  Habilitación de Teléfonos IP  En la actualidad la mayoría de las marcas de teléfonos IP permiten configuración para aprovisionamiento.  Hay algunas marcas (e.g. Atcom) en que aprovisionamiento no requiere de configuración previa.  Para habilitar teléfonos Yealink, debemos configurar los siguientes parámetros desde la interfaz administrtiva del teléfono:  Ir a: Actualizar → Advanzado o Configurar URL: dirección IP del Servidor Elastix o Check New Config: Encendido.     45
  46. 46. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Aprovisionamiento:  Asignación de extensiones 1. En la interfaz web de Elastix ir a PBX 2. Luego Endpoint Configurator 3. Hacer clic en: Descrubrir Endpoints en esta Network 4. En la columna “Configurar”, marcar la casilla correspondiente 5. En la columna “Modelo”, elegir el modelo correspondiente. 6. En la columna “Extension a asignar”, elegir la extensión que queremos asignar al teléfono. (ya debe haber sido creada previamente) 7. Hacer clic en “Configurar” Reiniciamos el teléfono (accedemos a su interfaz web haciendo clic en la IP correspondiente). Una vez dentro: Upgrade → Basic → Reboot). Nota: Algunos modelos se reinician automáticamente. ¿Qué es un Softphone?  Es un software que hace una simulación de teléfono IP por computadora.  Es decir, permite usar la computadora para hacer llamadas a otros softphones, teléfonos IP o a otros teléfonos convencionales analógicos. 46
  47. 47. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Configurando un Softphone  Presionamos el botón con la figura de la herramienta y accedemos al menú de opciones.  Allí veremos una pantalla con opciones para configurar nuevas extensiones SIP y también IAX. Zoiper cuenta con soporte para ambos protocolos.  En nuestro ejemplo configuraremos una extensión SIP. Usuario: 5678 Contraseña: 5678. X-Lite Counterpath Zoiper Softphone 47
  48. 48. Capítulo 7 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    La información requerida es: o Domain: La IP o nombre de dominio del servidor Elastix. o Username: 5678 o Password: 5678 o Caller ID Name: El nombre que aparecerá en los teléfonos que reciban nuestras llamadas.  Después de llenar la información hacemos clic en OK.  Una vez que volvemos a la pantalla de inicio de Zoiper hacemos clic en register.  Si el Zoiper se registra correctamente veremos que junto al nombre de nuestra cuenta “Test” aparecerá la palabra “Registered”. 48
  49. 49. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   CONFIGURACIÓN DE HARDWARE Tipos de tarjetería  Esta tarjetería está disponible tanto para interfaces telefónicas analógicas como digitales.  Dentro de cada una de estas categorías existen las siguientes sub-categorías: EHCP : Elastix Hardware Certification Program  El Equipo de Desarrollo Elastix trabaja con varios fabricantes para incluir los controladores de su hardware.  Además Elastix cuenta con un programa que pone a prueba toda la funcionalidad para certificar la interoperabilidad con el software.  Este programa es conocido como Elastix Hardware Certification Program o EHCP por sus siglas en inglés.  Hay muchos modelos y fabricantes de tarjetas compatibles e incluidos en la distro. Fabricantes soportados  Elastix ha probado el soporte para muchos modelos y fabricantes de tarjetería. Los siguientes son los modelos soportados oficialmente a la fecha: Analog: FXO FXS Digital: E1/T1/J1 BRI 49
  50. 50. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Hardware modular  Existen fabricantes que diseñan su hardware de manera modular, de tal forma que pueda ser expandible. Instalando una tarjeta de telefonía  Esto no involucra ninguna tarea complicada, solo las precauciones obvias al instalar tarjetas electrónicas en un computador.  Luego de encender el equipo podemos ir a consola y ejecutar el comando lspci para ver el hardware enlistado. Nota: En caso de instalar hardware FXS es muy común que se requiera conectar un cable de poder a la tarjeta pues hay que recordar que las interfaces FXS deben proveer potencia eléctrica a los dispositivos que se conecten a ella. Detección de hardware  Una vez que la tarjetería ha sido instalada es hora de detectarla.  En versiones muy antiguas de Elastix esta tarea se hacía manualmente ejecutando un comando desde la consola del equipo. Puertos ranuras para módulos Módulo FXS (verde) Módulo FXO (rojo) Conexión Fuente de alimentación Sangoma TMD Card Model A20101 50
  51. 51. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Actualmente se cuenta con una interfaz Web que detecta el hardware automáticamente y nos muestra gráficamente el hardware detectado.  Esta opción podrá encontrarse en el Menú System → Hardware Detector.  Para detectar una tarjeta hacemos clic en “Avanzado” y seleccionamos la opción Reemplazar el archivo chan_dahdi.conf.  Después debemos dar clic en Detect New Hardware y después de algunos segundos, el proceso estará finalizado. Tarjetas Digitales  Para este modelo hemos seleccionado una tarjeta Sangoma modelo A102. Este hardware utiliza Wanpipe el cual usa sus propios drivers para comunicarse con Asterisk.  Para detectar la tarjeta debemos dar clic en “Avanzado” y seleccionar: Reemplazar el archivo chan_dahdi.conf y Detección de Hardware Sangoma.  Después de esto podemos dar clic en Detectar Nuevo Hardware.  Para la detección de tarjetas que usan Dahdi simplemente se debe seleccionar la opción “Reemplazar el archivo chan_dahdi.conf” y después clic en “Detectar Nuevo Hardware”.  Es importante verificar que la tarjeta esta dentro de la lista de hardware certificado de Elastix, ECHP.  El reemplazo de chan_dahdi.conf permite al sistema detectar la tarjeta de forma permanente. 51
  52. 52. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Este acción sobre escribe los siguientes archivos: /etc/asterisk/chan_dahdi.conf /etc/dahdi/system.conf /asterisk/dahdi-channels.conf  Si ya se tiene una tarjeta instalada y deseamos detectar una nueva tarjeta, es recomendable realizar un respaldo de estos archivos para permitir incluir estas configuraciones previas en los nuevos archivos. Configuración Span  La herramienta de detección de hardware basada en Web que viene con Elastix nos permite detectar el hardware de manera sencilla.  La herramienta puede configurar exitosamente el hardware digital en muchos casos, sin embargo hay que tener en cuenta que la herramienta realiza su trabajo suponiendo muchos parámetros que pueden diferir de la realidad.  Se puede cambiar estos parámetros usando la interfaz web o mediante consola. A continuación explicaremos como realizar estas configuraciones por consola. Configuración Span: Bajo Nivel  Un span es un grupo de canales digitales.  El span se puede configurar en el archivo /etc/dadhi/system.conf.  Usualmente un span representa un puerto digital de la tarjeta.  Por ejemplo, si la tarjeta contiene 4 puertos E1 entonces usualmente deberíamos definir 4 spans, uno por cada puerto.  Un span define en una sola línea, la cual tiene el siguiente formato: Spannum  Es un identificador numérico único para etiquetar el span. Se debe empezar con el número 1 e ir incrementando este identificador secuencialmente de uno en uno. Timing  Es un dígito que define la forma en la cual se manejará la sincronización del span. 52
  53. 53. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   LBO (Line Build Out)  Es un dígito que representa la longitud del cable entre la tarjeta y el equipo (modem) provisto por la compañía telefónica. Framing  Como recordaremos, los protocolos de comunicación digital T-Carrier y E-Carrier dividen la información en frames, donde cada frame transporta un número determinado de timeslots.  Estos frames pueden ser de diferentes formatos y eso es lo que se define aquí. Coding  Es necesario codificar la información enviada para hacerla menos susceptible a errores. Esto es así porque la propia data se suele usar como fuente de sincronización (o reloj).  Si se transmiten tramas largas de ceros (largos segmentos sin variación de voltaje) se puede perder dicha sincronización.  Después de realizar los cambios en el archivo system.conf, es necesario reiniciar DAHDI. (Asterisk CLI: service dahdi restart)  Después de haber reiniciado DAHDI se ejecuta el comando “lsdahdi”.  Si todo ha sido configurado de forma correcta, se podrá ver las tarjetas configuradas y el respectivo estado de canal. 53
  54. 54. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Configuración Span: Interfaz Web  En la interfaz web tenemos las siguientes opciones: Configuración de Span y Parámetros de Span.  En Parámetros de Span podremos configurar el timing source, LBO, Framing y Coding. También podemos seleccionar el tipo de tarjeta T1/E1 (para tarjetas que soporten modo de selección por software).  En la Configuración de Span podemos seleccionar por cada canal el software de cancelación de eco.  Tarjeta detectada con formato TI  Cambio de formato a E1 Troncalización: chan_dahdi.conf  Asterisk cuenta con un módulo llamado chan_dahdi que sirve para conectarse con los drivers de DAHDI y de esta manera conectar Asterisk con hardware telefónico.  Este módulo se configura a través de un archivo llamado chan_dahdi.conf  En el archivo chan_dahdi.conf básicamente se configura la señalización de los canales de voz y se mapean los canales de Asterisk con los circuitos o líneas telefónicas definidos en el archivo system.conf que configuramos antes.  Estos canales se pueden agrupar en troncales troncales. 54
  55. 55. Capítulo 8 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    La siguiente imagen muestra el archivo chan_dahdi.conf: Signalling  Este parámetro define la señalización de cada canal o grupo de canales.  Lo más común que veremos para circuitos analógicos será fxs_ls y para circuitos digitales pri_cpe. Switchtype  Este parámetro es para circuitos digitales y especifica el tipo de switch PRI usado.  Lo más común es national y euroisdn, dependiendo de en qué país nos encontremos claro está. 55
  56. 56. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   ASTERISK ESSENTIALS ¿Qué es Asterisk?  Es un sistema de telefonía basado en software libre que proporciona todas las funcionalidades que se espera de una central telefónica (PBX).  Esto hace posible conectar un número determinado de teléfonos para hacer llamadas entre sí y conectar a un proveedor de VoIP PSTN.  Asi tambien proveedores PSTN de telefonia digital y analoga usando hardware especializado, esto es tarjetas telefonicas FXO/FXS, ISDN pri/bri, entre otras. Breve Historia de Asterisk  Asterisk fue creado por Mark Spencer quien es su principal desarrollador.  Al ser Software libre, tiene tambien una amplia comunidad de desarrolladores que contribuyen a corregir errores y añadir novedades y funcionalidades.  Mark había creado en 1999 la empresa "Linux Support Services" con el objetivo de dar soporte a usuarios de Linux.  Para ello necesitaba una centralita telefónica, pero ante la imposibilidad de adquirirla dados sus elevados precios, decidió construir una con un PC bajo GNU/Linux, utilizando lenguaje C. Funcionalidad de Asterisk  Asterisk puede funcionar como un sistema IP nativo o uno hibrido, manejando el ruteo de llamadas, interconectando protocolos y transcodificando medios.  Tiene muchas características internas como buzón de voz, conferencias, IVRs, CDRs, distribución automática de llamadas, parqueo, tranferencias, captura, musica en espera  Entre muchas otras funcionalidades.  Asterisk tambien soporta multiples protocolos y codecs. 56
  57. 57. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Asterisk soporta diferentes señalizaciones y protocolos para la interconexion con sistemas de telefonia tradicionales. Encendido y apagado de Asterisk  Asterisk cuenta con scripts ubicados en /etc/rc.d/init.d/asterisk y pordemos iniciarlo con el comando /etc/init.d/asterisk start y detenerlo con /etc/init.d/asterisk stop.  Sin embargo en elastix es recomendable manejar su inicio o apagado con el script amportal, mismo que a su vez llama a otros scripts que inician ademas otros servicios necesarios para ciertas funcionalidades  Su uso es: o amportal start → inicia asterisk o amportal stop → detiene asterisk PROTOCOLOS CODECS IAXTM (Inter-Asterisk Exchange) ADPCM H.323 G.711A/U (A-Law y µ-Law) SIP (Session Initiation Protocol) G.722 MGCP (Media Gateway Control Protocol) G.723.1 SCCP (Cisco® Skynny® ) G.726 G.729 (con una licencia comercial) GSM iLBC Linear LPC-10 Speex Señalización Protocolos PRI E&M 4ESS E&M Wink BRI (ISDN4Linux) Feature Group D DMS100 FXS EuroISDN FXO Lucent 5E GR-303 National ISDN2 Loopstart NFAS Groundstart Kewlstart Soporte para MF y DTMF Señalización Robbed-bit (RBS) MFC-R2 (a través de parches de código) 57
  58. 58. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Estructura de directorios de Asterisk Módulos de Asterisk  Asterisk utiliza módulos para extender su funcionalidad.  Estos módulos residen en la carpeta /usr/lib/asterisk/modules/ (32 bits) /usr/lib64/asterisk/modules/ (64 bits).  Son archivos con extensión .so  Es posible controlar estos módulos desde el archivo modules.conf, en la carpeta /etc/asterisk.  Este archivo controla cuáles módulos se cargan o no (load, noload). Además puede controlar el orden en que se cargan con la opción ”preload”.  Por defecto en elastix se cargan todos los módulos que están en /usr/lib/asterisk/modules/ a no ser que sea especificado en el archivo modules.conf que no lo haga  Ejemplos en el archivo modules.conf: noload => chan_modem.so : Hace que no se carge el módulo. load => format_ogg_vorbis.so : Hace que se carge el módulo. preload => res_config_mysql.so : Hace que se carge primero ese módulo Directorio Descripción /etc/asterisk archivos de configuración de Asterisk /usr/lib/asterisk/modules/ módulos de Asterisk /usr/sbin/ incluye el Binario de Asterisk /var/log/asterisk/ logs de Asterisk /var/lib/asterisk/agi-bin/ AGI scripts /var/lib/asterisk/mohmp3 archivos d audio para Music On Hold /var/lib/asterisk/sounds Incluye sonidos que Asterisk utiliza como prompts de voz /var/spool/asterisk/ archivos generados por Asterisk durante su operación normal (tales como grabaciones y voicemails) /var/run/ archivos PID /var/log/asterisk/ Aquí residen los archivos de log de Asterisk como los CDRs o el /var/log/asterisk/full 58
  59. 59. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   DAHDI  Dahdi es, básicamente, un conjunto de drivers para controlar hardware telefónico, principalmente tarjetas.  Estas tarjetas son como cualquier otra tarjeta de expansión de una computadora pueden usar bahías PCI, puertos USB, etc.  Dahdi tiene su propio archivo de configuración /etc/dahdi/system.conf Historia del proyecto Zaptel  En el año 2000 Jim Dixon lanzó el proyecto Zaptel bajo licencia GPL.  El nombre es una abreviación de Zapata Telephony Project. Lo nombró así en honor a Emiliano Zapata, héroe de la revolución mexicana.  Inicialmente Zaptel contenía drivers para tarjetas Tormenta fabricadas por Zapata Telecom.  Digium comenzó a mejorar los drivers y extender el soporte para nuevos modelos de hardware, entre ellos los que el mismo Digium fabricaba.  Pronto Digium se convirtió en el principal desarrollador de Zaptel. Comunicación Asterisk con DAHDI  Asterisk interactúa con dahdi mediante el modulo chan_dahdi.so, mismo que se controla a través del archivo chan_dahdi.conf.  En este archivo se mapean los puertos fisicos hacia canales tipo DAHDI, estos canales son usados por asterisk. 59
  60. 60. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Archivos de configuración  Los archivos se encuentran en /etc/asterisk Plan de marcado (dialplan)  El plan de marcado se configura en el archivo extensions.conf, existen otros archivos que contienen porciones del plan de marcado: o extensions_additional.conf: el plan de marcado variable escrito por FreePBX, los cambios realizados manualmente se pierden cunado FreePBX sobreescribe este archivo. o extensions_custom.conf: el plan de marcado definido por el usuario, no se pierden los cambios que se realizan manualmente.  Todos los archivos son de texto plano en formato definido por Asterisk.  Se dividen en secciones llamadas contextos. Dialplan: Contextos  Agrupan la lógica del plan de marcado.  Pueden incluir otros contextos con la claúsula ”include”.  El plan de marcado se agrupa en contextos.  Se definen como agrupadores u organizadores del plan de marcado.  Deben tener un nombre único que va entre los símbolos [ ].  Existen dos contextos reservados [globals] y [general]. extensions.conf sip.conf iax.conf chan_dahdi.conf Reside el plan de marcado, los archivos adicionales empiezan con extensions_. Se definen los endpoints SIP. Se definen los endpoints IAX. Archivo de configuración para canales DAHDI, se troncalizan los canales. 60
  61. 61. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Dialplan: Extensiones  Son líneas del plan de marcado.  Son instrucciones llamadas extensiones.  Tienen la siguiente sintaxis: o exten => nombre_extensión, prioridad, aplicación  Una línea del plan de marcado es una serie de lógica del plan de marcado.  Se puede crear la lógica necesaria para un marcado específico. Dialplan: Extensiones (Nombre_extensión)  Es un identificador númerico de la extensión.  Se lo puede asociar al número de teléfono.  Existe una extensión particular ”s”.  La extensión ”s” significa cualquier extensión.  Esta extensión ”s” se usa cuando el usuario que llama no ha presionado el número de extensión. Por ejemplo, cuando está en el IVR de bienvenida. Dialplan: Instrucciones (Prioridad)  Indica el orden de ejecución de una instrucción.  La primera prioridad debe ser siempre 1 porque Asterisk busca esta prioridad cuando lee un contexto para ejecutarlo.  Existe una prioridad especiales n.  La prioridad n indica que a la prioridad de la instrucción anterior se le debe sumar uno. Sirve para facilitar la estructura del plan de marcado. Dialplan: Instrucciones (Aplicaciones)  Las aplicaciones de un plan de marcado equivalen a las funciones de un lenguaje de programación.  Permiten realizar acciones programadas en el plan de marcado.  Las aplicaciones permiten realizar ejecuciones entre contextos.  Pueden recibir parámetros para su ejecución. 61
  62. 62. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Dialplan: Variables  Las variables en el plan de marcado equivalen a las variables de un lenguaje de programación.  Son abstracciones que almacenan información de naturaleza variable.  Tiene la siguiente sintaxis: ${NNNN}  donde NNNN es el nombre de la variable.  Pueden ser de tres tipos:  Globales: Se definen en la sección [globals] del archivo extensions.conf o en globals_custom.conf dentro de cualquier Elastix, pueden ser referenciadas desde cualquier lugar del plan de marcado.  De canal: Pueden ser definidas usando el comando (o aplicación) ”Set”.  Predefinidas: Asterisk administra algunos nombres de variables con nombres predefinidos ${CALLERID(all)}, ${CALLERID(name)}, ${CALLERID(num)}, ${CHANNEL}, ${CONTEXT}, ${EPOCH}, ${EXTEN}, ${SIPUSERAGENT}, ${UNIQUEID},  Estas variables almacenan cierta información dependiendo del comportamiento de la llamada u otros factores. Aplicaciones  Answer o Sintaxis: Answer ([delay]) o Contesta un canal si éste está timbrando, recibe el parámetro delay que indica el tiempo en milisegundos antes de contestar.  Background o Sintaxis: Background(filename1[&filename2...][|opciones[|langoverride][|context]]) o Reproduce un listado de archivos mientras Asterisk continúa ejecutando el plan de marcado. o Aplicación usada para reproducir el mensaje de IVR.  Playback o Sintaxis: Playback(filename1[&filename2...][,options]) 62
  63. 63. Capítulo 9 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   o Reproduce archivos de audio, a diferencia de Background, no permite a Asterisk tener el control mientras no acabe de reproducir los archivos.  Hangup o Sintaxis: Hangup() o Cuelga el canal y retorna -1.  Goto o Sintaxis: Goto([[context|]extension|]priority) o Salta la ejecución del plan de marcado a un contexto, extensión o prioridad indicada. Si se pasa un solo parámetro se entiende que es una prioridad del mismo contexto.  Dial o Sintaxis: Dial(type/identifier, timeout, options, URL) o Marca un canal especificado y lo vincula con el canal corriente. Asterisk CLI  Es el nombre de la consola de Asterisk.  Línea de comandos para controlar Asterisk directamente.  Para ingresar a la consola se ejecuta el comando ”asterisk -r”  Cuando se obtiene un prompt CLI>, se pueden ejecutar comandos de Asterisk  Provee información en tiempo real de la actividad de Asterisk.  Permite controlar el grado de detalle de la información, para ello se usan los comandos: o Core set debug N o Core set verbose N  Mientras más alto sea el nivel de las variables debug N y verbose N más detallada será la información mostrada.  Estos comandos se deben utilizar para tareas de diagnóstico. 63
  64. 64. Capítulo 10 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   PLAN DE MARCADO AVANZADO Manipulación de Variables Sintaxis para eliminar dígitos  ${VAR:x:y} Donde VAR es una variable numérica, ”x” es el número de dígitos a eliminar al principio y ”y” es cuantos números tendrá la variable final  Ejemplo VAR=1234567890, x=3, y=4 – ${VAR:3:4} → 4567  ${VAR:x} Donde VAR es una variable numérica, ”x” es el número de dígitos a eliminar al principio  Ejemplo VAR=1234567890, x=3 – ${VAR:3} → 4567890 Concatenar variables  exten =>s,n,Set(VAR_CONCAT=${var1}${var2}${VAR3}) Expresiones  $[expresion]  ej. $[ ${VAR1} + ${VAR2} ] Sintaxis Condicional  expresión?destino1:destino2 Macros  Sirven para reutilizar códigos  Se definen como contextos anteponiendo el prefijo macro-  Ej. [macro-nombremacro]  Puede recibir parámetros cuando se llama al macro  El macro es llamado de la siguiente forma:  Macro(nombremacro,parametro1,parametro2,....)  Los parámetros son invocados como:  ${ARG1}, ${ARG2}, .... 64
  65. 65. Capítulo 10 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Variables disponibles en Macros  A más de las definidas por el usuario ${ARGn} se pueden usar las siguientes variables AstDB  Pequeña base de datos accesible desde el plan de marcado  Agrupa información por familias.  Familias importantes: AMPUSER y DEVICE  Aplicaciones importantes: Plan de Marcado de FreePBX Reside principalmente en extensions.conf que incluye a:  extensions_additional.conf: Archivo generado por FreePBX que nunca se debe modificar pues todos los cambios serán sobre escritos cuando FreePBX recargue su configuración  extensions_custom.conf: archivo que se puede editar para crear nuestros contextos y que éstos no sean sobre escritos por FreePPX 65
  66. 66. Capítulo 10 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Macros de Apoyo Contextos de Entrada  Son los contextos desde donde se reciben llamadas Conocimientos Útiles  Determinar si una variable esta vacía  ej. exten => s,1,GotoIf($[${LEN(${VARIABLE_TEST})} > 0]?destino)  Obtener la fecha actual  ej. exten => s,4,AGI(recordingcheck,${STRFTIME(${EPOCH},,%Y %m%d- %H%M%S)},${UNIQUEID})  Sobrescribir extensión.conf.- Para sobreescribir un contexto definido se puede utilizar el archivo: extensions_override_freepbx.conf 66
  67. 67. Capítulo 11 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   ASTERISK: AGI & AMI AGI (Asterisk Gateway Interface)  Es una manera de interactuar con Asterisk desde un programa de línea de comandos  Este programa puede ser escrito en cualquier lenguaje  El programa AGI es invocado desde el dialplan  La salida estándar debe tener cierto formato. Es lo que se llaman comandos AGI  Gracias a AGI podemos desarrollar funcionalidades extra en nuestro plan de marcado como: IVRs de consulta a base de datos, etc.  Los programas AGI residen en /var/lib/asterisk/agi-bin/  Elastix trae algunos scripts allí preinstalados Ejecución de scripts AGI  Los scripts AGI se comunican con Asterisk a través de STDIN, STDOUT y STDERR  Por tanto, los scripts AGI se deberían poder ejecutar desde la línea de comandos  Cuando son ejecutados a través de Asterisk los permisos son muy importantes.  Para invocar al script desde el dialplan podemos utilizar la función AGI()  Se le pueden enviar parámetros al script utilizando la sintaxis:  AGI(script.agi,par1,par2,...)  Adicionalmente Asterisk le envía al script ciertos parámetros por omisión, que veremos a continuación 67
  68. 68. Capítulo 11 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Algunos parámetros enviados por omisión A continuación algunos de los más importantes:  agi_request – El nombre del archivo script  agi_channel – El canal que originó la llamada  agi_type – El tipo de canal. Por ej. SIP o DAHDI  agi_uniqueid – Un identificador único para la llamada  agi_callerid – El caller ID en caso de estar disponible  agi_context - Contexto  agi_extension - Extensión  agi_accountcode – Código de cuenta, en caso de estar disponible Algunos comandos AGI útiles  say digits: Sintetiza y reproduce números. Util para IVRs que recuperan data de la DB  hangup: Cuelga el canal (llamada) actual  stream file: Reproduce un archivo de audio  set context: Establece un contexto para continuar luego de la finalización del AGI  noop: Sólo muestra mensajes en el log  set variable: Establece una variable de canal Ejemplo AGI sencillo  Veamos lo sencillo que es usando un ejemplo escrito en PHP. Llamaremos al script simple.agi  Ahora pongámoslo accesible desde el dialplan cuando se marque el número 6789 68
  69. 69. Capítulo 11 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   AMI (Asterisk Management Interface)  Es otra manera de controlar Asterisk pero a través de la red IP. La comunicación es de tipo texto.  Se pueden desarrollar aplicaciones remotas  Un ejemplo es el módulo de call center de Elastix, otro ejemplo es el FOP  El puerto AMI por omisión es el 5038  No cualquier equipo puede interactuar con el puerto AMI. Previamente su IP tiene que ser habilitada en el archivo /etc/asterisk/manager.conf /etc/asterisk/manager.conf Probando desde telnet  Una manera sencilla de probar si nos podemos conectar al puerto AMI  En el siguiente ejemplo nos conectaremos desde el propio servidor. Lo primero que veremos es el mensaje de bienvenida: 69
  70. 70. Capítulo 11 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Luego probaremos autenticándonos:  Si los datos estuvieron correctos recibiremos un mensaje de éxito  ¿Recuerdan cual es la contraseña de AMI? Tipos de paquetes AMI  En la comunicación por AMI se pueden identificar tres tipos de paquetes de información.  Acción: Un comando enviado por el cliente al servicio AMI para que sea procesado  Respuesta: La respuesta de Asterisk a la Acción requerida por la aplicación cliente  Evento: Se trata de información de un evento asincrónico ocurrido en Asterisk. Por ejemplo, ingresó una llamada telefónica  Para relacionar las respuestas con las acciones se puede incluir un ActionID en cada Acción. Asterisk devolverá este parámetro en la respuesta. Acciones AMI comunes  Login: Nos permite autenticarnos con AMI  Logoff: Termina la sesión  Events: Controla el flujo de eventos  Originate: Inicia una llamada telefónica  Redirect: Transfiere una llamada  Hangup: Cuelga una llamada  Getvar: Obtiene una determinada variable de canal 70
  71. 71. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   ELASTIX CONFIGURACIÓN AVANZADA Ruteo de Llamadas  Rutas Entrantes:  Esta opción permite configurar el destino de las llamadas que ingresan por una determinada troncal.  Cuando una llamada entra, Asterisk puede buscar “matchear” el DID ó el CallerID de la troncal. 71
  72. 72. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Rutas Salientes:  Mediante las rutas salientes podemos indicar por qué troncal o troncales deben ser enviadas las llamadas. Troncales  Una troncal es el camino lógico que permite llevar una llamada a cualquier destino externo.  Alguno de los tipos de troncales son:  DAHDI  IAX2  SIP  Custom Troncal DAHDI  Parámetros a configurar en una troncal DAHDI: 72
  73. 73. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Troncales de tipo IAX2 y SIP  Además de las configuraciones especificadas, se deben incluir configuraciones entrantes y salientes  Esta información generalmente es especificada por el proveedor de servicios de voz.  Las configuraciones pueden incluir username, password, codec, el host destino, etc.  Ejemplo de configuración de los detalles del Peer: Nota: Es posible que se requiera una cadena de registro que tiene la siguiente sintaxis: nombre_de_usuario:password@host Troncales Personalizadas  Estas troncales son creadas cuando se usan protocolos no estándares como h323,misdn, etc.  Se debe especificar un string de marcado. Por ejemplo: 73
  74. 74. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Tarifación  La opción Rates/Tarifas (Reports → Billing → Rates) nos permite visualizar y configurar las tarifas que se usarán para la facturación de llamadas.  Crear Tarifa  Para agregar una nueva tarifa dar clic en el botón Crear Nueva Tarifa. Se mostrará un formulario en el que se ingresarán los siguientes campos:  Prefijo: Prefijo telefónico al cual se aplicará la tarifa.  Nombre: Nombre para la tarifa.  Tarifa: Valor de la tarifa por minuto.  Rate offset: Valor de interconexión.  Dígitos Ocultos: oculta los últimos "n" dígitos del número en el reporte.  Troncal: Troncal asignada para la tarifa. 74
  75. 75. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Para tener disponible una troncal debemos habilitarla en Billing Setup (Reports → Billing → Billing Setup).  En este menú podemos configurar además la tarifa por defecto y el rate offset por defecto.  Visualizar, Editar y Eliminar  El enlace Ver nos llevará a una pantalla donde se mostrará los datos de la tarifa.  Podemos editar los valores de la tarifa haciendo clic en el botón “Editar”, o eliminarla haciendo clic en “Eliminar”  Reporte de Facturación  Este reporte (Reports → Billing → Billing report) nos permite ver todos los detalles de las llamadas y su respectivo costo y ruta aplicada.  Este reporte cambiará dependiendo de 3 valores de filtro:  Fecha Inicio: Fecha que queremos configurar como inicial para el reporte.  Fecha Fin: Fecha final para el reporte.  Campos de filtro adicional son: Tarifa aplicada, Duración, Rate value, Fuente, Destino, Canal destino, Account Code. 75
  76. 76. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Distribución de Destinos  Esta opción (Reports → Billing → Destination distribution) nos permite ver una gráfico de distribución de llamadas salientes agrupadas por tarifa.  El gráfico cambiará dependiendo de los valores de filtro:  Fecha Inicio: Fecha que queremos iniciar la revisión de llamadas.  Fecha Fin: Fecha final para la revisión.  Criterios de distribución: Distribución por tiempo, distribución por número de llamadas, distribución por costo. Reportes: CDR  CDR es la abreviación para Registro de Detalle de Llamada (Reports → CDR Reports).  Este reporte nos permite ver un listado con el detalle de todas las llamadas. 76
  77. 77. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Los reportes son exportables a CSV, XLS (para acceso lectura/escritura), o PDF (lectura-únicamente) formatos.  Este reporte cambiará dependiendo de los siguientes valores de filtro:  Fecha Inicio: Fecha que queremos iniciar la revisión de llamadas.  Fecha Fin: Fecha final para la revisión.  Grupo de timbrado: permite filtrar por grupo de ringado si existe.  Estado: Contestado, Ocupado, Fallido, No Contestado.  Campo de filtros adicionales: Fuente, Canal de Origen, Account code, Canal de Destino. Uso de canales  El reporte de uso de canales: “Channels Usage” report (Reports → Channels Usage) permite ver de manera gráfica el número de llamadas simultáneas por canal. 77
  78. 78. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Configuración DISA  DISA permite que los usuarios puedan acceder telefónicamente a su servidor Elastix desde fuera y obtener un tono "interno" de marcado.  E.g. podría realizar llamadas internacionales, a teléfonos móviles, entre otros.  Nombre de DISA: El nombre referencial para este accedo DISA  PIN: La contraseña necesaria para acceder al soporte DISA.  Tiempo de espera para la respuesta: Máximo tiempo que la aplicación esperará al usuario por el PIN.  Tiempo de espera de marcado: Máximo tiempo entre dígitos.  Pedir confirmación: Pregunta por una confirmación antes del pedido de la contraseña.  Identificador de llamante: Todas las llamadas DISA usarán este Caller ID (opcional)  Contexto: Contexto que usará el DISA  Permitir colgar: Permite colgar la llamada presionando "**" para tener tono nuevamente. Condiciones de tiempo  El uso de condiciones de tiempo es una característica muy útil para modificar el comportamiento de la PBX dependiendo de la hora o del día de la semana.  EJEMPLOS: 78
  79. 79. Capítulo 12 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    La compañía X desea que por las noches se reproduzca un mensaje indicando el horario de atención e indicando que en casos de urgencias se podrían comunicar con un número alterno.  La compañía Z desea reproducir un IVR de bienvenida distinto al habitual durante los fines de semana ya que siempre lanza promociones durante estos días. 79
  80. 80. Capítulo 13 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   INTERCONEXIÓN CON ELASTIX REMOTOS A través de troncales SIP  Una de las ventajas de usar Elastix es que fácilmente podemos interconectar dos cajas Elastix de tal manera que se puedan unir las comunicaciones de dos lugares remotos.  Por ejemplo en un solo plan de marcado.  A continuación veremos como configurar la interconexión de dos Elastix mediante una troncal de tipo SIP.  Escenario:  En el escenario mostrado a continuación queremos interconectar la central A con la central B de tal forma que el teléfono A y el teléfono B se puedan comunicar únicamente marcando las extensiones de forma directa  Para implementar esto se requiere definir dos cosas:  La troncal  Las rutas salientes en cada Elastix  Definiendo la troncal  Definimos el nombre de la troncal, el cual en nuestro caso servirá de username para el proceso de registro.  A la troncal del servidor A la llamaremos elastixA y la troncal del servidor B la llamaremos elastixB.  Luego definimos los detalles del peer. 80
  81. 81. Capítulo 13 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Ejemplo de configuración del peer:  Configuración que se repite en ambos servidores Elastix. Como se ve hemos definido como “secret” la palabra welcome.  Register String  Definimos el register string siguiendo el formato especificado anteriormente:  En este caso para la central Elastix A debería ser:    y para la central Elastix B debería ser:  Una vez establecida esta configuración en ambos servidores podemos verificar en si se encuentran registradas las troncales.  En el Asterisk CLI mediante el comando: sip show registry y deberíamos ver algo como esto:  El siguiente paso es definir los detalles del user, es decir en donde se quiere terminar la llamada.  En este caso queremos que sea accesible a la extensiones local, bastará con colocar el contexto primario. Esto indica que cuando la llamada entre por la troncal iniciará en el contexto aquí especificado.  La configuración es como sigue: 81
  82. 82. Capítulo 13 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Definiendo la ruta saliente  Primero determinamos el nombre de la ruta salientes. En este caso le pondremos: HaciaElastixB.  Luego definimos el patrón de marcado, en este caso usaremos el siguiente patrón de marcado: 2|XXX (asumimos que para marcar al servidor B debemos marcar el prefijo 2).  En tercer lugar escogemos por qué troncal deberá enrutarse la llamada, en este caso escogemos por la troncal sip/elastixA Conexión con proveedores VoIP  Hoy en día ha tenido mucho auge los VSP (Voice Services Provider) ó proveedores de servicios de voz.  Estos proveen conexiones SIP o IAX principalmente, a su infraestructura para permitir conectar llamadas locales en una región.  En esta sección implementaremos una conexión SIP con un proveedor VSP que nos permitirá hacer llamadas dentro de Estados Unidos.  Escenario:  En el siguiente escenario queremos registrar una troncal de tipo SIP con un VSP que nos permita realizar llamadas a EEUU desde cualquier teléfono IP.  Para implementar esto se requiere definir dos cosas:  La troncal  Las rutas salientes en cada Elastix 82
  83. 83. Capítulo 13 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Definiendo la troncal  Como vimos en la sección anterior se debe definir el nombre de la troncal en este caso la llamaremos: VP-SIP  Luego definimos las características del peer.  Esta información debe ser proporcionada por el VSP y generalmente es la misma para todos los usuarios a registrar, lo único que cambia es el usuario y el password.  En nuestro caso el VSP nos pide que configuremos la troncal de la siguiente forma:  Luego agregaremos la cadena de registro que en nuestro caso sería:  Primero determinamos el nombre de la ruta salientes. En este caso le pondremos: INTERNACIONAL  Luego definimos el patrón de marcado, en este caso usaremos el siguiente patrón de marcado: 00.  En tercer lugar escogemos por que troncal debe irse la llamada en este caso escogemos por la troncal SIP/VP-SIP  Una vez realizada la configuración podemos verificar en el Asterisk CLI si se la troncal se encuentra registrada.  Usamos el comando: sip show registry y deberíamos ver algo como esto: 83
  84. 84. Capítulo 13 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Módulo VoIP Provider  Desde la versión 2.0 Elastix tiene un módulo con proveedores incluidos por defecto.  El módulo permite configurar cuentas VoIP de manera automática.  Si el proveedor no está enlistado usted puede escoger “Custom” como opción para mostrar el cuadro de “PEER Settings”.  La opción “Custom” es además una alternativa al proceso de crear una conexión con un proveedor SIP.  Usted puede seguir el procedimiento descrito en la sección anterior o crear una cuenta a través del módulo VoIP Provider.  Si usted tiene ya una cuenta con alguno de los proveedores incluidos, solo necesita ingresar la información y la cuenta se creará.  Usted puede revisar el registro en el Asterisk CLI 84
  85. 85. Capítulo 13 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Posterior a esto revisamos la troncal en PBX → PBX Configuration → Troncales. Observaremos la cuenta como un SIP Trunk, en este ejemplo: N2P-DRB (sip).  Luego es necesario crear la ruta saliente para esta troncal y podemos empezar a usar el servicio. 85
  86. 86. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   CALIDAD DE VOZ Síntomas que afectan la calidad de voz  Son los problemas que el usuario percibe desde su perspectiva  Existen muchos, sin embargo los más comunes son:  Eco  Bajo volumen  Retardo  Distorsión de la voz  Comunicación entrecortada Síntomas: Eco  La señal de ida se refleja en la de vuelta  Fácil de identificar por un humano  Una causa común es un desbalance en el híbrido  También hay eco acústico. Ej. El producido por speaker  Algunas tarjetas permiten ajustar este desbalance. La utilería fxotune puede ser usada con este fin El famoso híbrido de 2 a 4 hilos fxotune  El comando fxotune viene en Elastix  Debe ejecutarse con Asterisk apagado 86
  87. 87. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Simplemente se ejecuta “fxotune -i 5”  El número 5 sólo indica qué dígito se debe marcar para suspender el tono de marcado. En casi todo los casos es cualquier dígito  Guarda los resultados en /etc/fxotune.conf  Para que DAHDI se calibre en base a este archivo hay que ejecutar “fxotune -s” Síntomas: Bajo Nivel o Volumen  La señal eléctrica se atenúa  Usualmente conductores de mala calidad  Es posible amplificar la señal con el uso de los parámetros rxgain y txgain pero hay que tener cuidado pues esto podría generar eco  Estos parámetros se modifican a nivel de DAHDI en chan_dahdi.conf. Síntomas: Retardo  La voz se demora más de lo usual en llegar a destino  Si es menor a 200ms pasa desapercibido  Retardo de más de 500ms provoca que la conversación se traslape, lo cual es molesto para el interlocutor  Las redes de paquetes pueden introducir retardo si se sobrepasa su capacidad  Hay que tratar de solucionar a nivel de red Síntomas: Distorsión de la voz  Sonido “robotizado”  Los codecs que comprimen la voz ahorran ancho de banda pero eliminan información, esto provoca disminución de calidad de voz  Se puede cambiar de codec pero hay que tener en cuenta la disponibilidad de ancho de banda  Algunos codecs se comportan muy mal frente a problemas de red como pérdida de paquetes o retardos de red. 87
  88. 88. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Síntomas: Comunicación entrecortada  Se pierde la voz por pequeños instantes de tiempo  Provoca que la conversación sea menos entendible y por lo tanto es molestoso  Usualmente se trata de problemas de red debido a equipos defectuosos, ruido eléctrico en el cableado o equipos saturados en su capacidad  Se puede mejorar en cierta medida con un jitterbuffer Parámetros en redes de paquetes relacionados con la calidad de voz  Hablamos de parámetros medibles aquí  A partir de estos podemos determinar cuantitativamente cómo se verá afectada la calidad de voz por la red de paquetes  Para simplificar las cosas resumiremos todo con tres parámetros de fácil medición:  Retardo de red  Pérdida de paquetes  Jitter Parámetros: Retardo de red  No estamos hablando de retardo de voz sino de paquetes de red  El retardo se mide en milisegundos  Aunque no es lo ideal se puede medir fácilmente con un ping Parámetros: Pérdida de paquetes  Porcentaje de paquetes que no llegaron a su destino  Si un paquete llega demasiado tarde ya no se espera por él  La pérdida de paquetes no es deseable en ningún porcentaje. Incluso un 1% puede afectar significativamente la calidad de voz  También se puede medir (aproximadamente) con un ping 88
  89. 89. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Parámetros: Jitter  Es la variabilidad del retardo  También se mide en milisegundos  No basta con tener un promedio de retardo aceptable si la variabilidad (jitter) es muy alta  En aplicaciones de tiempo real como la voz si la información no llega justo a tiempo no se puede esperar por ella  Para esperar paquetes con pequeños retardos se utiliza un jitterbuffer. Este feature ya viene disponible en Asterisk 1.4 Jitterbuffer  Es un buffer donde se encolan paquetes por un tiempo determinado en espera de que lleguen todos o la mayor parte posible  El tamaño del jitterbuffer es el tiempo que de espera y está en milisegundos. Un valor usual es de 200ms  En el sip.conf (o equivalente) el parámetro se llama jbenable=yes  En el iax.conf (o equivalente) el parámetro se llama jitterbuffer=yes Cuando el teléfono incide en la calidad de voz  Sin duda hay electrónica mejor que otra. Algunos chips procesan mejor la voz, especialmente cuando se trata de codecs de alta compresión  Algunos chips también añaden tecnología inteligente para mejorar la calidad de voz  La calidad del micrófono y audífono también incide 89
  90. 90. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Lamentablemente, a mayor calidad, mayor precio  Los softphones no están libres de problemas y dependen del computador. Cualquier problema de desempeño podría afectar la calidad de voz ¿Cómo medir la calidad de voz?  Algo muy difícil pues tiene un componente subjetivo  La mente humana es muy complicada  Hay muchos modelos que intentan medir la calidad de voz. Dos que han cobrado relevancia son MOS y el modelo E. Los estudiaremos brevemente en este curso  La escala MOS es más subjetiva y el modelo E es más objetivo Escala MOS  Es una recomendación ITU basada en la toma de muestras subjetivas a participantes  Se les pide a algunas personas que califiquen la calidad de voz del 1 al 5  Previamente se les hace escuchar algunas conversaciones y se les muestra la calificación para que tengan un marco referencial  Las frases que se hacen escuchar a los participantes se encuentran pre-definidas también 90
  91. 91. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Modelo E  También es una recomendación ITU  Se trata de un modelo más objetivo y matemático, no “necesariamente” mejor que MOS  Se calcula en base a algunos parámetros medibles y tiene una escala distinta a MOS (incluyendo valores negativos)  En este curso utilizaremos una fórmula simplificada que depende básicamente del retardo de red y la pérdida de paquetes  La fórmula es: R = 94,2 – Id – Ie  Donde, R representa la calidad de voz Id representa cómo afecta el retardo a la calidad Ie representa cómo afecta la pérdida de paquetes  Notar que el parámetro Id representa el retardo ¡pero no es el retardo en sí!  También es interesante notar que el valor máximo que puede tomar R es de 94,2  Para obtener Id: Id = 0.024 · d + 0.11 · (d – 177.3) · H(d – 177.3)  Donde d es el retardo en milisegundos y H( ) es la función de Heavyside H(x) = 0 para x < 0 y 1 para x ≥ 0  Para obtener Ie utilizaremos un gráfico que simplificará las cosas  Vemos que Ie depende del codec, así que ahora es más obvio que algunos codecs se ven más afectados por la pérdida de paquetes que otros. 91
  92. 92. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Traduciendo R a la escala MOS  Es muy útil ya que MOS es más conocido y sencillo de relacionar con calidad  La fórmula es la siguiente: Cancelador de eco  Existen versiones hardware y software  En la actualidad ya casi no existe diferencias entre el desempeño de ambas ya que la capacidad computacional ha crecido mucho  El objetivo es calcular en tiempo real qué porcentaje de la señal de ida se refleja en la de regreso. Si puede predecir con exactitud sólo queda restar ese porcentaje y obtendremos una señal sin eco  Esta predicción la realiza un componente llamado filtro adaptativo  En la realidad el eco no sólo es una señal atenuada sino que también puede estar desplazada en el tiempo (con retardo)  El filtro adaptativo tiene entonces que predecir no sólo el porcentaje de señal reflejada sino también el retardo  Por lo tanto, analiza la señal por un lapso de tiempo llamado “cola” (o tail) y que está en el orden de milisegundos  Valores típicos de cola son 64ms o 128ms 92
  93. 93. Capítulo 14 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Estándar G.168  Especificación propuesta por la ITU para definir parámetros de funcionamiento de canceladores de eco  Existen canceladores de eco compatibles con G.168 y existen otros que no  Hay empresas en el mundo que se encargan de certificar si un cancelador de eco es o no compatible con G.168.  Por lo general esta certificación la sacan los canceladores de eco comerciales como Softecho de Octasic Oslec  Elastix incorpora un interesante software de cancelación de eco, open source, conocido como OSLEC.  Este cancelador de eco es parte de DAHDI y puede ser configurado, de manera independiente por cada canal, de manera fácil desde la interfaz Web de Elastix.  La siguiente imagen muestra la configuración de una tarjeta de telefonía analógica. En ella se selecciona el software para la cancelación de eco.  OSLEC está seleccionado por defecto.  Para configurar el cancelador de eco en una tarjeta instalada ir a System → Hardware Detector → Configuración de Span. 93
  94. 94. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   PROTOCOLOS VoIP AL DESCUBIERTO Protocolo SIP  El protocolo SIP (Session Initialization Protocol) es un protocolo de señalización (application-layer control)  Creado para administrar sesiones multimedia entre dos o más partes.  Muchos se confunden pensando en que el protocolo SIP es el que transporta la voz propiamente dicha pero no es así  Esta labor la realiza otro protocolo que veremos más adelante; de lo que sí se encarga SIP es de la comunicación necesaria para establecer una llamada, modificarla, así como para finalizarla.  Detalles del protocolo  RTP es el portador de la voz y el video.  SDP se usa para negociar las capacidades de los endpoints.  Usa dos importantes protocolos como RTP/RTCP y SDP.  La última versión del estándar es la RFC3261.  Basado en texto, lo que nos permite entender los mensajes de una manera relativamente fácil. 94
  95. 95. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Señalización SIP: Métodos y Respuestas 95

×