Vous êtes sur la page 1sur 188

Captulo 1

Elastix Certified Technician


PaloSanto Solutions 2012 Todos los derechos reservados

INSTALACIN DE ELASTIX

Instalando desde CD

! Es recomendable instalar la ltima versin estable de Elastix disponible en la pgina del
proyecto.
! Para realizar la instalacin desde CD, debemos descargar el archivo de imagen (con
extensin iso), y grabarlo en un disco en blanco.
! Es importante grabar el iso usando software especializado para este propsito.
! 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 instalacin 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 instalacin 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 instalacin estndar basta con presionar ENTER




Advertencia: La instalacin estndar borrar completamente el disco duro.

1
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Seleccionamos el idioma para la instalacin.



! El instalador nos pide seleccionar el esquema del teclado



! Seleccionamos el tipo de particionamiento (primera opcin).



2
Captulo 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
Captulo 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 configuracin manual.



! Si se utiliza configuracin manual, ingresar la direccin y la mscara.



4
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Ingresar la direccin IP de la puerta de enlace y del servidor DNS.



! Ingresar el nombre del host.



! Seleccionamos el huso horario adecuado.



5
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Ingresar la contrasea del usuario root



! Esperar hasta que finalice la instalacin automtica de paquetes.



! Ingresamos la contrasea para el usuario root de MySQL (no confundir con usuario
root de linux).


6
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Ingresar nuevamente la contrasea de root de MySQL.



! Ingresar la contrasea para el usuario admin del web GUI de Elastix.


Nota: Esta ser adems la contrasea para los siguientes servicios: FreePBX, Vtiger, A2Billing y FOP.
Aunque no se menciona esta contrasea es adems la contrasea del AMI admin.

! Ingresar nuevamente la contrasea admin de Elastix.


7
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! La instalacin ha sido completada, podremos ingresar a nuestro sistema con usuario
root y su contrasea ingresada durante la instalacin.



Instalacin con soft RAID
! RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para
ofrecer redundancia de informacin.
! Dependiendo el nmero 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 continuacin 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 informacin.
! Dependiendo el nmero 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 continuacin 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 informacin.
! Dependiendo el nmero 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 continuacin es de nivel 1, en el que intervienen dos discos duros y
uno es espejo del otro.


8
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados


! Observaremos ambos discos, debemos crear tres (3) particiones en cada uno.
! Seleccione la opcin "Nuevo


! Tamaos de disco:
! 1era particin = 100MB para el boot,
! 2da particin = el doble del tamao del RAM del sistema para swap (en este ejemplo el
RAM es 512 MB),
! 3ra particin = debe ser completada con el espacio disponible.


9
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados


! En cada particin 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 particin (swap)

Imagen del proceso para la tercera particin (seleccionamos ocupar todo el espacio disponible)

! Al final tendremos 3 particiones en cada disco.
! No se preocupe por el orden de cada particin se re-ordenarn cuando configuremos
el RAID.

10
Captulo 1
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Para iniciar la particin en espejos debemos seleccionar la opcin "RAID".


! Aqu seleccionaremos las particiones que sern miembros del RAID, el "Tipo de
sistema de archivos" y el "Punto de montaje".
! Punto de Montaje: particin boot = /boot, swap = no coloque nada, particin "root"
= use /
! Tipo de sistema de archivos: particin boot = seleccione ext3, particin swap =
seleccione swap, y seleccione ext3 para la particin "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 particin boot.

Nota: Es importante seleccionar los particiones correspondientes en la seccin Miembros del RAID. En este
ejemplo hda2 y sda2 son las particiones con 100MB para boot.

! Las configuraciones de RAID aparecern sobre las particiones previamente creadas.
! Cuando finalice seleccione "Aceptar" para continuar con la instalacin normalmente.


11
Captulo 2
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

VIRTUALIZACIN

Virtualizacin



! Una mquina virtual simula un sistema fsico con caractersticas de hardware
especficas.
! En un solo servidor se pueden implementar varias mquinas virtuales para cumplir
varios servicios.
! Esto nos permite la reutilizacin de hardware existente, lo cual implica ahorro de
recursos.
! Nos permite adems reduccin de costos y una administracin global centralizada y
simple.
! En un solo espacio podemos tener varios servidores virtuales sin incrementar el
consumo de energa.
! 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 operacin real, lo cual es til
previo a una actualizacin y nos ser til en este curso para probar el potencial de
Elastix.
12
Captulo 2
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Entre las alternativas que revisaremos estn:
! VMware
! VirtualBox
! XEN

VMware

! Una mquina virtual simula un sistema fsico con caractersticas de hardware
especficas.
! En un solo servidor se pueden implementar varias mquinas virtuales para cumplir
varios servicios.
! Esto nos permite la reutilizacin de hardware existente, lo cual implica ahorro de
recursos.
! Nos permite adems reduccin de costos y una administracin global centralizada y
simple.
! VMware Player est creada para usuarios sin licencia para usar Workstation.
! Inicialmente no permita crear mquinas virtuales, pero esta limitacin fue removida en
la versin 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 produccin
! Pgina web: http://www.vmware.com/

VirtualBox

! Es un software de virtualizacin 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 anfitrin: 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
Captulo 2
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Es un software de virtualizacin 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 anfitrin: 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 virtualizacin 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 anfitrin: 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 slo para acceder a redes externas pero no se puede acceder a la
mquina 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 mquinas virtuales
! Adaptador solo-anfitrin: La mquina virtual es vista como otra mquina en la red.
! Controlador genrico: usado para compartir una interfaz de red genrica. Un
ejemplo es la interconexin entre dos mquinas virtuales ubicados en diferentes hosts.
! Con Elastix podemos usar: Adaptador puente y Adaptador solo anfitrin. Para este
curso utilizaremos Adaptador puente.


14
Captulo 2
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

XEN

! Es la alternativa ms eficiente de virtualizacin
! Solucin recomendada para servidores por su eficiencia
! Es lo que utilizan la mayora de proveedores de hosting de VPS con Elastix
! Existe 2 tipos de virtualizacin: completa y para-virtual
! Permite hacer migraciones de mquinas virtuales en caliente
! Es software libre: http://www.xen.org/

Arquitectura en XEN

! XEN se comunica directamente con el hardware a travs de un componente llamado
Hipervisor.
! Cuando XEN arranca levanta automticamente un dominio conocido como dom0
! Dom0 es un dominio privilegiado donde se administran otros dominios.
! Los dems 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
opcin para este servidor
! Se puede instalar con virtualizacin completa o paravirtual
! Se puede instalar sobre una mquina virtual de CentOS 5.x. Esto es muy til si
tenemos un servidor VPS remoto con CentOS cargado
15
Captulo 3
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

LINUX PARA ADMINISTRADORES
DE ELASTIX

Introduccin

! 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 travs del protocolo SSH (Secure Shell)
! El SSH es un protocolo encriptado.

Lnea de Comandos en Linux


! Ejemplo terminal Linux de Elastix:.










16
Captulo 3
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Comandos Bsicos



Sistema de Archivos

! Estructura de rbol de directorios
! Todos empiezan en la raz /
! Directorios importantes en Elastix:
o /etc/asterisk: guarda la configuracin 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 Descripcin
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. Tambin se lo usa para renombrar archivos.
rm Elimina un archivo
tail -f filename Muestra las ltimas lneas 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 diagnstico.
find Permite buscar archivos
vim Programa para ver y editar archivos de texto plano.
ifconfig
Muestra informacin de las interfaces de red y permite modificarlas
temporalmente.
ps -aux
Muestra un reporte de los procesos que se estn ejecutando en el
servidor.
reboot Reinicia el equipo
shutdown -h now Apaga el equipo

17
Captulo 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 ejecucin(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: Notacin Octogonal

! Los permisos se pueden representar con nmeros
! 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
Captulo 3
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

YUM

! Maneja la instalacin 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
Captulo 4
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

ELASTIX: GENERALIDADES

Qu es Elastix?

! Una solucin de servidor de comunicaciones unificadas: telefona, fax, IM, email,
colaboracin.
! 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.
! Adems de otros paquetes de cdigo abierto.
! Rpido crecimiento, 1000.000 descargas hasta Noviembre de 2010.
! Reconocimiento con el premio INTERNET TELEPHONY product of the year Award
aos 2011 y 2012

Servidor de Comunicaciones Unificadas?

! Integracin de diferentes sistemas de comunicaciones.
! Por ejemplo, el telfono es contestado por Asterisk (telefona) y en caso de resultar un
documento de fax le pasa el control a Hylafax (FAX) quien recibe el documento y lo
enva por email a travs de Postfix a su destinatario.
! Mejora la productividad: ahorro de tiempo, papel, mejor acceso a la informacin
compartida.

Esquema General


20
Captulo 4
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Breve historia del Proyecto

! Lanzado en Marzo de 2006 por la compaa PaloSanto Solutions de Ecuador.
! Inicialmente no era una distro sino una interfaz de reportacin para llamadas de
Asterisk
! En Diciembre de 2006 se lanza la primera versin 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 lder del mercado.

Caractersticas de Elastix

! Algunas de las caractersticas y funcionalidades de Elastix son:
! Voicemail
! Fax-a-email
! Soporte para soft phones
! Consola de operador
! IVR (recepcionista digital)
! Interfaz de configuracin Web
! Sala de conferencias
! Music-on-hold con soporte mp3s
! Campaas de tele-mercadeo
! Grabacin de llamadas
! Parqueo de llamadas
! Call-pickup
! Colas de atencin
! Limitacin de tiempo de llamada
! Least Cost Routing
! Roaming de extensiones
! Interconexin entre PBXs
! Identificacin del llamante
! CRM incluido Reportacin avanzada
! Personalizacin y desarrollo

! Para un mayor detalle de todas las funcionalidades consulte Elastix.org

Licenciamiento de Elastix

! Elastix es software libre licenciado bajo GPL versin 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 todava existe la duda: Elastix puede ser descargado sin costo alguno.

21
Captulo 4
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Interfaz Web de administracin



Men System


Men PBX


Men Email


Men Fax



22
Captulo 4
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Men Reports


Men extendido



Interfaz Web de administracin
! Mdulo de Add-ons: Funcionalidad adicional disponible en un slo clic


www.elastix.org
! Sitio Web oficial del proyecto.
! Mantenido por PaloSanto Solutions y la comunidad Elastix.
! Aqu podemos encontrar:
! Foros
! Wiki (Documentacin)
! Chat en vivo IRC
! Suscripcin a listas de correo
! Links de descargas
! Informacin Comercial y Proyectos
! Eventos
23
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

FUNCIONAMIENTO INTERNO DE
FREEPBX

Fundamentos de FreePBX

! Software de configuracin de Asterisk
! Integrado en la distribucin Elastix
! Genera los archivos de configuracin de Asterisk
o Incluye el plan de marcado
o Basados en la configuracin ingresada por el usuario
! Dos pasos para la configuracin:
o Guarda la informacin en una base de datos de configuracin.
o En el caso de Elastix el motor de base de datos usado es MySQL.
o Convierte la informacin de la base de datos en archivos de configuracin a
travs de parsing.













24
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Organizacin de archivos




Configuracin de FreePBX

amportal.conf:
! Archivo de texto plano, ledo por FreePBX.
! Informacin general de configuracin.
! Editable en caso de requerirse.
! Informacin de acceso a la base de datos.
! Tipo de autenticacin para usuarios Web.
! Documentacin para manejo de opciones y directivas de configuracin.

retrieve.conf:
! Escrito en PHP
! Genera el plan de marcado a partir de la informacin almacenada en la base de datos.
Directorio Descripcin
/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 configuracin de Asterisk.
/var/lib/asterisk/agi-bin/ Directorio de scripts AGI de Asterisk
/var/lib/asterisk/bin/ Directorio de binarios, links simblicos a carpetas de mdulos.
/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
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Programa ejecutable desde la lnea de comandos.
! Se ejecuta a travs de un script PHP, cada vez que se da clic en la barra roja de FreePBX
(Apply Configuration Changes Here).

! Esta operacin ser muy frecuente en la mayora 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 extensin y otras configuraciones de la misma (call forward, call
waiting, do not disturb).
! Toma acciones a partir del estado y la configuracin de la extensin.
! 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

Mdulo de FreePBX: Estructura



Nombre del Archivo Descripcin
module.xml Informacin del mdulo en formato XML.
page.nombredelmodulo.php Archivo principal del mdulo escrito en PHP.
functions.inc.php Librera especial con funciones PHP.
install.sql
Contiene sentencias SQL que se ejecutan sobre
la base de datos al instalar el mdulo.
uninstall.sql
Contiene sentencias SQL para desinstalar el
mdulo.
install.php
Script PHP que se ejecuta al momento de
instalar el mdulo.
uninstall.php
Script PHP que se ejecuta al momento de
desinstalar el mdulo
26
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Cmo se embebe en Elastix?

! Para poder embeber freePBX en Elastix se desarroll un cdigo WRAPPER
! Este cdigo se acopla los mdulos de freePBX como un mdulo Elastix.
! Este desarrollo consiste en:
o Mdulo pbxadmin de Elastix
o Archivo /var/www/html/config.php

Mdulo pbxadmin de Elastix
! Encargado de obtener el contenido de mdulos de freePBX por medio de inclusin de
archivos de PHP.
! El index.php de ste mdulo (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 mnima del que
esta ubicado dentro del cdigo 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 mdulos de freePBX.
! Lo que hace es redireccionar las peticiones al mdulo pbxadmin de Elastix e incluir el
index.php del framework Elastix.

Grfico ilustrativo de FreePBX embebido


config.php
Index.php
Framework Elastix
Mdulo pbxadmin de Elastix
Redirecciona las
peticiones a
Redirecciona a
Obtiene el contenido de mdulos de
FreePBX pero sin estilos
Mdulos de FreePBX
Hacen las peticiones al
config.php ubicado en
la raz
WRAPPER
1
2
3
4
27
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

FUNCIONAMIENTO INTERNO DE
FREEPBX

Fundamentos de FreePBX

! Software de configuracin de Asterisk
! Integrado en la distribucin Elastix
! Genera los archivos de configuracin de Asterisk
o Incluye el plan de marcado
o Basados en la configuracin ingresada por el usuario
! Dos pasos para la configuracin:
o Guarda la informacin en una base de datos de configuracin.
o En el caso de Elastix el motor de base de datos usado es MySQL.
o Convierte la informacin de la base de datos en archivos de configuracin a
travs de parsing.













28
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Organizacin de archivos




Configuracin de FreePBX

amportal.conf:
! Archivo de texto plano, ledo por FreePBX.
! Informacin general de configuracin.
! Editable en caso de requerirse.
! Informacin de acceso a la base de datos.
! Tipo de autenticacin para usuarios Web.
! Documentacin para manejo de opciones y directivas de configuracin.

retrieve.conf:
! Escrito en PHP
! Genera el plan de marcado a partir de la informacin almacenada en la base de datos.
Directorio Descripcin
/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 configuracin de Asterisk.
/var/lib/asterisk/agi-bin/ Directorio de scripts AGI de Asterisk
/var/lib/asterisk/bin/ Directorio de binarios, links simblicos a carpetas de mdulos.
/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
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Programa ejecutable desde la lnea de comandos.
! Se ejecuta a travs de un script PHP, cada vez que se da clic en la barra roja de FreePBX
(Apply Configuration Changes Here).

! Esta operacin ser muy frecuente en la mayora 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 extensin y otras configuraciones de la misma (call forward, call
waiting, do not disturb).
! Toma acciones a partir del estado y la configuracin de la extensin.
! 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

Mdulo de FreePBX: Estructura



Nombre del Archivo Descripcin
module.xml Informacin del mdulo en formato XML.
page.nombredelmodulo.php Archivo principal del mdulo escrito en PHP.
functions.inc.php Librera especial con funciones PHP.
install.sql
Contiene sentencias SQL que se ejecutan sobre
la base de datos al instalar el mdulo.
uninstall.sql
Contiene sentencias SQL para desinstalar el
mdulo.
install.php
Script PHP que se ejecuta al momento de
instalar el mdulo.
uninstall.php
Script PHP que se ejecuta al momento de
desinstalar el mdulo
30
Captulo 5
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Cmo se embebe en Elastix?

! Para poder embeber freePBX en Elastix se desarroll un cdigo WRAPPER
! Este cdigo se acopla los mdulos de freePBX como un mdulo Elastix.
! Este desarrollo consiste en:
o Mdulo pbxadmin de Elastix
o Archivo /var/www/html/config.php

Mdulo pbxadmin de Elastix
! Encargado de obtener el contenido de mdulos de freePBX por medio de inclusin de
archivos de PHP.
! El index.php de ste mdulo (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 mnima del que
esta ubicado dentro del cdigo 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 mdulos de freePBX.
! Lo que hace es redireccionar las peticiones al mdulo pbxadmin de Elastix e incluir el
index.php del framework Elastix.

Grfico ilustrativo de FreePBX embebido


config.php
Index.php
Framework Elastix
Mdulo pbxadmin de Elastix
Redirecciona las
peticiones a
Redirecciona a
Obtiene el contenido de mdulos de
FreePBX pero sin estilos
Mdulos de FreePBX
Hacen las peticiones al
config.php ubicado en
la raz
WRAPPER
1
2
3
4
31
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

CONFIGURACIN BSICA DE
ELASTIX

Ingreso a Elastix va Web

! Abrir en un navegador web: https://ip-servidor (Direccin IP de Elastix)
! La primera vez se debe aceptar el certificado digital. De ser necesario establezca un
excepcin en su navegador web

! Ingresar con los siguientes datos
! Usuario: admin
! Password: La clave de admin registrada durante la instalacin

Configuracin de Red

! Elastix utiliza DHCP por defecto
! En la mayora de casos se debe configurar:
! IP esttico
! Puerta de Enlace
! DNS
! Para configurar se debe acceder al men Sistema Red
! Los dispositivos de red se reconocen como ethernet1, ethernet2, etc...

32
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Creando una extensin

! Se pueden crear extensiones: sip, iax, zap, dahdi y custom
! SIP: protocolo estndar para terminales de voz/ip. Soportado por la mayora de
telfonos de ip
! IAX: Protocolo propio de Asterisk y no muy difundido. Se comporta mejor que
sip en ambientes nat
! Zap: Usada para extensiones anlogas o tradicionales
! dahdi: Usada para extensiones anlogas o tradicionales
! Custom: Se puede utilizar para opciones avanzadas. Por ejemplo mapear una
lnea externa a una extensin

Ejemplo para crear extensin SIP

! Para crear una extensin ingrese a:
! PBX PBX Configuration extensiones
! Seleccione: Generic SIP Device
! Como mnimo debe ingresar: nmero de extensin, display name y el secret
! El mode DTMF (dtmfmode) de la extensin y telfono debe ser el mismo.
! El dtmfmode predeterminado es: rfc2833
! Otras opciones para el modo rfc son:
! info
! inband
! auto


33
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Ejemplo: Configuracin de Softphone

! La configuracin de un telfono IP de software debe incluir por lo menos: el usuario
(normalmente la extensin), el password (secret) y la direccin IP del servidor Elastix.
! En la grfica: configuracin de cuenta en el softphone Zoiper


Configuraciones generales

! Configuraciones importantes
! Opciones de marcado: Se definen opciones como transferencia de llamada y
grabacin de llamadas
! Company Directory: Para acceder al directorio telefnico desde un ivr con *411 o
#
! Security Settings: No permite llamadas sip annimas
! Actualizaciones: Bloqueada por defecto

Colas

! Agrupan a varias extensiones conocidas como agentes
! Agentes estticos o dinmicos
! Existen varias Estrategias de marcado:
! Sonar todos: Timbra a todos los miembros de la cola
! Agente con ltima llamada ms 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
Captulo 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: configuracin bsica

! Queue number: El nmero por el que se podr llamar a la extensin
! Queue name: El nombre de la cola que usaremos para identificar en la interfaz
administrativa
! Queue password: Clave que deber ingresar un agente dinmico
! 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 telfono sepa a que cola pertenece la llamada.
! Static Agents: Se lista las extensiones a agentes y su prioridad en la cola.
! Max callers: El nmero mximo de personas que esperan en una cola si todos los
agentes estn 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 estn en espera en la cola sern
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: Opcin 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
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados



! Para subir un audio haga clic en Subir un Archivo, navegue hasta ubicarlo,
seleccinelo y haga clic en Enviar.
! Contine al paso 2, asigne un nombre a su grabacin y haga clic en Guardar.
! Archivos WAV deben estar codificados en PCM, 16 bits y a 8000Hz.
! Si desea grabar desde un telfono ingrese el nmero de extensin y haga clic en ir



! Marque *77 para grabar el mensaje (desde la extensin que ingres)
! Marque *99 para escuchar la grabacin (desde la extensin 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 Aadir 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 marcacin directa: Permitir marcar directamente a extensiones
36
Captulo 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 nmeros de opcin y sus destinos.

! La opcin t sirve para timeout
! La opcin 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 opcin que enlazar el actual IVR al siguiente (siendo t la opcin 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 ms personas simultneamente
! Se pueden hacer conferencias con extensiones locales y nmeros 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 configuracin:
37
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados



Salas de conferencia: Estticas

! Se crean para uso permanente
! Ejemplo de Configuracin: Ir a PBX PBX Configuration Conferencias
! Nmero de conferencia: la extensin 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 administracin: Necesaria nicamente si se selecciona la opcin esperar al
administrador.

! Opciones de la conferencia


38
Captulo 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 extensin.
! La llamada es transferida desde una extensin inicial a un estacionamiento o parking
slot.
! Despus puede ser recuperada desde otra locacin marcando un nmero asignado.
! Para crear un estacionamiento ingrese a:
! PBX PBX Configuration Estacionamiento

! La extensin de marcado para enviar una llamada a aparcamiento es por defecto 70.
! El tiempo de configuracin para espera en el estacionamiento va de 15 segundos a 10
minutos.
! El contexto de aparcamiento por defecto es: parkedcalls. Esto no debera ser
cambiado.
! Al activar la opcin 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 nmero de estacionamiento.
! Usualmente 71, 72, 73,...n (un mximo de 20).
! Luego usted puede recuperar la llamada que puso en el estacionamiento, desde otra
extensin marcando el nmero que escuch en la grabacin.


39
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Msica en espera

! Se puede subir msica en formatos wav o mp3 al servidor
! Se pueden crear listas de msica para asignar en diferentes lugares de nuestra central.
Ej. Callcenter, colas, etc..
! Para configurar se debe ingresar a PBX Configuracin Msica en Espera.
! Es recomendable usar .wav estar codificado en PCM, 16 bits y a 8000Hz. Mp3 podra
consumir mas recursos.

Bookmark de menes comunes

! Elastix 2.2 permite marcar menes comunes para fcil.
! Esta funcionalidad est localizada en la esquina derecha de cada seccin con un icono
(estrella).

! Para aadir un bookmark basta con hacer clic en Iy la seccin se mostrar en el
men de la columna izquierda





40
Captulo 6
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Flash Operator Panel (1)

! Es una aplicacin web hecha en flash que permite monitorizar la central
! Cumple las funciones de un telfono de recepcionista
! Se pueden transferir llamadas, crear conferencias, etc.
! La clave de administracin 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 versin
2.0 su propio panel de operador denominado: Elastix Operator Panel.
! Pantalla del FOP:

41
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

CONFIGURACIN DE
TELFONO IP

Qu es un telfono IP?

! Un telfono IP es un dispositivo que permite realizar una comunicacin de voz utilizando
la red IP, ya sea mediante red de rea local o a travs de Internet.
! La tecnologa que hace esto posible esto se conoce como VoIP (Voz sobre IP).
! El telfono IP convierte y comprime la seal de la voz en paquetes de datos que sern
enviados en la red IP, en lugar de utilizar una conexin de red telfonica.










Configuracin de telfono IP

! Para configurar un telfono IP debemos tener en cuenta tres aspectos:
1. Configuracin de red
2. Registro del dispositivo con el servidor Elastix
3. El Telfono IP apropiado
! Para ilustrar de mejor manera los puntos mencionados, utilizaremos un telfono Yealink
SIP-T22P.
Configuracin de red
! La configuracin de red puede realizarse por DHCP (lo ms comn) o se puede asignar
una direccin IP esttica.
DHCP
! Mediante esta opcin, el telfono obtendr una direccin 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
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

IP esttica
! Esta opcin es til si deseamos contar contar con un registro exacto de las direcciones
IP de cada telfono.
! Es tambin til si deseamos colocar los dispositivos IP en segmentos especficos de
nuestra red.
! En esta opcin, adems de la IP se necesita ingresar la mscara de red y la puerta de
enlace en el caso de que su telfono se encuentre en otro segmento de red.
! La configuracin de Telfonos Yealink SIP-T22P o cualquier otro modelo de Yealink se
puede realizar ingresando a un web browser colocando la direccin IP del telfono.
! El usuario y contrasea por defecto en todos los modelos Yealink es: admin

Nota: tambin es posible configurar la extensin del telfono desde el Endpoint Configurator de
Elastix (PBX Endpoint Configurator) , esto lo veremos ms adelante.

! Para configurar la extensin debe ir a Cuenta.
! El telfono Yealink SIP-T22P puede ser configurado con 3 cuentas.
! La informacin bsica necesaria para la configuracin es:
! Lnea Activa: Habilita la cuenta
! Nombre de registro: Extensin de usuario
! Nombre de usuario: Extensin de usuario
! Contrasea: Secret - La contrasea de la extensin
! Servidor SIP: Direccin IP del servidor Elastix
! Servidor de salida Proxy: IP del servidor Elastix
! Interfaz de administracin web de Yealink





43
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Aprovisionamiento

! El aprovisionamiento permite la configuracin en lote de telfonos IP.
! Este proceso se realiza desde la interfaz web de Elastix y su principal herramienta es el
mdulo de configuracin de Endpoints (Endpoint Configurator).
! El proceso adecuado es:
1. Creacin de extensiones
2. Habilitar los telfonos IP para el aprovisionamiento
3. Deteccin de los dispositivos en la red
4. Asignacin 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 informacin de las direcciones IP y MAC de los dispositivos
conectados.
! Al obtener la informacin de todos los dispositivos este trata de identificar los equipos
que pudieran ser telfonos IP.
! Luego trata de recabar informacin del fabricante y modelo para elegir cules 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 telfonos Escene, Voptech y otros.
! Cuando ya se tiene el grupo de telfonos a configurar se presenta la informacin de los
mismos en la interfaz Web de Elastix.

! Se mostrar algo similar a la siguiente imagen:
44
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados



! Para la mayora de telfonos, el Endpoint Configurator generar un archivo de
configuracin 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 configuracin de los telfonos para hacer el
aprovisionamiento via tftp desde Elastix


Aprovisionamiento: Habilitacin de Telfonos IP

! En la actualidad la mayora de las marcas de telfonos IP permiten configuracin para
aprovisionamiento.
! Hay algunas marcas (e.g. Atcom) en que aprovisionamiento no requiere de configuracin
previa.
! Para habilitar telfonos Yealink, debemos configurar los siguientes parmetros desde la
interfaz administrtiva del telfono:
! Ir a: Actualizar Advanzado
o Configurar URL: direccin IP del Servidor Elastix
o Check New Config: Encendido.



45
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Aprovisionamiento: Asignacin 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 extensin que queremos asignar al telfono.
(ya debe haber sido creada previamente)
7. Hacer clic en Configurar
Reiniciamos el telfono (accedemos a su interfaz web haciendo clic en la IP
correspondiente). Una vez dentro: Upgrade Basic Reboot).
Nota: Algunos modelos se reinician automticamente.




Qu es un Softphone?

! Es un software que hace una simulacin de telfono IP por computadora.
! Es decir, permite usar la computadora para hacer llamadas a otros softphones, telfonos
IP o a otros telfonos convencionales analgicos.
46
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados




Configurando un Softphone

! Presionamos el botn con la figura de la herramienta y accedemos al men de opciones.
! All veremos una pantalla con opciones para configurar nuevas extensiones SIP y tambin
IAX. Zoiper cuenta con soporte para ambos protocolos.
! En nuestro ejemplo configuraremos una extensin SIP. Usuario: 5678 Contrasea: 5678.


X-Lite Counterpath Zoiper Softphone
47
Captulo 7
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! La informacin 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 telfonos que reciban
nuestras llamadas.
! Despus de llenar la informacin 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
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

CONFIGURACIN DE
HARDWARE

Tipos de tarjetera

! Esta tarjetera est disponible tanto para interfaces telefnicas analgicas como digitales.
! Dentro de cada una de estas categoras existen las siguientes sub-categoras:


EHCP : Elastix Hardware Certification Program

! El Equipo de Desarrollo Elastix trabaja con varios fabricantes para incluir los
controladores de su hardware.
! Adems 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 ingls.
! 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 tarjetera. Los
siguientes son los modelos soportados oficialmente a la fecha:

Analog:
FXO
FXS
Digital:
E1/T1/J1
BRI
49
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Hardware modular

! Existen fabricantes que disean su hardware de manera modular, de tal forma que pueda
ser expandible.


Instalando una tarjeta de telefona

! Esto no involucra ninguna tarea complicada, solo las precauciones obvias al instalar
tarjetas electrnicas 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 comn que se requiera conectar un cable de
poder a la tarjeta pues hay que recordar que las interfaces FXS deben proveer potencia elctrica a
los dispositivos que se conecten a ella.


Deteccin de hardware

! Una vez que la tarjetera ha sido instalada es hora de detectarla.
! En versiones muy antiguas de Elastix esta tarea se haca manualmente ejecutando un
comando desde la consola del equipo.
Puertos
ranuras para mdulos
Mdulo FXS
(verde)
Mdulo FXO
(rojo)
Conexin
Fuente de alimentacin
Sangoma TMD Card Model A20101
50
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Actualmente se cuenta con una interfaz Web que detecta el hardware automticamente
y nos muestra grficamente el hardware detectado.
! Esta opcin podr encontrarse en el Men System Hardware Detector.
! Para detectar una tarjeta hacemos clic en Avanzado y seleccionamos la opcin
Reemplazar el archivo chan_dahdi.conf.

! Despus debemos dar clic en Detect New Hardware y despus 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 Deteccin de Hardware Sangoma.
! Despus de esto podemos dar clic en Detectar Nuevo Hardware.

! Para la deteccin de tarjetas que usan Dahdi simplemente se debe seleccionar la opcin
Reemplazar el archivo chan_dahdi.conf y despus 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
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Este accin 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.


Configuracin Span

! La herramienta de deteccin 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 parmetros que pueden diferir de la realidad.
! Se puede cambiar estos parmetros usando la interfaz web o mediante consola. A
continuacin explicaremos como realizar estas configuraciones por consola.

Configuracin 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 deberamos definir
4 spans, uno por cada puerto.
! Un span define en una sola lnea, la cual tiene el siguiente formato:

Spannum
! Es un identificador numrico nico para etiquetar el span. Se debe empezar con el
nmero 1 e ir incrementando este identificador secuencialmente de uno en uno.
Timing
! Es un dgito que define la forma en la cual se manejar la sincronizacin del span.
52
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

LBO (Line Build Out)
! Es un dgito que representa la longitud del cable entre la tarjeta y el equipo (modem)
provisto por la compaa telefnica.
Framing
! Como recordaremos, los protocolos de comunicacin digital T-Carrier y E-Carrier
dividen la informacin en frames, donde cada frame transporta un nmero determinado
de timeslots.
! Estos frames pueden ser de diferentes formatos y eso es lo que se define aqu.
Coding
! Es necesario codificar la informacin enviada para hacerla menos susceptible a errores.
Esto es as porque la propia data se suele usar como fuente de sincronizacin (o reloj).
! Si se transmiten tramas largas de ceros (largos segmentos sin variacin de voltaje) se
puede perder dicha sincronizacin.
! Despus de realizar los cambios en el archivo system.conf, es necesario reiniciar DAHDI.
(Asterisk CLI: service dahdi restart)
! Despus 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
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados


Configuracin Span: Interfaz Web

! En la interfaz web tenemos las siguientes opciones: Configuracin de Span y Parmetros
de Span.
! En Parmetros de Span podremos configurar el timing source, LBO, Framing y Coding.
Tambin podemos seleccionar el tipo de tarjeta T1/E1 (para tarjetas que soporten modo
de seleccin por software).
! En la Configuracin de Span podemos seleccionar por cada canal el software de
cancelacin de eco.
! Tarjeta detectada con formato TI

! Cambio de formato a E1



Troncalizacin: chan_dahdi.conf

! Asterisk cuenta con un mdulo llamado chan_dahdi que sirve para conectarse con los
drivers de DAHDI y de esta manera conectar Asterisk con hardware telefnico.
! Este mdulo se configura a travs de un archivo llamado chan_dahdi.conf
! En el archivo chan_dahdi.conf bsicamente se configura la sealizacin de los canales de
voz y se mapean los canales de Asterisk con los circuitos o lneas telefnicas definidos en
el archivo system.conf que configuramos antes.
! Estos canales se pueden agrupar en troncales troncales.
54
Captulo 8
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! La siguiente imagen muestra el archivo chan_dahdi.conf:

Signalling
! Este parmetro define la sealizacin de cada canal o grupo de canales.
! Lo ms comn que veremos para circuitos analgicos ser fxs_ls y para circuitos digitales
pri_cpe.
Switchtype
! Este parmetro es para circuitos digitales y especifica el tipo de switch PRI usado.
! Lo ms comn es national y euroisdn, dependiendo de en qu pas nos encontremos
claro est.


55
Captulo 9
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

ASTERISK ESSENTIALS

Qu es Asterisk?

! Es un sistema de telefona basado en software libre que proporciona todas las
funcionalidades que se espera de una central telefnica (PBX).
! Esto hace posible conectar un nmero determinado de telfonos 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 aadir novedades y funcionalidades.
! Mark haba creado en 1999 la empresa "Linux Support Services" con el objetivo de dar
soporte a usuarios de Linux.
! Para ello necesitaba una centralita telefnica, 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 caractersticas internas como buzn de voz, conferencias, IVRs, CDRs,
distribucin automtica de llamadas, parqueo, tranferencias, captura, musica en espera
! Entre muchas otras funcionalidades.
! Asterisk tambien soporta multiples protocolos y codecs.
56
Captulo 9
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados


! Asterisk soporta diferentes sealizaciones 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
IAX
TM
(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
Sealizacin 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
Sealizacin Robbed-bit (RBS)
MFC-R2 (a travs de parches de cdigo)
57
Captulo 9
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Estructura de directorios de Asterisk



Mdulos de Asterisk

! Asterisk utiliza mdulos para extender su funcionalidad.
! Estos mdulos residen en la carpeta /usr/lib/asterisk/modules/ (32 bits)
/usr/lib64/asterisk/modules/ (64 bits).
! Son archivos con extensin .so
! Es posible controlar estos mdulos desde el archivo modules.conf, en la carpeta
/etc/asterisk.
! Este archivo controla cules mdulos se cargan o no (load, noload). Adems puede
controlar el orden en que se cargan con la opcin preload.
! Por defecto en elastix se cargan todos los mdulos que estn 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 mdulo.
load => format_ogg_vorbis.so : Hace que se carge el mdulo.
preload => res_config_mysql.so : Hace que se carge primero ese mdulo





Directorio Descripcin
/etc/asterisk archivos de configuracin de Asterisk
/usr/lib/asterisk/modules/ mdulos 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 operacin
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
Captulo 9
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

DAHDI

! Dahdi es, bsicamente, un conjunto de drivers para controlar hardware telefnico,
principalmente tarjetas.
! Estas tarjetas son como cualquier otra tarjeta de expansin de una computadora pueden
usar bahas PCI, puertos USB, etc.
! Dahdi tiene su propio archivo de configuracin /etc/dahdi/system.conf

Historia del proyecto Zaptel

! En el ao 2000 Jim Dixon lanz el proyecto Zaptel bajo licencia GPL.
! El nombre es una abreviacin de Zapata Telephony Project. Lo nombr as en honor a
Emiliano Zapata, hroe de la revolucin mexicana.
! Inicialmente Zaptel contena 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.

Comunicacin Asterisk con DAHDI

! Asterisk interacta con dahdi mediante el modulo chan_dahdi.so, mismo que se controla
a travs del archivo chan_dahdi.conf.
! En este archivo se mapean los puertos fisicos hacia canales tipo DAHDI, estos canales
son usados por asterisk.


59
Captulo 9
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Archivos de configuracin

! 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 lgica del plan de marcado.
! Pueden incluir otros contextos con la clasula 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 smbolos [ ].
! 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 configuracin para
canales DAHDI, se troncalizan los
canales.
60
Captulo 9
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Dialplan: Extensiones

! Son lneas del plan de marcado.
! Son instrucciones llamadas extensiones.
! Tienen la siguiente sintaxis:
o exten => nombre_extensin, prioridad, aplicacin
! Una lnea del plan de marcado es una serie de lgica del plan de marcado.
! Se puede crear la lgica necesaria para un marcado especfico.

Dialplan: Extensiones (Nombre_extensin)

! Es un identificador nmerico de la extensin.
! Se lo puede asociar al nmero de telfono.
! Existe una extensin particular s.
! La extensin s significa cualquier extensin.
! Esta extensin s se usa cuando el usuario que llama no ha presionado el nmero de
extensin. Por ejemplo, cuando est en el IVR de bienvenida.

Dialplan: Instrucciones (Prioridad)

! Indica el orden de ejecucin de una instruccin.
! 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 instruccin 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
programacin.
! Permiten realizar acciones programadas en el plan de marcado.
! Las aplicaciones permiten realizar ejecuciones entre contextos.
! Pueden recibir parmetros para su ejecucin.

61
Captulo 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
programacin.
! Son abstracciones que almacenan informacin 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 seccin [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 aplicacin) 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 informacin 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 parmetro 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 contina ejecutando el plan
de marcado.
o Aplicacin usada para reproducir el mensaje de IVR.
! Playback
o Sintaxis: Playback(filename1[&filename2...][,options])
62
Captulo 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 ejecucin del plan de marcado a un contexto, extensin o prioridad
indicada. Si se pasa un solo parmetro 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.
! Lnea 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 informacin en tiempo real de la actividad de Asterisk.
! Permite controlar el grado de detalle de la informacin, para ello se usan los comandos:
o Core set debug N
o Core set verbose N
! Mientras ms alto sea el nivel de las variables debug N y verbose N ms detallada ser la
informacin mostrada.
! Estos comandos se deben utilizar para tareas de diagnstico.



63
Captulo 10
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

PLAN DE MARCADO AVANZADO

Manipulacin de Variables

Sintaxis para eliminar dgitos
! ${VAR:x:y} Donde VAR es una variable numrica, x es el nmero de dgitos a
eliminar al principio y y es cuantos nmeros tendr la variable final
! Ejemplo VAR=1234567890, x=3, y=4 ${VAR:3:4} 4567

! ${VAR:x} Donde VAR es una variable numrica, x es el nmero de dgitos 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
! expresin?destino1:destino2

Macros

! Sirven para reutilizar cdigos
! Se definen como contextos anteponiendo el prefijo macro-
! Ej. [macro-nombremacro]
! Puede recibir parmetros cuando se llama al macro
! El macro es llamado de la siguiente forma:
! Macro(nombremacro,parametro1,parametro2,....)
! Los parmetros son invocados como:
! ${ARG1}, ${ARG2}, ....



64
Captulo 10
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Variables disponibles en Macros

! A ms de las definidas por el usuario ${ARGn} se pueden usar las siguientes variables



AstDB

! Pequea base de datos accesible desde el plan de marcado
! Agrupa informacin 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 sern sobre escritos cuando FreePBX recargue su
configuracin
! extensions_custom.conf: archivo que se puede editar para crear nuestros
contextos y que stos no sean sobre escritos por FreePPX
65
Captulo 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 vaca
! 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 extensin.conf.- Para sobreescribir un contexto definido se puede utilizar
el archivo: extensions_override_freepbx.conf
66
Captulo 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 lnea de comandos
! Este programa puede ser escrito en cualquier lenguaje
! El programa AGI es invocado desde el dialplan
! La salida estndar 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

Ejecucin de scripts AGI

! Los scripts AGI se comunican con Asterisk a travs de STDIN, STDOUT y STDERR
! Por tanto, los scripts AGI se deberan poder ejecutar desde la lnea de comandos
! Cuando son ejecutados a travs de Asterisk los permisos son muy importantes.



! Para invocar al script desde el dialplan podemos utilizar la funcin AGI()


! Se le pueden enviar parmetros al script utilizando la sintaxis:
! AGI(script.agi,par1,par2,...)
! Adicionalmente Asterisk le enva al script ciertos parmetros por omisin, que
veremos a continuacin


67
Captulo 11
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Algunos parmetros enviados por omisin

A continuacin algunos de los ms 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 - Extensin
! agi_accountcode Cdigo de cuenta, en caso de estar disponible

Algunos comandos AGI tiles

! say digits: Sintetiza y reproduce nmeros. 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 finalizacin del AGI
! noop: Slo 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 pongmoslo accesible desde el dialplan cuando se marque el nmero 6789


68
Captulo 11
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

AMI (Asterisk Management Interface)

! Es otra manera de controlar Asterisk pero a travs de la red IP. La comunicacin es de
tipo texto.
! Se pueden desarrollar aplicaciones remotas
! Un ejemplo es el mdulo de call center de Elastix, otro ejemplo es el FOP
! El puerto AMI por omisin 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
Captulo 11
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Luego probaremos autenticndonos:

! Si los datos estuvieron correctos recibiremos un mensaje de xito

! Recuerdan cual es la contrasea de AMI?

Tipos de paquetes AMI

! En la comunicacin por AMI se pueden identificar tres tipos de paquetes de
informacin.
! Accin: Un comando enviado por el cliente al servicio AMI para que sea procesado
! Respuesta: La respuesta de Asterisk a la Accin requerida por la aplicacin cliente
! Evento: Se trata de informacin de un evento asincrnico ocurrido en Asterisk. Por
ejemplo, ingres una llamada telefnica
! Para relacionar las respuestas con las acciones se puede incluir un ActionID en cada
Accin. Asterisk devolver este parmetro en la respuesta.

Acciones AMI comunes

! Login: Nos permite autenticarnos con AMI
! Logoff: Termina la sesin
! Events: Controla el flujo de eventos
! Originate: Inicia una llamada telefnica
! Redirect: Transfiere una llamada
! Hangup: Cuelga una llamada
! Getvar: Obtiene una determinada variable de canal
70
Captulo 12
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

ELASTIX CONFIGURACIN
AVANZADA

Ruteo de Llamadas

! Rutas Entrantes:
! Esta opcin 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
Captulo 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 lgico que permite llevar una llamada a cualquier destino
externo.
! Alguno de los tipos de troncales son:
! DAHDI
! IAX2
! SIP
! Custom

Troncal DAHDI

! Parmetros a configurar en una troncal DAHDI:
72
Captulo 12
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados



Troncales de tipo IAX2 y SIP

! Adems de las configuraciones especificadas, se deben incluir configuraciones entrantes
y salientes
! Esta informacin generalmente es especificada por el proveedor de servicios de voz.
! Las configuraciones pueden incluir username, password, codec, el host destino, etc.
! Ejemplo de configuracin 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 estndares como
h323,misdn, etc.
! Se debe especificar un string de marcado. Por ejemplo:
73
Captulo 12
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados




Tarifacin

! La opcin Rates/Tarifas (Reports Billing Rates) nos permite visualizar y
configurar las tarifas que se usarn para la facturacin de llamadas.



! Crear Tarifa
! Para agregar una nueva tarifa dar clic en el botn Crear Nueva Tarifa. Se mostrar un
formulario en el que se ingresarn los siguientes campos:
! Prefijo: Prefijo telefnico al cual se aplicar la tarifa.
! Nombre: Nombre para la tarifa.
! Tarifa: Valor de la tarifa por minuto.
! Rate offset: Valor de interconexin.
! Dgitos Ocultos: oculta los ltimos "n" dgitos del nmero en el reporte.
! Troncal: Troncal asignada para la tarifa.


74
Captulo 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 adems 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 botn Editar, o eliminarla
haciendo clic en Eliminar



! Reporte de Facturacin
! 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, Duracin, Rate value, Fuente,
Destino, Canal destino, Account Code.

75
Captulo 12
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados



! Distribucin de Destinos
! Esta opcin (Reports Billing Destination distribution) nos permite ver una grfico
de distribucin de llamadas salientes agrupadas por tarifa.
! El grfico cambiar dependiendo de los valores de filtro:
! Fecha Inicio: Fecha que queremos iniciar la revisin de llamadas.
! Fecha Fin: Fecha final para la revisin.
! Criterios de distribucin: Distribucin por tiempo, distribucin por nmero de
llamadas, distribucin por costo.


Reportes: CDR

! CDR es la abreviacin para Registro de Detalle de Llamada (Reports CDR Reports).
! Este reporte nos permite ver un listado con el detalle de todas las llamadas.
76
Captulo 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 revisin de llamadas.
! Fecha Fin: Fecha final para la revisin.
! 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 grfica el nmero de llamadas simultneas por canal.


77
Captulo 12
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Configuracin DISA

! DISA permite que los usuarios puedan acceder telefnicamente a su servidor Elastix
desde fuera y obtener un tono "interno" de marcado.
! E.g. podra realizar llamadas internacionales, a telfonos mviles, entre otros.
! Nombre de DISA: El nombre referencial para este accedo DISA
! PIN: La contrasea necesaria para acceder al soporte DISA.
! Tiempo de espera para la respuesta: Mximo tiempo que la aplicacin esperar al
usuario por el PIN.
! Tiempo de espera de marcado: Mximo tiempo entre dgitos.
! Pedir confirmacin: Pregunta por una confirmacin antes del pedido de la contrasea.
! Identificador de llamante: Todas las llamadas DISA usarn 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 caracterstica muy til para modificar el
comportamiento de la PBX dependiendo de la hora o del da de la semana.
! EJEMPLOS:
78
Captulo 12
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! La compaa X desea que por las noches se reproduzca un mensaje indicando el
horario de atencin e indicando que en casos de urgencias se podran comunicar con
un nmero alterno.
! La compaa Z desea reproducir un IVR de bienvenida distinto al habitual durante los
fines de semana ya que siempre lanza promociones durante estos das.


79
Captulo 13
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

INTERCONEXIN CON ELASTIX
REMOTOS

A travs de troncales SIP

! Una de las ventajas de usar Elastix es que fcilmente 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 continuacin veremos como configurar la interconexin de dos Elastix mediante una
troncal de tipo SIP.

! Escenario:
! En el escenario mostrado a continuacin queremos interconectar la central A con la
central B de tal forma que el telfono A y el telfono 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
Captulo 13
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados


! Ejemplo de configuracin del peer:


! Configuracin 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 debera ser:

! y para la central Elastix B debera ser:

! Una vez establecida esta configuracin en ambos servidores podemos verificar en si se
encuentran registradas las troncales.
! En el Asterisk CLI mediante el comando: sip show registry y deberamos 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 configuracin es como sigue:


81
Captulo 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 patrn de marcado, en este caso usaremos el siguiente patrn 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

Conexin con proveedores VoIP

! Hoy en da 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 regin.
! En esta seccin implementaremos una conexin 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 telfono IP.
! Para implementar esto se requiere definir dos cosas:
! La troncal
! Las rutas salientes en cada Elastix


82
Captulo 13
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Definiendo la troncal
! Como vimos en la seccin anterior se debe definir el nombre de la troncal en este
caso la llamaremos: VP-SIP
! Luego definimos las caractersticas del peer.
! Esta informacin 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 sera:


! Primero determinamos el nombre de la ruta salientes. En este caso le pondremos:
INTERNACIONAL
! Luego definimos el patrn de marcado, en este caso usaremos el siguiente patrn 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 configuracin podemos verificar en el Asterisk CLI si se la troncal
se encuentra registrada.
! Usamos el comando: sip show registry y deberamos ver algo como esto:




83
Captulo 13
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Mdulo VoIP Provider

! Desde la versin 2.0 Elastix tiene un mdulo con proveedores incluidos por defecto.
! El mdulo permite configurar cuentas VoIP de manera automtica.


! Si el proveedor no est enlistado usted puede escoger Custom como opcin para
mostrar el cuadro de PEER Settings.
! La opcin Custom es adems una alternativa al proceso de crear una conexin con
un proveedor SIP.
! Usted puede seguir el procedimiento descrito en la seccin anterior o crear una
cuenta a travs del mdulo VoIP Provider.

! Si usted tiene ya una cuenta con alguno de los proveedores incluidos, solo necesita
ingresar la informacin y la cuenta se crear.
! Usted puede revisar el registro en el Asterisk CLI
84
Captulo 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
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

CALIDAD DE VOZ

Sntomas que afectan la calidad de voz

! Son los problemas que el usuario percibe desde su perspectiva
! Existen muchos, sin embargo los ms comunes son:
! Eco
! Bajo volumen
! Retardo
! Distorsin de la voz
! Comunicacin entrecortada

Sntomas: Eco

! La seal de ida se refleja en la de vuelta
! Fcil de identificar por un humano
! Una causa comn es un desbalance en el hbrido
! Tambin hay eco acstico. Ej. El producido por speaker
! Algunas tarjetas permiten ajustar este desbalance. La utilera fxotune puede ser usada
con este fin

El famoso hbrido de 2 a 4 hilos


fxotune

! El comando fxotune viene en Elastix
! Debe ejecutarse con Asterisk apagado
86
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Simplemente se ejecuta fxotune -i 5
! El nmero 5 slo indica qu dgito se debe marcar para suspender el tono de marcado.
En casi todo los casos es cualquier dgito
! Guarda los resultados en /etc/fxotune.conf
! Para que DAHDI se calibre en base a este archivo hay que ejecutar fxotune -s

Sntomas: Bajo Nivel o Volumen

! La seal elctrica se atena
! Usualmente conductores de mala calidad
! Es posible amplificar la seal con el uso de los parmetros rxgain y txgain pero hay que
tener cuidado pues esto podra generar eco
! Estos parmetros se modifican a nivel de DAHDI en chan_dahdi.conf.

Sntomas: Retardo

! La voz se demora ms de lo usual en llegar a destino
! Si es menor a 200ms pasa desapercibido
! Retardo de ms de 500ms provoca que la conversacin 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

Sntomas: Distorsin de la voz

! Sonido robotizado
! Los codecs que comprimen la voz ahorran ancho de banda pero eliminan informacin,
esto provoca disminucin 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 prdida de
paquetes o retardos de red.


87
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Sntomas: Comunicacin entrecortada

! Se pierde la voz por pequeos instantes de tiempo
! Provoca que la conversacin sea menos entendible y por lo tanto es molestoso
! Usualmente se trata de problemas de red debido a equipos defectuosos, ruido
elctrico en el cableado o equipos saturados en su capacidad
! Se puede mejorar en cierta medida con un jitterbuffer

Parmetros en redes de paquetes relacionados con la
calidad de voz

! Hablamos de parmetros medibles aqu
! A partir de estos podemos determinar cuantitativamente cmo se ver afectada la
calidad de voz por la red de paquetes
! Para simplificar las cosas resumiremos todo con tres parmetros de fcil medicin:
! Retardo de red
! Prdida de paquetes
! Jitter

Parmetros: 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 fcilmente con un ping


Parmetros: Prdida de paquetes

! Porcentaje de paquetes que no llegaron a su destino
! Si un paquete llega demasiado tarde ya no se espera por l
! La prdida de paquetes no es deseable en ningn porcentaje. Incluso un 1% puede
afectar significativamente la calidad de voz
! Tambin se puede medir (aproximadamente) con un ping
88
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Parmetros: Jitter

! Es la variabilidad del retardo
! Tambin 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 informacin no llega justo a tiempo no
se puede esperar por ella
! Para esperar paquetes con pequeos 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 tamao 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 parmetro se llama jbenable=yes
! En el iax.conf (o equivalente) el parmetro se llama jitterbuffer=yes


Cuando el telfono incide en la calidad de voz

! Sin duda hay electrnica mejor que otra. Algunos chips procesan mejor la voz,
especialmente cuando se trata de codecs de alta compresin
! Algunos chips tambin aaden tecnologa inteligente para mejorar la calidad de voz
! La calidad del micrfono y audfono tambin incide
89
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Lamentablemente, a mayor calidad, mayor precio
! Los softphones no estn libres de problemas y dependen del computador. Cualquier
problema de desempeo podra afectar la calidad de voz

Cmo medir la calidad de voz?

! Algo muy difcil 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 ms subjetiva y el modelo E es ms objetivo

Escala MOS

! Es una recomendacin 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 calificacin
para que tengan un marco referencial
! Las frases que se hacen escuchar a los participantes se encuentran pre-definidas
tambin






90
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Modelo E

! Tambin es una recomendacin ITU
! Se trata de un modelo ms objetivo y matemtico, no necesariamente mejor que
MOS
! Se calcula en base a algunos parmetros medibles y tiene una escala distinta a MOS
(incluyendo valores negativos)
! En este curso utilizaremos una frmula simplificada que depende bsicamente del
retardo de red y la prdida de paquetes
! La frmula es:
R = 94,2 I
d
I
e

! Donde,
R representa la calidad de voz
I
d
representa cmo afecta el retardo a la calidad
I
e
representa cmo afecta la prdida de paquetes
! Notar que el parmetro I
d
representa el retardo pero no es el retardo en s!
! Tambin es interesante notar que el valor mximo que puede tomar R es de 94,2
! Para obtener I
d
:
I
d
= 0.024 ! d + 0.11 ! (d 177.3) ! H(d 177.3)
! Donde d es el retardo en milisegundos y H( ) es la funcin de Heavyside
H(x) = 0 para x < 0 y 1 para x ! 0
! Para obtener I
e
utilizaremos un grfico que simplificar las cosas
! Vemos que I
e
depende del codec, as que ahora es ms obvio que algunos codecs se
ven ms afectados por la prdida de paquetes que otros.

91
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Traduciendo R a la escala MOS

! Es muy til ya que MOS es ms conocido y sencillo de relacionar con calidad
! La frmula es la siguiente:


Cancelador de eco

! Existen versiones hardware y software
! En la actualidad ya casi no existe diferencias entre el desempeo de ambas ya que la
capacidad computacional ha crecido mucho
! El objetivo es calcular en tiempo real qu porcentaje de la seal de ida se refleja en la
de regreso. Si puede predecir con exactitud slo queda restar ese porcentaje y
obtendremos una seal sin eco
! Esta prediccin la realiza un componente llamado filtro adaptativo



! En la realidad el eco no slo es una seal atenuada sino que tambin puede estar
desplazada en el tiempo (con retardo)
! El filtro adaptativo tiene entonces que predecir no slo el porcentaje de seal reflejada
sino tambin el retardo
! Por lo tanto, analiza la seal por un lapso de tiempo llamado cola (o tail) y que est
en el orden de milisegundos
! Valores tpicos de cola son 64ms o 128ms
92
Captulo 14
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Estndar G.168

! Especificacin propuesta por la ITU para definir parmetros 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 certificacin la sacan los canceladores de eco comerciales como
Softecho de Octasic

Oslec

! Elastix incorpora un interesante software de cancelacin 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 fcil desde la interfaz Web de Elastix.
! La siguiente imagen muestra la configuracin de una tarjeta de telefona analgica. En
ella se selecciona el software para la cancelacin de eco.
! OSLEC est seleccionado por defecto.
! Para configurar el cancelador de eco en una tarjeta instalada ir a System Hardware
Detector Configuracin de Span.



93
Captulo 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 sealizacin
(application-layer control)
! Creado para administrar sesiones multimedia entre dos o ms 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 ms adelante; de lo que s se encarga
SIP es de la comunicacin 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 versin del estndar es la RFC3261.
! Basado en texto, lo que nos permite entender los mensajes de una manera
relativamente fcil.



94
Captulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Sealizacin SIP: Mtodos y Respuestas











95
Captulo 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 implementacin estaba limitada a UDP hasta la versin 1.6. En la
versin 1.8 viene con soporte nativo para TCP.
Por omisin se usa el puerto 5060, pero este parmetro se puede modificar en
el archivo sip.conf
SIP tiene problemas de NAT traversal. Parmetros especiales como externip,
localnet y nat, pueden ser definidos en sip_general_custom.conf para resolver
esto.
En Asterisk es posible hacer diagnstico del protocolo SIP. Esto se ver ms
adelante.

Una seccin de llamada SIP entre dos telfonos sin SIP proxy

Protocolo IAX: Generalidades

! El protocolo IAX (Inter-Asterisk eXchange) es un protocolo de sealizacin 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
Captulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Soluciona mejor problemas de NAT
! Pasa ms fcilmente a travs de firewalls
! Actualmente se usa la versin 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
sealizacin y es esto lo que le permite resolver problemas de NAT
! Adems de esta caracterstica el protocolo permite la troncalizacin 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
! Terminacin de la llamada

! Establecimiento de la llamada
! El equipo que la inicia (equipo A) le enva 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.
! Terminacin de la llamada
! Para terminar la llamada cualquiera de las partes involucradas debe enviar un mensaje
HANGUP.
97
Captulo 15
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados


Estableciendo una llamada

Terminacin 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.
! Tambin se les suelen llamar F y M.
! Una conversacin est compuesta en su mayora por frames tipo Mini cuya virtud es
ser ligeros. Esto quiere decir que tienen una cabecera pequea (de 4 bytes), lo cual
ayuda a ahorrar ancho de banda.
! De cuando en cuando se intercambian frames tipo Full, los cuales conllevan
adicionalmente informacin de sincronizacin.


98
Captulo 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 transmisin.
! Es decir que el equipo emisor enva la voz hacia el otro extremo con la esperanza de
que llegue, pero no espera recibir confirmacin 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 tcnicamente se llama ruido confortable (comfort noise).
! Es por esta necesidad de transmitir la informacin en tiempo real que resulta evidente
que RTP sea un acrnimo 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 estadsticas e informacin de
control que le permiten a Asterisk o al otro extremo tomar decisiones para mejorar la
transmisin en caso de ser posible.
! Por lo tanto, los paquetes RTCP se transmiten peridicamente para comunicar dicha
informacin a los equipos de voz involucrados.


99
Captulo 16
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

DIAGNSTICO BSICO

Interpretando logs

! Todo software es perfectible, por lo cul no debe sorprendernos si alguna vez
encontramos un bug en su funcionamiento, inclusive si se trata de Asterisk o algn
otro componente de Elastix.
! Para ayudarnos a encontrar la causa por la cul nuestro Asterisk no se est
comportando de forma habitual, se recomienda revisar la bitcora o tambin podemos
ayudarnos de depuradores.
! Un depurador es un programa que nos permite examinar la ejecucin de un programa
a un nivel de detalle mayor que el habitual
! Alternativas de herramientas de depuracin: 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 ms comunes
de programacin, y mejor an si en nuestras capacidades est el poder aportar con una
correccin en el cdigo fuente.
! Algunas causas son:
! Falla de segmentacin
! Deadlock
! Divisin para cero
! Buffer overflow

! Strace
! Es un depurador para Linux muy fcil de usar que monitorea las llamadas a sistema que
realiza un programa determinado y todas las seales que este recibe.
! Sintaxis:
100
Captulo 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 ejecucin de un programa insertando pausas
cuando creamos necesario.
! Tambin nos permite observar lo que un programa estaba haciendo cuando se colg.
! Existen tres maneras de usar gdb:
! Depurando un programa desde el depurador
! Depuracin sobre Asterisk en plena ejecucin
! Depuracin haciendo backtrace sobre un Asterisk cado
! Sintaxis: gdb programa opciones

Diagnstico con el CLI

! Asterisk posee una interfaz de lnea 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 ms informativo. El
valor inicial es 3.
! Es importante tambin conocer si todos los dispositivos de mi plan de marcado estn
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 algn comando en especfico ejecutamos: help [comando]

Sniffing

! Sniffing es una prctica que consiste en escuchar los paquetes que circulan por la red.
101
Captulo 16
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Para poder capturar el trfico se utiliza una aplicacin 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 informacin 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 anlisis de VoIP y grabar el payload en
formato crudo.
! Oreka: algo ms complejo pero que permite incluso decodificar codecs, provee
interfaz web de monitoreo.
! Para evitar escuchas o pinchazos telefnicos a nivel de VoIP tenemos la alternativa de
encriptar la comunicacin (SRTP, VPN, IAX encriptado)
102
Captulo 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 electrnico 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 electrnico.
! Puede residir en la estacin 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 travs 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 quin debe entregar el mensaje.
103
Captulo 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 buzn 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.
! Reenva los mensajes a un servidor SMTP si la cuenta de destino est en una ubicacin
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 adems 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 configuracin del servidor de correo.
! En la interfaz grfica 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 botn Crear Dominio, lo que muestra una
nueva pantalla en la que se ingresa el nuevo dominio.




104
Captulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados



! Despus 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 informacin bsica de la cuenta de correo, la cuota y la contrasea.
Luego guardamos.
! El nombre de la cuenta tiene la siguiente syntaxis: nombre_de_la_cuenta@dominio.
! Para editar la contrasea 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 estarn autorizadas para realizar el envo de correos hacia dominios que no son
locales.
! El proceso para realizar este envo a un dominio externo se denomina RELAY .
! Para configurarlo debemos ir a Email Relay .
105
Captulo 17
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Se muestran las direcciones de red que estn permitidas, y se puede agregar una
direccin de red por lnea, indicando adems la mscara de red de la misma.

RoundCube Mail

! Es una interfaz grfica de correo integrada en Elastix localizada en: Email Webmail
(Interfaz de Elastix).
! Para acceder directamente puede colocar la siguiente direccin 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 direccin de correo electrnico completa
(usuario@dominio) y la contrasea.

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 especfico que a su vez se encarga de transferirlo a los servidores de destino).
! En Postfix esta opcin es llamada "relayhost"
! Para configurar la opcin "relayhost":
! En una consola ir al archivo: /etc/postfix/main.cf
! Se agrega la lnea 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 caractersticas.
! 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 polticas:
106
Captulo 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 buzn de entrada.
! Capturar Spam: Marcar el spam con un prefijo, pero lo enviar a una carpeta de spam
en lugar del buzn 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
Captulo 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: telefona 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 envo y recepcin de fax.
! Framework NEO: Esquema de desarrollo que incluye libreras que implementan Elastix.

Esquema bsico del sistema de fax


laxmodem

! Es una aplicacin que simula un faxmodem mediante librerias DSP (Digital Signal
Processing).
! Esta aplicacin puede ser usada por cualquier programa de envo y recepcin de fax.
! Cuando se implementa iaxmodem se crea un archivo que contendr los datos que
define el dispositivo virtual y lo asocia a una extensin de asterisk.
! En Elastix ese archivo es:


108
Captulo 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 envo y recepcin 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
Captulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

Funcionamiento Bsico


Estructura del Sistema de Fax

! El Sistema de Fax de Elastix est compuesto de 7 Mdulos:
! faxclients
! faxlist
! faxmaster
! faxnew
! faxviewer
! sendfax
! email_template
! Utiliza la base de datos fax.db
! Cada mdulo contiene las carpetas y archivo:
! configs
! themes
! index.php
! El mdulo de Fax utiliza libreras del framework principal:
/var/www/html/libs/paloSantoFax.class.php



110
Captulo 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 librera paloSantoFax.class.php


! Funcin _createFaxSystem


111
Captulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Funcin _configureIaxmodem



! Funcin _configureHylafax



! Funcin _writeInittab


112
Captulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! Al final de la funcin 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 extensin haciendo clic en ella.

! Para crear una extensin de Fax debemos crear primero una extensin IAX.
! Luego debemos ir a Fax New Virtual Fax. Ah podemos crear la extensin de fax
con la informacin usada para la creacin de la extensin IAX.
! El email de recepcin puede ser cualquiera.

! El men de Fax Master nos permite incluir una direccin de correo general
(normalmente un email de administracin) que permita recibir todos los mensajes de
confirmacin o errores del servidor de fax.



113
Captulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! El men Fax Client permite incluir la direccin IP permitida para el envo de fax a
travs de Elastix.


! El men Fax Viewer nos permite ver un listado completo de fax recibidos. Podemos
adems filtrarlos por fecha o por tipo de fax.
! Existe adems un campo de bsqueda por nombre de compaa y otro por fax de
compaa.

! El men template de Email (Email Template) nos permite configurar ciertos parmetros
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 solucin a ciertos problemas y mtodos de tratamiento de fax como
audio a la hora de transportarlos.
114
Captulo 18
Elastix Certified Technician
PaloSanto Solutions 2012 Todos los derechos reservados

! El protocolo T.38 resuelve estos problemas usando algunas tcnicas interesantes como
la redundancia de paquetes.
! Es decir que por cada paquete enviado a travs de la red es probable que se enven
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 transmisin T.38, ni de entender el protocolo.
! Lo nico que puede hacer Asterisk con T.38 es pasar la comunicacin de un lado a
otro. O sea que T.38 puede pasar a travs de Asterisk y a esta modalidad de
funcionamiento se le llama passthrough.
! La versin 1.6 de Asterisk aade ms soporte para T.38 y estar en la capacidad de
entender el protocolo un poco ms y por lo tanto hacer algunas cosas interesantes.

AvantFax, un GUI Alternativo

! AvantFax es un GUI que facilita la administracin de faxes.
! AvantFax utiliza como fax server Hylafax.
! Permite el envo y recepcin de faxes a travs de la interfaz web.
! Recientemente se ha lanzado un instalador RPM de AvantFAX que puede ser
descargado del repositorio de Extras de Elastix.
115
Captulo 19
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

MENSAJERA INSTANTNEA

Protocolo XMPP

! XMPP o Extensible Messaging and Presence Protocol, por sus siglas en ingls, es un
protocolo extensible y abierto basado en el estndar 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 ningn 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 ms bsico, si dos contactos tienen cuentas creadas en el mismo servidor
XMPP, podrn hablar entre ellos.


Caractersticas de XMPP

! Es abierto: El protocolo de XMPP es gratuito, abierto, pblico y comprensible.
! Existen mltiples implementaciones de cdigo abierto para Servidores XMPP, asi como
numerosos clientes y libreras de desarrollo.
116
Captulo 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 pblica Jabber.
! Cualquier implementacin 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, adems 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 adems protocolos para msn y yahoo.
! iChat: cliente incluido en OSX (Mac)

Openfire en Elastix

! Openfire es un sistema de mensajera instantnea de cdigo abierto que permite
habilitar servicio de mensajera instantnea interna.
! Es el servicio de IM utilizado por Elastix por sus caractersticas que permiten
transferencia de archivos, transmisin de mensajes (broadcast), integracin con
telefona, integracin 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
Captulo 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 cul ya debe estar configurado (Es el
mismo dominio del servidor Elastix).


118
Captulo 19
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! Se debe especificar la configuracin de la Base de Datos. Es conveniente elegir la base
de datos embebida.



! En esta pantalla seleccionamos el lugar de datos donde se almacenarn los usuarios.



! En esta pantalla seleccionamos la contrasea del administrador.


119
Captulo 19
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! Despus del paso anterior culmina la instalacin y podemos ingresar a la interfaz
administrativa.



! Una vez en la interfaz administrativa podemos crear usuarios, configurar plugins y
grupos.






120
Captulo 19
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! Una vez que instalamos Openfire tendremos acceso a algunas de las siguientes
caractersticas de este servicio:
! Funcionalidad expandible a travs de plugins
! Posibilidad de integracin con Asterisk
! Interaccin con otras redes de mensajera instantnea como Gtalk, Yahoo
Messenger, ICQ, entre otros
! Soporte para mensajes broadcast
! Transferencia de archivos
! Puede guardar histrico de conversaciones
! Soporte para clustering
! Permite crear diferentes grupos de trabajo
121
Captulo 20
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

SINTETIZACIN Y
RECONOCIMIENTO DE VOZ

Sintetizacin de voz

! Es la tecnologa que permite convertir el texto a audio.
! Tambin se conoce como TTS debido al trmino Text-To-Speech (texto-a-habla en
ingls).
! Actualmente ya existen alternativas de sintetizacin de voz de relativo bajo costo e
inclusive de libre uso como Festival o FreeTTS.
! Festival es el motor de sintetizacin por defecto en Elastix. Es necesario activarlo.
! La tcnica de sintetizacin de voz usada por Festival est dividida en en tres partes:
Anlisis de texto.- Normaliza el texto, lo traduce a un formato de palabras
estndar.
Anlisis lingstico.- Convierte el texto normalizado en fonemas.
Generacin de audio.- Traduccin de fonemas a audio.

! El algoritmo por omisin usado por Festival para la traduccin de fonemas a audios es
RELP (Residual Excited Linear Prediction)

Festival

! Festival es un sistema de sintetizacin de voz desarrollado por la Universidad de
Edimburgo utilizando lenguaje de programacin C++
! Festival soporta Ingls Americano, Ingls Britnico y Espaol.
122
Captulo 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: lnea de comandos y tts (text-to-speech).

Festival dentro del plan de marcado

! Asterisk provee una aplicacin de plan de marcado llamada Festival.
! Esta aplicacin funciona internamente conectndose a un servidor Festival a travs de
la red y reproduciendo la salida de audio en el canal en uso.
! La sintaxis de la aplicacin Festival es la siguiente:

! text es el texto que se desea sintetizar (y reproducir)
! intkeys es un parmetro opcional que especifica las teclas telefnicas que pueden
interrumpir la ejecucin del comando.

! En este ejemplo si llamamos a la extensin 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 podra servir para crear prompts de voz que podemos usar en el
plan de marcado.



123
Captulo 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 trmino reconocimiento de voz es muchas veces utilizado para referirse al
reconocimiento del habla, como en el caso del sistema telefnico.
! Una aplicacin muy utilizada para sistemas telefnicos 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.
! Ms bien trata de identificar lo que ste dice.
! Para esto hace una comparacin de las ondas del audio de una persona que llama, con
los modelos acsticos de su base de datos.
! De ah que sea comn encontrarlo en aplicaciones donde una persona que llama
completa una orden de voz; Ej: decir la extensin o el nombre de la persona a la que
llamamos.

Procedimiento Lumenvox

! El procedimiento completo sera 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 acsticos (Las bases de
datos que contienen informacin sobre las formas de onda de cada uno de los sonidos)
! El SRH comparan las palabras en la gramtica a los resultados obtenidos a partir de su
bsqueda de modelos acsticos.
! Determina qu palabras en la gramtica de audio concuerdan y devuelve un resultado.
124
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

DESEMPEO &
DIMENSIONAMIENTO

Desempeo de Elastix

! El desempeo de un servidor Elastix es un asunto complejo de analizar.
! Existen muchos parmetros a tomar en cuenta principalmente el desempeo de
Asterisk, ya que la comunicacin 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 desempeo de Elastix

! Hay muchos factores que pueden afectar el desempeo de Elastix de alguna manera.
! Los ms comunes relacionados con la operacin de un servidor de comunicaciones
unificadas son:
! Llamadas Concurrentes
! Transcoding
! Interrupciones de Hardware

Numero de llamadas concurrentes

! El nmero de llamadas concurrentes afecta directamente el consumo de CPU del
servidor. Es Muy Importante
! El grfico siguiente tiene pruebas realizadas (sin transcoding) en un computador con un
CPU de 2.2 GHz con 512 MB de RAM.
! Obviamente una prueba terica siempre supone condiciones ideales, por lo cual el
rendimiento debe ser tomado como referencia nicamente.
! En el computador se us Elastix 1.3.




125
Captulo 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 clculos matemticos pues se est decodificando y
codificando informacin con algoritmos complejos, consumiendo recursos a nivel de
CPU.



126
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


Openfire

! Openfire es un software escrito en Java que proporciona el servicio de Mensajera
Instantnea.
! Sin embargo, cabe sealar 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 omisin Openfire no activa al instalar Elastix.


127
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Dimensionamiento telefnico

! Determinando el nmero de lneas telefnicas necesarias
! Primer parmetro en un proyecto telefnico nuevo: calcular nmero de lneas para
satisfacer la demanda prevista.
! No se quiere tener ms lneas de las necesarias, esto podra significar un desperdicio
de recursos.
! Tampoco se debe sub dimensionar el nmero de lneas, ya que los usuarios podran
recibir continuamente tonos de ocupado.
! El clculo, por lo tanto debe basarse en criterios tcnicos y no ser tomado a la ligera.
! El modelo Erlang es una aproximacin estadstica para calcular cuntas lneas
telefnicas necesitaremos en una instalacin determinada para satisfacer una demanda
prevista con cierta calidad.

Agner Krarup Erlang


! Erlang, Ingeniero y matemtico dans que desarroll las tcnicas de Ingeniera de
Trfico y Teora de Colas.
! Exploraremos estos conceptos para darle al lector cierto conocimiento bsico y
prctico de estas tcnicas sin llegar al rigor matemtico que ellas demandan.
! Estas tcnicas nos permitirn dimensionar cuntas lneas telefnicas necesitaremos en
una instalacin.

La unidad Erlang

! Un Erlang es una unidad adimensional comnmente utilizada para medir el trfico
telefnico por hora, o se puede decir que un Erlang representa la utilizacin continua
de un circuito.
128
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! 1 Erlang equivale a la utilizacin 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 trfico en Erlangs se puede proceder de la siguiente manera:
! Encontrar el trfico 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 trfico 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 da determinado se
realizaron 300 llamadas, con un promedio de 6 minutos por llamada y se quiere medir
el trfico en Erlangs.
! Trfico Total = Trfico 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)
! Trfico por hora = Trfico Total / Lapso de Tiempo
! = 30 horas / 3 horas = 10 Erlangs
! Hemos obtenido una medida de trfico de 10 Erlangs.

Modelos Erlang

! En esencia existen dos modelos en las teoras de Erlang que se utilizan mucho en
telefona:
! modelo B
! modelo C
! En la presente obra estudiaremos el modelo B pero recomendamos al lector recabar
informacin 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 sera til que indagara en el modelo Erlang C.

129
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Erlang B

! El modelo Erlang B es el ms comn. Se usa determinar el nmero de lneas necesarias.
! Bsicamente necesitamos alimentar a la frmula con un par de parmetros y podemos
obtener el nmero de lneas que necesitamos.
! Estos parmetros son:
! Trfico punta o pico (el trfico en la hora de mayor actividad)
! Grado de Servicio (o GOS por sus siglas en ingls).
! El Trfico punta o pico se obtiene sumando todo el trfico en la hora con ms actividad
telefnica.
! Es til tomar muestras no solo de un da sino de algunos das o semanas para que la
informacin sea ms 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
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Frmula Modelo Erlang B


! Donde:
! E es el valor del trfico punta o pico (en Erlangs)
! N es el nmero total de lneas telefnicas

! 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 lnea, algunas gratuitas, o aplicaciones para
Smartphones que permiten calcular el modelo de Erlang B.
! La presentacin de la frmula ayuda a que el profesional de Elastix sepa los
fundamentos del clculo de la misma lo cual siempre es til.

! Tomemos el clculo que hicimos anteriormente:
! Trfico Total = Trfico en 3 horas = 300 x 6 = 1800 minutos
! Trfico por hora = 10 Erlangs
! Cuntas lneas telefnicas necesito con un GoS de 0.01?
! Calclalo en:
! http://www.erlang.com/calculator/erlb/

Flash Operator Panel

! En instalaciones con alta actividad telefnica el FOP puede comenzar a consumir
recursos fuera de los niveles deseados.



131
Captulo 21
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados



! En instalaciones con alta actividad telefnica el FOP puede comenzar a consumir
recursos fuera de los niveles deseados.
! El FOP se comunica con Asterisk a travs de AMI.
! Por lo tanto se encuentra escuchando toda la actividad telefnica a travs del puerto
de red que levanta Asterisk para este fin.
! Cuanto ms actividad, ms informacin 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 anlisis breve de los servicios que estn consumiendo recursos, basta
con ejecutar un comando top.
! Ordenamos su salida por consumo de memoria y tambin por consumo de CPU.
! Para hacer lo primero escribimos la letra M (Mayscula) y para lo segundo la letra P.
! En algunas ocasiones podemos observar el proceso java liderando las estadsticas de
consumo.


132
Captulo 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 trfico SIP, ayudndonos a generar llamadas SIP hacia nuestro
servidor Elastix.
! Esto nos permite tomar muestras para entender cmo 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 cdigo abierto. Informacin de descarga y documentacin
puede ser encontrada en: http://sipp.sourceforge.net/

Cuando un solo servidor no alcanza

! Muchas veces una instalacin es tan grande que rebasa la capacidad de un slo equipo.
! Para estos casos es recomendable dividir un Elastix en uno o ms servidores, o
balancear la carga.
! Existen dos esquemas que se usan en la prctica:
! Distribuir el trabajo en equipos especializados
! Distribuir el plan de marcado

133
Captulo 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
Captulo 22
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

SEGURIDAD

Algo de Historia

! Por los aos 60 se dieron cuenta que si generaban una seal audible a la frecuencia
exacta de 2,600 Hertz producan que las llamadas telefnicas se colgaran.
! Algunos hackers se pusieron a estudiar y entender la sealizacin telefnica, realizando
llamadas de larga distancia de manera gratuita.
! Desde entonces hay personas dedicando miles de horas de investigacin a tratar de
quebrantar la seguridad de servidores alrededor del mundo.

Buenas Prcticas

! Todas las acciones bsicas recomendadas para iniciar la operacin de un servidor de
comunicaciones unificadas
! Limitacin del acceso al servidor
! No usar el usuario root
! No dejar sesiones de consola abiertas
! Bloquear el reinicio
! Utilizar contraseas fuertes
! Deshabilitar el acceso directo a FreePBX

Ataques y vulnerabilidades a nivel de red IP

! Denegacin de servicio
! Ataques de inundacin SIP (SIP Flooding)
! Sniffing
! Captura de llamadas a nivel de VoIP
! Fraude telefnico
! Intento de obtencin de privilegios de root

Algunas soluciones a los problemas de seguridad

! Apagar los servicios que no vamos a usar
135
Captulo 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 omisin

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 pblica como el Internet.
! Encriptacin IAX: Cuando IAX fue concebido se pens en problemas de violacin a
la privacidad y se aadi soporte nativo para encriptacin de llamadas.

Auditora de seguridad

! Una auditora de seguridad debe ser considerada como una prctica preventiva.
! Es recomendable que se realice peridicamente para detectar a tiempo problemas que
podran poner en riesgo nuestros equipos.
! Escaneo de puertos de red
! Revisin de logs del sistema
! Revisin de rootkits
! Auditora avanzada con Nessus

El mdulo de Seguridad de Elastix

! Configuraciones bsicas de seguridad a nivel de interfaz:
! Gestin de Firewall
! Auditora de uso de la Interfaz web de Elastix
! Auditora de Contraseas dbiles
! Configuracin Avanzada

136
Captulo 22
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Gestin de Firewall

! Interfaz para administracin de IPTables
! Posee un conjunto de reglas predefinidas
! Permite la personalizacin de puertos





137
Captulo 22
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Activando el Firewall



Creando una nueva regla

! Opciones para configuracin
! Trfico: ENTRADA, SALIDA, A TRAVES
! Interfaz de ENTRADA: CUALQUIERA, Ethernet 0, Loopback
! Direccin de Origen
! Direccin de Destino
! Protocolo: TODOS, TCP, UDP, ICMP, ESTADO
! Objetivo: ACEPTAR, DESCARTAR, RECHAZAR




138
Captulo 22
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Personalizando un Puerto o un rango de Puertos



Auditora 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 bsqueda de una palabra clave
! Ofrece la descarga de los logs de utilizacin en formato CSV, XLS o PDF



Auditora de Contraseas Dbiles

! Analiza las contraseas de las extensiones creadas en Elastix
! Verifica que no sean demasiado cortas o que estn basadas en diccionario
! Algunos ejemplos: qweasd, a1b2c3, 123456



139
Captulo 22
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Configuracin Avanzada



! En este men se puede activar el acceso directo a FreePBX
! Se puede tambin activar llamadas SIP annimas.
! 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 configuracin que necesitemos hacer es
recomendable volver a desactivarla.
! No actualice FreePBX desde su interfaz, existen procedimientos de
actualizacin con Elastix, consulte en los foros o listas.




140
Captulo 22
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


! Una vez activado FreePBX, podemos revisar lo requerido y despus desactivarlo de
nuevo.


Tcnicas Adicionales

! Implementacin de Fail2Ban
! Implementacin de Port Knocking
! Implementacin de ordenes Allow/Deny durante la configuracin de las extensiones
! Mantener deshabilitada la interfaz de FreePBX sin embeber
! Cambio de puertos por defecto
! Utilizacin de VPNs para extensiones remotas

Documentacin Adicional

! Seguridad en servidores CentOS con Elastix Rodrigo Martn
! Elastix Network Security Guide Bob Fryer
! Trunking entre dos Sistemas de PBX Elastix PBX Va Internet Bob Fryer
! Asegurando Elastix Samuel Corn



141
Captulo 23
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

DEPURAMIENTO AVANZADO

Introduccin

! Un depurador permite examinar la ejecucin de un programa a un nivel de detalle
mayor que el habitual.
! La ejecucin en detalle permite encontrar errores que de otro modo resultaran
difciles de hallar.
! Con un depurador es posible examinar qu estuvo ocurriendo en el momento en que
un programa se colg.
! Dos alternativas para depuracin 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 cdigo, 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 tambin por otros componentes de Software o Hardware
Reproducir el bug
! Los pasos bsicos a seguir son:
! Examinar los logs, siendo clave la revisin de los minutos anteriores a la falla.
! Consultar a los usuarios, ellos viven la operacin telefnica da a da.
! Monitorear el equipo
! Aunque suene drstico 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 situacin 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
Captulo 23
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Errores de Programacin

! Errores de programacin que provocan cadas, colgados o comportamientos
indeseados
! Falla de segmentacin (Segmentation Fault)
! Deadlock
! Fuga de memoria
! Divisin para cero
! Buffer overflow

Strace

! Monitorea las llamadas a sistema que realiza un programa determinado y todas las
seales que ste recibe.
! Llamadas al sistema comunes en Linux: open, read, write, close, wait, exec, fork, exit,
kill, entre otras.
! ptrace es la carcterstica que hace posible el trabajo de Strace.
! Ejemplo de ejecucin de Strace al programa: cat /proc/cpuinfo:
! [root@elastix ~]# strace cat /proc/cpuinfo

Depuracin en Asterisk

Un ejemplo sencillo
! Hay ocasiones donde es importante monitorear un proceso de Asterisk en ejecucin.
! Por ejemplo si nuestro servidor consume muchos recursos de CPU y queramos
averiguar qu est ocurriendo.
! Para depurar un programa en ejecucin 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
Captulo 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 ejecucin de un programa insertando pausas
cuando creamos necesario.
! Tambin nos permite observar lo que un programa estaba haciendo cuando se colg.
! Adems nos permite cambiar ciertas cosas dentro del programa para ver los efectos
que se producen con dichos cambios.
! GDB es una opcin ms completa que strace pero tambin su uso requiere un tanto
ms 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
! Depuracin sobre Asterisk en plena ejecucin
! gdb programa PID
! Depuracin haciendo backtrace sobre un Asterisk cado
! gdb programa cado




144
Captulo 23
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Comandos bsicos





! Nota: Para ms informacin puede recurrir al comando man gdb

Archivos core y backtraces

! Muchas aplicaciones dejan archivos core cuando terminan inesperadamente, esto nos
permite hacer una depuracin post-mortem del software.
! En el caso de Asterisk esto es posible cuando se lo inicia con la opcin g (Elastix inicia
Asterisk con dicha opcin por defecto).
145
Captulo 23
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! Si no se est seguro que Asterisk haya sido iniciado con la opcin 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 smbolos que se genera cuando
el programa es compilado hacen que gdb nos pueda mostrar informacin ms 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 ms detallado que el normal. Muestra parmetros y variables
locales usados por las funciones que estn siendo invocadas.
! Ejemplo: Primero identificamos el archivo core que necesitamos examinar, por lo
general se trata del ltimo.



146
Captulo 23
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados



Cmo reportar un Backtrace a Digium?

! Si determinamos que tenemos un bug de Asterisk el siguiente paso lgico 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
Captulo 24
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

PLAN DE MARCADO DISTRIBUIDO
DUNDi

Distributed Universal Number Discovery

! DUNDi es un sistema de localizacin de gateways para el acceso a los servicios de
telefona.
! Utiliza un esquema punto a punto y no requiere ninguna arquitectura de red en
particular ni un esquema jerrquico cliente-servidor.
! Este es un punto de diferenciacin 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
sealizacin VoIP
! Recibe y proporciona la informacin necesaria para poder contactar a los equipos
independientemente del protocolo de sealizacin usado.
! Por esto es posible usar DUNDi virtualmente con cualquier protocolo soportado por
asterisk.
! Es parte de Asterisk por lo cual su integracin 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 operacin a varios
servidores en una o diferentes sucursales.



148
Captulo 24
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Ejemplos de uso

! Un ejemplo tpico 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 dnde est el nmero 456? la consulta se enviar directa o indirectamente a
todos los servidores en la red DUNDi
! El servidor que tenga esa extensin 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 comn de DUNDi es clster y balanceo de carga.
! Esto es importante en un esquema con muchos usuarios as como para esquemas de
clster y disponibilidad.
! Cuando un servidor no alcanza, comentamos esto en la seccin de rendimiento.
Bueno, DUNDi es una muy buena opcin.



Seguridades

! DUNDi usa certificados de encriptacin RSA par compartir los planes de marcado.
! Esto es requerido ya que las respuestas a una consulta incluyen las contraseas de las
troncales.
149
Captulo 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 dems servidores con el
comando spc:



Configuracin

! DUNDi guarda su configuracin en el archivo dundi.conf dentro de la carpeta
/etc/asterisk/.
! Este archivo se divide en tres secciones:
! [general] - donde se define la identificacin en la nube DUNDi y opciones
globales.
! [mappings] - donde se definen las respuestas a una consulta de otro equipo.
! Peers definicin de peers que consultarn y sern consultados.
! Esta configuracin debe ser realizada en cada servidor donde se distribuir el plan de
marcado.
! iax_custom.conf - Configuracin de troncal.
! extensions.conf - Configuracin para modificar el contexto "from-internal" de
FreePBX, de tal manera que no obtengamos una respuesta de bad-number en la
bsqueda del nmero.
! extensions_custom.conf - definimos los contextos personalizados para que DUNDi
relacione nuestras extensiones, realice bsquedas en otros equipos y redirija las
llamadas.
! Esta configuracin permite que cuando creemos una extensin nueva desde la interfaz,
se aada al contexto local incluido en dundi-priv-canonical que usar DUNDi.

150
Captulo 24
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Configurando en la Interfaz

! Elastix incluye un Addon para realizar esta configuracin desde interfaz.
! La aplicacin est disponible desde la versin 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 configuracin en el 1er Servidor.
! Llenamos la informacin marcada como requerida.

151
Captulo 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 configuracin RSA.
! Podemos adems 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 informacin
de peer.
! Ingresa la direccin IP del primer servidor y el certificado que recibi. El comentario
puede ser cualquiera, generalmente una descripcin.
! Despus hace clic en Request.



152
Captulo 24
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

2do Servidor:


1er Servidor:









153
Captulo 24
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

2do Servidor:



! Esta aplicacin 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
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

MDULO DE CALL CENTER

Mdulo de Call Center

! Este software est diseado para hacer campaas de llamadas entrantes y salientes.
! Estas llamadas permiten la interaccin entre operadores (agentes) y personas
contactadas (abonados).
! Se usa el trmino campaa para designar la ejecucin de un conjunto de llamadas.
! El mdulo incluye un marcador predictivo que se encarga de llamar de manera
automtica a los nmeros objetivo.
! Adems incluye dos componentes importantes: consola de agente (basada en web) y una
interfaz de administracin de llamadas.
! La versin actual incluye soporte para el protocolo ECCP.
! Este protocolo permite que la operacin del mdulo sea mas eficiente y es posible
integrar aplicaciones externas.
! El mdulo de Call Center de Elastix es Open Source.





155
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


Modelo de Funcionamiento

! El mdulo del Call Center est implementado alrededor del soporte de colas de
Asterisk.
! El diseo asume que cada una de las colas alberga al menos a un agente.
! Cada campaa utiliza exactamente una cola. Un agente puede pertenecer a varias colas.
! Actualmente se reconocen dos modos principales de funcionamiento: Campaas
Salientes y Campaas Entrantes.


Funcionalidades Implementadas

! Llamado automtico a partir de una lista de nmeros.
! Ejecucin de mltiples campaas simultneas.
! Seguimiento de agente asignado a una llamada.
! Marcador predictivo.
! Almacenamiento de guin de atencin.
! 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 especfico 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 mdulo est diseado para mediar llamadas que son atendidas
por agentes humanos.
! Es posible que se implemente esta funcionalidad en el futuro como Campaa Sin
Agentes.
156
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


Marcador predictivo



! Es la porcin del Call Center que interacta directamente con las llamadas.
! Est implementado como un servicio residente (daemon) escrito en PHP. Se puede
iniciar como servicio a travs 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 informacin de esa llamada en la base de datos.
! El marcador interroga regularmente el estado de la cola para averiguar cuntos agentes
se encuentran registrados y libres.
! El nmero de agentes libres regula cuntas llamadas son iniciadas simultneamente.
157
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! El marcador estima la duracin media de llamada, para intentar predecir si las llamadas en
curso estn por terminar, para colocar proactivamente nuevas llamadas. Esta
funcionalidad es configurable.
! El modelo para prediccin es una distribucin Erlang acumulada.
! La interfaz Web permite iniciar y detener el servicio de marcador
! Adems permite activar y desactivar la depuracin de problemas en el marcador, incluso
si el marcador est corriendo.
! La ruta por omisin del log del marcador es el archivo
/opt/elastix/dialer/dialerd.log
! El marcador predictivo se encuentra encendido por defecto cuando se instala el mdulo.
! Sin embargo es posible apagarlo o encenderlo desde la interfaz, en el men de
configuracin del mdulo.




Administracin del Mdulo

! La administracin del mdulo permite :
o Crear Agentes
o Agregar colas
o Crear nuevas campaas salientes
o Crear nuevas campaas entrantes
o Administracin de breaks
! Tambin proporciona una interfaz de configuracin que permite iniciar, detener y
configurar el marcador predictivo, incluyendo la activacin de depuracin.


158
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


Iniciando la operacin de Call Center

! Antes de iniciar la operacin de Call Center es necesario seguir las siguientes
configuraciones bsicas:
1. Instalar el Call Center en Elastix
2. Crear un grupo con la configuracin para Agentes
3. Crear Usuarios en el sistema para los Agentes
4. Crear Extensiones para los Agentes
5. Crear Agentes en el mdulo de Call Center
6. Crear la(s) cola(s) requeridas para la operacin.

Iniciando la operacin de Call Center : Instalacin

! La instalacin del mdulo es sencilla. nicamente es necesario ir al men Addons y hacer
clic en INSTALL.


! La instalacin se realiza automticamente.
! Una vez concluida se habilitar Call Center en el men principal.

159
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Iniciando la operacin de Call Center : Creacin de
Grupo

! Para la operacin es necesario crear usuarios en Elastix para los Agentes que participarn
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
Captulo 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 operacin de Call Center : Creacin de
Extensiones

! Debemos crear tantas extensiones como Agentes operen en una campaa.
! Es suficiente crear extensiones tipo SIP.
! Para facilitar la operacin del Call Center estas extensiones son usadas normalmente en
Softphones.
! El mdulo de Call Center transferir al agente todas las llamadas en una campaa a su
extensin.

Iniciando la operacin de Call Center : Creacin de
Agentes

! La creacin de Agentes se diferencia de la creacin de usuarios ya que estos son
generados en el Mdulo 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
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


! No se debe colocar nada en Contrasea ECCP. El sistema se encarga de asignar una al
crear el Agente.


Iniciando la operacin de Call Center : Creacin de
Colas

! El proceso de creacin de Colas es similar al que vimos anteriormente.
! Se diferencia nicamente en que en lugar de colocar extensiones creadas en Elastix,
colocaremos los nmeros de los Agentes que queremos que estn en la cola.
! La nomenclatura que se coloca en el listado de Agentes fijos tambin se diferencia, ya
que tenemos que anteponer la letra A.
! Crearemos la cola con el nmero ectetest con el nmero 101.


162
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! Como podemos observar en la figura colocamos los Agentes creados en el mdulo de
Call Center, con el prefijo A, seguido de una , y el nmero 0.
! Podemos colocar cualquier poltica de estrategia de ringado. Usualmente se selecciona
Agente con menos llamadas.

Iniciando la operacin de Call Center : Activando el
Mdulo

! Antes de iniciar comprobaremos que el servicio de Call Center est Activo.
! Esto se puede comprobar desde el Dashboard o desde el men de configuracin del Call
Center (Dialer apagado/encendido).



Consola del Agente

! La consola de agente administra la interaccin del agente con el sistema. Est basada en
Web.
! La consola recibe eventos de una llamada a travs del ECCP, al igual que la toda la
informacin correspondiente a la llamada.
! Por medio de la consola el Agente obtiene informacin de la operacin (nmero
telefnico atendido, informacin de contacto).
! En la actualidad la consola de agente trabaja utilizando el protocolo ECCP.
163
Captulo 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 extensin 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 sesin: Finaliza la sesin del agente/operador en el Call Center.

Funciones de Campaa
! Informacin de Llamada: Muestra la informacin de la persona que llama, si se
encuentra en la base de datos. Si no existe la informacin mostrar el nmero de
telfono de la llamada entrante en la parte de abajo.
! Dilogo 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
campaa.





164
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Campaas Salientes

! El sistema se alimenta con un archivo que contiene los nmeros telefnicos a marcar.
! Al activarse la campaa, el sistema marca los nmeros telefnicos, verificando los agentes
libres registrados que se encuentren en la cola. Tantas llamadas como agentes libres.
! En este mtodo se une la cola con el nmero del abonado. Si la llamada es exitosa entra
a la cola y es asignada al siguiente agente libre.
! La asignacin depende de la poltica asignada a la cola (linear, wrandometc).
! El sistema registra en una base de datos al agente que se asign a la llamada.
! Esta informacin servir para varios propsitos de consulta.
! Al terminar la llamada, el agente pasa al estado ocioso, y est de nuevo disponible para
recibir una llamada.
! Este proceso contina hasta recorrer toda la lista de nmeros.
! Se puede configurar el nmero de intentos, de tal manera que el mdulo llame a los
nmeros que fallaron en ser contactados.

Campaas 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 campaa.
! El sistema registra en una base de datos al agente que se asign a la llamada. Esta
informacin servir para varios propsitos de consulta.
! Se puede alimentar el sistema con datos sobre nmeros especficos para que el agente
tenga informacin disponible en su pantalla.








165
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Configuracin de Campaas

! Existe un men habilitado para cada tipo de campaas:
o Outgoing Calls: Campaas Salientes.
o Ingoing Calls: Campaas entrantes.
! Antes de iniciar una campaa es importante definir:
1. Formularios
2. Lista de Contactos (Opcional para campaas entrantes)
3. Lista de nmeros telefnicos (Requerido en campaas salientes)
4. Breaks
5. Y por supuesto: Agentes y Colas.

Configuracin de Campaas : Formularios

! Los formularios se crean en:
Call Center Forms Form Designer
! Cada formulario tiene la opcin de agregar mltiples campos de los siguientes tipos:
o Campo de Texto
o Campo de Seleccin de Lista
o Campo de Fecha
o Campo de rea de Texto
o Campo tipo etiqueta

166
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! Podemos ver un preliminar del formulario en Form Preview.

! La creacin y manejo del formulario funciona bien en Firefox, es probable que algunas
funcionalidades no se puedan configurar desde otros Browsers.


Configuracin de Campaas : Clients Ingoing Calls

! Las campaas de llamadas entrantes permiten subir un listado de contactos.
! El mdulo verifica el nmero entrante con el listado y muestra la informacin del
contacto al Agente.
! La informacin soportada por el mdulo de Call Center para el listado de contactos es:
"telfono","cedula/ruc","nombre","apellido
! Es til hacer el listado en Excel o en hoja de clculo de OpenOffice
! En la primera columna observamos el nmero telefnico. La segunda contiene el nmero
de cdula (o un id). La tercera y cuarta columna contienen el nombre y apellido.

! El campo cedula/ruc, es un campo requerido por el mdulo para subir correctamente el
listado. Podemos colocar un nmero identificador en el contacto si no conocemos su ID.
! En el ejemplo anterior se muestra un nmero identificador para cada contacto.
! El archivo del listado debe ser guardado como csv:
167
Captulo 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



Configuracin de Campaas : Phone List Outgoing
Calls

! La informacin principal de una campaa de llamada saliente es sin duda el listado de
nmeros telefnicos a llamar.
! Esta informacin ser requerida cuando creemos la campaa, sin embargo es importante
crearla adecuadamente.
! Es til hacer el listado en Excel o en hoja de clculo 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
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Configuracin de Campaas : Configuracin de
Breaks

! Los breaks permiten que un agente salga de operacin y permanezca en Stand by como
no disponible.
! En este estado el dialer no le asignar llamadas.
! Tampoco se le asignarn llamadas en una campaa 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
aparecern como opcin.


En Campaa: Ingoing Calls

! Primero debemos seleccionar una cola.
! El mdulo transferir las llamadas entrantes a la cola y la cola las distribuir entre los
agentes que estn configurados en ella.
! Pueden existir varias colas y se pueden activar varias campaas entrantes.
! Una cola puede adems estar seleccionada por dos campaas entrantes.
Call Center ! Ingoing Calls ! Queues
169
Captulo 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
llamarn.
! A continuacin crearemos la(s) campaa(s) para que inicie la operacin de llamadas
entrantes.
! Debemos ir a: Call Center Ingoing Calls Ingoing Campaigns
! Una vez ah debemos crear una nueva campaa, donde seleccionaremos el formulario a
usar, y detallaremos un breve script para el agente.

170
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados



! Una vez creada la campaa, esta iniciar su operacin y asignar llamadas a todos los
agentes que estn conectados.
! Revisaremos el proceso de login de un agente posteriormente.


En Campaa: Outgoing Calls

! Debemos ir a: Call Center Outgoing Calls Campaigns.
! Una vez ah debemos crear una nueva campaa.
! El mdulo permite a varias campaas trabajar al mismo tiempo. El nico limitante ser la
cantidad de lneas telefnicas que tengamos.
! Al igual que en las campaas entrantes, una cola puede estar asignada a varias campaas.
Sin embargo si tenemos una cola seleccionada en una campaa entrante, no podr ser
seleccionada para una campaa saliente.

171
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados



! Una vez creada la campaa, el dialer iniciar su operacin y asignar llamadas a todos los
agentes que estn conectados.
! Revisaremos el proceso de login de un agente posteriormente.
! El mdulo tiene una funcionalidad de indicar nmeros que no deben ser llamados.
! Esta funcionalidad permite ingresar un nmero especfico.
! Tambin se puede cargar un listado de nmeros de un archivo .csv que previamente ya
tenamos seleccionados para este efecto.
Call Center Outgoing Calls Do not call list












172
Captulo 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 nmero de agente y la extensin a la que tiene acceso y
hacer clic en ingresar.
! El mdulo llamar a la extensin, 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
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados


! Si el agente selecciona un break, no estar habilitado para recibir llamadas.



Interaccin de Agente

! Llamada entrante (no se muestran datos del cliente porque no est en la base de datos).

174
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

! El agente puede revisar el Script preparado para la campaa 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 nmero del plan de marcado
interno.


175
Captulo 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
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados





177
Captulo 25
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados









178
Captulo 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 mdulos.
! Un ejemplo de desarrollo adicional en Elastix es el mdulo de Call Center.
! La posibilidad de que realicemos un aplicacin adicional puede impulsar incluso un
potencial negocio para el desarrollador.
! Desde la versin 2.0 en adelante muchos desarrollos de PaloSanto Solutions y de
terceros se distribuyen a travs del mdulo de Addons.
! El mdulo de Addons, permite a un administrador de Elastix instalar de manera
transparente una aplicacin 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 caractersticas a
nuestra implementacin.
! A lo largo del curso hemos visto ejemplos de instalacin de una solucin por medio del
mdulo de Addons.
! Veremos un ejemplo ms instalando el mdulo developer.



179
Captulo 26
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Framework NEO

! Es el framework detrs de la interfaz Web de Elastix
! Un framework es un conjunto de libreras y cdigo para facilitar la programacin y
reutilizacin de cdigo
! Algunas caractersticas interesantes son:
! Arquitectura Web basada en MVC2
! Continuacin de caractersticas:
! Desarrollo POO
! Concepto e implementacin modular
! Mantenimiento de idiomas
! Mantenimiento de la ayuda embebida
! Soporte ACL

Estructura de archivos en NEO






Archivo o
Directorio
Descripcin
themes/
Contiene las plantillas html, javascripts y css. Representa la
capa de vista
index.php
El punto de entrada comn para todas las pantallas de la
interfaz de Elastix. Es quien decide qu pantalla mostrar
dependiendo de los parmetros recibidos. Representa al
controlador del mdulo
libs/ Aqu se encuentran libreras (cdigo reciclable)
configs/ Archivos de configuracin
langs/
Definicin de los lenguajes, actualmente se soportar 22
idiomas
images/
Imgenes que sern usadas tanto en la ayuda como en el
mdulo
help/ Ayuda del mdulo
180
Captulo 26
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Iniciando el desarrollo

! En versiones anteriores el desarrollo de un mdulo se realizaba totalmente a nivel de
consola.
! Actualmente Elastix provee una aplicacin para crear mdulos de una manera mas grfica
y manteniendo el estilo de la interfaz.
! Para instalarlo debemos ir al men Addons e instalamos el mdulo Developer

! Una vez instado buscamos el men developer e ingresaremos al Builder.



Usando mdulo Developer

! Es una poderosa herramienta que facilita la creacin de nuevos mdulos de Elastix
! Consta de cuatro sub-mdulos:
! Constructor de mdulos
! Eliminar mdulo
! Mantenimiento de idiomas
! Cargar Men

Builder

181
Captulo 26
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Builder: Secciones

! Informacin general: Nos ayuda a definir el nombre e identificador del mdulo, as
como datos del creador y permisos
! Localizacin: Aqu indicamos en qu nivel del rbol de mens se colocar el nuevo
mdulo
! Descripcin: Aqu es donde realmente se define el mdulo.
! Puede ser de tres tipos: reporte, formulario o enmarcado

Builder: Tipos de mdulos

! 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. Estn soportados los tipos
de campos HTML ms comunes como:
o text, select, checkbox, textarea, radio, file, hidden, entre otros
! Enmarcado: Inserta un frame que nos permite integrar otra aplicacin Web en la
interfaz del Elastix

Builder

! Al final del proceso de creacin del nuevo mdulo se generar un cdigo esqueleto.
! Este nos servir de gua o plantilla para continuar desarrollando la funcionalidad necesaria
! Estos archivos se crearn en la ruta:
/var/www/html/modules/<id mdulo>
! A partir de este instante dependemos de nuestros conocimientos de programacin PHP

Ventajas del Builder

! Es fcil de instalar
! Podemos crear los mdulos que necesitemos.
! Los permisos se crean automticamente,
! Las carpetas se crean automticamente
! Podemos crear el esqueleto inicial del cdigo ahorrando parte del trabajo de desarrollo.

182
Captulo 26
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Eliminar mdulos

! Nos permite eliminar un mdulo determinado de manera sencilla
! Debido a su sencillez es importante remarcar que:
HAY QUE TENER MUCHO CUIDADO PUES PODEMOS ELIMINAR UN
MDULO TIL POR ERROR!


Mantenimiento de idiomas

! Nos permite administrar los diferentes idiomas de los mdulos en Elastix
! Tambin nos permite crear nuevos lenguajes
! Las palabras claves o keys siempre estn en idioma ingls
! Se puede seleccionar un mdulo especfico pues cada mdulo puede tener su propio
archivo .lang
! Una vez realizados los cambios desde la interfaz, dichos cambios se guardan en los
archivos .lang respectivos




183
Captulo 26
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

Haciendo un poco de Historia: Load Module

! Este mdulo era requerido en Elastix 1.6 dado que no existan RPMs para Elastix.
! Un mdulo que estaba desarrollado poda ser cargado desde aqu comprimido.
! Desde Elastix 2.0 todos los RPMs para Elastix estn disponibles, por lo cual este mdulo
desaparecer en las siguientes versiones.



Desarrollando para Elastix

! En los ltimos 6 aos Elastix a crecido de una manera estable como distribucin.
! 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 estn interesados en desarrollar su propio addon, pueden escribir a la siguiente
direccin: certification@palosanto.com


184
Captulo 27
Elastix Upgrade
PaloSanto Solutions 2012 Todos los derechos reservados

COMPILANDO ELASTIX


Recompilando los SRPMs

! La manera ms fcil 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 ms recientes.
! Un SRPM (Source RPM) es un paquete que contiene la informacin necesaria para
construir un RPM.
! Tales como el cdigo 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 extensin *.spec.


Requisitos para el RPM

Instalar un Elastix con los requisitos para construir el RPM
! Segn 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
Captulo 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 mquina concebida para este
fin.
! Esto se hace de manera sencilla con el comando rpm:
[root@elastix ~]# rpm -ivh asterisk-1.8*.src.rpm.
! Esta instalacin poblar el directorio /usr/src/redhat que es donde se copiar el cdigo
fuente de Asterisk, el archivo SPEC y cualquier otra informacin nacida del SRPM.
! A continuacin 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 mnimo, Aadir 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
Captulo 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, pasndole como parmetro 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/:






! Adems 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

Vous aimerez peut-être aussi