SlideShare una empresa de Scribd logo
Elastix  slide book-ece
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Capítulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Señalización SIP: Métodos y Respuestas
95
Capítulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
SIP y Asterisk
 Algunos detalles a tener en cuenta cuando se usa el protocolo SIP con Asterisk son los
siguientes:
• A pesar de que SIP es independiente de la capa de transporte (puede ser usado
con TCP, UDP, ATM, X.25, entre otros)
• En Asterisk su implementación estaba limitada a UDP hasta la versión 1.6. En la
versión 1.8 viene con soporte nativo para TCP.
• Por omisión se usa el puerto 5060, pero este parámetro se puede modificar en
el archivo sip.conf
• SIP tiene problemas de NAT traversal. Parámetros especiales como externip,
localnet y nat, pueden ser definidos en sip_general_custom.conf para resolver
esto.
• En Asterisk es posible hacer diagnóstico del protocolo SIP. Esto se verá más
adelante.
Una sección de llamada SIP entre dos teléfonos – sin SIP proxy
Protocolo IAX: Generalidades
 El protocolo IAX (Inter-Asterisk eXchange) es un protocolo de señalización creado
por Mark Spencer, el mismo creador de Asterisk, con el objetivo de solucionar algunos
problemas existentes con otros protocolos.
 En esencia IAX presenta tres ventajas muy interesantes sobre otras alternativas como
SIP.
 Consume menos ancho de banda
96
Capítulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Soluciona mejor problemas de NAT
 Pasa más fácilmente a través de firewalls
 Actualmente se usa la versión 2 del protocolo IAX,sin embargo la nomenclatura
general se intercambia entre IAX e IAX2.
 IAX es un protocolo binario, a diferencia de SIP que como recordaremos es un
protocolo basado en texto.
 IAX usa UDP y normalmente usa el puerto 4569.
 Lo interesante de IAX es que por un solo puerto transmite tanto la voz como la
señalización y es esto lo que le permite resolver problemas de NAT
 Además de esta característica el protocolo permite la troncalización de varios canales
de audio en el mismo flujo de datos.
Llamada usando IAX
 Una llamada IAX se puede dividir en 3 fases:
 Establecimiento de la llamada
 Llamada en curso
 Terminación de la llamada
 Establecimiento de la llamada
 El equipo que la inicia (equipo A) le envía un mensaje NEW al equipo B y éste último
responde con un mensaje ACCEPT.
 Luego el equipo destino timbrará en espera de que el usuario conteste. Si contesta, el
equipo B enviará un mensaje ANSWER al equipo A.
 Llamada en curso
 Si se contestó la llamada se inicia el intercambio de audio mediante unos paquetes
llamados frames.
 Terminación de la llamada
 Para terminar la llamada cualquiera de las partes involucradas debe enviar un mensaje
HANGUP.
97
Capítulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Estableciendo una llamada
Terminación de la llamada
Frames IAX
 Para intercambiar el audio entre los participantes de la llamada se utilizan dos tipos de
frames llamados Full y Mini.
 También se les suelen llamar F y M.
 Una conversación está compuesta en su mayoría por frames tipo Mini cuya virtud es
ser ligeros. Esto quiere decir que tienen una cabecera pequeña (de 4 bytes), lo cual
ayuda a ahorrar ancho de banda.
 De cuando en cuando se intercambian frames tipo Full, los cuales conllevan
adicionalmente información de sincronización.
98
Capítulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Protocolo RTP
 RTP es el protocolo que se encarga de transportar la voz propiamente dicha.
 Muchas personas se confunden y piensan que ese es el trabajo de SIP pero no es así.
 Una vez que SIP establece una llamada es RTP quien toma la posta para transportar la
voz a su destino.
 RTP trabaja sobre UDP y por lo tanto no hay mucho control de transmisión.
 Es decir que el equipo emisor envía la voz hacia el otro extremo con la esperanza de
que llegue, pero no espera recibir confirmación de esto y a decir verdad tampoco hay
tiempo para hacerlo pues la voz necesita ser transmitida en tiempo real.
 Si un paquete de voz se pierde en el camino simplemente se rellenará ese espacio con
un silencio. Lo que técnicamente se llama ruido confortable (comfort noise).
 Es por esta necesidad de transmitir la información en tiempo real que resulta evidente
que RTP sea un acrónimo de Real-time Transport Protocol.
Protocolo RTCP
 A pesar de encargarse de casi toda la labor de transportar la voz, RTP no está solo y
tiene un protocolo de apoyo llamado RTCP.
 RTCP no es del todo indispensable pero proporciona valiosa ayuda al momento de
transportar la voz de manera óptima pues proporciona estadísticas e información de
control que le permiten a Asterisk o al otro extremo tomar decisiones para mejorar la
transmisión en caso de ser posible.
 Por lo tanto, los paquetes RTCP se transmiten periódicamente para comunicar dicha
información a los equipos de voz involucrados.
99
Capítulo 16
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
DIAGNÓSTICO BÁSICO
Interpretando logs
 Todo software es perfectible, por lo cuál no debe sorprendernos si alguna vez
encontramos un bug en su funcionamiento, inclusive si se trata de Asterisk o algún
otro componente de Elastix.
 Para ayudarnos a encontrar la causa por la cuál nuestro Asterisk no se está
comportando de forma habitual, se recomienda revisar la bitácora o también podemos
ayudarnos de depuradores.
 Un depurador es un programa que nos permite examinar la ejecución de un programa
a un nivel de detalle mayor que el habitual
 Alternativas de herramientas de depuración: strace y gdb
 Cuando tenemos un problema con un servidor, antes de perder la cabeza se
recomienda seguir los siguientes pasos:
 Identificar el componente que está causando problemas
 Reproducir el bug
 Buscar si se trata de un bug que ya se encuentra identificado
 Depurar
 Reportar el bug
 Para poder interpretar un error debemos al menos conocer los errores más comunes
de programación, y mejor aún si en nuestras capacidades está el poder aportar con una
corrección en el código fuente.
 Algunas causas son:
 Falla de segmentación
 Deadlock
 División para cero
 Buffer overflow
 Strace
 Es un depurador para Linux muy fácil de usar que monitorea las llamadas a sistema que
realiza un programa determinado y todas las señales que este recibe.
 Sintaxis:
100
Capítulo 16
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 strace [opciones] programa [argumentos]
 Ejemplo:
 strace cat /proc/cpuinfo
 GDB
 Nos permite hacer seguimiento de la ejecución de un programa insertando pausas
cuando creamos necesario.
 También nos permite observar lo que un programa estaba haciendo cuando se colgó.
 Existen tres maneras de usar gdb:
 Depurando un programa desde el depurador
 Depuración sobre Asterisk en plena ejecución
 Depuración haciendo backtrace sobre un Asterisk caído
 Sintaxis: gdb programa opciones
Diagnóstico con el CLI
 Asterisk posee una interfaz de línea de comandos (CLI) que permite trabajar
directamente ingresando comandos.
 Para ingresar debemos ejecutar asterisk -r
 Para depurar los mensajes de Elastix, podemos incrementar el nivel de detalle de los
mensajes mostrado. Para ello usamos el comando: core set verbose 6
 Con ello subimos a nivel de detalle 6, con lo que Asterisk será más informativo. El
valor inicial es 3.
 Es importante también conocer si todos los dispositivos de mi plan de marcado están
disponibles.
 Lo consultamos con el siguiente comando: core show hints
 Una forma de consultar la ayuda para revisar los comandos disponibles es ejecutando:
help
 Si necesitamos ayuda con algún comando en específico ejecutamos: help [comando]
Sniffing
 Sniffing es una práctica que consiste en escuchar los paquetes que circulan por la red.
101
Capítulo 16
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Para poder capturar el tráfico se utiliza una aplicación llamada Sniffer y existen algunas
alternativas disponibles.
 Si podemos capturar los paquetes RTP de una llamada podemos utilizar herramientas
para convertir estos paquetes en audio que podamos escuchar.
 El protocolo SIP es un protocolo de texto, capturando paquetes SIP de la red
podremos ver información como Caller Ids, comandos y respuestas SIP.
 Algunas herramientas disponibles:
 VoIPong: rastrea la red en busca de llamadas VoIP, las guarda en formato wav.
 Wireshark: el antiguo proyecto Ethereal permite análisis de VoIP y grabar el payload en
formato crudo.
 Oreka: algo más complejo pero que permite incluso decodificar codecs, provee
interfaz web de monitoreo.
 Para evitar escuchas o pinchazos telefónicos a nivel de VoIP tenemos la alternativa de
encriptar la comunicación (SRTP, VPN, IAX encriptado)
102
Capítulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
SISTEMA DE CORREO EN ELASTIX
Arquitectura del sistema de email
 Un sistema de correo electrónico esta formado de varios componentes. Los
principales son:
 MUA (Mail User Agent),
 MTA (Mail Transfer Agent),
 MDA (Mail Delivery Agent).
MUA (Mail User Agent)
 Programa con el que se genera el correo electrónico.
 Puede residir en la estación de trabajo del usuario, como Mozilla Thunderbird o
Microsoft Outlook.
 Puede residir en el servidor, como servicio de Webmail o sistemas de Voicemail y de
Fax.
 Los usuarios acceden a sus buzones de correo a través del MUA, mediante los
protocolos POP y/o IMAP, que deben estar activos en el servidor de correos.
MTA (Mail Transfer Agent)
 Mediante protocolo SMTP, recibe el mensaje del MUA.
 Decide a quién debe entregar el mensaje.
103
Capítulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Si el mensaje está destinado a otro dominio, el MTA trata de contactarse con el
servidor de correo de dicho dominio y transfiere mediante el protocolo SMTP el
mensaje.
 Si el mensaje está destinado al dominio local, el MTA transfiere el mensaje al MDA que
se encarga de colocarlo en el buzón respectivo.
MDA (Mail Delivery Agent)
 Es un software que acepta correo entrante.
 Distribuye los mensajes a los buzones de los destinatarios si la cuenta de destino está
en el servidor local.
 Reenvía los mensajes a un servidor SMTP si la cuenta de destino está en una ubicación
remota o está dirigido a otro dominio.
En Elastix
 El MTA que usa Elastix es Postfix.
 El MDA que usa Elastix es Cyrus IMAP, que además provee los servicio de POP e
IMAP.
 Elastix tiene una interfaz de webmail incorporada que se llama RoundCube Mail, que
puede ser usada como MUA.
Configurando el sistema de email
 Elastix facilita la tarea de configuración del servidor de correo.
 En la interfaz gráfica de Elastix, ir a Email → Domains.
 Tomando en cuenta que el servicio de correo de Elastix es multi-dominio, podemos
configurar el servidor para recibir los correos de diferentes dominios.
 Para crea un nuevo dominio se utiliza el botón ”Crear Dominio”, lo que muestra una
nueva pantalla en la que se ingresa el nuevo dominio.
104
Capítulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Después de crear un dominio nuevo podremos crear cuentas de correo. Ir a Email →
Accounts.
 Seleccione el dominio deseado y haga clic en "Crear una nueva cuenta"
 Ingresamos la información básica de la cuenta de correo, la cuota y la contraseña.
Luego guardamos.
 El nombre de la cuenta tiene la siguiente syntaxis: nombre_de_la_cuenta@dominio.
 Para editar la contraseña y/o la cuota basta con hacer clic en el link de la cuenta.
Relay
 Si se va a utilizar un software manejador de correos (Microsoft Outlook, Mozilla
Thunderbird u otro similar), se deberá configurar en el servidor las direcciones de red
que estarán autorizadas para realizar el envío de correos hacia dominios que no son
locales.
 El proceso para realizar este envío a un dominio externo se denomina RELAY .
 Para configurarlo debemos ir a Email → Relay .
105
Capítulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Se muestran las direcciones de red que están permitidas, y se puede agregar una
dirección de red por línea, indicando además la máscara de red de la misma.
RoundCube Mail
 Es una interfaz gráfica de correo integrada en Elastix localizada en: Email → Webmail
(Interfaz de Elastix).
 Para acceder directamente puede colocar la siguiente dirección en su browser:
https://IP_del_Servidor/mail y hacer login con una de las cuentas creadas
anteriormente.
 Para hacer login es necesario ingresar la dirección de correo electrónico completa
(usuario@dominio) y la contraseña.
Configuraciones a bajo nivel
 Postfix
 Servicio de correo MTA usado por Elastix.
 Potente, seguro y flexible para configuraciones avanzadas.
 Smart Relay (Mensajes de correo no destinados a dominios locales se transfieran a un
servidor específico que a su vez se encarga de transferirlo a los servidores de destino).
 En Postfix esta opción es llamada "relayhost"
 Para configurar la opción "relayhost":
 En una consola ir al archivo: /etc/postfix/main.cf
 Se agrega la línea relayhost = [servidor_SMTP_GATEWAY]
 Se debe reiniciar el servidor para aplicar cambios.
Luchando contra el SPAM
 Elastix provee un filtro contra SPAM que verifica los mensajes recibidos por el servidor
de correo y les asigna un puntaje dependiendo de ciertas características.
 Se puede configurar un nivel de atrapar del 1 al 10, siendo 1 el nivel con el
minuciosidad mas alta.
 El filtro de SPAM tiene dos políticas:
106
Capítulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Marcar Asunto.- Marcara correo como spam con un prefijo ([SPAM] está configurado
por defecto) y lo enviará al buzón de entrada.
 Capturar Spam: Marcará el spam con un prefijo, pero lo enviará a una carpeta de spam
en lugar del buzón de entrada.
 El Antispam debe estar activado para trabajar.
Instalando Antivirus
 En Elastix, cualquier antivirus que trabaje con Postfix puede ser instalado.
 Es importante seguir las instrucciones del fabricante.
 Existen varias opciones de antivirus libres:
 ClamAV
 F-Prot
 Avira
 Vexira
 Entre otros.
107
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
FAX EN ELASTIX
Sistema de Fax en Elastix
 El sistema de fax en Elastix está compuesto de 4 componentes importantes:
 Asterisk: telefonía IP.
 Iaxmodem: Programa de fax-modem que se conecta a asterisk mediante un canal IAX.
Crea un dispositivo (/dev/ttyIAX), que será utilizado por Hylafax
 Hylafax: Programa para envío y recepción de fax.
 Framework NEO: Esquema de desarrollo que incluye librerías que implementan Elastix.
Esquema básico del sistema de fax
laxmodem
 Es una aplicación que simula un faxmodem mediante librerias DSP (Digital Signal
Processing).
 Esta aplicación puede ser usada por cualquier programa de envío y recepción de fax.
 Cuando se implementa iaxmodem se crea un archivo que contendrá los datos que
define el dispositivo virtual y lo asocia a una extensión de asterisk.
 En Elastix ese archivo es:
108
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 El archivo iaxmodem-cfg.ttyIAX# es generado por Elastix como sigue:
Hylafax
 Es un sistema de envío y recepción de fax.
 En su esencia Hylafax consta de un programa servidor llamado Faxgetty que se encarga
de estar monitoreando los dispositivos ttyIAX y de un programa despachador de fax
llamado faxrcvd
 El servidor Faxgetty está siempre leyendo unos archivos especiales llamados
FIFO.ttyIAX# que es en donde los dispositivos ttyIAX# reciben comandos de modem.
 Elastix utiliza un archivo que permite asociar los modems a Hylafax, es archivo :
 El archivo config.ttyIAX# es generado por Elastix como sigue:
109
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Funcionamiento Básico
Estructura del Sistema de Fax
 El Sistema de Fax de Elastix está compuesto de 7 Módulos:
 faxclients
 faxlist
 faxmaster
 faxnew
 faxviewer
 sendfax
 email_template
 Utiliza la base de datos fax.db
 Cada módulo contiene las carpetas y archivo:
 configs
 themes
 index.php
 El módulo de Fax utiliza librerías del framework principal:
/var/www/html/libs/paloSantoFax.class.php
110
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Base de datos del Sistema de Fax
 La base de datos para el sistema de fax se llama fax.db
Analizando la librería “paloSantoFax.class.php”
 Función _createFaxSystem
111
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Función _configureIaxmodem
 Función _configureHylafax
 Función _writeInittab
112
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Al final de la función createFaxSystem() se ejecuta los siguientes comandos que hacen
que tomen efecto los archivos creados:
Configurando Fax en Elastix
 El menú de Fax muestra por defecto el listado de Faxes virtuales. En este menú
podemos ver todas las extensiones de fax creadas.
 Podemos modificar cualquier extensión haciendo clic en ella.
 Para crear una extensión de Fax debemos crear primero una extensión IAX.
 Luego debemos ir a Fax → New Virtual Fax. Ahí podemos crear la extensión de fax
con la información usada para la creación de la extensión IAX.
 El email de recepción puede ser cualquiera.
 El menú de Fax Master nos permite incluir una dirección de correo general
(normalmente un email de administración) que permita recibir todos los mensajes de
confirmación o errores del servidor de fax.
	
  
113
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 El menú Fax Client permite incluir la dirección IP permitida para el envío de fax a
través de Elastix.
 El menú Fax Viewer nos permite ver un listado completo de fax recibidos. Podemos
además filtrarlos por fecha o por tipo de fax.
 Existe además un campo de búsqueda por nombre de compañía y otro por fax de
compañía.
 El menú template de Email (Email Template) nos permite configurar ciertos parámetros
del correo que será enviado con el fax.
Protocolo T.38
 El protocolo T.38 es un protocolo recomendado por la ITU que sirve para transportar
FAX sobre redes IP.
 T.38 surge como solución a ciertos problemas y métodos de tratamiento de fax como
audio a la hora de transportarlos.
114
Capítulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 El protocolo T.38 resuelve estos problemas usando algunas técnicas interesantes como
la redundancia de paquetes.
 Es decir que por cada paquete enviado a través de la red es probable que se envíen
algunas copias por si alguno se pierde en el camino.
 A partir de Asterisk 1.4 se introdujo soporte limitado para el protocolo T.38. Asterisk
no es capaz de terminar una transmisión T.38, ni de entender el protocolo.
 Lo único que puede hacer Asterisk con T.38 es pasar la comunicación de un lado a
otro. O sea que T.38 puede pasar a través de Asterisk y a esta modalidad de
funcionamiento se le llama passthrough.
 La versión 1.6 de Asterisk añade más soporte para T.38 y estará en la capacidad de
entender el protocolo un poco más y por lo tanto hacer algunas cosas interesantes.
AvantFax, un GUI Alternativo
 AvantFax es un GUI que facilita la administración de faxes.
 AvantFax utiliza como fax server Hylafax.
 Permite el envío y recepción de faxes a través de la interfaz web.
 Recientemente se ha lanzado un instalador RPM de AvantFAX que puede ser
descargado del repositorio de Extras de Elastix.
115
Capítulo 19
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
MENSAJERÍA INSTANTÁNEA
Protocolo XMPP
 XMPP o Extensible Messaging and Presence Protocol, por sus siglas en inglés, es un
protocolo extensible y abierto basado en el estándar XML.
 Es ampliamente utilizado para el intercambio en tiempo real de mensajes y presencia
entre dos puntos en Internet.
 Existe una gran red de servidores XMPP interconectados entre sí, y a la vez
independientes unos de otros.
 Usuarios de distintos servidores conectados a la red Jabber pueden hablar entre ellos
sin ningún problema, ya que cada usuario está conectado a su servidor, y los servidores
de estos usuarios se intercambian los mensajes.
 XMPP es el protocolo seleccionado por Facebook para su chat y por Google para
GoogleTalk.
 Al nivel más básico, si dos contactos tienen cuentas creadas en el mismo servidor
XMPP, podrán hablar entre ellos.
Características de XMPP
 Es abierto: El protocolo de XMPP es gratuito, abierto, público y comprensible.
 Existen múltiples implementaciones de código abierto para Servidores XMPP, asi como
numerosos clientes y librerías de desarrollo.
116
Capítulo 19
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Es extensible: Usando el potencial del lenguaje XML, cualquiera puede extender el
protocolo de XMPP para una funcionalidad personalizada.
 Es seguro: Cualquier servidor XMPP puede ser aislado de la red pública Jabber.
 Cualquier implementación del servidor usa SSL para las comunicaciones cliente-
servidor y numerosos clientes soportan PGP-GPG para encriptar las comunicaciones
de cliente a cliente.
 Es descentralizado: Cualquiera puede montar su propio servidor XMPP, además está
libre de patentes y no depende de ninguna empresa de modo que se puede usar
siempre con total libertad.
 Para mantener la interoperabilidad, las extensiones comunes son controladas por la
XMMP Standards Foundation.
Clientes XMPP
 Spark: Integrado con el servidor OpenFire y pensado para empresas. Escrito en Java.
Libre, gratuito. (Windows, Linux, Mac).
 Jabbin: Cliente libre desarrollado a partir de Psi (Windows, Linux) No se sigue
desarrollando.
 Bitlbee: Es una pasarela IRC-IM que permite conectar a varios protocolos usando un
cliente IRC.
 Pidgin: (Windows y Linux) soporta además protocolos para msn y yahoo.
 iChat: cliente incluido en OSX (Mac)
Openfire en Elastix
 Openfire es un sistema de mensajería instantánea de código abierto que permite
habilitar servicio de mensajería instantánea interna.
 Es el servicio de IM utilizado por Elastix por sus características que permiten
transferencia de archivos, transmisión de mensajes (broadcast), integración con
telefonía, integración con otros gateways, y por supuesto IM.
 Está escrito en Java y su funcionalidad puede ser extendida con plugins.
 Openfire viene desactivado por defecto en Elastix.
 Para instalar Openfire ir al menú “IM” y luego hacer clic en “click aquí”.
117
Capítulo 19
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 El primer paso consiste en seleccionar el idioma
 Se debe especificar el dominio del sistema, el cuál ya debe estar configurado (Es el
mismo dominio del servidor Elastix).
118
Capítulo 19
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Se debe especificar la configuración de la Base de Datos. Es conveniente elegir la base
de datos embebida.
 En esta pantalla seleccionamos el lugar de datos donde se almacenarán los usuarios.
 En esta pantalla seleccionamos la contraseña del administrador.
119
Capítulo 19
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Después del paso anterior culmina la instalación y podemos ingresar a la interfaz
administrativa.
 Una vez en la interfaz administrativa podemos crear usuarios, configurar plugins y
grupos.
120
Capítulo 19
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Una vez que instalamos Openfire tendremos acceso a algunas de las siguientes
características de este servicio:
 Funcionalidad expandible a través de plugins
 Posibilidad de integración con Asterisk
 Interacción con otras redes de mensajería instantánea como Gtalk, Yahoo
Messenger, ICQ, entre otros
 Soporte para mensajes broadcast
 Transferencia de archivos
 Puede guardar histórico de conversaciones
 Soporte para clustering
 Permite crear diferentes grupos de trabajo
121
Capítulo 20
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
SINTETIZACIÓN Y
RECONOCIMIENTO DE VOZ
Sintetización de voz
 Es la tecnología que permite convertir el texto a audio.
 También se conoce como TTS debido al término Text-To-Speech (texto-a-habla en
inglés).
 Actualmente ya existen alternativas de sintetización de voz de relativo bajo costo e
inclusive de libre uso como Festival o FreeTTS.
 Festival es el motor de sintetización por defecto en Elastix. Es necesario activarlo.
 La técnica de sintetización de voz usada por Festival está dividida en en tres partes:
• Análisis de texto.- Normaliza el texto, lo traduce a un formato de palabras
estándar.
• Análisis lingüístico.- Convierte el texto normalizado en fonemas.
• Generación de audio.- Traducción de fonemas a audio.
 El algoritmo por omisión usado por Festival para la traducción de fonemas a audios es
RELP (Residual Excited Linear Prediction)
Festival
 Festival es un sistema de sintetización de voz desarrollado por la Universidad de
Edimburgo utilizando lenguaje de programación C++
 Festival soporta Inglés Americano, Inglés Británico y Español.
122
Capítulo 20
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Puede ser utilizado desde Asterisk.
 Festival puede trabajar como cliente y como servidor.
 Como cliente puede trabajar en dos modos: línea de comandos y tts (text-to-speech).
Festival dentro del plan de marcado
 Asterisk provee una aplicación de plan de marcado llamada Festival.
 Esta aplicación funciona internamente conectándose a un servidor Festival a través de
la red y reproduciendo la salida de audio en el canal en uso.
 La sintaxis de la aplicación Festival es la siguiente:
 text es el texto que se desea sintetizar (y reproducir)
 intkeys es un parámetro opcional que especifica las teclas telefónicas que pueden
interrumpir la ejecución del comando.
 En este ejemplo si llamamos a la extensión 5333, escucharemos ese mensaje escrito.
Festival en Elastix
 Con festival se puede sintetizar voz desde la interfaz Web de Elastix.
 Ir a PBX → Tools → Text to Wav.
 Se puede escribir un texto y generar un en formato wav o gsm.
 Esta funcionalidad podría servir para crear prompts de voz que podemos usar en el
plan de marcado.
123
Capítulo 20
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Reconocimiento de voz
 Es el proceso en el que un sistema computacional reconoce lo que un ser humano le
dice.
 El término reconocimiento de voz es muchas veces utilizado para referirse al
reconocimiento del habla, como en el caso del sistema telefónico.
 Una aplicación muy utilizada para sistemas telefónicos IP basados en Asterisk es
LUMENVOX.
Lumenvox
 Lumenvox aunque usa algunos de los fundamentos del reconocimiento de voz, es
diferente ya que no trata de identificar a individuos.
 Más bien trata de identificar lo que éste dice.
 Para esto hace una comparación de las ondas del audio de una persona que llama, con
los modelos acústicos de su base de datos.
 De ahí que sea común encontrarlo en aplicaciones donde una persona que llama
completa una orden de voz; Ej: decir la extensión o el nombre de la persona a la que
llamamos.
Procedimiento Lumenvox
 El procedimiento completo sería el siguiente:
 Cargar una lista de palabras para ser reconocidas.
 El SRH (Sistema de Reconocimiento del Habla) carga el audio del altavoz. Este audio se
representa como una forma de onda.
 El SRH compara la forma de onda con sus propios modelos acústicos (Las bases de
datos que contienen información sobre las formas de onda de cada uno de los sonidos)
 El SRH comparan las palabras en la gramática a los resultados obtenidos a partir de su
búsqueda de modelos acústicos.
 Determina qué palabras en la gramática de audio concuerdan y devuelve un resultado.
124
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
DESEMPEÑO &
DIMENSIONAMIENTO
Desempeño de Elastix
 El desempeño de un servidor Elastix es un asunto complejo de analizar.
 Existen muchos parámetros a tomar en cuenta principalmente el desempeño de
Asterisk, ya que la comunicación de voz es en tiempo de real.
 En muchos casos interesa conocer los resultados y recomendaciones principalmente
desde el punto de vista de una PBX.
Factores que afectan el desempeño de Elastix
 Hay muchos factores que pueden afectar el desempeño de Elastix de alguna manera.
 Los más comunes relacionados con la operación de un servidor de comunicaciones
unificadas son:
 Llamadas Concurrentes
 Transcoding
 Interrupciones de Hardware
Numero de llamadas concurrentes
 El número de llamadas concurrentes afecta directamente el consumo de CPU del
servidor. “Es Muy Importante”
 El gráfico siguiente tiene pruebas realizadas (sin transcoding) en un computador con un
CPU de 2.2 GHz con 512 MB de RAM.
 Obviamente una prueba teórica siempre supone condiciones ideales, por lo cual el
rendimiento debe ser tomado como referencia únicamente.
 En el computador se usó Elastix 1.3.
125
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
CPU vs. Llamadas Concurrentes
Uso de CPU
 Vemos que se han superado las 200 llamadas concurrentes con menos del 50% de
CPU.
Transcoding
 En ocasiones una llamada llega con un codec y el punto de destino final utiliza un codec
distinto.
 Asterisk está en el medio por lo tanto tiene que hacer las veces de traductor para que
los dos puntos se entiendan. A este proceso denominamos transcoding.
 El transcoding requiere de muchos cálculos matemáticos pues se está decodificando y
codificando información con algoritmos complejos, consumiendo recursos a nivel de
CPU.
126
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Openfire
 Openfire es un software escrito en Java que proporciona el servicio de Mensajería
Instantánea.
 Sin embargo, cabe señalar que consume una gran cantidad de memoria.
 Por lo tanto, si el servicio no es realmente necesario y se cuenta con un servidor
limitado por recursos, es recomendado dejarlo apagado.
 Por omisión Openfire no activa al instalar Elastix.
127
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Dimensionamiento telefónico
 Determinando el número de líneas telefónicas necesarias
 Primer parámetro en un proyecto telefónico nuevo: calcular número de líneas para
satisfacer la demanda prevista.
 No se quiere tener más líneas de las necesarias, esto podría significar un desperdicio
de recursos.
 Tampoco se debe sub dimensionar el número de líneas, ya que los usuarios podrían
recibir continuamente tonos de ocupado.
 El cálculo, por lo tanto debe basarse en criterios técnicos y no ser tomado a la ligera.
 El “modelo Erlang” es una aproximación estadística para calcular cuántas líneas
telefónicas necesitaremos en una instalación determinada para satisfacer una demanda
prevista con cierta calidad.
Agner Krarup Erlang
 Erlang, Ingeniero y matemático danés que desarrolló las técnicas de Ingeniería de
Tráfico y Teoría de Colas.
 Exploraremos estos conceptos para darle al lector cierto conocimiento básico y
práctico de estas técnicas sin llegar al rigor matemático que ellas demandan.
 Estas técnicas nos permitirán dimensionar cuántas líneas telefónicas necesitaremos en
una instalación.
La unidad Erlang
 Un Erlang es una unidad adimensional comúnmente utilizada para medir el tráfico
telefónico por hora, o se puede decir que un Erlang representa la utilización continua
de un circuito.
128
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 1 Erlang equivale a la utilización de un circuito continuamente durante una hora, en un
lapso de una hora de tiempo o lo que es lo mismo que el circuito estuvo siempre en
uso.
 Así mismo 0.5 Erlangs quiere decir que en el lapso de una hora el circuito se utilizó
solo 30 minutos.
 Para calcular el tráfico en Erlangs se puede proceder de la siguiente manera:
 Encontrar el tráfico total en horas: Se suma el tiempo de todas las llamadas
durante un lapso de tiempo cualquiera y se convierte este valor a horas
 Encontrar el tráfico por unidad de tiempo (en horas): Se divide el total anterior
para el lapso de tiempo en horas
 Ejemplo
 En una empresa cualquiera entre las 9H00 y 12H00 de un día determinado se
realizaron 300 llamadas, con un promedio de 6 minutos por llamada y se quiere medir
el tráfico en Erlangs.
 Tráfico Total = Tráfico en 3 horas = 300 x 6 = 1800 minutos
 = 1800 minutos / 60 minutos = 30 horas
 (quiere decir que se hablaron 30 horas en ese lapso de tiempo)
 Tráfico por hora = Tráfico Total / Lapso de Tiempo
 = 30 horas / 3 horas = 10 Erlangs
 Hemos obtenido una medida de tráfico de 10 Erlangs.
Modelos Erlang
 En esencia existen dos modelos en las teorías de Erlang que se utilizan mucho en
telefonía:
 modelo B
 modelo C
 En la presente obra estudiaremos el modelo B pero recomendamos al lector recabar
información del modelo C.
 Nota: El modelo C se utiliza para calcular probabilidades en llamadas que entran a colas así que si el
lector está pensando en administrar un call center sería útil que indagara en el modelo Erlang C.
129
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Erlang B
 El modelo Erlang B es el más común. Se usa determinar el número de líneas necesarias.
 Básicamente necesitamos alimentar a la fórmula con un par de parámetros y podemos
obtener el número de líneas que necesitamos.
 Estos parámetros son:
 Tráfico punta o pico (el tráfico en la hora de mayor actividad)
 Grado de Servicio (o GOS por sus siglas en inglés).
 El Tráfico punta o pico se obtiene sumando todo el tráfico en la hora con más actividad
telefónica.
 Es útil tomar muestras no solo de un día sino de algunos días o semanas para que la
información sea más exacta.
 El Grado de Servicio representa la probabilidad de que una llamada sea rechazada. Su
valor va de 0 a 1. Donde 1 significa el 100% de rechazo de llamadas.
Grados de Servicios Comunes
130
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Fórmula Modelo Erlang B
 Donde:
 E es el valor del tráfico punta o pico (en Erlangs)
 N es el número total de líneas telefónicas
 Como vemos, el valor de GoS no es sencillo de calcular.
 N, que es el valor que buscamos, tampoco es sencillo de despejar.
 Actualmente hay muchas herramientas en línea, algunas gratuitas, o aplicaciones para
Smartphones que permiten calcular el modelo de Erlang B.
 La presentación de la fórmula ayuda a que el profesional de Elastix sepa los
fundamentos del cálculo de la misma lo cual siempre es útil.
 Tomemos el cálculo que hicimos anteriormente:
 Tráfico Total = Tráfico en 3 horas = 300 x 6 = 1800 minutos
 Tráfico por hora = 10 Erlangs
 ¿Cuántas líneas telefónicas necesito con un GoS de 0.01?
 Calcúlalo en:
 http://www.erlang.com/calculator/erlb/
Flash Operator Panel
 En instalaciones con alta actividad telefónica el FOP puede comenzar a consumir
recursos fuera de los niveles deseados.
131
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 En instalaciones con alta actividad telefónica el FOP puede comenzar a consumir
recursos fuera de los niveles deseados.
 El FOP se comunica con Asterisk a través de AMI.
 Por lo tanto se encuentra escuchando toda la actividad telefónica a través del puerto
de red que levanta Asterisk para este fin.
 Cuanto más actividad, más información tiene que procesar el FOP.
 En instalaciones grandes, en caso de que el uso del FOP no sea requerido es mejor
apagarlo.
Herramientas
top
 Para hacer un análisis breve de los servicios que están consumiendo recursos, basta
con ejecutar un comando top.
 Ordenamos su salida por consumo de memoria y también por consumo de CPU.
 Para hacer lo primero escribimos la letra M (Mayúscula) y para lo segundo la letra P.
 En algunas ocasiones podemos observar el proceso java liderando las estadísticas de
consumo.
132
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Normalmente esto tiene que ver con Openfire debido a que se encuentra
implementado sobre java.
sipp
 Sirve como generador tráfico SIP, ayudándonos a generar llamadas SIP hacia nuestro
servidor Elastix.
 Esto nos permite tomar muestras para entender cómo reaccionan los recursos del
sistema (CPU, memoria).
 La idea general es generar un volumen alto de llamadas y determinar el performance
de nuestro equipo en varios escenarios.
 Sipp es una herramienta de código abierto. Información de descarga y documentación
puede ser encontrada en: http://sipp.sourceforge.net/
Cuando un solo servidor no alcanza
 Muchas veces una instalación es tan grande que rebasa la capacidad de un sólo equipo.
 Para estos casos es recomendable dividir un Elastix en uno o más servidores, o
balancear la carga.
 Existen dos esquemas que se usan en la práctica:
 Distribuir el trabajo en equipos especializados
 Distribuir el plan de marcado
133
Capítulo 21
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Distribuir el trabajo en equipos especializados
 Es posible migrar ciertos servicios a otros servidores:
 MySQL
 Antispam
 Postfix
 Openfire
Distribuir el Plan de marcado
 La funcionalidad utilizada es DUNDi y puede configurarse para utilizar varios
servidores.
 Elastix tiene actualmente un addon que permite configurar un plan de marcado
distribuido.
 Revisaremos Plan de Marcado Distribuido y DUNDi mas adelante en este curso.
134
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
SEGURIDAD
Algo de Historia
 Por los años 60 se dieron cuenta que si generaban una señal audible a la frecuencia
exacta de 2,600 Hertz producían que las llamadas telefónicas se colgaran.
 Algunos hackers se pusieron a estudiar y entender la señalización telefónica, realizando
llamadas de larga distancia de manera gratuita.
 Desde entonces hay personas dedicando miles de horas de investigación a tratar de
quebrantar la seguridad de servidores alrededor del mundo.
Buenas Prácticas
 Todas las acciones básicas recomendadas para iniciar la operación de un servidor de
comunicaciones unificadas
 Limitación del acceso al servidor
 No usar el usuario root
 No dejar sesiones de consola abiertas
 Bloquear el reinicio
 Utilizar contraseñas fuertes
 Deshabilitar el acceso directo a FreePBX
Ataques y vulnerabilidades a nivel de red IP
 Denegación de servicio
 Ataques de inundación SIP (SIP Flooding)
 Sniffing
 Captura de llamadas a nivel de VoIP
 Fraude telefónico
 Intento de obtención de privilegios de root
Algunas soluciones a los problemas de seguridad
 Apagar los servicios que no vamos a usar
135
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Firewalls
 IDSs e IPSs
 Actualizaciones
 Monitoreo
 Usar un Switch en lugar de un HUB
 Cambiar las claves por omisión
Encriptando la VoIP
 SRTP: El protocolo SRTP (Secure RTP) no se encuentra soportado oficialmente en
Asterisk 1.6; Asterisk 1.8 tiene soporte nativo para SRTP.
 VPNs: Una VPN (Virtual Private Network) o Red Privada Virtual es un concepto que
nos permite simular una red privada sobre una red pública como el Internet.
 Encriptación IAX: Cuando IAX fue concebido se pensó en problemas de violación a
la privacidad y se añadió soporte nativo para encriptación de llamadas.
Auditoría de seguridad
 Una auditoría de seguridad debe ser considerada como una práctica preventiva.
 Es recomendable que se realice periódicamente para detectar a tiempo problemas que
podrían poner en riesgo nuestros equipos.
 Escaneo de puertos de red
 Revisión de logs del sistema
 Revisión de rootkits
 Auditoría avanzada con Nessus
El módulo de Seguridad de Elastix
 Configuraciones básicas de seguridad a nivel de interfaz:
 Gestión de Firewall
 Auditoría de uso de la Interfaz web de Elastix
 Auditoría de Contraseñas débiles
 Configuración Avanzada
136
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Gestión de Firewall
 Interfaz para administración de IPTables
 Posee un conjunto de reglas predefinidas
 Permite la personalización de puertos
137
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Activando el Firewall
Creando una nueva regla
 Opciones para configuración
 Tráfico: ENTRADA, SALIDA, A TRAVES
 Interfaz de ENTRADA: CUALQUIERA, Ethernet 0, Loopback
 Dirección de Origen
 Dirección de Destino
 Protocolo: TODOS, TCP, UDP, ICMP, ESTADO
 Objetivo: ACEPTAR, DESCARTAR, RECHAZAR
	
  
138
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Personalizando un Puerto o un rango de Puertos
Auditoría de uso de la Interfaz web de Elastix
 Permite visualizar las operaciones efectuadas utilizando la Interfaz web de Elastix
 Posee la posibilidad de utilizar filtros por fecha o por búsqueda de una palabra clave
 Ofrece la descarga de los logs de utilización en formato CSV, XLS o PDF
Auditoría de Contraseñas Débiles
 Analiza las contraseñas de las extensiones creadas en Elastix
 Verifica que no sean demasiado cortas o que estén basadas en diccionario
 Algunos ejemplos: qweasd, a1b2c3, 123456
	
  
139
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Configuración Avanzada
 En este menú se puede activar el acceso directo a FreePBX
 Se puede también activar llamadas SIP anónimas.
 Es importante mencionar, que aunque existan estas configuraciones, se recomienda
mantenerlas desactivadas por defecto.
Activando FreePBX sin embeber
 Elastix mantiene desactivado por defecto la interfaz no embebida de FreePBX.
 Si aun es necesario activar la interfaz no embebida de FreePBX, es importante hacerlo
correctamente.
 Para esto es necesario ir a: Security → Advanced Settings
 Una vez que culminemos cualquier configuración que necesitemos hacer es
recomendable volver a desactivarla.
 “No actualice FreePBX desde su interfaz, existen procedimientos de
actualización con Elastix, consulte en los foros o listas.”
	
  
140
Capítulo 22
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Una vez activado FreePBX, podemos revisar lo requerido y después desactivarlo de
nuevo.
Técnicas Adicionales
 Implementación de Fail2Ban
 Implementación de Port Knocking
 Implementación de ordenes Allow/Deny durante la configuración de las extensiones
 Mantener deshabilitada la interfaz de FreePBX sin embeber
 Cambio de puertos por defecto
 Utilización de VPNs para extensiones remotas
Documentación Adicional
 Seguridad en servidores CentOS con Elastix – Rodrigo Martín
 Elastix Network Security Guide – Bob Fryer
 Trunking entre dos Sistemas de PBX Elastix PBX Vía Internet – Bob Fryer
 Asegurando Elastix – Samuel Cornú
	
  
	
  
	
  
141
Capítulo 23
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
DEPURAMIENTO AVANZADO
Introducción
 Un depurador permite examinar la ejecución de un programa a un nivel de detalle
mayor que el habitual.
 La ejecución en detalle permite encontrar errores que de otro modo resultarían
difíciles de hallar.
 Con un depurador es posible examinar qué estuvo ocurriendo en el momento en que
un programa se colgó.
 Dos alternativas para depuración son: strace y gdb
¿Qué hacer cuando Asterisk se comporta mal?
Identificar el componente que está causando problemas
 En algunas ocasiones existen problemas por errores en el código, o bugs.
 Es importante saber diferenciar si el problema está relacionado con un bug o no
 Muchas veces no es un problema de Asterisk sino de Sistema Operativo
 El problema puede ser también por otros componentes de Software o Hardware
Reproducir el bug
 Los pasos básicos a seguir son:
 Examinar los logs, siendo clave la revisión de los minutos anteriores a la falla.
 Consultar a los usuarios, ellos viven la operación telefónica día a día.
 Monitorear el equipo
 Aunque suene drástico en ocasiones es necesario montar guardia en las instalaciones
del cliente y esperar a que el problema ocurra.
 Una vez que logramos reproducir el bug y determinamos la situación en que se
produce podemos hacer dos cosas:
 Verificar si ha sido reportado - http://bugs.digium.com
 Verificar si ya fue solucionado en recientes versiones de Asterisk.
 Reportar el bug, si este aun no ha sido reportado, de tal manera que la comunidad de
desarrollo de Asterisk lo resuelva.
142
Capítulo 23
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Errores de Programación
 Errores de programación que provocan caídas, colgados o comportamientos
indeseados
 Falla de segmentación (Segmentation Fault)
 Deadlock
 Fuga de memoria
 División para cero
 Buffer overflow
Strace
 Monitorea las llamadas a sistema que realiza un programa determinado y todas las
señales que éste recibe.
 Llamadas al sistema comunes en Linux: open, read, write, close, wait, exec, fork, exit,
kill, entre otras.
 ptrace es la carácterística que hace posible el trabajo de Strace.
 Ejemplo de ejecución de Strace al programa: “cat /proc/cpuinfo”:
 [root@elastix ~]# strace cat /proc/cpuinfo
Depuración en Asterisk
Un ejemplo sencillo
 Hay ocasiones donde es importante monitorear un proceso de Asterisk en ejecución.
 Por ejemplo si nuestro servidor consume muchos recursos de CPU y queramos
averiguar qué está ocurriendo.
 Para depurar un programa en ejecución con strace primero debemos averiguar el PID
del proceso que queremos monitorear.
 Un ejemplo sencillo
 En nuestro enlistaremos los procesos que contengan la palabra Asterisk y tomaremos
el menor PID
 [root@elastix ~]# ps aux | grep asterisk
143
Capítulo 23
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Ahora que sabemos el PID podemos monitorearlo con strace de manera sencilla:
 [root@elastix ~]# strace -p 1619
GDB
 GDB es un completo depurador desarrollado y mantenido por la Free Software
Foundation.
 Nos permite hacer seguimiento de la ejecución de un programa insertando pausas
cuando creamos necesario.
 También nos permite observar lo que un programa estaba haciendo cuando se colgó.
 Además nos permite cambiar ciertas cosas dentro del programa para ver los efectos
que se producen con dichos cambios.
 GDB es una opción más completa que strace pero también su uso requiere un tanto
más de conocimiento.
 Con GDB podemos depurar programas escritos en C o C++ como es el caso de
Asterisk
Ejemplos simples de uso de GDB
 GDB puede utilizarse para depurar un programa de tres maneras diferentes:
 Depurando un programa desde el depurador; Desde el propio GDB
 gdb programa
 Depuración sobre Asterisk en plena ejecución
 gdb programa PID
 Depuración haciendo backtrace sobre un Asterisk caído
 gdb programa caído
144
Capítulo 23
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Comandos básicos
 Nota: Para más información puede recurrir al comando “man gdb”
Archivos core y backtraces
 Muchas aplicaciones dejan archivos core cuando terminan inesperadamente, esto nos
permite hacer una depuración post-mortem del software.
 En el caso de Asterisk esto es posible cuando se lo inicia con la opción –g (Elastix inicia
Asterisk con dicha opción por defecto).
145
Capítulo 23
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Si no se está seguro que Asterisk haya sido iniciado con la opción –g se puede verificar
con el siguiente comando.
 Un archivo core es el contenido de memoria del programa en el momento en que se
detuvo.
 Es el sistema operativo quien guarda ese contenido de memoria.
 Este contenido de memoria, combinado con la tabla de símbolos que se genera cuando
el programa es compilado hacen que gdb nos pueda mostrar información más legible.
 Un backtrace es un reporte de las llamadas a funciones que se encontraban en
memoria en un momento dado.
 Desde gdb es posible realizar backtraces sobre un archivo core.
 Para hacerlo existen dos comandos, el bt y el bt full.
 El bt full es un backtrace más detallado que el normal. Muestra parámetros y variables
locales usados por las funciones que están siendo invocadas.
 Ejemplo: Primero identificamos el archivo core que necesitamos examinar, por lo
general se trata del último.
146
Capítulo 23
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
¿Cómo reportar un Backtrace a Digium?
 Si determinamos que tenemos un bug de Asterisk el siguiente paso lógico es reportar
ese bug al fabricante.
 Digium dispone de una interfaz Web para esta finalidad ubicada en:
 http://issues.asterisk.org
 Cuando se reporta un bug es de mucha ayuda para los desarrolladores de Asterisk
contar un backtrace para poder entender mejor lo que ocurrió a nivel interno.
 Los lineamientos generales para reportar backtraces son:
 http://www.asterisk.org/doxygen/trunk/AstDebug.html
 Se pide no subir archivos core sino únicamente la salida del comando bt y bt full
conseguidos con gdb.
 Es importante, al reportar un bug de Asterisk, mencionar que se está utilizando
Elastix.
 Esto permitirá a los desarrolladores de Digium conocer que se trata de un Asterisk
compilado con parches y funcionalidades adicionales.
147
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
PLAN DE MARCADO DISTRIBUIDO
DUNDi
Distributed Universal Number Discovery
 DUNDi es un sistema de localización de gateways para el acceso a los servicios de
telefonía.
 Utiliza un esquema punto a punto y no requiere ninguna arquitectura de red en
particular ni un esquema jerárquico cliente-servidor.
 Este es un punto de diferenciación con ENUM
 En otras palabras DUNDI es capaz de consultar los contextos de otros equipos para
encontrar una ruta hacia determinado usuario o peer.
 DUNDi en realidad no realiza una llamada como tal, ya que no es un protocolo de
señalización VoIP
 Recibe y proporciona la información necesaria para poder contactar a los equipos
independientemente del protocolo de señalización usado.
 Por esto es posible usar DUNDi virtualmente con cualquier protocolo soportado por
asterisk.
 Es parte de Asterisk por lo cual su integración y funcionalidad en Elastix es
transparente.
Funcionamiento
 Para que DUNDi funcione se debe conocer al menos un peer
 Si este peer no puede responder a la consulta (él no tiene ese usuario), puede delegar
la consulta a otro peer conocido.
 Esto sucede sucesivamente hasta que se encuentre a un peer que tenga una respuesta
al peer consultado.
 DUNDi puede ser utilizado en una empresa para extender su operación a varios
servidores en una o diferentes sucursales.
148
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Ejemplos de uso
 Un ejemplo típico de la utilidad de DUNDi es en una empresa multi-sede, en la cual
cada sede tiene su propio equipo con Elastix.
 Cada equipo puede publicar sus extensiones y si uno de los equipos pregunta, por
ejemplo ¿dónde está el número 456? la consulta se enviará directa o indirectamente a
todos los servidores en la red DUNDi
 El servidor que tenga esa extensión publicada responderá algo como:
 IAX2/usuario:clave@1.2.3.4/456
 El uso de DUNDi hace que no necesite un plan de marcado fijo para cada equipo
integrado en una red.
 Otro uso común de DUNDi es clúster y balanceo de carga.
 Esto es importante en un esquema con muchos usuarios así como para esquemas de
clúster y disponibilidad.
 “Cuando un servidor no alcanza”, comentamos esto en la sección de rendimiento.
Bueno, DUNDi es una muy buena opción.
Seguridades
 DUNDi usa certificados de encriptación RSA par compartir los planes de marcado.
 Esto es requerido ya que las respuestas a una consulta incluyen las contraseñas de las
troncales.
149
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Asterisk integra el comando astgenkey que se encarga de generar dichos certificados.
 Su uso es: astgenkey -n nombre-de-certificado, ej:
 Estos certificados deben ubicarse en la carpeta /var/lib/asterisk/keys de cada servidor.
 Podemos compartir este archivo de un servidor a los demás servidores con el
comando spc:
Configuración
 DUNDi guarda su configuración en el archivo dundi.conf dentro de la carpeta
/etc/asterisk/.
 Este archivo se divide en tres secciones:
 [general] - donde se define la identificación en la nube DUNDi y opciones
globales.
 [mappings] - donde se definen las respuestas a una consulta de otro equipo.
 Peers – definición de peers que consultarán y serán consultados.
 Esta configuración debe ser realizada en cada servidor donde se distribuirá el plan de
marcado.
 iax_custom.conf - Configuración de troncal.
 extensions.conf - Configuración para modificar el contexto "from-internal" de
FreePBX, de tal manera que no obtengamos una respuesta de bad-number en la
búsqueda del número.
 extensions_custom.conf - definimos los contextos personalizados para que DUNDi
relacione nuestras extensiones, realice búsquedas en otros equipos y redirija las
llamadas.
 Esta configuración permite que cuando creemos una extensión nueva desde la interfaz,
se añada al contexto local incluido en dundi-priv-canonical que usará DUNDi.
150
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Configurando en la Interfaz
 Elastix incluye un Addon para realizar esta configuración desde interfaz.
 La aplicación está disponible desde la versión 2.0.3
 Vamos al menú Addons, ubicamos “Distributed Dial Plan” y hacemos clic en install.
 Una vez instalado, aparecerá un submenú en el menú PBX, denominado “Distributed
DialPlan”.
 Iniciamos la configuración en el 1er Servidor.
 Llenamos la información marcada como requerida.
151
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Luego, en el mismo servidor iremos al submenú “Password Connection”.
 Aquí podemos generar el certificado de configuración RSA.
 Podemos además enviarlo al destinatario del otro servidor.
 El usuario del 2do servidor recibirá un mensaje como este con el certificado:
 Una vez con el certificado, el usuario del 2do servidor debe configurar la información
de peer.
 Ingresa la dirección IP del primer servidor y el certificado que recibió. El comentario
puede ser cualquiera, generalmente una descripción.
 Después hace clic en “Request”.
152
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
2do Servidor:
1er Servidor:
	
  
153
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
2do Servidor:
 Esta aplicación realiza todas las configuraciones necesarias por nosotros.
 Bajo este esquema podemos distribuir un plan de marcado en varios servidores.
 Una ventaja visible es su facilidad.
 Aun así es importante saber como configurar DUNDi en bajo nivel para entender la
funcionalidad
154
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
MÓDULO DE CALL CENTER
Módulo de Call Center
 Este software está diseñado para hacer campañas de llamadas entrantes y salientes.
 Estas llamadas permiten la interacción entre operadores (agentes) y personas
contactadas (abonados).
 Se usa el término “campaña” para designar la ejecución de un conjunto de llamadas.
 El módulo incluye un marcador predictivo que se encarga de llamar de manera
automática a los números “objetivo”.
 Además incluye dos componentes importantes: consola de agente (basada en web) y una
interfaz de administración de llamadas.
 La versión actual incluye soporte para el protocolo ECCP.
 Este protocolo permite que la operación del módulo sea mas eficiente y es posible
integrar aplicaciones externas.
 El módulo de Call Center de Elastix es Open Source.
155
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Modelo de Funcionamiento
 El módulo del Call Center está implementado alrededor del soporte de colas de
Asterisk.
 El diseño asume que cada una de las colas alberga al menos a un agente.
 Cada campaña utiliza exactamente una cola. Un agente puede pertenecer a varias colas.
 Actualmente se reconocen dos modos principales de funcionamiento: Campañas
Salientes y Campañas Entrantes.
Funcionalidades Implementadas
 Llamado automático a partir de una lista de números.
 Ejecución de múltiples campañas simultáneas.
 Seguimiento de agente asignado a una llamada.
 Marcador predictivo.
 Almacenamiento de guión de atención.
 Ingreso de formulario.
 Agendamiento de llamada.
 Capacidad de poner en hold una llamada.
 Reportes de actividad de llamadas.
Limitaciones conocidas
 No se puede asignar un agente específico a una llamada.
 No reproduce mensajes de audio en llamadas no atendidas; es decir no coloca llamadas
en una cola sin agentes.
 Esto es debido a que el módulo está diseñado para mediar llamadas que son atendidas
por agentes humanos.
 Es posible que se implemente esta funcionalidad en el futuro como “Campaña Sin
Agentes”.
156
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Marcador predictivo
 Es la porción del Call Center que interactúa directamente con las llamadas.
 Está implementado como un servicio residente (daemon) escrito en PHP. Se puede
iniciar como servicio a través del comando:
 El marcador inicia cada llamada mediante el uso del comando Originate de Asterisk.
 El marcador revisa constantemente las llamadas que han sido colocadas por el y que no
hayan recibido un evento OriginateResponse.
 Si el marcador recibe una respuesta del tipo OriginateResponse (ejemplo: join o
link) escribe la información de esa llamada en la base de datos.
 El marcador interroga regularmente el estado de la cola para averiguar cuántos agentes
se encuentran registrados y libres.
 El número de agentes libres regula cuántas llamadas son iniciadas simultáneamente.
157
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 El marcador estima la duración media de llamada, para intentar predecir si las llamadas en
curso están por terminar, para colocar proactivamente nuevas llamadas. Esta
funcionalidad es configurable.
 El modelo para predicción es una distribución Erlang acumulada.
 La interfaz Web permite iniciar y detener el servicio de marcador
 Además permite activar y desactivar la depuración de problemas en el marcador, incluso
si el marcador está corriendo.
 La ruta por omisión del log del marcador es el archivo
/opt/elastix/dialer/dialerd.log
 El marcador predictivo se encuentra encendido por defecto cuando se instala el módulo.
 Sin embargo es posible apagarlo o encenderlo desde la interfaz, en el menú de
configuración del módulo.
Administración del Módulo
 La administración del módulo permite :
o Crear Agentes
o Agregar colas
o Crear nuevas campañas salientes
o Crear nuevas campañas entrantes
o Administración de breaks
 También proporciona una interfaz de configuración que permite iniciar, detener y
configurar el marcador predictivo, incluyendo la activación de depuración.
158
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Iniciando la operación de Call Center
 Antes de iniciar la operación de Call Center es necesario seguir las siguientes
configuraciones básicas:
1. Instalar el Call Center en Elastix
2. Crear un grupo con la configuración para Agentes
3. Crear Usuarios en el sistema para los Agentes
4. Crear Extensiones para los Agentes
5. Crear Agentes en el módulo de Call Center
6. Crear la(s) cola(s) requeridas para la operación.
Iniciando la operación de Call Center : Instalación
 La instalación del módulo es sencilla. Únicamente es necesario ir al menú Addons y hacer
clic en INSTALL.
 La instalación se realiza automáticamente.
 Una vez concluida se habilitará Call Center en el menú principal.
159
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Iniciando la operación de Call Center : Creación de
Grupo
 Para la operación es necesario crear usuarios en Elastix para los Agentes que participarán
en ella.
 Por razones de seguridad y control necesitamos limitar el acceso de estos usuarios.
 Es necesario crear un grupo que tenga únicamente acceso a la consola.
 Para crear un grupo debemos ir a:
Sistema → Usuarios → Grupo: Crear Nuevo Grupo
 Para configurar el permiso de nuestro nuevo grupo debemos ir a:
 Sistema → Usuarios → Permisos de Grupo
 Seleccionamos el grupo creado (haciendo clic en mostrar), y filtramos el recurso: Agent
Console.
 Seleccionamos y Guardamos.
160
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Una vez que hemos creado el grupo con el acceso restringido, podemos crear los
usuarios para los agentes. Ir a:
 Sistema → Usuarios → Crear Nuevo Usuario
 Podemos crear tantos Agentes como necesitemos.
Iniciando la operación de Call Center : Creación de
Extensiones
 Debemos crear tantas extensiones como Agentes operen en una campaña.
 Es suficiente crear extensiones tipo SIP.
 Para facilitar la operación del Call Center estas extensiones son usadas normalmente en
Softphones.
 El módulo de Call Center transferirá al agente todas las llamadas en una campaña a su
extensión.
Iniciando la operación de Call Center : Creación de
Agentes
 La creación de Agentes se diferencia de la creación de usuarios ya que estos son
generados en el Módulo de Call Center.
 Un operador de Call Center necesita un usuario para hacer login en Elastix, y una vez en
la interfaz, necesita un Agente para hacer login en el Call Center.
 Para crear un agente ir a:
Call Center → Agent Options → Agents
 Hacemos clic en el link “Nuevo Agente”.
161
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 No se debe colocar nada en “Contraseña ECCP”. El sistema se encarga de asignar una al
crear el Agente.
Iniciando la operación de Call Center : Creación de
Colas
 El proceso de creación de Colas es similar al que vimos anteriormente.
 Se diferencia únicamente en que en lugar de colocar extensiones creadas en Elastix,
colocaremos los números de los Agentes que queremos que estén en la cola.
 La nomenclatura que se coloca en el listado de Agentes fijos también se diferencia, ya
que tenemos que anteponer la letra “A”.
 Crearemos la cola con el número ectetest con el número 101.
162
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Como podemos observar en la figura colocamos los Agentes creados en el módulo de
Call Center, con el prefijo A, seguido de una “,” y el número 0.
 Podemos colocar cualquier política de estrategia de ringado. Usualmente se selecciona
“Agente con menos llamadas”.
Iniciando la operación de Call Center : Activando el
Módulo
 Antes de iniciar comprobaremos que el servicio de Call Center está Activo.
 Esto se puede comprobar desde el Dashboard o desde el menú de configuración del Call
Center (Dialer apagado/encendido).
Consola del Agente
 La consola de agente administra la interacción del agente con el sistema. Está basada en
Web.
 La consola recibe eventos de una llamada a través del ECCP, al igual que la toda la
información correspondiente a la llamada.
 Por medio de la consola el Agente obtiene información de la operación (número
telefónico atendido, información de contacto).
 En la actualidad la consola de agente trabaja utilizando el protocolo ECCP.
163
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Acciones
 Colgar: Permite terminar una llamada
 Descanso: Permite a un agente/operador hacer tomar un receso para una actividad. Los
descansos deben estar previamente configurados por el administrador
 Transferir: Transfiere la llamada a alguna extensión existente en el plan de marcado. La
transferencia es ciega actualmente.
 VTiger CRM: Abre Vtiger en una ventana nueva del browser. Vtiger debe estar activo.
 Fin de sesión: Finaliza la sesión del agente/operador en el Call Center.
Funciones de Campaña
 Información de Llamada: Muestra la información de la persona que llama, si se
encuentra en la base de datos. Si no existe la información mostrará el número de
teléfono de la llamada entrante en la parte de abajo.
 Diálogo de llamada: Muestra un Script que se ha creado anteriormente para que sirva
de instructivo al agente.
 Formulario de llamada: En esta pantalla se muestra el formulario creado para una
campaña.
164
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Campañas Salientes
 El sistema se alimenta con un archivo que contiene los números telefónicos a marcar.
 Al activarse la campaña, el sistema marca los números telefónicos, verificando los agentes
libres registrados que se encuentren en la cola. Tantas llamadas como agentes libres.
 En este método se une la cola con el número del abonado. Si la llamada es exitosa entra
a la cola y es asignada al siguiente agente libre.
 La asignación depende de la política asignada a la cola (linear, wrandom…etc).
 El sistema registra en una base de datos al agente que se asignó a la llamada.
 Esta información servirá para varios propósitos de consulta.
 Al terminar la llamada, el agente pasa al estado ocioso, y está de nuevo disponible para
recibir una llamada.
 Este proceso continúa hasta recorrer toda la lista de números.
 Se puede configurar el número de intentos, de tal manera que el módulo llame a los
números que fallaron en ser contactados.
Campañas Entrantes
 Se define una cola, en la cual se incluyen los agentes. El marcador predictivo no funciona
en esta modalidad.
 Se debe organizar que los abonados que llamen al sistema, sean dirigidos a la cola
configurada para la campaña.
 El sistema registra en una base de datos al agente que se asignó a la llamada. Esta
información servirá para varios propósitos de consulta.
 Se puede alimentar el sistema con datos sobre números específicos para que el agente
tenga información disponible en su pantalla.
165
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Configuración de Campañas
 Existe un menú habilitado para cada tipo de campañas:
o Outgoing Calls: Campañas Salientes.
o Ingoing Calls: Campañas entrantes.
 Antes de iniciar una campaña es importante definir:
1. Formularios
2. Lista de Contactos (Opcional para campañas entrantes)
3. Lista de números telefónicos (Requerido en campañas salientes)
4. Breaks
5. Y por supuesto: Agentes y Colas.
Configuración de Campañas : Formularios
 Los formularios se crean en:
Call Center → Forms → Form Designer
 Cada formulario tiene la opción de agregar múltiples campos de los siguientes tipos:
o Campo de Texto
o Campo de Selección de Lista
o Campo de Fecha
o Campo de área de Texto
o Campo tipo etiqueta
166
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Podemos ver un preliminar del formulario en “Form Preview”.
 La creación y manejo del formulario funciona bien en Firefox, es probable que algunas
funcionalidades no se puedan configurar desde otros Browsers.
Configuración de Campañas : Clients – Ingoing Calls
 Las campañas de llamadas entrantes permiten subir un listado de contactos.
 El módulo verifica el número entrante con el listado y muestra la información del
contacto al Agente.
 La información soportada por el módulo de Call Center para el listado de contactos es:
"teléfono","cedula/ruc","nombre","apellido”
 Es útil hacer el listado en Excel o en hoja de cálculo de OpenOffice
 En la primera columna observamos el número telefónico. La segunda contiene el número
de cédula (o un id). La tercera y cuarta columna contienen el nombre y apellido.
 El campo cedula/ruc, es un campo requerido por el módulo para subir correctamente el
listado. Podemos colocar un número identificador en el contacto si no conocemos su ID.
 En el ejemplo anterior se muestra un número identificador para cada contacto.
 El archivo del listado debe ser guardado como csv:
167
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
o Si el archivo es hecho en OpenOffice debe ser guardado como “Texto CSV
(.csv)”
o Si el archivo es hecho en Excel debe ser guardado como “Windows Comma
Separated (.csv)”.
 Una vez creado el archivo con el listado de contactos debemos subirlo en el menú
Clients:
 Call Center → Ingoing Calls → Clients
Configuración de Campañas : Phone List – Outgoing
Calls
 La información principal de una campaña de llamada saliente es sin duda el listado de
números telefónicos a llamar.
 Esta información será requerida cuando creemos la campaña, sin embargo es importante
crearla adecuadamente.
 Es útil hacer el listado en Excel o en hoja de cálculo de OpenOffice
 El archivo del listado debe ser guardado como csv.
o Si el archivo es hecho en OpenOffice debe ser guardado como “Texto CSV
(.csv)”
o Si el archivo es hecho en Excel debe ser guardado como “Windows Comma
Separated (.csv)”
168
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Configuración de Campañas : Configuración de
Breaks
 Los breaks permiten que un agente salga de operación y permanezca en Stand by como
no disponible.
 En este estado el dialer no le asignará llamadas.
 Tampoco se le asignarán llamadas en una campaña entrante.
 Para crear los breaks vamos a: Call Center → Breaks y hacemos clic en: “Crear nuevo
break”
 Los breaks pueden estar en estado “Activo” o “Inactivo”.
 Para que el agente pueda seleccionarlos deben estar Activos, caso contrario ni siquiera
aparecerán como opción.
En Campaña: Ingoing Calls
 Primero debemos seleccionar una cola.
 El módulo transferirá las llamadas entrantes a la cola y la cola las distribuirá entre los
agentes que estén configurados en ella.
 Pueden existir varias colas y se pueden activar varias campañas entrantes.
 Una cola puede además estar seleccionada por dos campañas entrantes.
Call Center → Ingoing Calls → Queues
169
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Luego de seleccionar la cola, es recomendable subir la base de datos de los clientes que
llamarán.
 A continuación crearemos la(s) campaña(s) para que inicie la operación de llamadas
entrantes.
 Debemos ir a: Call Center → Ingoing Calls → Ingoing Campaigns
 Una vez ahí debemos crear una nueva campaña, donde seleccionaremos el formulario a
usar, y detallaremos un breve script para el agente.
170
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Una vez creada la campaña, esta iniciará su operación y asignará llamadas a todos los
agentes que estén conectados.
 Revisaremos el proceso de login de un agente posteriormente.
En Campaña: Outgoing Calls
 Debemos ir a: Call Center → Outgoing Calls → Campaigns.
 Una vez ahí debemos crear una nueva campaña.
 El módulo permite a varias campañas trabajar al mismo tiempo. El único limitante será la
cantidad de líneas telefónicas que tengamos.
 Al igual que en las campañas entrantes, una cola puede estar asignada a varias campañas.
Sin embargo si tenemos una cola seleccionada en una campaña entrante, no podrá ser
seleccionada para una campaña saliente.
171
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Una vez creada la campaña, el dialer iniciará su operación y asignará llamadas a todos los
agentes que estén conectados.
 Revisaremos el proceso de login de un agente posteriormente.
 El módulo tiene una funcionalidad de indicar números que no deben ser llamados.
 Esta funcionalidad permite ingresar un número específico.
 También se puede cargar un listado de números de un archivo .csv que previamente ya
teníamos seleccionados para este efecto.
Call Center → Outgoing Calls → Do not call list
172
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Ingreso de Agente a consola
 Un agente debe ingresar primero a Elastix con su usuario y clave.
 Al hacer login, el agente tendrá acceso únicamente a la consola.
 Una vez ahí debe escoger el número de agente y la extensión a la que tiene acceso y
hacer clic en ingresar.
 El módulo llamará a la extensión, el agente debe contestar y marcar el password
requerido seguido de la tecla # para ingresar al Call Center.
 Una vez en el Call Center, el Agente estará listo para recibir llamadas.
173
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 Si el agente selecciona un break, no estará habilitado para recibir llamadas.
Interacción de Agente
 Llamada entrante (no se muestran datos del cliente porque no está en la base de datos).
174
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
 El agente puede revisar el Script preparado para la campaña en el TAB “Dialogo de
Llamada”.
 El formulario puede ser llenado en el TAB “Formulario de llamada”.
 El agente puede colgar la llamada o transferirla a otro número del plan de marcado
interno.
175
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Reportes
 Los reportes implementados incluyen:
 Calls Detail
 Calls per hour
 Calls per Agent
 Hold Time
 Login Logout
 Ingoing Calls Success
 Graphic Calls per hour
 Agent Information
 Agents Monitoring
 Trunks used per hour
 Agents connection time
 Incoming calls monitoring
176
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
177
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
178
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
EXTENDIENDO ELASTIX
Extendiendo Elastix
 Una de las ventajas que tiene Elastix es la posibilidad de hacer customizaciones o
desarrollo adicional.
 Cualquier desarrollo que tengamos en mente, puede estar incluido en la interfaz con su
propio menú.
 Estos desarrollos adicionales se comportan como módulos.
 Un ejemplo de desarrollo adicional en Elastix es el módulo de Call Center.
 La posibilidad de que realicemos un aplicación adicional puede impulsar incluso un
potencial negocio para el desarrollador.
 Desde la versión 2.0 en adelante muchos desarrollos de PaloSanto Solutions y de
terceros se distribuyen a través del módulo de Addons.
 El módulo de Addons, permite a un administrador de Elastix instalar de manera
transparente una aplicación que se encuentre enlistada.
 Aunque no se vislumbre como un negocio, es importante saber que podemos tener un
grupo de desarrollo interno ideando como personalizar adicionar características a
nuestra implementación.
 A lo largo del curso hemos visto ejemplos de instalación de una solución por medio del
módulo de Addons.
 Veremos un ejemplo más instalando el módulo developer.
179
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Framework NEO
 Es el framework detrás de la interfaz Web de Elastix
 Un framework es un conjunto de librerías y código para facilitar la programación y
reutilización de código
 Algunas características interesantes son:
 Arquitectura Web basada en MVC2
 Continuación de características:
 Desarrollo POO
 Concepto e implementación modular
 Mantenimiento de idiomas
 Mantenimiento de la ayuda embebida
 Soporte ACL
Estructura de archivos en NEO
Archivo o
Directorio
Descripción
themes/
Contiene las plantillas html, javascripts y css. Representa la
capa de vista
index.php
El punto de entrada común para todas las pantallas de la
interfaz de Elastix. Es quien decide qué pantalla mostrar
dependiendo de los parámetros recibidos. Representa al
controlador del módulo
libs/ Aquí se encuentran librerías (código reciclable)
configs/ Archivos de configuración
langs/
Definición de los lenguajes, actualmente se soportar 22
idiomas
images/
Imágenes que serán usadas tanto en la ayuda como en el
módulo
help/ Ayuda del módulo
180
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Iniciando el desarrollo
 En versiones anteriores el desarrollo de un módulo se realizaba totalmente a nivel de
consola.
 Actualmente Elastix provee una aplicación para crear módulos de una manera mas gráfica
y manteniendo el estilo de la interfaz.
 Para instalarlo debemos ir al menú Addons e instalamos el módulo “Developer”
 Una vez instado buscamos el menú developer e ingresaremos al Builder.
Usando módulo Developer
 Es una poderosa herramienta que facilita la creación de nuevos módulos de Elastix
 Consta de cuatro sub-módulos:
 Constructor de módulos
 Eliminar módulo
 Mantenimiento de idiomas
 Cargar Menú
Builder
181
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Builder: Secciones
 Información general: Nos ayuda a definir el nombre e identificador del módulo, así
como datos del creador y permisos
 Localización: Aquí indicamos en qué nivel del árbol de menús se colocará el nuevo
módulo
 Descripción: Aquí es donde realmente se define el módulo.
 Puede ser de tres tipos: reporte, formulario o enmarcado
Builder: Tipos de módulos
 Reporte: Es un listado (tabla). Es independiente de la fuente de datos que puede ser una
DB, un arreglo, etc.
 Formulario: Formulario para recolectar datos del usuario. Están soportados los tipos
de campos HTML más comunes como:
o text, select, checkbox, textarea, radio, file, hidden, entre otros
 Enmarcado: Inserta un frame que nos permite integrar otra aplicación Web en la
interfaz del Elastix
Builder
 Al final del proceso de creación del nuevo módulo se generará un código esqueleto.
 Este nos servirá de guía o plantilla para continuar desarrollando la funcionalidad necesaria
 Estos archivos se crearán en la ruta:
/var/www/html/modules/<id módulo>
 A partir de este instante dependemos de nuestros conocimientos de programación PHP
Ventajas del Builder
 Es fácil de instalar
 Podemos crear los módulos que necesitemos.
 Los permisos se crean automáticamente,
 Las carpetas se crean automáticamente
 Podemos crear el esqueleto inicial del código ahorrando parte del trabajo de desarrollo.
182
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Eliminar módulos
 Nos permite eliminar un módulo determinado de manera sencilla
 Debido a su sencillez es importante remarcar que:
HAY QUE TENER MUCHO CUIDADO PUES PODEMOS ELIMINAR UN
MÓDULO ÚTIL POR ERROR!
Mantenimiento de idiomas
 Nos permite administrar los diferentes idiomas de los módulos en Elastix
 También nos permite crear nuevos lenguajes
 Las palabras claves o keys siempre están en idioma inglés
 Se puede seleccionar un módulo específico pues cada módulo puede tener su propio
archivo .lang
 Una vez realizados los cambios desde la interfaz, dichos cambios se guardan en los
archivos .lang respectivos
183
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Haciendo un poco de Historia: Load Module
 Este módulo era requerido en Elastix 1.6 dado que no existían RPMs para Elastix.
 Un módulo que estaba desarrollado podía ser cargado desde aquí comprimido.
 Desde Elastix 2.0 todos los RPMs para Elastix están disponibles, por lo cual este módulo
desaparecerá en las siguientes versiones.
Desarrollando para Elastix
 En los últimos 6 años Elastix a crecido de una manera estable como distribución.
 Se cuenta que al menos existen 100,000 potenciales integradores a nivel mundial, fuera
de usuarios finales.
 Este mercado puede resultar atractivo para empresas con ideas de desarrollo que
quieran integrar sus soluciones a una plataforma de comunicaciones unificadas.
 PaloSanto Solutions tiene planificado publicar un curso para developers para el segundo
semestre del 2012.
 Si están interesados en desarrollar su propio addon, pueden escribir a la siguiente
dirección: certification@palosanto.com
184
Capítulo 27
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
COMPILANDO ELASTIX
Recompilando los SRPMs
 La manera más fácil de recompilar Asterisk en Elastix es utilizando los SRPMs provistos
por el proyecto Elastix.
 Estos se pueden descargar de
http://repo.elastix.org/elastix/index.php?dir=2.0/updates/SRPMS/
 Un link abreviado es: http://elx.ec/srpms
 Se debe usar los SRPMs estables más recientes.
 Un SRPM (Source RPM) es un paquete que contiene la información necesaria para
construir un RPM.
 Tales como el código fuente del paquete y las directrices usadas para compilarlo e
instalarlo en el sistema.
 Estas directrices se especifican en un archivo llamado SPEC, que usualmente se distingue
por su extensión *.spec.
Requisitos para el RPM
Instalar un Elastix con los requisitos para construir el RPM
 Según el último archivo asterisk.spec los siguientes RPMs son requeridos para construir
el RPM de Asterisk.
 Debemos asegurarnos que tenemos los paquetes necesarios instalados antes de empezar.
 Un listado completo se detalla en la siguiente diapositiva.
 gcc-c++
 m4
 openssl-devel
 newt-devel
 libtermcap-devel
 ncurses-devel
 postgresql-devel
 gsm-devel
 net-snmp-devel
 spandsp-devel >= 0.0.6
 curl-devel
 wget
 speex-devel >= 1.2
 libxml2-devel
185
Capítulo 27
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Instalar el SRPM de Asterisk
Instalar el SRPM de Asterisk y modificar el SPEC de acuerdo a nuestras
necesidades
 Luego de descargar el SRPM de Asterisk lo instalamos en la máquina concebida para este
fin.
 Esto se hace de manera sencilla con el comando rpm:
[root@elastix ~]# rpm -ivh asterisk-1.8*.src.rpm.
 Esta instalación poblará el directorio /usr/src/redhat que es donde se copiará el código
fuente de Asterisk, el archivo SPEC y cualquier otra información nacida del SRPM.
 A continuación deberemos hacer los cambios en el archivo SPEC para personalizar
nuestro Asterisk.
 Aquí podremos hacer casi cualquier cosa como: Eliminar parches para conseguir un
Asterisk mínimo, Añadir funcionalidad nueva a Asterisk, Parchar contra bugs, entre otras
cosas.
 zlib-devel
 libpri-devel >= 1.4.12
 dahdi-devel >= 2.4.1.2
 libtiff-devel >= 3.5.7
 libogg-devel
 libvorbis-devel
 unixODBC-devel
 libtool
 sqlite-devel
 libtool-ltdl-devel
 alsa-lib-devel
 mISDNuser-devel
 mISDN-devel
 libopenr2-devel
 mysql-devel
 zlib-devel
 /usr/bin/soxmix
 iksemel-devel
 libsrtp
 libgsmat
 autoconf >= 2.63
186
Capítulo 27
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Construir el RPM de Asterisk
 Una vez realizados los cambios en el SPEC nos encontramos listos para recompilar
Asterisk o siendo exactos construir un nuevo RPM para Asterisk.
 Para lograr esto nos valemos del comando rpmbuild, pasándole como parámetro la ruta
del archivo SPEC que hemos modificado:
[root@elastix ~]# rpmbuild -ba /usr/src/redhat/SPECS/ asterisk.spec.
 Al final del proceso obtendremos los siguientes RPMs en la carpeta
/usr/src/redhat/RPMS/:
 Además obtendremos un nuevo SRPM en la carpeta /usr/src/redhat/SRPMS/
 asterisk
 asterisk-devel
 asterisk-sounds-es
 asterisk-sounds-fr
 asterisk-mISDN
 asterisk-addons
 asterisk-chan_mobile
187

Más contenido relacionado

PDF
Elastix lab uece-book-esp
PDF
Elx1 o1 lab1-instalacion de elastix
PDF
Elastix lab ect-book-esp
PPTX
Instalacion de elastix
PPTX
Licenciamiento VMware vSphere 5
PPTX
Personalizar ESXi Image Builder
PPTX
Guia instalación VERDE - Virtual Bridge
PDF
laboratorios elaxtix
Elastix lab uece-book-esp
Elx1 o1 lab1-instalacion de elastix
Elastix lab ect-book-esp
Instalacion de elastix
Licenciamiento VMware vSphere 5
Personalizar ESXi Image Builder
Guia instalación VERDE - Virtual Bridge
laboratorios elaxtix

La actualidad más candente (17)

PDF
Elastix lab ece-book-esp
PDF
Elastix slide book-ect(1)
ODP
Servidor Asterisk (Instalacion y Configuracion)
PDF
Instrucciones al alumno elx1 o1 elastix
PPTX
Virtualizacion para entornos de prueba y desarrollo
PPTX
Guía de instalación de Instalación ESXi 5
PDF
Instalacion de elastix 2.3
PDF
Slackware asterisk
PPTX
Configuracion inicial elastix 4.0
DOCX
Sistemas de virtualización
PDF
Implementación Auditoria Windows Server 2008 R2
PDF
Implementación VMWare Center Server 6 Appliance
PDF
Celso puma tarea#03_adm.bas_d.
PPTX
Guia de instalacion de VMware vCenter 5
PDF
Instalación básica vSphere 5.5
DOCX
Paso a paso Elastix y Virtual Box
PDF
Instalación de MySQL en Linux Mint
Elastix lab ece-book-esp
Elastix slide book-ect(1)
Servidor Asterisk (Instalacion y Configuracion)
Instrucciones al alumno elx1 o1 elastix
Virtualizacion para entornos de prueba y desarrollo
Guía de instalación de Instalación ESXi 5
Instalacion de elastix 2.3
Slackware asterisk
Configuracion inicial elastix 4.0
Sistemas de virtualización
Implementación Auditoria Windows Server 2008 R2
Implementación VMWare Center Server 6 Appliance
Celso puma tarea#03_adm.bas_d.
Guia de instalacion de VMware vCenter 5
Instalación básica vSphere 5.5
Paso a paso Elastix y Virtual Box
Instalación de MySQL en Linux Mint
Publicidad

Similar a Elastix slide book-ece (20)

PPTX
Instalacion virtualbox luego cargamos la centralita ELASTIX
PPTX
Instalacion virtualbox1
PDF
Manual instalación y configuración de elastix para comnutación telefónica
PDF
Manual instalación y configuración de elastix para comnutación telefónica
PPTX
Elastix Full.pptx
DOCX
Instalacion virtual box y elastix
DOCX
Instalacion virtual box y elastix
PDF
Elastix lab ece-book-esp(1)
PDF
Elastix lab ece-book-esp(2)
PDF
Manual instalación e implementación de Elastix
DOCX
Paso a paso Elastix y Virtual Box
DOC
Paso a paso Elastix y Virtual Box
DOC
Paso a paso Elastix y Virtual Box
PDF
ELASTIX_PBX_CRM
DOCX
Manual elastix1
PPTX
Instalacion y monitorizacion de linux server y linux desktop
PDF
El servidor perfecto
PPTX
Guía de instalación de CentOS
PDF
sistema operativo Centos como raid 1
Instalacion virtualbox luego cargamos la centralita ELASTIX
Instalacion virtualbox1
Manual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónica
Elastix Full.pptx
Instalacion virtual box y elastix
Instalacion virtual box y elastix
Elastix lab ece-book-esp(1)
Elastix lab ece-book-esp(2)
Manual instalación e implementación de Elastix
Paso a paso Elastix y Virtual Box
Paso a paso Elastix y Virtual Box
Paso a paso Elastix y Virtual Box
ELASTIX_PBX_CRM
Manual elastix1
Instalacion y monitorizacion de linux server y linux desktop
El servidor perfecto
Guía de instalación de CentOS
sistema operativo Centos como raid 1
Publicidad

Más de enriquetcampos.org (15)

PDF
Elx1 o1 sistemas de telefonia
PDF
Elx1 o1 redes tcp ip
PDF
Conociendo más de elastix 101
PDF
Instrucciones examen elx1 o1
PDF
Elastix 1 o1 introduccion
PDF
Sistemas de telefonía elx1 o1elastix
PDF
Seguridad en implementaciones de voz sobre ip paper
PDF
Libro diapositivas-elx101
PDF
Introducción a las redes tcp
PDF
Extensiones vs extensiones
PDF
Instructivo de putty elx1 o1
PDF
Temario y pesos elx1 o1
PDF
Elastix slide book-uect
PDF
Elastix slide book-uect(1)
PDF
Elastix slide book-ect
Elx1 o1 sistemas de telefonia
Elx1 o1 redes tcp ip
Conociendo más de elastix 101
Instrucciones examen elx1 o1
Elastix 1 o1 introduccion
Sistemas de telefonía elx1 o1elastix
Seguridad en implementaciones de voz sobre ip paper
Libro diapositivas-elx101
Introducción a las redes tcp
Extensiones vs extensiones
Instructivo de putty elx1 o1
Temario y pesos elx1 o1
Elastix slide book-uect
Elastix slide book-uect(1)
Elastix slide book-ect

Último (20)

PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Maste clas de estructura metálica y arquitectura
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
taller de informática - LEY DE OHM
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Estrategia de apoyo tecnología grado 9-3
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Maste clas de estructura metálica y arquitectura
Estrategia de apoyo tecnología miguel angel solis
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
REDES INFORMATICAS REDES INFORMATICAS.pptx
Influencia-del-uso-de-redes-sociales.pdf
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Propuesta BKP servidores con Acronis1.pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
taller de informática - LEY DE OHM
Calidad desde el Docente y la mejora continua .pdf
Presentación PASANTIAS AuditorioOO..pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
SAP Transportation Management para LSP, TM140 Col18
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
introduccion a las_web en el 2025_mejoras.ppt
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx

Elastix slide book-ece

  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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
  • 77. 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
  • 78. 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
  • 79. 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
  • 80. 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
  • 81. 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
  • 82. 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
  • 83. 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
  • 84. 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
  • 85. 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
  • 86. 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
  • 87. 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
  • 88. 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
  • 89. 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
  • 90. 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
  • 91. 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
  • 92. 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
  • 93. 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
  • 94. 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
  • 95. 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
  • 96. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Señalización SIP: Métodos y Respuestas 95
  • 97. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   SIP y Asterisk  Algunos detalles a tener en cuenta cuando se usa el protocolo SIP con Asterisk son los siguientes: • A pesar de que SIP es independiente de la capa de transporte (puede ser usado con TCP, UDP, ATM, X.25, entre otros) • En Asterisk su implementación estaba limitada a UDP hasta la versión 1.6. En la versión 1.8 viene con soporte nativo para TCP. • Por omisión se usa el puerto 5060, pero este parámetro se puede modificar en el archivo sip.conf • SIP tiene problemas de NAT traversal. Parámetros especiales como externip, localnet y nat, pueden ser definidos en sip_general_custom.conf para resolver esto. • En Asterisk es posible hacer diagnóstico del protocolo SIP. Esto se verá más adelante. Una sección de llamada SIP entre dos teléfonos – sin SIP proxy Protocolo IAX: Generalidades  El protocolo IAX (Inter-Asterisk eXchange) es un protocolo de señalización creado por Mark Spencer, el mismo creador de Asterisk, con el objetivo de solucionar algunos problemas existentes con otros protocolos.  En esencia IAX presenta tres ventajas muy interesantes sobre otras alternativas como SIP.  Consume menos ancho de banda 96
  • 98. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Soluciona mejor problemas de NAT  Pasa más fácilmente a través de firewalls  Actualmente se usa la versión 2 del protocolo IAX,sin embargo la nomenclatura general se intercambia entre IAX e IAX2.  IAX es un protocolo binario, a diferencia de SIP que como recordaremos es un protocolo basado en texto.  IAX usa UDP y normalmente usa el puerto 4569.  Lo interesante de IAX es que por un solo puerto transmite tanto la voz como la señalización y es esto lo que le permite resolver problemas de NAT  Además de esta característica el protocolo permite la troncalización de varios canales de audio en el mismo flujo de datos. Llamada usando IAX  Una llamada IAX se puede dividir en 3 fases:  Establecimiento de la llamada  Llamada en curso  Terminación de la llamada  Establecimiento de la llamada  El equipo que la inicia (equipo A) le envía un mensaje NEW al equipo B y éste último responde con un mensaje ACCEPT.  Luego el equipo destino timbrará en espera de que el usuario conteste. Si contesta, el equipo B enviará un mensaje ANSWER al equipo A.  Llamada en curso  Si se contestó la llamada se inicia el intercambio de audio mediante unos paquetes llamados frames.  Terminación de la llamada  Para terminar la llamada cualquiera de las partes involucradas debe enviar un mensaje HANGUP. 97
  • 99. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Estableciendo una llamada Terminación de la llamada Frames IAX  Para intercambiar el audio entre los participantes de la llamada se utilizan dos tipos de frames llamados Full y Mini.  También se les suelen llamar F y M.  Una conversación está compuesta en su mayoría por frames tipo Mini cuya virtud es ser ligeros. Esto quiere decir que tienen una cabecera pequeña (de 4 bytes), lo cual ayuda a ahorrar ancho de banda.  De cuando en cuando se intercambian frames tipo Full, los cuales conllevan adicionalmente información de sincronización. 98
  • 100. Capítulo 15 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Protocolo RTP  RTP es el protocolo que se encarga de transportar la voz propiamente dicha.  Muchas personas se confunden y piensan que ese es el trabajo de SIP pero no es así.  Una vez que SIP establece una llamada es RTP quien toma la posta para transportar la voz a su destino.  RTP trabaja sobre UDP y por lo tanto no hay mucho control de transmisión.  Es decir que el equipo emisor envía la voz hacia el otro extremo con la esperanza de que llegue, pero no espera recibir confirmación de esto y a decir verdad tampoco hay tiempo para hacerlo pues la voz necesita ser transmitida en tiempo real.  Si un paquete de voz se pierde en el camino simplemente se rellenará ese espacio con un silencio. Lo que técnicamente se llama ruido confortable (comfort noise).  Es por esta necesidad de transmitir la información en tiempo real que resulta evidente que RTP sea un acrónimo de Real-time Transport Protocol. Protocolo RTCP  A pesar de encargarse de casi toda la labor de transportar la voz, RTP no está solo y tiene un protocolo de apoyo llamado RTCP.  RTCP no es del todo indispensable pero proporciona valiosa ayuda al momento de transportar la voz de manera óptima pues proporciona estadísticas e información de control que le permiten a Asterisk o al otro extremo tomar decisiones para mejorar la transmisión en caso de ser posible.  Por lo tanto, los paquetes RTCP se transmiten periódicamente para comunicar dicha información a los equipos de voz involucrados. 99
  • 101. Capítulo 16 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   DIAGNÓSTICO BÁSICO Interpretando logs  Todo software es perfectible, por lo cuál no debe sorprendernos si alguna vez encontramos un bug en su funcionamiento, inclusive si se trata de Asterisk o algún otro componente de Elastix.  Para ayudarnos a encontrar la causa por la cuál nuestro Asterisk no se está comportando de forma habitual, se recomienda revisar la bitácora o también podemos ayudarnos de depuradores.  Un depurador es un programa que nos permite examinar la ejecución de un programa a un nivel de detalle mayor que el habitual  Alternativas de herramientas de depuración: strace y gdb  Cuando tenemos un problema con un servidor, antes de perder la cabeza se recomienda seguir los siguientes pasos:  Identificar el componente que está causando problemas  Reproducir el bug  Buscar si se trata de un bug que ya se encuentra identificado  Depurar  Reportar el bug  Para poder interpretar un error debemos al menos conocer los errores más comunes de programación, y mejor aún si en nuestras capacidades está el poder aportar con una corrección en el código fuente.  Algunas causas son:  Falla de segmentación  Deadlock  División para cero  Buffer overflow  Strace  Es un depurador para Linux muy fácil de usar que monitorea las llamadas a sistema que realiza un programa determinado y todas las señales que este recibe.  Sintaxis: 100
  • 102. Capítulo 16 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    strace [opciones] programa [argumentos]  Ejemplo:  strace cat /proc/cpuinfo  GDB  Nos permite hacer seguimiento de la ejecución de un programa insertando pausas cuando creamos necesario.  También nos permite observar lo que un programa estaba haciendo cuando se colgó.  Existen tres maneras de usar gdb:  Depurando un programa desde el depurador  Depuración sobre Asterisk en plena ejecución  Depuración haciendo backtrace sobre un Asterisk caído  Sintaxis: gdb programa opciones Diagnóstico con el CLI  Asterisk posee una interfaz de línea de comandos (CLI) que permite trabajar directamente ingresando comandos.  Para ingresar debemos ejecutar asterisk -r  Para depurar los mensajes de Elastix, podemos incrementar el nivel de detalle de los mensajes mostrado. Para ello usamos el comando: core set verbose 6  Con ello subimos a nivel de detalle 6, con lo que Asterisk será más informativo. El valor inicial es 3.  Es importante también conocer si todos los dispositivos de mi plan de marcado están disponibles.  Lo consultamos con el siguiente comando: core show hints  Una forma de consultar la ayuda para revisar los comandos disponibles es ejecutando: help  Si necesitamos ayuda con algún comando en específico ejecutamos: help [comando] Sniffing  Sniffing es una práctica que consiste en escuchar los paquetes que circulan por la red. 101
  • 103. Capítulo 16 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Para poder capturar el tráfico se utiliza una aplicación llamada Sniffer y existen algunas alternativas disponibles.  Si podemos capturar los paquetes RTP de una llamada podemos utilizar herramientas para convertir estos paquetes en audio que podamos escuchar.  El protocolo SIP es un protocolo de texto, capturando paquetes SIP de la red podremos ver información como Caller Ids, comandos y respuestas SIP.  Algunas herramientas disponibles:  VoIPong: rastrea la red en busca de llamadas VoIP, las guarda en formato wav.  Wireshark: el antiguo proyecto Ethereal permite análisis de VoIP y grabar el payload en formato crudo.  Oreka: algo más complejo pero que permite incluso decodificar codecs, provee interfaz web de monitoreo.  Para evitar escuchas o pinchazos telefónicos a nivel de VoIP tenemos la alternativa de encriptar la comunicación (SRTP, VPN, IAX encriptado) 102
  • 104. Capítulo 17 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   SISTEMA DE CORREO EN ELASTIX Arquitectura del sistema de email  Un sistema de correo electrónico esta formado de varios componentes. Los principales son:  MUA (Mail User Agent),  MTA (Mail Transfer Agent),  MDA (Mail Delivery Agent). MUA (Mail User Agent)  Programa con el que se genera el correo electrónico.  Puede residir en la estación de trabajo del usuario, como Mozilla Thunderbird o Microsoft Outlook.  Puede residir en el servidor, como servicio de Webmail o sistemas de Voicemail y de Fax.  Los usuarios acceden a sus buzones de correo a través del MUA, mediante los protocolos POP y/o IMAP, que deben estar activos en el servidor de correos. MTA (Mail Transfer Agent)  Mediante protocolo SMTP, recibe el mensaje del MUA.  Decide a quién debe entregar el mensaje. 103
  • 105. Capítulo 17 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Si el mensaje está destinado a otro dominio, el MTA trata de contactarse con el servidor de correo de dicho dominio y transfiere mediante el protocolo SMTP el mensaje.  Si el mensaje está destinado al dominio local, el MTA transfiere el mensaje al MDA que se encarga de colocarlo en el buzón respectivo. MDA (Mail Delivery Agent)  Es un software que acepta correo entrante.  Distribuye los mensajes a los buzones de los destinatarios si la cuenta de destino está en el servidor local.  Reenvía los mensajes a un servidor SMTP si la cuenta de destino está en una ubicación remota o está dirigido a otro dominio. En Elastix  El MTA que usa Elastix es Postfix.  El MDA que usa Elastix es Cyrus IMAP, que además provee los servicio de POP e IMAP.  Elastix tiene una interfaz de webmail incorporada que se llama RoundCube Mail, que puede ser usada como MUA. Configurando el sistema de email  Elastix facilita la tarea de configuración del servidor de correo.  En la interfaz gráfica de Elastix, ir a Email → Domains.  Tomando en cuenta que el servicio de correo de Elastix es multi-dominio, podemos configurar el servidor para recibir los correos de diferentes dominios.  Para crea un nuevo dominio se utiliza el botón ”Crear Dominio”, lo que muestra una nueva pantalla en la que se ingresa el nuevo dominio. 104
  • 106. Capítulo 17 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Después de crear un dominio nuevo podremos crear cuentas de correo. Ir a Email → Accounts.  Seleccione el dominio deseado y haga clic en "Crear una nueva cuenta"  Ingresamos la información básica de la cuenta de correo, la cuota y la contraseña. Luego guardamos.  El nombre de la cuenta tiene la siguiente syntaxis: nombre_de_la_cuenta@dominio.  Para editar la contraseña y/o la cuota basta con hacer clic en el link de la cuenta. Relay  Si se va a utilizar un software manejador de correos (Microsoft Outlook, Mozilla Thunderbird u otro similar), se deberá configurar en el servidor las direcciones de red que estarán autorizadas para realizar el envío de correos hacia dominios que no son locales.  El proceso para realizar este envío a un dominio externo se denomina RELAY .  Para configurarlo debemos ir a Email → Relay . 105
  • 107. Capítulo 17 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Se muestran las direcciones de red que están permitidas, y se puede agregar una dirección de red por línea, indicando además la máscara de red de la misma. RoundCube Mail  Es una interfaz gráfica de correo integrada en Elastix localizada en: Email → Webmail (Interfaz de Elastix).  Para acceder directamente puede colocar la siguiente dirección en su browser: https://IP_del_Servidor/mail y hacer login con una de las cuentas creadas anteriormente.  Para hacer login es necesario ingresar la dirección de correo electrónico completa (usuario@dominio) y la contraseña. Configuraciones a bajo nivel  Postfix  Servicio de correo MTA usado por Elastix.  Potente, seguro y flexible para configuraciones avanzadas.  Smart Relay (Mensajes de correo no destinados a dominios locales se transfieran a un servidor específico que a su vez se encarga de transferirlo a los servidores de destino).  En Postfix esta opción es llamada "relayhost"  Para configurar la opción "relayhost":  En una consola ir al archivo: /etc/postfix/main.cf  Se agrega la línea relayhost = [servidor_SMTP_GATEWAY]  Se debe reiniciar el servidor para aplicar cambios. Luchando contra el SPAM  Elastix provee un filtro contra SPAM que verifica los mensajes recibidos por el servidor de correo y les asigna un puntaje dependiendo de ciertas características.  Se puede configurar un nivel de atrapar del 1 al 10, siendo 1 el nivel con el minuciosidad mas alta.  El filtro de SPAM tiene dos políticas: 106
  • 108. Capítulo 17 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Marcar Asunto.- Marcara correo como spam con un prefijo ([SPAM] está configurado por defecto) y lo enviará al buzón de entrada.  Capturar Spam: Marcará el spam con un prefijo, pero lo enviará a una carpeta de spam en lugar del buzón de entrada.  El Antispam debe estar activado para trabajar. Instalando Antivirus  En Elastix, cualquier antivirus que trabaje con Postfix puede ser instalado.  Es importante seguir las instrucciones del fabricante.  Existen varias opciones de antivirus libres:  ClamAV  F-Prot  Avira  Vexira  Entre otros. 107
  • 109. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   FAX EN ELASTIX Sistema de Fax en Elastix  El sistema de fax en Elastix está compuesto de 4 componentes importantes:  Asterisk: telefonía IP.  Iaxmodem: Programa de fax-modem que se conecta a asterisk mediante un canal IAX. Crea un dispositivo (/dev/ttyIAX), que será utilizado por Hylafax  Hylafax: Programa para envío y recepción de fax.  Framework NEO: Esquema de desarrollo que incluye librerías que implementan Elastix. Esquema básico del sistema de fax laxmodem  Es una aplicación que simula un faxmodem mediante librerias DSP (Digital Signal Processing).  Esta aplicación puede ser usada por cualquier programa de envío y recepción de fax.  Cuando se implementa iaxmodem se crea un archivo que contendrá los datos que define el dispositivo virtual y lo asocia a una extensión de asterisk.  En Elastix ese archivo es: 108
  • 110. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    El archivo iaxmodem-cfg.ttyIAX# es generado por Elastix como sigue: Hylafax  Es un sistema de envío y recepción de fax.  En su esencia Hylafax consta de un programa servidor llamado Faxgetty que se encarga de estar monitoreando los dispositivos ttyIAX y de un programa despachador de fax llamado faxrcvd  El servidor Faxgetty está siempre leyendo unos archivos especiales llamados FIFO.ttyIAX# que es en donde los dispositivos ttyIAX# reciben comandos de modem.  Elastix utiliza un archivo que permite asociar los modems a Hylafax, es archivo :  El archivo config.ttyIAX# es generado por Elastix como sigue: 109
  • 111. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Funcionamiento Básico Estructura del Sistema de Fax  El Sistema de Fax de Elastix está compuesto de 7 Módulos:  faxclients  faxlist  faxmaster  faxnew  faxviewer  sendfax  email_template  Utiliza la base de datos fax.db  Cada módulo contiene las carpetas y archivo:  configs  themes  index.php  El módulo de Fax utiliza librerías del framework principal: /var/www/html/libs/paloSantoFax.class.php 110
  • 112. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados   Base de datos del Sistema de Fax  La base de datos para el sistema de fax se llama fax.db Analizando la librería “paloSantoFax.class.php”  Función _createFaxSystem 111
  • 113. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Función _configureIaxmodem  Función _configureHylafax  Función _writeInittab 112
  • 114. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    Al final de la función createFaxSystem() se ejecuta los siguientes comandos que hacen que tomen efecto los archivos creados: Configurando Fax en Elastix  El menú de Fax muestra por defecto el listado de Faxes virtuales. En este menú podemos ver todas las extensiones de fax creadas.  Podemos modificar cualquier extensión haciendo clic en ella.  Para crear una extensión de Fax debemos crear primero una extensión IAX.  Luego debemos ir a Fax → New Virtual Fax. Ahí podemos crear la extensión de fax con la información usada para la creación de la extensión IAX.  El email de recepción puede ser cualquiera.  El menú de Fax Master nos permite incluir una dirección de correo general (normalmente un email de administración) que permita recibir todos los mensajes de confirmación o errores del servidor de fax.   113
  • 115. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    El menú Fax Client permite incluir la dirección IP permitida para el envío de fax a través de Elastix.  El menú Fax Viewer nos permite ver un listado completo de fax recibidos. Podemos además filtrarlos por fecha o por tipo de fax.  Existe además un campo de búsqueda por nombre de compañía y otro por fax de compañía.  El menú template de Email (Email Template) nos permite configurar ciertos parámetros del correo que será enviado con el fax. Protocolo T.38  El protocolo T.38 es un protocolo recomendado por la ITU que sirve para transportar FAX sobre redes IP.  T.38 surge como solución a ciertos problemas y métodos de tratamiento de fax como audio a la hora de transportarlos. 114
  • 116. Capítulo 18 Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados    El protocolo T.38 resuelve estos problemas usando algunas técnicas interesantes como la redundancia de paquetes.  Es decir que por cada paquete enviado a través de la red es probable que se envíen algunas copias por si alguno se pierde en el camino.  A partir de Asterisk 1.4 se introdujo soporte limitado para el protocolo T.38. Asterisk no es capaz de terminar una transmisión T.38, ni de entender el protocolo.  Lo único que puede hacer Asterisk con T.38 es pasar la comunicación de un lado a otro. O sea que T.38 puede pasar a través de Asterisk y a esta modalidad de funcionamiento se le llama passthrough.  La versión 1.6 de Asterisk añade más soporte para T.38 y estará en la capacidad de entender el protocolo un poco más y por lo tanto hacer algunas cosas interesantes. AvantFax, un GUI Alternativo  AvantFax es un GUI que facilita la administración de faxes.  AvantFax utiliza como fax server Hylafax.  Permite el envío y recepción de faxes a través de la interfaz web.  Recientemente se ha lanzado un instalador RPM de AvantFAX que puede ser descargado del repositorio de Extras de Elastix. 115
  • 117. Capítulo 19 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   MENSAJERÍA INSTANTÁNEA Protocolo XMPP  XMPP o Extensible Messaging and Presence Protocol, por sus siglas en inglés, es un protocolo extensible y abierto basado en el estándar XML.  Es ampliamente utilizado para el intercambio en tiempo real de mensajes y presencia entre dos puntos en Internet.  Existe una gran red de servidores XMPP interconectados entre sí, y a la vez independientes unos de otros.  Usuarios de distintos servidores conectados a la red Jabber pueden hablar entre ellos sin ningún problema, ya que cada usuario está conectado a su servidor, y los servidores de estos usuarios se intercambian los mensajes.  XMPP es el protocolo seleccionado por Facebook para su chat y por Google para GoogleTalk.  Al nivel más básico, si dos contactos tienen cuentas creadas en el mismo servidor XMPP, podrán hablar entre ellos. Características de XMPP  Es abierto: El protocolo de XMPP es gratuito, abierto, público y comprensible.  Existen múltiples implementaciones de código abierto para Servidores XMPP, asi como numerosos clientes y librerías de desarrollo. 116
  • 118. Capítulo 19 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Es extensible: Usando el potencial del lenguaje XML, cualquiera puede extender el protocolo de XMPP para una funcionalidad personalizada.  Es seguro: Cualquier servidor XMPP puede ser aislado de la red pública Jabber.  Cualquier implementación del servidor usa SSL para las comunicaciones cliente- servidor y numerosos clientes soportan PGP-GPG para encriptar las comunicaciones de cliente a cliente.  Es descentralizado: Cualquiera puede montar su propio servidor XMPP, además está libre de patentes y no depende de ninguna empresa de modo que se puede usar siempre con total libertad.  Para mantener la interoperabilidad, las extensiones comunes son controladas por la XMMP Standards Foundation. Clientes XMPP  Spark: Integrado con el servidor OpenFire y pensado para empresas. Escrito en Java. Libre, gratuito. (Windows, Linux, Mac).  Jabbin: Cliente libre desarrollado a partir de Psi (Windows, Linux) No se sigue desarrollando.  Bitlbee: Es una pasarela IRC-IM que permite conectar a varios protocolos usando un cliente IRC.  Pidgin: (Windows y Linux) soporta además protocolos para msn y yahoo.  iChat: cliente incluido en OSX (Mac) Openfire en Elastix  Openfire es un sistema de mensajería instantánea de código abierto que permite habilitar servicio de mensajería instantánea interna.  Es el servicio de IM utilizado por Elastix por sus características que permiten transferencia de archivos, transmisión de mensajes (broadcast), integración con telefonía, integración con otros gateways, y por supuesto IM.  Está escrito en Java y su funcionalidad puede ser extendida con plugins.  Openfire viene desactivado por defecto en Elastix.  Para instalar Openfire ir al menú “IM” y luego hacer clic en “click aquí”. 117
  • 119. Capítulo 19 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    El primer paso consiste en seleccionar el idioma  Se debe especificar el dominio del sistema, el cuál ya debe estar configurado (Es el mismo dominio del servidor Elastix). 118
  • 120. Capítulo 19 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Se debe especificar la configuración de la Base de Datos. Es conveniente elegir la base de datos embebida.  En esta pantalla seleccionamos el lugar de datos donde se almacenarán los usuarios.  En esta pantalla seleccionamos la contraseña del administrador. 119
  • 121. Capítulo 19 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Después del paso anterior culmina la instalación y podemos ingresar a la interfaz administrativa.  Una vez en la interfaz administrativa podemos crear usuarios, configurar plugins y grupos. 120
  • 122. Capítulo 19 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Una vez que instalamos Openfire tendremos acceso a algunas de las siguientes características de este servicio:  Funcionalidad expandible a través de plugins  Posibilidad de integración con Asterisk  Interacción con otras redes de mensajería instantánea como Gtalk, Yahoo Messenger, ICQ, entre otros  Soporte para mensajes broadcast  Transferencia de archivos  Puede guardar histórico de conversaciones  Soporte para clustering  Permite crear diferentes grupos de trabajo 121
  • 123. Capítulo 20 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   SINTETIZACIÓN Y RECONOCIMIENTO DE VOZ Sintetización de voz  Es la tecnología que permite convertir el texto a audio.  También se conoce como TTS debido al término Text-To-Speech (texto-a-habla en inglés).  Actualmente ya existen alternativas de sintetización de voz de relativo bajo costo e inclusive de libre uso como Festival o FreeTTS.  Festival es el motor de sintetización por defecto en Elastix. Es necesario activarlo.  La técnica de sintetización de voz usada por Festival está dividida en en tres partes: • Análisis de texto.- Normaliza el texto, lo traduce a un formato de palabras estándar. • Análisis lingüístico.- Convierte el texto normalizado en fonemas. • Generación de audio.- Traducción de fonemas a audio.  El algoritmo por omisión usado por Festival para la traducción de fonemas a audios es RELP (Residual Excited Linear Prediction) Festival  Festival es un sistema de sintetización de voz desarrollado por la Universidad de Edimburgo utilizando lenguaje de programación C++  Festival soporta Inglés Americano, Inglés Británico y Español. 122
  • 124. Capítulo 20 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Puede ser utilizado desde Asterisk.  Festival puede trabajar como cliente y como servidor.  Como cliente puede trabajar en dos modos: línea de comandos y tts (text-to-speech). Festival dentro del plan de marcado  Asterisk provee una aplicación de plan de marcado llamada Festival.  Esta aplicación funciona internamente conectándose a un servidor Festival a través de la red y reproduciendo la salida de audio en el canal en uso.  La sintaxis de la aplicación Festival es la siguiente:  text es el texto que se desea sintetizar (y reproducir)  intkeys es un parámetro opcional que especifica las teclas telefónicas que pueden interrumpir la ejecución del comando.  En este ejemplo si llamamos a la extensión 5333, escucharemos ese mensaje escrito. Festival en Elastix  Con festival se puede sintetizar voz desde la interfaz Web de Elastix.  Ir a PBX → Tools → Text to Wav.  Se puede escribir un texto y generar un en formato wav o gsm.  Esta funcionalidad podría servir para crear prompts de voz que podemos usar en el plan de marcado. 123
  • 125. Capítulo 20 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Reconocimiento de voz  Es el proceso en el que un sistema computacional reconoce lo que un ser humano le dice.  El término reconocimiento de voz es muchas veces utilizado para referirse al reconocimiento del habla, como en el caso del sistema telefónico.  Una aplicación muy utilizada para sistemas telefónicos IP basados en Asterisk es LUMENVOX. Lumenvox  Lumenvox aunque usa algunos de los fundamentos del reconocimiento de voz, es diferente ya que no trata de identificar a individuos.  Más bien trata de identificar lo que éste dice.  Para esto hace una comparación de las ondas del audio de una persona que llama, con los modelos acústicos de su base de datos.  De ahí que sea común encontrarlo en aplicaciones donde una persona que llama completa una orden de voz; Ej: decir la extensión o el nombre de la persona a la que llamamos. Procedimiento Lumenvox  El procedimiento completo sería el siguiente:  Cargar una lista de palabras para ser reconocidas.  El SRH (Sistema de Reconocimiento del Habla) carga el audio del altavoz. Este audio se representa como una forma de onda.  El SRH compara la forma de onda con sus propios modelos acústicos (Las bases de datos que contienen información sobre las formas de onda de cada uno de los sonidos)  El SRH comparan las palabras en la gramática a los resultados obtenidos a partir de su búsqueda de modelos acústicos.  Determina qué palabras en la gramática de audio concuerdan y devuelve un resultado. 124
  • 126. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   DESEMPEÑO & DIMENSIONAMIENTO Desempeño de Elastix  El desempeño de un servidor Elastix es un asunto complejo de analizar.  Existen muchos parámetros a tomar en cuenta principalmente el desempeño de Asterisk, ya que la comunicación de voz es en tiempo de real.  En muchos casos interesa conocer los resultados y recomendaciones principalmente desde el punto de vista de una PBX. Factores que afectan el desempeño de Elastix  Hay muchos factores que pueden afectar el desempeño de Elastix de alguna manera.  Los más comunes relacionados con la operación de un servidor de comunicaciones unificadas son:  Llamadas Concurrentes  Transcoding  Interrupciones de Hardware Numero de llamadas concurrentes  El número de llamadas concurrentes afecta directamente el consumo de CPU del servidor. “Es Muy Importante”  El gráfico siguiente tiene pruebas realizadas (sin transcoding) en un computador con un CPU de 2.2 GHz con 512 MB de RAM.  Obviamente una prueba teórica siempre supone condiciones ideales, por lo cual el rendimiento debe ser tomado como referencia únicamente.  En el computador se usó Elastix 1.3. 125
  • 127. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   CPU vs. Llamadas Concurrentes Uso de CPU  Vemos que se han superado las 200 llamadas concurrentes con menos del 50% de CPU. Transcoding  En ocasiones una llamada llega con un codec y el punto de destino final utiliza un codec distinto.  Asterisk está en el medio por lo tanto tiene que hacer las veces de traductor para que los dos puntos se entiendan. A este proceso denominamos transcoding.  El transcoding requiere de muchos cálculos matemáticos pues se está decodificando y codificando información con algoritmos complejos, consumiendo recursos a nivel de CPU. 126
  • 128. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Openfire  Openfire es un software escrito en Java que proporciona el servicio de Mensajería Instantánea.  Sin embargo, cabe señalar que consume una gran cantidad de memoria.  Por lo tanto, si el servicio no es realmente necesario y se cuenta con un servidor limitado por recursos, es recomendado dejarlo apagado.  Por omisión Openfire no activa al instalar Elastix. 127
  • 129. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Dimensionamiento telefónico  Determinando el número de líneas telefónicas necesarias  Primer parámetro en un proyecto telefónico nuevo: calcular número de líneas para satisfacer la demanda prevista.  No se quiere tener más líneas de las necesarias, esto podría significar un desperdicio de recursos.  Tampoco se debe sub dimensionar el número de líneas, ya que los usuarios podrían recibir continuamente tonos de ocupado.  El cálculo, por lo tanto debe basarse en criterios técnicos y no ser tomado a la ligera.  El “modelo Erlang” es una aproximación estadística para calcular cuántas líneas telefónicas necesitaremos en una instalación determinada para satisfacer una demanda prevista con cierta calidad. Agner Krarup Erlang  Erlang, Ingeniero y matemático danés que desarrolló las técnicas de Ingeniería de Tráfico y Teoría de Colas.  Exploraremos estos conceptos para darle al lector cierto conocimiento básico y práctico de estas técnicas sin llegar al rigor matemático que ellas demandan.  Estas técnicas nos permitirán dimensionar cuántas líneas telefónicas necesitaremos en una instalación. La unidad Erlang  Un Erlang es una unidad adimensional comúnmente utilizada para medir el tráfico telefónico por hora, o se puede decir que un Erlang representa la utilización continua de un circuito. 128
  • 130. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    1 Erlang equivale a la utilización de un circuito continuamente durante una hora, en un lapso de una hora de tiempo o lo que es lo mismo que el circuito estuvo siempre en uso.  Así mismo 0.5 Erlangs quiere decir que en el lapso de una hora el circuito se utilizó solo 30 minutos.  Para calcular el tráfico en Erlangs se puede proceder de la siguiente manera:  Encontrar el tráfico total en horas: Se suma el tiempo de todas las llamadas durante un lapso de tiempo cualquiera y se convierte este valor a horas  Encontrar el tráfico por unidad de tiempo (en horas): Se divide el total anterior para el lapso de tiempo en horas  Ejemplo  En una empresa cualquiera entre las 9H00 y 12H00 de un día determinado se realizaron 300 llamadas, con un promedio de 6 minutos por llamada y se quiere medir el tráfico en Erlangs.  Tráfico Total = Tráfico en 3 horas = 300 x 6 = 1800 minutos  = 1800 minutos / 60 minutos = 30 horas  (quiere decir que se hablaron 30 horas en ese lapso de tiempo)  Tráfico por hora = Tráfico Total / Lapso de Tiempo  = 30 horas / 3 horas = 10 Erlangs  Hemos obtenido una medida de tráfico de 10 Erlangs. Modelos Erlang  En esencia existen dos modelos en las teorías de Erlang que se utilizan mucho en telefonía:  modelo B  modelo C  En la presente obra estudiaremos el modelo B pero recomendamos al lector recabar información del modelo C.  Nota: El modelo C se utiliza para calcular probabilidades en llamadas que entran a colas así que si el lector está pensando en administrar un call center sería útil que indagara en el modelo Erlang C. 129
  • 131. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Erlang B  El modelo Erlang B es el más común. Se usa determinar el número de líneas necesarias.  Básicamente necesitamos alimentar a la fórmula con un par de parámetros y podemos obtener el número de líneas que necesitamos.  Estos parámetros son:  Tráfico punta o pico (el tráfico en la hora de mayor actividad)  Grado de Servicio (o GOS por sus siglas en inglés).  El Tráfico punta o pico se obtiene sumando todo el tráfico en la hora con más actividad telefónica.  Es útil tomar muestras no solo de un día sino de algunos días o semanas para que la información sea más exacta.  El Grado de Servicio representa la probabilidad de que una llamada sea rechazada. Su valor va de 0 a 1. Donde 1 significa el 100% de rechazo de llamadas. Grados de Servicios Comunes 130
  • 132. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Fórmula Modelo Erlang B  Donde:  E es el valor del tráfico punta o pico (en Erlangs)  N es el número total de líneas telefónicas  Como vemos, el valor de GoS no es sencillo de calcular.  N, que es el valor que buscamos, tampoco es sencillo de despejar.  Actualmente hay muchas herramientas en línea, algunas gratuitas, o aplicaciones para Smartphones que permiten calcular el modelo de Erlang B.  La presentación de la fórmula ayuda a que el profesional de Elastix sepa los fundamentos del cálculo de la misma lo cual siempre es útil.  Tomemos el cálculo que hicimos anteriormente:  Tráfico Total = Tráfico en 3 horas = 300 x 6 = 1800 minutos  Tráfico por hora = 10 Erlangs  ¿Cuántas líneas telefónicas necesito con un GoS de 0.01?  Calcúlalo en:  http://www.erlang.com/calculator/erlb/ Flash Operator Panel  En instalaciones con alta actividad telefónica el FOP puede comenzar a consumir recursos fuera de los niveles deseados. 131
  • 133. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    En instalaciones con alta actividad telefónica el FOP puede comenzar a consumir recursos fuera de los niveles deseados.  El FOP se comunica con Asterisk a través de AMI.  Por lo tanto se encuentra escuchando toda la actividad telefónica a través del puerto de red que levanta Asterisk para este fin.  Cuanto más actividad, más información tiene que procesar el FOP.  En instalaciones grandes, en caso de que el uso del FOP no sea requerido es mejor apagarlo. Herramientas top  Para hacer un análisis breve de los servicios que están consumiendo recursos, basta con ejecutar un comando top.  Ordenamos su salida por consumo de memoria y también por consumo de CPU.  Para hacer lo primero escribimos la letra M (Mayúscula) y para lo segundo la letra P.  En algunas ocasiones podemos observar el proceso java liderando las estadísticas de consumo. 132
  • 134. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Normalmente esto tiene que ver con Openfire debido a que se encuentra implementado sobre java. sipp  Sirve como generador tráfico SIP, ayudándonos a generar llamadas SIP hacia nuestro servidor Elastix.  Esto nos permite tomar muestras para entender cómo reaccionan los recursos del sistema (CPU, memoria).  La idea general es generar un volumen alto de llamadas y determinar el performance de nuestro equipo en varios escenarios.  Sipp es una herramienta de código abierto. Información de descarga y documentación puede ser encontrada en: http://sipp.sourceforge.net/ Cuando un solo servidor no alcanza  Muchas veces una instalación es tan grande que rebasa la capacidad de un sólo equipo.  Para estos casos es recomendable dividir un Elastix en uno o más servidores, o balancear la carga.  Existen dos esquemas que se usan en la práctica:  Distribuir el trabajo en equipos especializados  Distribuir el plan de marcado 133
  • 135. Capítulo 21 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Distribuir el trabajo en equipos especializados  Es posible migrar ciertos servicios a otros servidores:  MySQL  Antispam  Postfix  Openfire Distribuir el Plan de marcado  La funcionalidad utilizada es DUNDi y puede configurarse para utilizar varios servidores.  Elastix tiene actualmente un addon que permite configurar un plan de marcado distribuido.  Revisaremos Plan de Marcado Distribuido y DUNDi mas adelante en este curso. 134
  • 136. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   SEGURIDAD Algo de Historia  Por los años 60 se dieron cuenta que si generaban una señal audible a la frecuencia exacta de 2,600 Hertz producían que las llamadas telefónicas se colgaran.  Algunos hackers se pusieron a estudiar y entender la señalización telefónica, realizando llamadas de larga distancia de manera gratuita.  Desde entonces hay personas dedicando miles de horas de investigación a tratar de quebrantar la seguridad de servidores alrededor del mundo. Buenas Prácticas  Todas las acciones básicas recomendadas para iniciar la operación de un servidor de comunicaciones unificadas  Limitación del acceso al servidor  No usar el usuario root  No dejar sesiones de consola abiertas  Bloquear el reinicio  Utilizar contraseñas fuertes  Deshabilitar el acceso directo a FreePBX Ataques y vulnerabilidades a nivel de red IP  Denegación de servicio  Ataques de inundación SIP (SIP Flooding)  Sniffing  Captura de llamadas a nivel de VoIP  Fraude telefónico  Intento de obtención de privilegios de root Algunas soluciones a los problemas de seguridad  Apagar los servicios que no vamos a usar 135
  • 137. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Firewalls  IDSs e IPSs  Actualizaciones  Monitoreo  Usar un Switch en lugar de un HUB  Cambiar las claves por omisión Encriptando la VoIP  SRTP: El protocolo SRTP (Secure RTP) no se encuentra soportado oficialmente en Asterisk 1.6; Asterisk 1.8 tiene soporte nativo para SRTP.  VPNs: Una VPN (Virtual Private Network) o Red Privada Virtual es un concepto que nos permite simular una red privada sobre una red pública como el Internet.  Encriptación IAX: Cuando IAX fue concebido se pensó en problemas de violación a la privacidad y se añadió soporte nativo para encriptación de llamadas. Auditoría de seguridad  Una auditoría de seguridad debe ser considerada como una práctica preventiva.  Es recomendable que se realice periódicamente para detectar a tiempo problemas que podrían poner en riesgo nuestros equipos.  Escaneo de puertos de red  Revisión de logs del sistema  Revisión de rootkits  Auditoría avanzada con Nessus El módulo de Seguridad de Elastix  Configuraciones básicas de seguridad a nivel de interfaz:  Gestión de Firewall  Auditoría de uso de la Interfaz web de Elastix  Auditoría de Contraseñas débiles  Configuración Avanzada 136
  • 138. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Gestión de Firewall  Interfaz para administración de IPTables  Posee un conjunto de reglas predefinidas  Permite la personalización de puertos 137
  • 139. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Activando el Firewall Creando una nueva regla  Opciones para configuración  Tráfico: ENTRADA, SALIDA, A TRAVES  Interfaz de ENTRADA: CUALQUIERA, Ethernet 0, Loopback  Dirección de Origen  Dirección de Destino  Protocolo: TODOS, TCP, UDP, ICMP, ESTADO  Objetivo: ACEPTAR, DESCARTAR, RECHAZAR   138
  • 140. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Personalizando un Puerto o un rango de Puertos Auditoría de uso de la Interfaz web de Elastix  Permite visualizar las operaciones efectuadas utilizando la Interfaz web de Elastix  Posee la posibilidad de utilizar filtros por fecha o por búsqueda de una palabra clave  Ofrece la descarga de los logs de utilización en formato CSV, XLS o PDF Auditoría de Contraseñas Débiles  Analiza las contraseñas de las extensiones creadas en Elastix  Verifica que no sean demasiado cortas o que estén basadas en diccionario  Algunos ejemplos: qweasd, a1b2c3, 123456   139
  • 141. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Configuración Avanzada  En este menú se puede activar el acceso directo a FreePBX  Se puede también activar llamadas SIP anónimas.  Es importante mencionar, que aunque existan estas configuraciones, se recomienda mantenerlas desactivadas por defecto. Activando FreePBX sin embeber  Elastix mantiene desactivado por defecto la interfaz no embebida de FreePBX.  Si aun es necesario activar la interfaz no embebida de FreePBX, es importante hacerlo correctamente.  Para esto es necesario ir a: Security → Advanced Settings  Una vez que culminemos cualquier configuración que necesitemos hacer es recomendable volver a desactivarla.  “No actualice FreePBX desde su interfaz, existen procedimientos de actualización con Elastix, consulte en los foros o listas.”   140
  • 142. Capítulo 22 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Una vez activado FreePBX, podemos revisar lo requerido y después desactivarlo de nuevo. Técnicas Adicionales  Implementación de Fail2Ban  Implementación de Port Knocking  Implementación de ordenes Allow/Deny durante la configuración de las extensiones  Mantener deshabilitada la interfaz de FreePBX sin embeber  Cambio de puertos por defecto  Utilización de VPNs para extensiones remotas Documentación Adicional  Seguridad en servidores CentOS con Elastix – Rodrigo Martín  Elastix Network Security Guide – Bob Fryer  Trunking entre dos Sistemas de PBX Elastix PBX Vía Internet – Bob Fryer  Asegurando Elastix – Samuel Cornú       141
  • 143. Capítulo 23 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   DEPURAMIENTO AVANZADO Introducción  Un depurador permite examinar la ejecución de un programa a un nivel de detalle mayor que el habitual.  La ejecución en detalle permite encontrar errores que de otro modo resultarían difíciles de hallar.  Con un depurador es posible examinar qué estuvo ocurriendo en el momento en que un programa se colgó.  Dos alternativas para depuración son: strace y gdb ¿Qué hacer cuando Asterisk se comporta mal? Identificar el componente que está causando problemas  En algunas ocasiones existen problemas por errores en el código, o bugs.  Es importante saber diferenciar si el problema está relacionado con un bug o no  Muchas veces no es un problema de Asterisk sino de Sistema Operativo  El problema puede ser también por otros componentes de Software o Hardware Reproducir el bug  Los pasos básicos a seguir son:  Examinar los logs, siendo clave la revisión de los minutos anteriores a la falla.  Consultar a los usuarios, ellos viven la operación telefónica día a día.  Monitorear el equipo  Aunque suene drástico en ocasiones es necesario montar guardia en las instalaciones del cliente y esperar a que el problema ocurra.  Una vez que logramos reproducir el bug y determinamos la situación en que se produce podemos hacer dos cosas:  Verificar si ha sido reportado - http://bugs.digium.com  Verificar si ya fue solucionado en recientes versiones de Asterisk.  Reportar el bug, si este aun no ha sido reportado, de tal manera que la comunidad de desarrollo de Asterisk lo resuelva. 142
  • 144. Capítulo 23 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Errores de Programación  Errores de programación que provocan caídas, colgados o comportamientos indeseados  Falla de segmentación (Segmentation Fault)  Deadlock  Fuga de memoria  División para cero  Buffer overflow Strace  Monitorea las llamadas a sistema que realiza un programa determinado y todas las señales que éste recibe.  Llamadas al sistema comunes en Linux: open, read, write, close, wait, exec, fork, exit, kill, entre otras.  ptrace es la carácterística que hace posible el trabajo de Strace.  Ejemplo de ejecución de Strace al programa: “cat /proc/cpuinfo”:  [root@elastix ~]# strace cat /proc/cpuinfo Depuración en Asterisk Un ejemplo sencillo  Hay ocasiones donde es importante monitorear un proceso de Asterisk en ejecución.  Por ejemplo si nuestro servidor consume muchos recursos de CPU y queramos averiguar qué está ocurriendo.  Para depurar un programa en ejecución con strace primero debemos averiguar el PID del proceso que queremos monitorear.  Un ejemplo sencillo  En nuestro enlistaremos los procesos que contengan la palabra Asterisk y tomaremos el menor PID  [root@elastix ~]# ps aux | grep asterisk 143
  • 145. Capítulo 23 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Ahora que sabemos el PID podemos monitorearlo con strace de manera sencilla:  [root@elastix ~]# strace -p 1619 GDB  GDB es un completo depurador desarrollado y mantenido por la Free Software Foundation.  Nos permite hacer seguimiento de la ejecución de un programa insertando pausas cuando creamos necesario.  También nos permite observar lo que un programa estaba haciendo cuando se colgó.  Además nos permite cambiar ciertas cosas dentro del programa para ver los efectos que se producen con dichos cambios.  GDB es una opción más completa que strace pero también su uso requiere un tanto más de conocimiento.  Con GDB podemos depurar programas escritos en C o C++ como es el caso de Asterisk Ejemplos simples de uso de GDB  GDB puede utilizarse para depurar un programa de tres maneras diferentes:  Depurando un programa desde el depurador; Desde el propio GDB  gdb programa  Depuración sobre Asterisk en plena ejecución  gdb programa PID  Depuración haciendo backtrace sobre un Asterisk caído  gdb programa caído 144
  • 146. Capítulo 23 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Comandos básicos  Nota: Para más información puede recurrir al comando “man gdb” Archivos core y backtraces  Muchas aplicaciones dejan archivos core cuando terminan inesperadamente, esto nos permite hacer una depuración post-mortem del software.  En el caso de Asterisk esto es posible cuando se lo inicia con la opción –g (Elastix inicia Asterisk con dicha opción por defecto). 145
  • 147. Capítulo 23 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Si no se está seguro que Asterisk haya sido iniciado con la opción –g se puede verificar con el siguiente comando.  Un archivo core es el contenido de memoria del programa en el momento en que se detuvo.  Es el sistema operativo quien guarda ese contenido de memoria.  Este contenido de memoria, combinado con la tabla de símbolos que se genera cuando el programa es compilado hacen que gdb nos pueda mostrar información más legible.  Un backtrace es un reporte de las llamadas a funciones que se encontraban en memoria en un momento dado.  Desde gdb es posible realizar backtraces sobre un archivo core.  Para hacerlo existen dos comandos, el bt y el bt full.  El bt full es un backtrace más detallado que el normal. Muestra parámetros y variables locales usados por las funciones que están siendo invocadas.  Ejemplo: Primero identificamos el archivo core que necesitamos examinar, por lo general se trata del último. 146
  • 148. Capítulo 23 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   ¿Cómo reportar un Backtrace a Digium?  Si determinamos que tenemos un bug de Asterisk el siguiente paso lógico es reportar ese bug al fabricante.  Digium dispone de una interfaz Web para esta finalidad ubicada en:  http://issues.asterisk.org  Cuando se reporta un bug es de mucha ayuda para los desarrolladores de Asterisk contar un backtrace para poder entender mejor lo que ocurrió a nivel interno.  Los lineamientos generales para reportar backtraces son:  http://www.asterisk.org/doxygen/trunk/AstDebug.html  Se pide no subir archivos core sino únicamente la salida del comando bt y bt full conseguidos con gdb.  Es importante, al reportar un bug de Asterisk, mencionar que se está utilizando Elastix.  Esto permitirá a los desarrolladores de Digium conocer que se trata de un Asterisk compilado con parches y funcionalidades adicionales. 147
  • 149. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   PLAN DE MARCADO DISTRIBUIDO DUNDi Distributed Universal Number Discovery  DUNDi es un sistema de localización de gateways para el acceso a los servicios de telefonía.  Utiliza un esquema punto a punto y no requiere ninguna arquitectura de red en particular ni un esquema jerárquico cliente-servidor.  Este es un punto de diferenciación con ENUM  En otras palabras DUNDI es capaz de consultar los contextos de otros equipos para encontrar una ruta hacia determinado usuario o peer.  DUNDi en realidad no realiza una llamada como tal, ya que no es un protocolo de señalización VoIP  Recibe y proporciona la información necesaria para poder contactar a los equipos independientemente del protocolo de señalización usado.  Por esto es posible usar DUNDi virtualmente con cualquier protocolo soportado por asterisk.  Es parte de Asterisk por lo cual su integración y funcionalidad en Elastix es transparente. Funcionamiento  Para que DUNDi funcione se debe conocer al menos un peer  Si este peer no puede responder a la consulta (él no tiene ese usuario), puede delegar la consulta a otro peer conocido.  Esto sucede sucesivamente hasta que se encuentre a un peer que tenga una respuesta al peer consultado.  DUNDi puede ser utilizado en una empresa para extender su operación a varios servidores en una o diferentes sucursales. 148
  • 150. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Ejemplos de uso  Un ejemplo típico de la utilidad de DUNDi es en una empresa multi-sede, en la cual cada sede tiene su propio equipo con Elastix.  Cada equipo puede publicar sus extensiones y si uno de los equipos pregunta, por ejemplo ¿dónde está el número 456? la consulta se enviará directa o indirectamente a todos los servidores en la red DUNDi  El servidor que tenga esa extensión publicada responderá algo como:  IAX2/usuario:clave@1.2.3.4/456  El uso de DUNDi hace que no necesite un plan de marcado fijo para cada equipo integrado en una red.  Otro uso común de DUNDi es clúster y balanceo de carga.  Esto es importante en un esquema con muchos usuarios así como para esquemas de clúster y disponibilidad.  “Cuando un servidor no alcanza”, comentamos esto en la sección de rendimiento. Bueno, DUNDi es una muy buena opción. Seguridades  DUNDi usa certificados de encriptación RSA par compartir los planes de marcado.  Esto es requerido ya que las respuestas a una consulta incluyen las contraseñas de las troncales. 149
  • 151. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Asterisk integra el comando astgenkey que se encarga de generar dichos certificados.  Su uso es: astgenkey -n nombre-de-certificado, ej:  Estos certificados deben ubicarse en la carpeta /var/lib/asterisk/keys de cada servidor.  Podemos compartir este archivo de un servidor a los demás servidores con el comando spc: Configuración  DUNDi guarda su configuración en el archivo dundi.conf dentro de la carpeta /etc/asterisk/.  Este archivo se divide en tres secciones:  [general] - donde se define la identificación en la nube DUNDi y opciones globales.  [mappings] - donde se definen las respuestas a una consulta de otro equipo.  Peers – definición de peers que consultarán y serán consultados.  Esta configuración debe ser realizada en cada servidor donde se distribuirá el plan de marcado.  iax_custom.conf - Configuración de troncal.  extensions.conf - Configuración para modificar el contexto "from-internal" de FreePBX, de tal manera que no obtengamos una respuesta de bad-number en la búsqueda del número.  extensions_custom.conf - definimos los contextos personalizados para que DUNDi relacione nuestras extensiones, realice búsquedas en otros equipos y redirija las llamadas.  Esta configuración permite que cuando creemos una extensión nueva desde la interfaz, se añada al contexto local incluido en dundi-priv-canonical que usará DUNDi. 150
  • 152. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Configurando en la Interfaz  Elastix incluye un Addon para realizar esta configuración desde interfaz.  La aplicación está disponible desde la versión 2.0.3  Vamos al menú Addons, ubicamos “Distributed Dial Plan” y hacemos clic en install.  Una vez instalado, aparecerá un submenú en el menú PBX, denominado “Distributed DialPlan”.  Iniciamos la configuración en el 1er Servidor.  Llenamos la información marcada como requerida. 151
  • 153. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Luego, en el mismo servidor iremos al submenú “Password Connection”.  Aquí podemos generar el certificado de configuración RSA.  Podemos además enviarlo al destinatario del otro servidor.  El usuario del 2do servidor recibirá un mensaje como este con el certificado:  Una vez con el certificado, el usuario del 2do servidor debe configurar la información de peer.  Ingresa la dirección IP del primer servidor y el certificado que recibió. El comentario puede ser cualquiera, generalmente una descripción.  Después hace clic en “Request”. 152
  • 154. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   2do Servidor: 1er Servidor:   153
  • 155. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   2do Servidor:  Esta aplicación realiza todas las configuraciones necesarias por nosotros.  Bajo este esquema podemos distribuir un plan de marcado en varios servidores.  Una ventaja visible es su facilidad.  Aun así es importante saber como configurar DUNDi en bajo nivel para entender la funcionalidad 154
  • 156. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   MÓDULO DE CALL CENTER Módulo de Call Center  Este software está diseñado para hacer campañas de llamadas entrantes y salientes.  Estas llamadas permiten la interacción entre operadores (agentes) y personas contactadas (abonados).  Se usa el término “campaña” para designar la ejecución de un conjunto de llamadas.  El módulo incluye un marcador predictivo que se encarga de llamar de manera automática a los números “objetivo”.  Además incluye dos componentes importantes: consola de agente (basada en web) y una interfaz de administración de llamadas.  La versión actual incluye soporte para el protocolo ECCP.  Este protocolo permite que la operación del módulo sea mas eficiente y es posible integrar aplicaciones externas.  El módulo de Call Center de Elastix es Open Source. 155
  • 157. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Modelo de Funcionamiento  El módulo del Call Center está implementado alrededor del soporte de colas de Asterisk.  El diseño asume que cada una de las colas alberga al menos a un agente.  Cada campaña utiliza exactamente una cola. Un agente puede pertenecer a varias colas.  Actualmente se reconocen dos modos principales de funcionamiento: Campañas Salientes y Campañas Entrantes. Funcionalidades Implementadas  Llamado automático a partir de una lista de números.  Ejecución de múltiples campañas simultáneas.  Seguimiento de agente asignado a una llamada.  Marcador predictivo.  Almacenamiento de guión de atención.  Ingreso de formulario.  Agendamiento de llamada.  Capacidad de poner en hold una llamada.  Reportes de actividad de llamadas. Limitaciones conocidas  No se puede asignar un agente específico a una llamada.  No reproduce mensajes de audio en llamadas no atendidas; es decir no coloca llamadas en una cola sin agentes.  Esto es debido a que el módulo está diseñado para mediar llamadas que son atendidas por agentes humanos.  Es posible que se implemente esta funcionalidad en el futuro como “Campaña Sin Agentes”. 156
  • 158. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Marcador predictivo  Es la porción del Call Center que interactúa directamente con las llamadas.  Está implementado como un servicio residente (daemon) escrito en PHP. Se puede iniciar como servicio a través del comando:  El marcador inicia cada llamada mediante el uso del comando Originate de Asterisk.  El marcador revisa constantemente las llamadas que han sido colocadas por el y que no hayan recibido un evento OriginateResponse.  Si el marcador recibe una respuesta del tipo OriginateResponse (ejemplo: join o link) escribe la información de esa llamada en la base de datos.  El marcador interroga regularmente el estado de la cola para averiguar cuántos agentes se encuentran registrados y libres.  El número de agentes libres regula cuántas llamadas son iniciadas simultáneamente. 157
  • 159. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    El marcador estima la duración media de llamada, para intentar predecir si las llamadas en curso están por terminar, para colocar proactivamente nuevas llamadas. Esta funcionalidad es configurable.  El modelo para predicción es una distribución Erlang acumulada.  La interfaz Web permite iniciar y detener el servicio de marcador  Además permite activar y desactivar la depuración de problemas en el marcador, incluso si el marcador está corriendo.  La ruta por omisión del log del marcador es el archivo /opt/elastix/dialer/dialerd.log  El marcador predictivo se encuentra encendido por defecto cuando se instala el módulo.  Sin embargo es posible apagarlo o encenderlo desde la interfaz, en el menú de configuración del módulo. Administración del Módulo  La administración del módulo permite : o Crear Agentes o Agregar colas o Crear nuevas campañas salientes o Crear nuevas campañas entrantes o Administración de breaks  También proporciona una interfaz de configuración que permite iniciar, detener y configurar el marcador predictivo, incluyendo la activación de depuración. 158
  • 160. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Iniciando la operación de Call Center  Antes de iniciar la operación de Call Center es necesario seguir las siguientes configuraciones básicas: 1. Instalar el Call Center en Elastix 2. Crear un grupo con la configuración para Agentes 3. Crear Usuarios en el sistema para los Agentes 4. Crear Extensiones para los Agentes 5. Crear Agentes en el módulo de Call Center 6. Crear la(s) cola(s) requeridas para la operación. Iniciando la operación de Call Center : Instalación  La instalación del módulo es sencilla. Únicamente es necesario ir al menú Addons y hacer clic en INSTALL.  La instalación se realiza automáticamente.  Una vez concluida se habilitará Call Center en el menú principal. 159
  • 161. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Iniciando la operación de Call Center : Creación de Grupo  Para la operación es necesario crear usuarios en Elastix para los Agentes que participarán en ella.  Por razones de seguridad y control necesitamos limitar el acceso de estos usuarios.  Es necesario crear un grupo que tenga únicamente acceso a la consola.  Para crear un grupo debemos ir a: Sistema → Usuarios → Grupo: Crear Nuevo Grupo  Para configurar el permiso de nuestro nuevo grupo debemos ir a:  Sistema → Usuarios → Permisos de Grupo  Seleccionamos el grupo creado (haciendo clic en mostrar), y filtramos el recurso: Agent Console.  Seleccionamos y Guardamos. 160
  • 162. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Una vez que hemos creado el grupo con el acceso restringido, podemos crear los usuarios para los agentes. Ir a:  Sistema → Usuarios → Crear Nuevo Usuario  Podemos crear tantos Agentes como necesitemos. Iniciando la operación de Call Center : Creación de Extensiones  Debemos crear tantas extensiones como Agentes operen en una campaña.  Es suficiente crear extensiones tipo SIP.  Para facilitar la operación del Call Center estas extensiones son usadas normalmente en Softphones.  El módulo de Call Center transferirá al agente todas las llamadas en una campaña a su extensión. Iniciando la operación de Call Center : Creación de Agentes  La creación de Agentes se diferencia de la creación de usuarios ya que estos son generados en el Módulo de Call Center.  Un operador de Call Center necesita un usuario para hacer login en Elastix, y una vez en la interfaz, necesita un Agente para hacer login en el Call Center.  Para crear un agente ir a: Call Center → Agent Options → Agents  Hacemos clic en el link “Nuevo Agente”. 161
  • 163. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    No se debe colocar nada en “Contraseña ECCP”. El sistema se encarga de asignar una al crear el Agente. Iniciando la operación de Call Center : Creación de Colas  El proceso de creación de Colas es similar al que vimos anteriormente.  Se diferencia únicamente en que en lugar de colocar extensiones creadas en Elastix, colocaremos los números de los Agentes que queremos que estén en la cola.  La nomenclatura que se coloca en el listado de Agentes fijos también se diferencia, ya que tenemos que anteponer la letra “A”.  Crearemos la cola con el número ectetest con el número 101. 162
  • 164. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Como podemos observar en la figura colocamos los Agentes creados en el módulo de Call Center, con el prefijo A, seguido de una “,” y el número 0.  Podemos colocar cualquier política de estrategia de ringado. Usualmente se selecciona “Agente con menos llamadas”. Iniciando la operación de Call Center : Activando el Módulo  Antes de iniciar comprobaremos que el servicio de Call Center está Activo.  Esto se puede comprobar desde el Dashboard o desde el menú de configuración del Call Center (Dialer apagado/encendido). Consola del Agente  La consola de agente administra la interacción del agente con el sistema. Está basada en Web.  La consola recibe eventos de una llamada a través del ECCP, al igual que la toda la información correspondiente a la llamada.  Por medio de la consola el Agente obtiene información de la operación (número telefónico atendido, información de contacto).  En la actualidad la consola de agente trabaja utilizando el protocolo ECCP. 163
  • 165. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Acciones  Colgar: Permite terminar una llamada  Descanso: Permite a un agente/operador hacer tomar un receso para una actividad. Los descansos deben estar previamente configurados por el administrador  Transferir: Transfiere la llamada a alguna extensión existente en el plan de marcado. La transferencia es ciega actualmente.  VTiger CRM: Abre Vtiger en una ventana nueva del browser. Vtiger debe estar activo.  Fin de sesión: Finaliza la sesión del agente/operador en el Call Center. Funciones de Campaña  Información de Llamada: Muestra la información de la persona que llama, si se encuentra en la base de datos. Si no existe la información mostrará el número de teléfono de la llamada entrante en la parte de abajo.  Diálogo de llamada: Muestra un Script que se ha creado anteriormente para que sirva de instructivo al agente.  Formulario de llamada: En esta pantalla se muestra el formulario creado para una campaña. 164
  • 166. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Campañas Salientes  El sistema se alimenta con un archivo que contiene los números telefónicos a marcar.  Al activarse la campaña, el sistema marca los números telefónicos, verificando los agentes libres registrados que se encuentren en la cola. Tantas llamadas como agentes libres.  En este método se une la cola con el número del abonado. Si la llamada es exitosa entra a la cola y es asignada al siguiente agente libre.  La asignación depende de la política asignada a la cola (linear, wrandom…etc).  El sistema registra en una base de datos al agente que se asignó a la llamada.  Esta información servirá para varios propósitos de consulta.  Al terminar la llamada, el agente pasa al estado ocioso, y está de nuevo disponible para recibir una llamada.  Este proceso continúa hasta recorrer toda la lista de números.  Se puede configurar el número de intentos, de tal manera que el módulo llame a los números que fallaron en ser contactados. Campañas Entrantes  Se define una cola, en la cual se incluyen los agentes. El marcador predictivo no funciona en esta modalidad.  Se debe organizar que los abonados que llamen al sistema, sean dirigidos a la cola configurada para la campaña.  El sistema registra en una base de datos al agente que se asignó a la llamada. Esta información servirá para varios propósitos de consulta.  Se puede alimentar el sistema con datos sobre números específicos para que el agente tenga información disponible en su pantalla. 165
  • 167. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Configuración de Campañas  Existe un menú habilitado para cada tipo de campañas: o Outgoing Calls: Campañas Salientes. o Ingoing Calls: Campañas entrantes.  Antes de iniciar una campaña es importante definir: 1. Formularios 2. Lista de Contactos (Opcional para campañas entrantes) 3. Lista de números telefónicos (Requerido en campañas salientes) 4. Breaks 5. Y por supuesto: Agentes y Colas. Configuración de Campañas : Formularios  Los formularios se crean en: Call Center → Forms → Form Designer  Cada formulario tiene la opción de agregar múltiples campos de los siguientes tipos: o Campo de Texto o Campo de Selección de Lista o Campo de Fecha o Campo de área de Texto o Campo tipo etiqueta 166
  • 168. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Podemos ver un preliminar del formulario en “Form Preview”.  La creación y manejo del formulario funciona bien en Firefox, es probable que algunas funcionalidades no se puedan configurar desde otros Browsers. Configuración de Campañas : Clients – Ingoing Calls  Las campañas de llamadas entrantes permiten subir un listado de contactos.  El módulo verifica el número entrante con el listado y muestra la información del contacto al Agente.  La información soportada por el módulo de Call Center para el listado de contactos es: "teléfono","cedula/ruc","nombre","apellido”  Es útil hacer el listado en Excel o en hoja de cálculo de OpenOffice  En la primera columna observamos el número telefónico. La segunda contiene el número de cédula (o un id). La tercera y cuarta columna contienen el nombre y apellido.  El campo cedula/ruc, es un campo requerido por el módulo para subir correctamente el listado. Podemos colocar un número identificador en el contacto si no conocemos su ID.  En el ejemplo anterior se muestra un número identificador para cada contacto.  El archivo del listado debe ser guardado como csv: 167
  • 169. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   o Si el archivo es hecho en OpenOffice debe ser guardado como “Texto CSV (.csv)” o Si el archivo es hecho en Excel debe ser guardado como “Windows Comma Separated (.csv)”.  Una vez creado el archivo con el listado de contactos debemos subirlo en el menú Clients:  Call Center → Ingoing Calls → Clients Configuración de Campañas : Phone List – Outgoing Calls  La información principal de una campaña de llamada saliente es sin duda el listado de números telefónicos a llamar.  Esta información será requerida cuando creemos la campaña, sin embargo es importante crearla adecuadamente.  Es útil hacer el listado en Excel o en hoja de cálculo de OpenOffice  El archivo del listado debe ser guardado como csv. o Si el archivo es hecho en OpenOffice debe ser guardado como “Texto CSV (.csv)” o Si el archivo es hecho en Excel debe ser guardado como “Windows Comma Separated (.csv)” 168
  • 170. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Configuración de Campañas : Configuración de Breaks  Los breaks permiten que un agente salga de operación y permanezca en Stand by como no disponible.  En este estado el dialer no le asignará llamadas.  Tampoco se le asignarán llamadas en una campaña entrante.  Para crear los breaks vamos a: Call Center → Breaks y hacemos clic en: “Crear nuevo break”  Los breaks pueden estar en estado “Activo” o “Inactivo”.  Para que el agente pueda seleccionarlos deben estar Activos, caso contrario ni siquiera aparecerán como opción. En Campaña: Ingoing Calls  Primero debemos seleccionar una cola.  El módulo transferirá las llamadas entrantes a la cola y la cola las distribuirá entre los agentes que estén configurados en ella.  Pueden existir varias colas y se pueden activar varias campañas entrantes.  Una cola puede además estar seleccionada por dos campañas entrantes. Call Center → Ingoing Calls → Queues 169
  • 171. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Luego de seleccionar la cola, es recomendable subir la base de datos de los clientes que llamarán.  A continuación crearemos la(s) campaña(s) para que inicie la operación de llamadas entrantes.  Debemos ir a: Call Center → Ingoing Calls → Ingoing Campaigns  Una vez ahí debemos crear una nueva campaña, donde seleccionaremos el formulario a usar, y detallaremos un breve script para el agente. 170
  • 172. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Una vez creada la campaña, esta iniciará su operación y asignará llamadas a todos los agentes que estén conectados.  Revisaremos el proceso de login de un agente posteriormente. En Campaña: Outgoing Calls  Debemos ir a: Call Center → Outgoing Calls → Campaigns.  Una vez ahí debemos crear una nueva campaña.  El módulo permite a varias campañas trabajar al mismo tiempo. El único limitante será la cantidad de líneas telefónicas que tengamos.  Al igual que en las campañas entrantes, una cola puede estar asignada a varias campañas. Sin embargo si tenemos una cola seleccionada en una campaña entrante, no podrá ser seleccionada para una campaña saliente. 171
  • 173. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Una vez creada la campaña, el dialer iniciará su operación y asignará llamadas a todos los agentes que estén conectados.  Revisaremos el proceso de login de un agente posteriormente.  El módulo tiene una funcionalidad de indicar números que no deben ser llamados.  Esta funcionalidad permite ingresar un número específico.  También se puede cargar un listado de números de un archivo .csv que previamente ya teníamos seleccionados para este efecto. Call Center → Outgoing Calls → Do not call list 172
  • 174. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Ingreso de Agente a consola  Un agente debe ingresar primero a Elastix con su usuario y clave.  Al hacer login, el agente tendrá acceso únicamente a la consola.  Una vez ahí debe escoger el número de agente y la extensión a la que tiene acceso y hacer clic en ingresar.  El módulo llamará a la extensión, el agente debe contestar y marcar el password requerido seguido de la tecla # para ingresar al Call Center.  Una vez en el Call Center, el Agente estará listo para recibir llamadas. 173
  • 175. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    Si el agente selecciona un break, no estará habilitado para recibir llamadas. Interacción de Agente  Llamada entrante (no se muestran datos del cliente porque no está en la base de datos). 174
  • 176. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados    El agente puede revisar el Script preparado para la campaña en el TAB “Dialogo de Llamada”.  El formulario puede ser llenado en el TAB “Formulario de llamada”.  El agente puede colgar la llamada o transferirla a otro número del plan de marcado interno. 175
  • 177. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Reportes  Los reportes implementados incluyen:  Calls Detail  Calls per hour  Calls per Agent  Hold Time  Login Logout  Ingoing Calls Success  Graphic Calls per hour  Agent Information  Agents Monitoring  Trunks used per hour  Agents connection time  Incoming calls monitoring 176
  • 178. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   177
  • 179. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   178
  • 180. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   EXTENDIENDO ELASTIX Extendiendo Elastix  Una de las ventajas que tiene Elastix es la posibilidad de hacer customizaciones o desarrollo adicional.  Cualquier desarrollo que tengamos en mente, puede estar incluido en la interfaz con su propio menú.  Estos desarrollos adicionales se comportan como módulos.  Un ejemplo de desarrollo adicional en Elastix es el módulo de Call Center.  La posibilidad de que realicemos un aplicación adicional puede impulsar incluso un potencial negocio para el desarrollador.  Desde la versión 2.0 en adelante muchos desarrollos de PaloSanto Solutions y de terceros se distribuyen a través del módulo de Addons.  El módulo de Addons, permite a un administrador de Elastix instalar de manera transparente una aplicación que se encuentre enlistada.  Aunque no se vislumbre como un negocio, es importante saber que podemos tener un grupo de desarrollo interno ideando como personalizar adicionar características a nuestra implementación.  A lo largo del curso hemos visto ejemplos de instalación de una solución por medio del módulo de Addons.  Veremos un ejemplo más instalando el módulo developer. 179
  • 181. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Framework NEO  Es el framework detrás de la interfaz Web de Elastix  Un framework es un conjunto de librerías y código para facilitar la programación y reutilización de código  Algunas características interesantes son:  Arquitectura Web basada en MVC2  Continuación de características:  Desarrollo POO  Concepto e implementación modular  Mantenimiento de idiomas  Mantenimiento de la ayuda embebida  Soporte ACL Estructura de archivos en NEO Archivo o Directorio Descripción themes/ Contiene las plantillas html, javascripts y css. Representa la capa de vista index.php El punto de entrada común para todas las pantallas de la interfaz de Elastix. Es quien decide qué pantalla mostrar dependiendo de los parámetros recibidos. Representa al controlador del módulo libs/ Aquí se encuentran librerías (código reciclable) configs/ Archivos de configuración langs/ Definición de los lenguajes, actualmente se soportar 22 idiomas images/ Imágenes que serán usadas tanto en la ayuda como en el módulo help/ Ayuda del módulo 180
  • 182. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Iniciando el desarrollo  En versiones anteriores el desarrollo de un módulo se realizaba totalmente a nivel de consola.  Actualmente Elastix provee una aplicación para crear módulos de una manera mas gráfica y manteniendo el estilo de la interfaz.  Para instalarlo debemos ir al menú Addons e instalamos el módulo “Developer”  Una vez instado buscamos el menú developer e ingresaremos al Builder. Usando módulo Developer  Es una poderosa herramienta que facilita la creación de nuevos módulos de Elastix  Consta de cuatro sub-módulos:  Constructor de módulos  Eliminar módulo  Mantenimiento de idiomas  Cargar Menú Builder 181
  • 183. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Builder: Secciones  Información general: Nos ayuda a definir el nombre e identificador del módulo, así como datos del creador y permisos  Localización: Aquí indicamos en qué nivel del árbol de menús se colocará el nuevo módulo  Descripción: Aquí es donde realmente se define el módulo.  Puede ser de tres tipos: reporte, formulario o enmarcado Builder: Tipos de módulos  Reporte: Es un listado (tabla). Es independiente de la fuente de datos que puede ser una DB, un arreglo, etc.  Formulario: Formulario para recolectar datos del usuario. Están soportados los tipos de campos HTML más comunes como: o text, select, checkbox, textarea, radio, file, hidden, entre otros  Enmarcado: Inserta un frame que nos permite integrar otra aplicación Web en la interfaz del Elastix Builder  Al final del proceso de creación del nuevo módulo se generará un código esqueleto.  Este nos servirá de guía o plantilla para continuar desarrollando la funcionalidad necesaria  Estos archivos se crearán en la ruta: /var/www/html/modules/<id módulo>  A partir de este instante dependemos de nuestros conocimientos de programación PHP Ventajas del Builder  Es fácil de instalar  Podemos crear los módulos que necesitemos.  Los permisos se crean automáticamente,  Las carpetas se crean automáticamente  Podemos crear el esqueleto inicial del código ahorrando parte del trabajo de desarrollo. 182
  • 184. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Eliminar módulos  Nos permite eliminar un módulo determinado de manera sencilla  Debido a su sencillez es importante remarcar que: HAY QUE TENER MUCHO CUIDADO PUES PODEMOS ELIMINAR UN MÓDULO ÚTIL POR ERROR! Mantenimiento de idiomas  Nos permite administrar los diferentes idiomas de los módulos en Elastix  También nos permite crear nuevos lenguajes  Las palabras claves o keys siempre están en idioma inglés  Se puede seleccionar un módulo específico pues cada módulo puede tener su propio archivo .lang  Una vez realizados los cambios desde la interfaz, dichos cambios se guardan en los archivos .lang respectivos 183
  • 185. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Haciendo un poco de Historia: Load Module  Este módulo era requerido en Elastix 1.6 dado que no existían RPMs para Elastix.  Un módulo que estaba desarrollado podía ser cargado desde aquí comprimido.  Desde Elastix 2.0 todos los RPMs para Elastix están disponibles, por lo cual este módulo desaparecerá en las siguientes versiones. Desarrollando para Elastix  En los últimos 6 años Elastix a crecido de una manera estable como distribución.  Se cuenta que al menos existen 100,000 potenciales integradores a nivel mundial, fuera de usuarios finales.  Este mercado puede resultar atractivo para empresas con ideas de desarrollo que quieran integrar sus soluciones a una plataforma de comunicaciones unificadas.  PaloSanto Solutions tiene planificado publicar un curso para developers para el segundo semestre del 2012.  Si están interesados en desarrollar su propio addon, pueden escribir a la siguiente dirección: certification@palosanto.com 184
  • 186. Capítulo 27 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   COMPILANDO ELASTIX Recompilando los SRPMs  La manera más fácil de recompilar Asterisk en Elastix es utilizando los SRPMs provistos por el proyecto Elastix.  Estos se pueden descargar de http://repo.elastix.org/elastix/index.php?dir=2.0/updates/SRPMS/  Un link abreviado es: http://elx.ec/srpms  Se debe usar los SRPMs estables más recientes.  Un SRPM (Source RPM) es un paquete que contiene la información necesaria para construir un RPM.  Tales como el código fuente del paquete y las directrices usadas para compilarlo e instalarlo en el sistema.  Estas directrices se especifican en un archivo llamado SPEC, que usualmente se distingue por su extensión *.spec. Requisitos para el RPM Instalar un Elastix con los requisitos para construir el RPM  Según el último archivo asterisk.spec los siguientes RPMs son requeridos para construir el RPM de Asterisk.  Debemos asegurarnos que tenemos los paquetes necesarios instalados antes de empezar.  Un listado completo se detalla en la siguiente diapositiva.  gcc-c++  m4  openssl-devel  newt-devel  libtermcap-devel  ncurses-devel  postgresql-devel  gsm-devel  net-snmp-devel  spandsp-devel >= 0.0.6  curl-devel  wget  speex-devel >= 1.2  libxml2-devel 185
  • 187. Capítulo 27 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Instalar el SRPM de Asterisk Instalar el SRPM de Asterisk y modificar el SPEC de acuerdo a nuestras necesidades  Luego de descargar el SRPM de Asterisk lo instalamos en la máquina concebida para este fin.  Esto se hace de manera sencilla con el comando rpm: [root@elastix ~]# rpm -ivh asterisk-1.8*.src.rpm.  Esta instalación poblará el directorio /usr/src/redhat que es donde se copiará el código fuente de Asterisk, el archivo SPEC y cualquier otra información nacida del SRPM.  A continuación deberemos hacer los cambios en el archivo SPEC para personalizar nuestro Asterisk.  Aquí podremos hacer casi cualquier cosa como: Eliminar parches para conseguir un Asterisk mínimo, Añadir funcionalidad nueva a Asterisk, Parchar contra bugs, entre otras cosas.  zlib-devel  libpri-devel >= 1.4.12  dahdi-devel >= 2.4.1.2  libtiff-devel >= 3.5.7  libogg-devel  libvorbis-devel  unixODBC-devel  libtool  sqlite-devel  libtool-ltdl-devel  alsa-lib-devel  mISDNuser-devel  mISDN-devel  libopenr2-devel  mysql-devel  zlib-devel  /usr/bin/soxmix  iksemel-devel  libsrtp  libgsmat  autoconf >= 2.63 186
  • 188. Capítulo 27 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Construir el RPM de Asterisk  Una vez realizados los cambios en el SPEC nos encontramos listos para recompilar Asterisk o siendo exactos construir un nuevo RPM para Asterisk.  Para lograr esto nos valemos del comando rpmbuild, pasándole como parámetro la ruta del archivo SPEC que hemos modificado: [root@elastix ~]# rpmbuild -ba /usr/src/redhat/SPECS/ asterisk.spec.  Al final del proceso obtendremos los siguientes RPMs en la carpeta /usr/src/redhat/RPMS/:  Además obtendremos un nuevo SRPM en la carpeta /usr/src/redhat/SRPMS/  asterisk  asterisk-devel  asterisk-sounds-es  asterisk-sounds-fr  asterisk-mISDN  asterisk-addons  asterisk-chan_mobile 187