You are on page 1of 117

Instalando desde CD (1)

Es recomendable instalar la ultima versin estable de Elastix disponible en la pagina del proyecto. Para realizar la instalacin desde CD, debemos descargar el archivo de imagen (con extensin iso), y grabarlo en un disco en blanco.

INSTALACIN DE ELASTIX

Captulo 1

Es importante grabar el iso usando software especializado para

Instalando desde CD (2)

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.

Instalacin desde CD (3)


Para realizar una configuracion estandar basta con presionar ENTER

Instalando desde CD (4)


Seleccionamos el idioma para la instalacin.

Advertencia: La instalacin estandar borrara disco duro

completamente el

Instalando desde CD (5)


El instalador nos pide seleccionar el esquema del teclado opcin).

Instalando desde CD (6)


Seleccionamos el tipo de particionamiento (primera

Instalando desde CD (7)


Confirmamos que se remuevan todas las particiones (S)

Instalando desde CD (9)


Configurar interfaces de red (S).

Instalando desde CD (10)


Seleccionar que se active al inicio y soporte para IPv4.

Instalando desde CD (11)


Seleccionar ya sea DHCP o configuracin manual.

Instalando desde CD (13) Instalando desde CD (12)


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

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

Instalando desde CD (14)


Ingresar el nombre del host.

Instalando desde CD (15)


Seleccionamos el huso horario adecuado.

Instalando desde CD (16)


Ingresar la contrasea del usuario root

Instalando desde CD (17)


Esperar hasta que finalice la instalacin automtica de paquetes.

Instalando desde CD (18)


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

Instalando desde CD (19)


Ingresar nuevamente la contrasea de root de MySQL.

Instalando desde CD (20)


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

Instalando desde CD (21)


Ingresar nuevamente la contrasea admin 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.

Instalando desde CD (22)


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

Instalacin con Soft RAID (1)

RAID hace referencia a utilizar varios discos duros en arreglo,

principalmente para ofrecer redundancia de informacin. Dependiendo el n mero de discos que se disponga y la forma en

la que se configure el arreglo, se pueden obtener diferentes niveles de RAID. El que se ver a continuacin es de nivel 1, en el que intervienen

dos discos duros y uno es espejo del otro.

Instalacin con soft RAID (2)

Esta tcnica es conocida como soft RAID. Es importante recalcar que el RAID en hardware hace espejos de

Es preferible tratar de hacer arreglos RAID usando hardware, en la medida de lo posible.

discos, a diferencia del RAID en software hace espejos de particiones.

Si nuestro servidor no tiene una controladora de discos que permita crear el arreglo podemos recurrir a hacerlo mediante el sistema operativo, sacrificando algo de rendimiento en pro de la redundancia.

Instalacin con soft RAID (3)


El proceso empieza de manera idntica a una instalacin normal hasta el momento de seleccionar el tipo de particionamiento Ahora seleccionamos diseo personalizado

Instalacin con soft RAID (4)


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

Instalacin con Soft Raid (5)


Tamaos de Discos:
1era Particin: 100 MB para el boot. 2da Particin: El doble del tamao del RAM del sistema para swap ( en este ejemplo el RAM es de 512 MB ). 3era Particin: Debe ser completada con el espacio disponible

Instalacin con soft RAID (6)


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".

Instalacin con Soft RAID (7)

Instalacin con soft RAID (8)

Imagen del proceso para la 2da particin swap

Imagen del proceso para la 3era particin (seleccionamos ocupar

todo el espacio disponible).

Instalacin con Soft RAID (9)

Instalacin con soft RAID (10)


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

Al final tendremos 3 particiones en cada disco. No se preocupe por el orden de cada particin se re-ordenarn cuando configuremos el 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 /.

Instalacin con Soft RAID (11)


Tipo de Sistemas de Archivos: Particin boot = seleccione ext3 particin swap= seleccione swap, y seleccione ext3 para la particion root Niveles de RAID: Seleccione RAID I para todas las particiones Miembros del RAID: Escoja el par de particiones que han sido creadas en cada uno de los discos respectivamente

Instalacin con soft RAID (12)

Ejemplo del espejo en la particin boot

Nota: Es importante seleccionar las particiones correspondientes en la


seccion Miembros del RAID en este ejemplo hda2 y sda2 son las

particiones con 100 MB para boot.

Instalacin con soft RAID (13)


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

instalacin normalmente.

VIRTUALIZACION

Captulo 2

Virtualizacin (1) Virtualizacin


Una maquina virtual simula un sistema fsico con caractersticas de hardware especificas. En un solo servidor se pueden implementar varias m quinas 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.

10

Virtualizacin (2)
En un solo espacio podemos tener varios servidores virtuales sin incrementar el consumo de energia. Eso ha hecho muy populares los servidores del hostep

Virtualizacin (3)

Entre las alternativas que revisaremos estn:

VMware VirtualBox XEN

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 operacion real, lo cual es util previo a una actualizacion y nos sera util en este curso para probar el potencial de Elastix.

VMware (1)
VMware fue fundado en 1998 y es una de las soluciones de virtualizacion con mayor tiempo en el mercado. Desarrollaron un rango amplio de productos, de lo cuales el mas notable es hypervisors un VMM (virtual machine manager) Proporciona la mayor parte del software de virtualizaci n disponible para ordenadores compatibles X86.

VMware (2)
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/

11

VirtualBox (1)
Es un Software de virtualizacin para arquitecturas desarrollado actualmente por Oracle Corporation . Funciona bajo concepto de sistemas tipo Guest instalados en un sistema operativo host, cada uno con su propio ambiente virtual. Sistemas operativos soportados en modo de anfitrion: GNU linux, Mac OS X, OS/2, Microsotf Windows y Solaris/Open Solaris. Sistemas operativos Guest: freeBSD, GNU/linux, OpenBSD, OS/2, Warp, Windows, Solaris, MS-DOS entre otros. x86/amd64

VirtualBox (2)
Desde la versin 4 se distribuye bajo la licencia GNU GPLv2. Un Extension Pack que permite la utilizacin de USB se distribuye bajo una licencia de uso personal y de evaluacin (PUEL). Los discos duros son emulados en tres formatos de imagen: Virtual Disk Image (VDI), VMware virtual machine disk format (VMDK) y

Microsoft Virtual PC VHD.


Esto quiere decir que discos que han sido creados en VMware of Virtual PC pueden ser usados.

Virtual Box (3)


Una imagen ISO puede ser usada directamente sin necesidad de quemarla en CD No es reconmendable usarlo servidores en produccion pero para pruebas es una excelente herramienta Usaremos VirtualBox como parte de este curso para demostrar la funcionalidades de Elastix

Redes en VirtualBox (1)


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.

Pagina web: http://virtualbox.org/

Adaptador puente: Simula redes. Cuando est habilitado,


VirtualBox conecta uno de los dispositivos de red e intercambia paquetes directamente.

12

Redes en VirtualBox (2)


Red interna: Sirve para simular redes con otras m quinas virtuales Adaptador solo-anfitrin: La maquina virtual es vista como otra maquina en la red.

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

Controlador genrico: usado para compartir una interfaz de red


genrica. Un ejemplo es la interconexin entre dos maquinas virtuales ubicados en diferentes hosts.

Con Elastix podemos usar: Adaptador puente y Adaptador solo anfitrion. Para este curso utilizaremos Adaptador puente.

Arquitectura de XEN (1)


XEN se comunica directamente con el hardware a traves 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 demas dominios son conocidos como domU

Arquitectura de Xen (2)

13

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 util si tenemos un servidor VPS remoto con centOS

cargado.

LINUX PARA ADMINISTRADORES DE ELASTIX

Captulo 3

Introduccin

Lnea de Comandos en Linux


Es la interfaz de texto entre el usuario y el sistema operativo. Se puede acceder localmente. Se puede acceder remotamente a trav s del protocolo SSH (Secure Shell). El SSH es un protocolo encriptado.

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.

14

Lnea de Comandos en Linux


Ejemplo terminal Linux de Elastix:

Comandos Basicos

Comandos Bsicos

Sistema de Archivos
Estructura de rbol de directorios Todos empiezan en la raz / Directorios importantes en Elastix: o o o o /etc/asterisk: Guarda la configuracion de asterisk. /var/www/html/: Se encuentra Elastix. /var/lib/msqly: Las bases de datos de msqly /var/log: Los archivos de log

15

Permisos
Todo archivo pertenece a un usuario y a un grupo Los permisos son 3 niveles: usuario, grupo, otros

Permisos: Notacin Octogonal


Los permisos se pueden representar con n meros r=4, w=2 y x=1 Ejemplos: o 766=rwx-rw-rw o 600= rw rwx o 644=rw-r--r--

Los permisos pueden ser de escritura(r), lectura(w) y


ejecucion(x).

Ejemplo: rwx-rw-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.

RPM (1)

RPM (2)
Consultas sobre paquetes instalados Todos paquetes instalados: rpm -qa Todos los paquetes que contengan asterisk: rpm -qa | grep asterisk Rpm tiene problemas de dependencias

Forma tradicional de instalar paquetes Se usa para instalar y desinstalar paquetes: o Instalar: rpm -ivh paquete.rpm o Desinstalar: rpm -e paquete

16

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

INSTALANDO ELASTIX

Laboratorio 1

LINUX PARA ADMINISTRADORES DE ELASTIX

Laboratorio 2

ELASTIX: GENERALIDADES

Captulo 4

17

Qu es Elastix? (1)

Qu es Elastix? (2)
Basada en Linux (CentOS), Asterisk, FreePBX, Hylafax, Postfix

Una solucin de servidor de comunicaciones unificadas: telefona, fax, IM, email, colaboracin.

y Openfire. Adems de otros paquetes de cdigo abierto. Rpido crecimiento, 1000.000 descargas hasta Noviembre de

Es Software Libre. Se distribuye como una imagen ISO para quemar en CD. Incluye instalador.

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.

Esquema General

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 n compartida.

18

Breve historia del Proyecto


Lanzado en Marzo de 2006 por la compa a PaloSanto Solutions de Ecuador. Inicialmente no era una distro sino una interfaz de reportacion para llamadas de Asterisk. En Diciembre de 2006 se lanza la primera version 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 lider 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 Web de configuracin 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 avanzada Reportacin

Sala de conferencias Music-on-hold con soporte mp3s Campaas mercadeo de tele-

Grabacin de llamadas

Personalizacin y desarrollo

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

Licenciamiento de Elastix Interfaz Web de administracin


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.

19

Interfaz Web de administracin (2)


Men System Men PBX
Shutdown Hardware Detector Updates Repositories Packages Backup/Restore Preferences Language Date/Time Themes Currency

Interfaz Web de administracin (3)

Dashboard Dashboard Applet Admin Network Network Parameters DHCP Server DHCP Client List Assign IP Address to Host Users Groups Group Permissions

PBX Configuration Operator Panel Voicemail Monitoring Endpoint Configurator Conference Batch of Extensions

Tools Asterisk-Cli Asterisk File Editor Text to Wav Festival Recordings Flash Operator Panel VoIP Provider

Interfaz Web de administracin (4)


Men Email

Interfaz Web de administracin (5)


Men Fax

Domains Accounts Relay Webmail Antispam

Remote SMTP Email list Email stats Vacations

Virtual Fax List Fax Clients New Virtual Fax Fax Viewer Send Fax Email Template Fax Master

Menu Agenda
Calendar Address Book

Menu IM
Openfire

20

Interfaz Web de administracin (6)


Menu Reports

Interfaz Web de administracin (7)


Men Desplegable

CDR Report Channels Usage

Billing Summary Rates Billing Report Destination Distribution

Billing Setup Asterisk Logs Graphic Report

Extras Addons
vTigerCRM Calling Cards Admin Agent Customer Downloads Softphones Fax Utilities Instant Messaging

My Extension
Settings

Security
Firewall Firewall Rules Define Ports Audit Weak Keys Advanced Settings

Interfax Web de administracin (8)


Modulo Add-ons: funcionalidad adicional disponible en un solo 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

21

Fundamentos de FreePBX (1)


Software de configuracion de Asterisk. Integrado en la distribucin Elastix. Genera los archivos de configuracion de Asterisk:

o Incluye el plan de marcado


o Basados en la configuracion ingresada por el usuario.

Capitulo 5

FUNCIONAMIENTO INTERNO DE FreePBX

Fundamentos de F reePBX (2)

Fundamentos de FreePBX (3)


Dos pasos para la Configuracion: Guarda la informacion en una base de datos de configuracion En el caso de Elastix el motor de base de datos es MySQL Convierte la informacion de la base de datos en archivos de configuracion a traves de parsing

22

Organizacin de archivos (1)

Organizacin de archivos (2)

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 (1)
Escrito en PHP Genera el plan de marcado a partir de la informacin almacenada en la base de datos. Programa ejecutable desde la linea de comandos.

23

retrieve.conf (2)
Se ejecuta a travs de un script PHP, cada vez que se da clic en la barra roja de FreePBX (Apply Configuration Changes Here ).

dialparties.agi (1)
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 configuracion de la extensin.

Esta operacion sera muy frecuente en la mayoria de las configuraciones que realicemos en el menu de FreePBX.

dialparties.agi (2)
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 dialparties.agi est ubicado en /var/lib/asterisk/agi-bin/

Mdulo de FreePBX: Estructura

24

Cmo se embebe en Elastix? (1)


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

Cmo se embebe en Elastix? (2)


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.

Cmo se embebe en Elastix? (3)


Archivo /var/www/html/config.php Este archivo recibe las peticiones hechas desde mdulos de freePBX.

Grfico ilustrativo de FreePBX embebido


WRAPPER Obtiene el contenido de mdulos de FreePBX pero sin estilos

Lo que hace es redireccionar las peticiones al mdulo pbxadmin de Elastix e incluir el index.php del framework Elastix.

Mdulo pbxadmin de Elastix Mdulos de FreePBX Hacen las peticiones al config.php ubicado en la raz

Redirecciona a

3
Redirecciona las peticiones a

Index.php Framework Elastix

Conf: php

25

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.

CONFIGURACIN BSICA DE ELASTIX

Captulo 6

Configuracin de Red Ingreso a Elastix va Web


Ingresar con los siguientes datos Usuario: admin o o o Elastix utiliza DHCP por defecto En la mayor a 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.

Password: La clave de admin registrada durante la instalacin.

26

Creando una extensin


se pueden crear extensiones: sip, iax, zap, dahdi y custom SIP: protocolo estndar para terminales de voz/ip. Soportado por la mayor a de telfonos de ip

Ejemplo para crear extensin SIP


Para crear una extension ingrese a: PBX PBX Configuration extensiones Seleccione: Generic SIP Device Como mnimo debe ingresar: n mero de extensin, display name y el secret El mode DTMF (dtmfmode) de la extensin y telefono debe ser el mismo.

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 l nea externa a una extensin.

Ejemplo para crear extensin SIP


El dtmfmode predeterminado es: rfc2833 Otras opciones para el modo rfc son: o info o inband o auto

Ejemplo: Configuracin de Softphone


La configuracion 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 grafica: configuracin de cuenta en el softphone Zoiper

27

Configuraciones generales
Configuraciones importantes.

Colas (1)
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

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 (2)
Estrategias de marcado: Aleatorio: Timbra aleatoriamente Con memoria: Timbra a cada agente de manera secuencial Linear: Timbra a los agentes en el orden especificado Wrandom: Timbra las extensiones de los agentes e manera aleatoria pero utilizando una penalidad como medida de probabilidad.

Colas (3): Configuracin Bsica


Queue number: El numero por el que se podra llamar a la extension. Queue name: El nombre de la cola que usaremos para identificar en la interfase administrativa.

Queue password: Clave que deber ingresar un agente dinamico.


CID name prefix: Como un agente puede logonearse en varias colas al mismo tiempo, es util colocarle un prefijo al Caller ID para que cuando el agente vea la llamada entrante en el telefono sepa a que cola pertenece la llamada. Static Agents: Se lista las extensiones a agentes y su prioridad en la cola.

28

Colas (4): Configuracin Bsica


Max callers: El numero mximo de personas que esperan en una cola si todos los agentes estan ocupados. Join Empty: Se puede permitir que la cola funcione sin agentes. No se recomienda. Leave when empty: Se pone yes si se quiere sacar a los agentes Ring strategy: Existen 6 tipos de estrategias: ringall, leastrecent, fewestcalls, random, rrmemory, linear, wrandom.

Colas (5): Configuracin Bsica


Wrap-up-time: Tiempo entre llamadas exitosas por agente Call Recording: Opci n para grabar llamadas Fail Over Destination: Destino a donde van las llamadas entrantes no contestadas

IVR (1) IVR (2): Grabar o Subir Sonido


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

Para grabar o subir un sonido se debe ingresar a PBX PBX Configuration Grabaciones del Sistema

29

IVR (3): Grabar o Subir Sonido


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.

IVR (4): Grabar o Subir Sonido


Si desea grabar desde un telfono ingrese el numero 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 (5): Crear IVR


Ir a PBX PBX Configuration IVR clic en A adir IVR Configurar las siguientes variables: Cambiar nombre: Asignamos un nombre al IVR Tiempo de espera: Tiempo de espera, en segundos, antes de ir al destino por defecto. Habilitar marcacin directa: Permitir marcar directamente a extensiones Anuncio: Seleccionamos un anuncio previamente grabado o cargado en el sistema.

IVR (6): Crear IVR


Se agregan los n meros de opcion y sus destinos.

La opcion t sirve para timeout La opcion i para opciones equivocadas Una vez concluido hacemos clic en Guardar

30

IVR (7): Crear IVR


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.

Salas de conferencia (1)


o o Una sala de conferencia permite hablar a 3 o m s personas simultneamente. Se pueden hacer conferencias con extensiones locales y numeros remotos. Existen 2 tipos de salas de conferencias: Permanentes y temporales. De ser necesario se pueden proteger con clave.

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 (2): temporales


Se crean por un tiempo definido y desaparecen Para crear se debe ingresar a PBX Conference Ejemplo de configuracin:

Salas de conferencia (3): Estticas


Se crean para uso permanente Ejemplo de Configuracion: Ir a PBX PBX Configuration Conferencias N mero 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 opcion esperar al administrador.

31

Salas de conferencia (4): Estticas

Parking (estacionamiento)

Opciones de la conferencia:

o o

Sirve para colocar una llamada en hold y retomarla desde otra extensin. Se transfiere la llamada a una extensin X y se recupera en un n mero asignado dentro del lote: Ejemplo: En la llamada presione: ## 70 # ; escuchar el numero de estacionamiento usualmente 71, 72, 73. Luego usted puede recuperar la llamada desde una extensin diferente marcando el numero que escucho (ejemplo 71). Para configurar se debe ir a PBX PBX Configuration Estacionamiento.

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 Configuracion Msica en Espera. Es recomendable usar .WAV estar codificado en PCM, 16 bits y a 8000Hz. Mp3 podr 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.

32

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.

Flash Operator Panel (2)


Pantalla del FOP:

Elastix Operator Panel

Captulo 7

CONFIGURACIN DE TELFONO IP

33

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 se al de la voz en paquetes de datos que ser n enviados en la red IP, en lugar de utilizar una conexin de red telefnica.

Configuracin de telfono IP (1)


Para configurar un telfono IP debemos tener en cuenta tres aspectos: 1. Configuracion de red 2. Registro del dispositivo con el servidor Elastix 3. El Tel fono IP apropiado Para ilustrar de mejor manera los puntos mencionados, utilizaremos un telfono Yealink SIP-T22P.

Configuracin de telfono IP (2)


Configuracin de red o La configuracin de red puede realizarse por DHCP (lo ms comn) o se puede asignar una direccin IP esttica. DHCP o Mediante esta opcin, el telfono obtendr una direccin IP desde un servidor DHCP ubicado dentro de la red local. o Elastix puede ser nuestro servidor DHCP, si no se cuenta con uno en la red local.

Configuracin de telfono IP (3)

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 mascara de red y la puerta de enlace en el caso de que su telfono se encuentre en otro segmento de red.

34

Configuracin de telfono IP (4)


Configuracin de telfono IP (5)


Para configurar la extension debe ir a Cuenta. El telfono Yealink SIP-T22P puede ser configurado con 3 cuentas. La informacin bsica necesaria para la configuracion es: Lnea Activa: Habilita la cuenta

La configuracion de Tel fonos Yealink SIP-T22P o cualquier otro modelo de Yealink se puede realizar ingresando a un web browser colocando la direccin IP del telefono. 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 mas adelante.

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

Configuracin de telfono IP (6)


Interfaz de administracin web de Yealink

Aprovisionamiento
El aprovisionamiento permite la configuracion en lote de telfonos IP. Este proceso se realiza desde la interfaz web de Elastix y su principal herramienta es el modulo de configuracion de Endpoints (Endpoint Configurator). El proceso adecuado es: Creacin de extensiones Habilitar los telfonos IP para el aprovisionamiento Deteccin de los dispositivos en la red Asignacin de extensiones desde la interfaz.

o o o o

35

Aprovisionamiento: Endpoint Configurator (1)


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 cuales se pueden configurar.

Aprovisionamiento: Endpoint Configurator (2)


Actualmente Elastix soporta las siguientes marcas:

Aastra, Atcom, AudioCodes, Cisco, Grandstream, Polycom, Siemens, Snom, Yealink y Zultys.

Linksys,

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 diapositiva siguiente.

Aprovisionamiento: Endpoint Configurator (3)

Aprovisionamiento: Endpoint Configurator (4)


Para la mayor a de telfonos, el Endpoint Configurator generar un archivo de configuracion 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 configuracion de los telfonos para hacer el aprovisionamiento va tftp desde Elastix.

36

Aprovisionamiento: Habilitacin de Telfonos IP (1)


o o o En la actualidad la mayor a de las marcas de tel fonos IP permiten configuracion para aprovisionamiento. Hay algunas marcas (e.g. Atcom) en que aprovisionamiento no requiere de configuracion previa. Para habilitar tel fonos Yealink, debemos configurar los siguientes par metros desde la interfaz administrativa del telfono: Ir a: Actualizar Advanzado Configurar URL: direccin IP del Servidor Elastix Check New Config: Encendido.

Aprovisionamiento: Habilitacin de Telfonos IP (2)

Aprovisionamiento: Asignacin de extensiones (1)


1. En la interfaz web de Elastix ir a PBX. 2. Luego Endpoint Configurator . 3. Hacer clic en: Descubrir Endpoints en esta Network. 4. En la columna Configurar, marcar la casilla correspondiente. 5. En la columna Modelo, elegir el modelo correspondiente.

Aprovisionamiento: Asignacin de extensiones (2)


6. En la columna Extensin 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.

37

Aprovisionamiento: Asignacin de extensiones (3)

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.

X-Lite Counterpath Zoiper Softphone

Configurando un Softphone (1)


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.

Configurando un Softphone (2)

38

Configurando un Softphone (3)


La informacin requerida es: Domain: La IP o nombre de dominio del servidor Elastix. Username: 5678

Configurando un Softphone (4)

Password: 5678
Caller ID Name: El nombre que aparecer en los telefonos que reciban nuestras llamadas. Despues 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.

Captulo 8

CONFIGURACIN BSICA DE ELASTIX

Laboratorio 3

CONFIGURACIN DE HARDWARE

39

Tipos de tarjetera
Esta tarjetera est disponible tanto para interfaces telefnicas analgicas como digitales. Dentro de cada una de estas categoras existen las siguientes subcategoras:
Analog: FXO FXS Digital: E1/T1/J1 BRI

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 tarjeter a. Los siguientes son los modelos soportados oficialmente a la fecha:

Hardware modular
Existen fabricantes que disean su hardware de manera modular, de tal forma que pueda ser expandible.
ranuras para mdulos
Conexin Fuente de alimentacin

Puertos
Mdulo FXO (rojo) Mdulo FXS (verde)
Sangoma TMD Card Model A20101

La lista es actualizada constantemente enhttp://elx.ec/ehcp

40

Instalando una tarjeta de telefona


Esto no involucra ninguna tarea complicada, solo las precauciones obvias al instalar tarjetas electr nicas en un computador. Luego de encender el equipo podemos ir a consola y ejecutar el comando lspci para ver el hardware enlistado.

Deteccin de hardware (1)


Una vez que la tarjeta ha sido instalada es hora de detectarla. En versiones muy antiguas de Elastix esta tarea se hace a manualmente ejecutando un comando desde la consola del equipo. Actualmente se cuenta con una interfaz Web que detecta el hardware automticamente y nos muestra grficamente el hardware detectado. Esta opcion podr encontrarse en el Men System Hardware Detector

Nota: En caso de instalar hardware FXS es muy comun que se requiera conectar un cable de poder a la tarjeta pues hay que recordar que las interfaces FXS deben proveer potencia el ctrica a los dispositivos que se conecten a ella.

Deteccin de hardware (2)


Para detectar una tarjeta hacemos clic en Avanzado y seleccionamos la opcion Reemplazar el archivo chan_dahdi.conf. Despus debemos dar clic en Detect New Hardware y despus de algunos segundos, el proceso estar finalizado.

Deteccin de hardware (3)


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.

41

Deteccin de hardware (4)


Para la deteccin de tarjetas que usan Dahdi simplemente se debe seleccionar la opcion 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.

Deteccin de hardware (5)


Este accion 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 par metros que pueden diferir de la realidad. Se puede cambiar estos par metros usando la interfaz web o mediante consola. A continuacion explicaremos como realizar estas configuraciones por consola.

Configuracin Span: Bajo Nivel (1)


Un span es un grupo de canales digitales. El span se puede configurar en el archivo /etc/dadhi/system.conf. Usualmente un span representa un puerto digital de la tarjeta. Por ejemplo, si la tarjeta contiene 4 puertos E1 entonces usualmente deber amos definir 4 spans, uno por cada puerto. Un span define en una sola l nea, la cual tiene el siguiente formato:

42

Configuracin Span: Bajo Nivel (2)


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.

Configuracin Span: Bajo Nivel (2)


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 TCarrier 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.

Configuracin Span: Bajo Nivel (4)


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.

Configuracin Span: Bajo Nivel (5)


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.

43

Configuracin Span: Interfaz Web (1)


En la interfaz web tenemos las siguientes opciones: Configuracion de Span y Par metros de Span. En Par metros de Span podremos configurar el timing source, LBO, Framing y Coding. Tambien podemos seleccionar el tipo de tarjeta T1/E1 (para tarjetas que soporten modo de seleccion por software). En la Configuracion de Span podemos seleccionar por cada canal el software de cancelacion de eco.

Configuracin Span Interfaz Web


Tarjeta detectada con formato TI

Cambio de formato a E1

Troncalizacin: chan_dahdi.conf (1)


Asterisk cuenta con un modulo llamado chan_dahdi que sirve para conectarse con los drivers de DAHDI y de esta manera conectar Asterisk con hardware telefnico. Este modulo 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 l neas telefnicas definidos en el archivo system.conf que configuramos antes. Estos canales se pueden agrupar en troncales troncales.

Troncalizacin: chan_dahdi.conf (2)


La siguiente imagen muestra el archivo chan_dahdi.conf:

44

Troncalizacin: chan_dahdi.conf (3)


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.

Laboratorio 4

CONFIGURACIN DE HARDWARE

Qu es Asterisk?

Es un sistema de telfono a basado en software libre que proporciona todas las funcionalidades que se espera de una central telefnica (PBX). Esto hace posible conectar un n mero determinado de telfonos para hacer llamadas entre s y conectar a un proveedor de VoIP PSTN. As tambin proveedores PSTN de telefona digital y anloga usando hardware especializado, esto es tarjetas telefnicas FXO/FXS, ISDN pri/bri, entre otras.

Captulo 9

ASTERISK ESSENTIALS

45

Breve Historia de Asterisk

Funcionalidad de Asterisk (1)

Asterisk fue creado por Mark Spencer quien es su principal desarrollador. Al ser Software libre, tiene tambin una amplia comunidad de desarrolladores que contribuyen a corregir errores y a adir novedades y funcionalidades. Mark haba creado en 1999 la empresa "Linux Support Services" con el objetivo de dar soporte a usuarios de Linux.

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, transferencias, captura, msica en espera Entre muchas otras funcionalidades.

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 (2)


Asterisk tambin soporta mltiples protocolos y codecs.
PROTOCOLOS CODECS ADPCM IAXTM (Inter-Asterisk Exchange) 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

Funcionalidad de Asterisk (3)


Asterisk soporta diferentes sealizaciones y protocolos para la interconexin con sistemas de telefona tradicionales.
Sealizacin E&M E&M Wink Feature Group D FXS FXO GR-303 Loopstart Groundstart Kewlstart Soporte para MF y DTMF Se alizaci n Robbed-bit (RBS) MFC-R2 (a traves de parches de codigo) Protocolos PRI 4ESS BRI (ISDN4Linux) DMS100 EuroISDN Lucent 5E National ISDN2 NFAS

46

Encendido y apagado de Asterisk


Asterisk cuenta con scripts ubicados en /etc/rc.d/init.d/asterisk y podemos 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 adems otros servicios necesarios para ciertas funcionalidades Su uso es:

Estructura de directorios de Asterisk


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 Incluye sonidos que Asterisk utiliza como prompts de voz /var/lib/asterisk/sounds /var/spool/asterisk/ /var/run/ /var/log/asterisk/ archivos generados por Asterisk durante su operacin normal (tales como grabaciones y voicemails) archivos PID Aqu residen los archivos de log de Asterisk como los CDRs o el /var/log/asterisk/full

o amportal start inicia asterisk o amportal stop detiene asterisk

Mdulos de Asterisk (1)


Asterisk utiliza mdulos para extender su funcionalidad. Estos m dulos residen en la carpeta /usr/lib/asterisk/modules/ (32 bits) /usr/ lib64/asterisk/modules/ (64 bits). Son archivos con extension .so Es posible controlar estos modulos desde el archivo modules.conf, en la carpeta /etc/asterisk. Este archivo controla cuales mdulos se cargan o no (load, noload). Adem s puede controlar el orden en que se cargan con la opcion preload .

Mdulos de Asterisk (2)


Por defecto en elastix se cargan todos los mdulos que estan 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 cargue el mdulo. load => format_ogg_vorbis.so ; Hace que se cargue el mdulo.

preload => res_config_mysql.so ; Hace que se cargue primero ese mdulo

47

DAHDI
Dahdi es, bsicamente, un conjunto de drivers para controlar hardware telefnico, principalmente tarjetas. Estas tarjetas son como cualquier otra tarjeta de expansion de una computadora pueden usar bah as PCI, puertos USB, etc. Dahdi tiene su propio /etc/dahdi/system.conf archivo de configuraci n

Historia del proyecto Zaptel


En el ao 2000 Jim Dixon lanza el proyecto Zaptel bajo licencia GPL. El nombre es una abreviacin de Zapata Telephony Project. Lo nombra as en honor a Emiliano Zapata, hroe de la revolucin mexicana. Inicialmente Zaptel contena drivers para tarjetas Tormenta fabricadas por Zapata Telecom. Digium comienza 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 Archivos de configuracin


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 fsicos hacia canales tipo DAHDI, estos canales son usados por Asterisk.

Los archivos se encuentran en /etc/asterisk


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.

48

Plan de marcado (dialplan)

Dialplan: Contextos

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.

Agrupan la lgica del plan de marcado. Pueden incluir otros contextos con la clausula 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 simbolos [ ]. Existen dos contextos reservados [globals] y [general].

Dialplan: Extensiones
Son lineas del plan de marcado. Son instrucciones llamadas extensiones. Tienen la siguiente sintaxis: exten => nombre_extension, prioridad, aplicacin Una l nea del plan de marcado es una serie de lgica del plan de marcado. Se puede crear la lgica necesaria para un marcado especifico.

Dialplan: Extensiones (Nombre_extensin)


Es un identificador numrico de la extensin. Se lo puede asociar al n mero 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 n mero de extensin. Por ejemplo, cuando este en el IVR de bienvenida.

49

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 contextos. permiten realizar ejecuciones entre

Pueden recibir par metros para su ejecucin.

Dialplan: Variables (1)


Dialplan: Variables (2)

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 .

50

Dialplan: Variables (3)


Predefinidas: Asterisk administra algunos nombres de variables con nombres predefinidos

Aplicaciones (1)
Answer o Sintaxis: Answer ([delay]) o Contesta un canal si este esta timbrando, recibe el parmetro delay que indica el tiempo en milisegundos antes de contestar. Background o Sintaxis: Background(filename1[&filename2...][|opciones[|langove rride] [|context]]) o Reproduce un listado de archivos mientras Asterisk continua ejecutando el plan de marcado. o Aplicacin usada para reproducir el mensaje de IVR.

o ${CALLERID(all)}, ${CALLERID(name)}, ${CALLERID(num)}, ${CHANNEL}, ${CONTEXT}, ${EPOCH}, ${EXTEN}, ${SIPUSERAGENT}, ${UNIQUEID}, Estas variables almacenan cierta informacion dependiendo del comportamiento de la llamada u otros factores.

Aplicaciones (2)
Playback o Sintaxis: Playback(filename1[&filename2...][,options]) 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.

Aplicaciones (3)
Goto o Sintaxis: Goto([[context|]extension|]priority) o Salta la ejecucin del plan de marcado a un contexto, extension o prioridad indicada. Si se pasa un solo par metro se entiende que es una prioridad del mismo contexto. Dial o Sintaxis: Dial(type/identifier, timeout, options, URL) o Marca un canal especificado y lo vincula con el canal corriente.

51

Asterisk C LI , L(1)
Es s l nombre de la consola de Asterisk . Lnea de comandos para controlar Asterisk directamente. Para ingresar a la consola se ejecuta el comando asterik - r Cuando se obtiene un prom t I>, , se pueden ejecutar comandos en Asterisk. Provee informacin en tiempo real actividad de Asterisks.

Asterisk CLI (2)

Permite controlar el grado de detalle de la informacin, para ello se usan los comandos: Core set debug N Core set verbose N Mientras mas alto sea el nivel de las variables debug N y verbose N m s detallada ser la informacin mostrada. Estos comandos se deben utilizar para tareas de diagnostico.

Laboratorio 09

Captulo 10

CONFIGURACIN DE HARDWARE

PLAN DE MARCADO AVANZADO

52

Manipulacin de Variables

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

Variables disponibles en Macros


A mas de las definidas por el usuario ${ARGn} se pueden usar las siguientes variables
Nombre de la variable ${MACRO_CONTEXT} ${MACRO_EXTEN} ${MACRO_PRIORITY} Descripcin El contexto de la extensi n desde donde se llam a la macro La extensi n desde donde se llam a la macro La prioridad en la extensi n donde se llam a la macro

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 par metros son invocados como: ${ARG1}, ${ARG2},.

53

AstDB
Pequea base de datos accesible desde el plan de marcado Agrupa informacin por familias. Familias importantes: AMPUSER y DEVICE Aplicaciones importantes:
Aplicacin DB_DELETE DBdeltree var=${DB(F/K)} Set(DB(F/K)=1) Descripcin Elimina una clave de la base de datos Elimina una familia de la base de datos Obtiene un valor de la base de datos. Para esto debemos proporcionar la clave correspondiente Almacena un valor en la base de datos

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 FreePP.

Macros de Apoyo

Contextos de Entrada
Son los contextos desde donde se reciben llamadas
Nombre Descripcin Por aqu ingresan las llamadas desde la PSTN o tambi n desde una troncal VoIP. Este contexto es equivalente a from-trunk [from-pstn] Responde a usuarios SIP externos [from-sip-external]desautorizados con un mensaje de congesti n y luego cuelga [from-internal] [from-zaptel] Por aqu ingresan las llamadas realizadas desde extensiones internas Para llamadas que ingresan desde dispositivos DAHDI

54

Conocimientos tiles
Determinar si una variable esta vacia

ej. exten => s,1,GotoIf($[${LEN(${VARIABLE_TEST})} > 0]? destino) Obtener la fecha actual: ej. exten => s,4,AGI(recordingcheck,${STRFTIME(${EPOCH},, %Y %m%d-%H%M%S)},${UNIQUEID}) Sobrescribir extensi n.conf.- Para sobreescribir un contexto definido se puede utilizar el archivo: extensions_override_freepbx.conf

Laboratorio 6

PLAN DE MARCADO AVANZADO

AGI (1) (Asterisk Gateway Interface)


Es una manera de interactuar con Asterisk desde un programa de linea 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.

Captulo 11

ASTERISK: AGI & AMI

55

AGI (2) (Asterisk Gateway Interface)


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 (1)


Los scripts AGI se comunican con Asterisk a travs de STDIN, STDOUT y STDERR Por tanto, los scripts AGI se debern poder ejecutar desde la linea de comandos Cuando son ejecutados a travs de Asterisk los permisos son muy importantes.
# chown asterisk.asterisk test.agi # chmod 755 test.agi

Ejecucin de scripts AGI (2)


Para invocar al script desde el dialplan podemos utilizar la funcin AGI ().
exten => 6789,1,Answer exten => 6789,2,AGI(script_test.agi)

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.

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.

56

Algunos comandos AGI tiles

Ejemplo AGI sencillo


Veamos lo sencillo que es usando un ejemplo escrito en PHP. Llamaremos al script simple.agi.

say digits: Sintetiza y reproduce nmeros. til 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.

Ahora pongmoslo accesible desde el dialplan cuando se marque el nmero 6789.

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

57

Probando desde telnet (1)


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:

Probando desde telnet (2)


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.

58

Captulo 12
Laboratorio 7

AGI & AMI

ELASTIX: CONFIGURACIN AVANZADA

Ruteo de Llamadas
Rutas Entrantes:
Esta opcin permite configurar el destino de las llamadas que ingresan por una determinada troncal.

Ruteo de Llamadas
Rutas Salientes:

Cuando una llamada entra, Asterisk puede buscar matchear el DID el CallerID de la troncal.

Mediante las rutas salientes podemos indicar por qu troncal o troncales deben ser enviadas las llamadas.

59

Troncales Troncal DAHDI


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 Parmetros a configurar en una troncal DAHDI:

Troncales de tipo IAX2 y SIP (1) Troncales de tipo IAX2 y SIP (2)
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 configuracion 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

60

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:

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

Tarifacin (2)
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.

Tarifacin (3)
Crear Tarifa 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.

61

Tarifacin (4)
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

Tarifacin (5)
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: oFecha Inicio: Fecha que queremos configurar como inicial para el reporte. oFecha Fin: Fecha final para el reporte. oCampos de filtro adicional son: Tarifa aplicada, Duracin, Rate value, Fuente, Destino, Canal destino, Account Code.

Tarifacin (6)
Reporte de Facturacin.

Tarifacin (7)
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: oFecha Inicio: Fecha que queremos iniciar la revisin de llamadas. oFecha Fin: Fecha final para la revisin. oCriterios de distribucin: Distribucin por tiempo, distribucin por nmero de llamadas, distribucin por costo.

62

Tarifacin (8)
Distribucin de Destinos

Reportes: CDR (1)

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. Los reportes son exportables a CSV, XLS (para acceso lectura/ escritura), o PDF (lectura-nicamente) formatos.

Reportes: CDR (2)


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.

Reportes: CDR (3)

63

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.

Configuracin DISA (1)


DISA permite que los usuarios puedan acceder telefnicamente a su servidor Elastix desde fuera y obtener un tono "interno" de marcado. E.g. podr realizar llamadas internacionales, a telfonos mviles, entre otros.

DISA (Direct Inward System Access)

Configuracin DISA (2)


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.

Configuracin DISA (3)


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.

64

Condiciones de tiempo (1) Condiciones de tiempo (2)


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: 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.

A travs de troncales SIP (1)

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.

Captulo 13

INTERCONEXIN CON ELASTIX REMOTOS

65

A travs de troncales SIP (2)


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:
o La troncal o Las rutas salientes en cada Elastix

A travs de troncales SIP (3)


Escenario:

A travs de troncales SIP (4)

A travs de troncales SIP (5)


Definiendo la troncal

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.

Ejemplo de configuracin del peer:


host=dynamic secret=welcome trunk=yes type=friend

Luego definimos los detalles del peer.


Configuracin que se repite en ambos servidores Elastix. Como se ve hemos definido como secret la palabra welcome.

66

A travs de troncales SIP (6)

A travs de troncales SIP (7)

Register String Definimos el register string siguiendo el especificado anteriormente: En este caso para la central Elastix A debera ser:

formato

Una vez establecida esta configuracion en ambos servidores podemos verificar en si se encuentran registradas las troncales. En el Asterisk CLI mediante el comando: sip show registry y deber amos ver algo como esto:

elastix*CLI> sip show registry Host Username Refresh State Reg.Time 192.168.1.240:5060 elastixB 105 Registered Fri,11 Apr 2008 10:29:43

A travs de troncales SIP (8)


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:
context=from-internal host=192.168.1.240 insecure=very type=friend

A travs de troncales SIP (9)

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

67

Conexin con proveedores VoIP (1)


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.

Conexin con proveedores VoIP (2)


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. o La troncal o Las rutas salientes en cada Elastix

Para implementar esto se requiere definir dos cosas:

Conexin con proveedores VoIP (3)


Escenario:

Conexin con proveedores VoIP (4)


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.

68

Conexin con proveedores VoIP (5)


Definiendo la troncal En nuestro caso el VSP nos pide que configuremos la troncal de la siguiente forma:

Conexin con proveedores VoIP (6)

Definiendo la troncal Luego agregaremos la cadena de registro que en nuestro caso sera:
mi_usuario:mi_password@voiceprovider.com

Conexin con proveedores VoIP (7)


Definiendo la ruta saliente 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

Conexin con proveedores VoIP (8)


Una vez realizada la configuracion podemos verificar en el Asterisk CLI si se la troncal se encuentra registrada. Usamos el comando: sip show registry y deber amos ver algo como esto:

69

Modulo VoIP Provider (1)


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

Modulo VoIP Provider (2)

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.

Mdulo VoIP Provider (3)

Mdulo VoIP Provider (4)

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.

Posterior a esto revisamos la troncal en PBX PBX Configuration Troncales. Observaremos la cuenta como un SIP Trunk, en este ejemplo: N2P-DRB (sip).

70

Mdulo VoIP Provider (4)


Luego es necesario crear la ruta saliente para esta troncal y podemos empezar a usar el servicio.

Laboratorio 8

INTERCONEXIN REMOTA CON ELASTIX

Captulo 14 Laboratorio 9

CONFIGURACIN DE FACTURACIN

PROTOCOLOS VoIP AL DESCUBIERTO

71

Protocolo SIP

Protocolo SIP

El protocolo SIP (Session Initialization Protocol) es un protocolo de se alizacion (application-layer control) Creado para administrar sesiones multimedia entre dos o mas 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 mas adelante; de lo que s se encarga SIP es de la comunicacin necesaria para establecer una llamada, modificarla, as como para finalizarla.

Protocolo SIP

Sealizacin SIP: Mtodos y Respuestas (1)

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.

72

Sealizacin SIP: Mtodos y Respuestas (2)

Sealizacin SIP: Mtodos y Respuestas (3)

SIP y Asterisk (1)


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.

SIP y Asterisk (2)

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

73

Protocolo IAX: Generalidades (1)


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. o Consume menos ancho de banda o Soluciona mejor problemas de NAT o 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.

Protocolo IAX: Generalidades (2)

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 (1)


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 este ultimo 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 usando IAX (2)

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.

74

Llamada usando IAX (3)

Llamada usando IAX (4)

Estableciendo una llamada

Terminacin de la llamada

Frames IAX

Protocolo RTP (1)

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 esta compuesta en su mayor a por frames tipo Mini cuya virtud es ser ligeros. Esto quiere decir que tienen una cabecera peque a (de 4 bytes), lo cual ayuda a ahorrar ancho de banda. De cuando en cuando se intercambian frames tipo Full, los cuales conllevan adicionalmente informacin de sincronizacin.

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.

75

Protocolo RTP (2)


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 (1)


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.

Protocolo RTCP (2)

Captulo 15

SISTEMA DE CORREO EN ELASTIX

76

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.

Componentes de un sistema de Correo

MTA (Mail Transfer Agent)

MDA (Mail Delivery Agent)

Mediante protocolo SMTP, recibe el mensaje del MUA. Decide a quin debe entregar el mensaje. 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.

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

Si el mensaje est destinado al dominio local, el MTA transfiere el

est en una ubicacin remota o est dirigido a otro dominio.

mensaje al MDA que se encarga de colocarlo en el buzn


respectivo.

77

En Elastix

Configurando el sistema de email (1)


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.

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 (2)

Configurando el sistema de email (3)

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 l a cuenta tiene l a 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.

78

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 . 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 grafica 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 (1)


Postfix Servicio de correo MTA usado por Elastix. Potente, seguro y flexible para configuraciones avanzadas. Postfix

Configuraciones a bajo nivel (2)

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.

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"

79

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: o Marcar Asunto.- Marcara correo como spam con un prefijo ([SPAM] est configurado por defecto) y lo enviar al buz n de entrada. o Capturar Spam: Marcar el spam con un prefijo, pero lo enviar a una carpeta de spam en lugar del buzon 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: o ClamAV o F-Prot o Avira o Vexira o Entre otros.

Sistema de Fax en Elastix (1)

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.

Captulo 16

FAX EN ELASTIX

80

Sistema de Fax en Elastix (2)


Esquema bsico del sistema de fax

laxmodem (1)
Es una aplicacin que simula un faxmodem mediante libreras DSP (Digital Signal Processing). Esta aplicacin puede ser usada por cualquier programa de envi 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:
/etc/iaxmodem/iaxmodem-cfg.ttyIAX#

laxmodem (2)
El archivo iaxmodem-cfg.ttyIAX# es generado por Elastix como sigue:

Hylafax (1)
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 :

81

Hylafax (2)
El archivo config.ttyIAX# es generado por Elastix como sigue:

Hylafax (3)
Funcionamiento Bsico

Estructura del Sistema de Fax


El Sistema de Fax de Elastix est compuesto de 7 Mdulos: Faxclients faxlist Faxmaster Sendfax email_template faxviewer 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

Base de datos del Sistema de Fax


La base de datos para el sistema de fax se llama fax.db

82

Analizando la librera paloSantoFax.class.php (1)

Analizando la librera paloSantoFax.class.php (2)


Funcin _createFaxSystem

Analizando la librera paloSantoFax.class.php (3)


Funcion _configureIaxmodem

Analizando la librera paloSantoFax.class.php (4)


Funcion _configureHylafax

} }
}

83

Analizando la librera paloSantoFax.class.php (5)


Funcion _writeInittab
.

Analizando la librera paloSantoFax.class.php (6)


Al final de la funcion createFaxSystem se ejecuta los siguientes comandos que hacen que tomen efecto los archivos creados:

} . . . }

Configurando Fax en Elastix (1)


El men de Fax muestra por defecto el listado de Faxes virtuales. En este men podemos ver todas las extensiones de fax creadas.

Configurando Fax en Elastix (2)


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.

Podemos modificar cualquier extensin haciendo clic en ella.

84

Configurando Fax en Elastix (3)


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.

Configurando Fax en Elastix (4)

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

Configurando Fax en Elastix (5)


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 compa a y otro por fax de ccompaa.

Configurando Fax en Elastix (6)

El men template de Email (Email Template) nos permite configurar ciertos par metros del correo que ser enviado con el fax.

85

Protocolo T.38 (1)


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. 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

Protocolo T.38 (2)


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 envi 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.

Laboratorio 12

SISTEMA DE EMAIL

86

Laboratorio 12

Captulo 17

SISTEMA DE FAX

MENSAJERA INSTANTNEA

Protocolo XMPP (1)

Protocolo XMPP (2)

XMPP o Extensible Messaging and Presence Protocol, por sus siglas en ingles, 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 este 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 mas bsico, si dos contactos tienen cuentas creadas en el mismo servidor XMPP, podrn hablar entre ellos.

87

Caractersticas de XMPP (1) Protocolo XMPP (3)

Es abierto: El protocolo de XMPP es gratuito, abierto, publico y comprensible.


Existen mltiples implementaciones de cdigo abierto para Servidores XMPP, as como numerosos clientes y libretas de desarrollo. 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 publica 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 esta 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)

88

Openfire en Elastix (1) Openfire en Elastix (2)


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.

Openfire en Elastix (4) Openfire en Elastix (3)


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).

89

Openfire en Elastix (5)


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

Openfire en Elastix (6)


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

Openfire en Elastix (8) Openfire en Elastix (7)


En esta pantalla administrador. seleccionamos la contrasea del Despus del paso anterior culmina la instalacin y podemos ingresar a la interfaz administrativa.

90

Openfire en Elastix (9)


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

Openfire en Elastix (10)


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

Laboratorio 13

Captulo 18

MENSAJERA INSTANTNEA

MDULO DE CALL CENTER

91

Mdulo de Call Center (1)


Mdulo de Call Center (2)


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 modulo sea mas eficiente y es posible integrar aplicaciones externas. El modulo de Call Center de Elastix es Open Source.

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.

Mdulo de Call Center (3)


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.

92

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 Agentamiento 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.

Marcador predictivo

Marcador predictivo (1)


Es la porcin del Call Center que interacta directamente con las llamadas. Esta implementado como un servicio residente (daemon) escrito en PHP. Se puede iniciar como servicio a travs del comando:
service elastixdialer stop|start

El marcador iniciar cada llamada mediante el uso del comando Originate de Asterisk.

El marcador revisa constantemen las llamadas que han sido colocadas por el y que no hayan recibido un evento OriginateResponse.

93

Marcador predictivo (2)


Si el marcador recibe uma 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. El marcador estimar la duracin media de llamada, para intentar predecir si las llamadas en curso que estn por termina, y colocar proactivamente nuevas llamadas. Esta funcionalidad es configurable.

Marcador predictivo (3)


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

Marcador predictivo (4)


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 modulo permite : Crear Agentes Agregar colas Crear nuevas campa as salientes Crear nuevas campa as entrantes Administracin de breaks Tambin proporciona una interfaz de configuracion que permite iniciar, detener y configurar el marcador predictivo, incluyendo la activacin de depuracin.

94

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: Instalar Call Center (1)


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

Iniciando la operacin de Call Center: Instalar Call Center (2)


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

Iniciando la operacin de Call Center: Creacin de Grupo (1)


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

95

Iniciando la operacin de Call Center: Creacin de Grupo (2)


Iniciando la operacin de Call Center: Creacin de Grupo (3)


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.

Iniciando la operacin de Call Center: Creacin de Usuarios


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

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.

Podemos crear tantos Agentes como necesitemos.

96

Iniciando la operacin de Call Center: Creacin de Agentes (1)


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

Iniciando la operacin de Call Center: Creacin de Agentes (2)

Iniciando la operacin de Call Center: Creacin de Colas (1)


El proceso de creacin de Colas es similar al que vimos

Iniciando la operacin de Call Center: Creacin de Colas (2)

anteriormente. Se diferencia nicamente en que en lugar de colocar extensiones creadas en Elastix, colocaremos los nmeros de los Agentes que 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.

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

97

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 (1)


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.

Consola del Agente (2)

Consola del Agente (3)


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.

98

Consola del Agente (4)


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.

Campaas Salientes (1)

El sistema se alimenta con un archivo que contiene los nmeros telefnicos a marcar. Al activarse la campaa, el sistema marca los nmeros telefnicos de 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, wrandomect).

Campaas Salientes (2)


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 registran 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.

99

Configuracin de Campaas
Existe un men habilitado para cada tipo de campaas:
Outgoing Calls: Campaas Salientes. 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 (1)


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

Configuracin de Campaas: Formularios (2)

Configuracin de Campaas: Formularios (3)


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.

100

Configuracin de Campaas: Clients Ingoing Calls (1)


Configuracin de Campaas: Clients Ingoing Calls (2)


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.

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:

"telefono","cedula/ruc","nombre","apellido

Configuracin de Campaas: Clients Ingoing Calls (3)


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: 1. Si el archivo es hecho en OpenOffice debe ser guardado como Texto CSV (.csv) 2. Si el archivo es hecho en Excel debe ser guardado como Windows Comma Separated (.csv)

Configuracin de Campaas: Clients Ingoing Calls (4)


Una vez creado el archivo con el listado de contactos debemos subirlo en el men Clients: Call Center Ingoing Calls Clients

101

Configuracin de Campaas: Phone List Outgoing Calls (1)


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

Configuracin de Campaas: Phone List Outgoing Calls (2)


1. Si el archivo es hecho en OpenOffice debe ser guardado como Texto CSV (.csv) 2. Si el archivo es hecho en Excel debe ser guardado como Windows Comma Separated (.csv)

Configuracin de Campaas: Configuracin de Breaks (1)

Configuracin de Campaas: Configuracin de Breaks (2)

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.

102

En Campaa: Ingoing Calls (1)

En Campaa: Ingoing Calls (2)


Call Center Ingoing Calls Queues

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.

En Campaa: Ingoing Calls (3)

En Campaa: Ingoing Calls (4)

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.

103

En Campaa: Ingoing Calls (5)


En Campaa: Outgoing Calls (1)


Debemos ir a: Call Center Outgoing Calls Campaigns. Una vez ahi 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.

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 (2)

En Campaa: Outgoing Calls (3)

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.

104

En Campaa: Outgoing Calls (4)


En Campaa: Outgoing Calls (5)


Call Center Outgoing Calls Do not call list

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.

Ingreso de Agente a consola (1)


Un agente debe ingresar primero a Elastix con su usuario y clave

Ingreso de Agente a consola (2)


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 aceso 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.

105

Ingreso de Agente a consola (3) Ingreso de Agente a consola (4)


Una vez en el Call Center, el Agente estar listo para recibir llamadas. Si el agente selecciona un break, no estar habilitado para recibir llamadas.

Iteraccin de Agente (1)


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

Iteraccin de Agente (2)


El agente puede revisar el Script preparado para la campaa en el TAB Dialogo de Llamada.

106

Iteraccin de Agente (3)


El formulario puede ser llenado en el TAB Formulario de llamada

Iteraccin de Agente (4)


El agente puede colgar la llamada o transferirla a otro nmero del plan de marcado interno.

Reportes (1)
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

Reportes (2)

107

Reportes (3)

Reportes (4)

Reportes (5)

Reportes (6)

108

Laboratorio 11

Laboratorio 12

CALL CENTER

CALL CENTER

Extendiendo Elastix (1)

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 modulo de Call Center.

Captulo 19

EXTENDIENDO ELASTIX

109

Extendiendo Elastix (2)

Extendiendo Elastix (3)

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 modulo de Addons.
El modulo 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 solucion por medio del modulo de Addons. Veremos un ejemplo mas instalando el modulo developer.

Extendiendo Elastix (4)

Framework NEO (1)

Es el framework detr s de la interfaz Web de Elastix Un framework es un conjunto de libreras y cdigo para facilitar la programacin y reutilizacion de cdigo Algunas caractersticas interesantes son: Arquitectura Web basada en MVC2

110

Framework NEO (2)

Estructura de archivos en NEO

Continuacin de caractersticas: DesarrolloPOO Concepto e implementacin modular Mantenimiento de idiomas Mantenimiento de la ayuda embebida Soporte ACL

Iniciando el desarrollo (2)


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

Iniciando el desarrollo (2)


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

111

Iniciando el desarrollo (2)


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

Usando mdulo Developer

Es una poderosa herramienta que facilita la creacion de nuevos mdulos de Elastix Consta de cuatro sub-modulos: Constructor de mdulos Eliminar modulo Mantenimiento de idiomas Cargar Men

Builder (1)

Builder: Secciones (2)

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

112

Builder: Tipos de mdulos (3)


Builder (4)

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: 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

Al final del proceso de creacin del nuevo modulo se generar un c digo esqueleto. Este nos servir de gua o plantilla para continuar desarrollando la funcionalidad necesaria

Estos archivos se crear n en la ruta:


A partir de este instante dependemos de nuestros conocimientos de programacin PHP

/var/www/html/modules/<id mdulo>

Ventajas del Builder Eliminar mdulos


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.
HAY QUE TENER MUCHO CUIDADO PUES PODEMOS ELIMINAR UN MDULO TIL POR ERROR!

Nos permite eliminar un modulo determinado de manera sencilla


Debido a su sencilla s es importante remarcar que:

113

Mantenimiento de idiomas (1)


Nos permite administrar los diferentes idiomas de los mdulos en Elastix Tambin nos permite crear nuevos lenguajes

Mantenimiento de idiomas (2)

Las palabras claves o keys siempre estan en idioma ingles


Se puede seleccionar un modulo especifico pues cada modulo puede tener su propio archivo .lang Una vez realizados los cambios desde la interfaz, dichos cambios se guardan en los archivos .lang respectivos

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 (1)

En los ltimos 6 aos Elastix a crecido de una manera estable como distribucin. Este mercado puede resultar atractivo para empresas con ideas de desarrollo que quieran integrar sus soluciones a una plataforma de comunicaciones unificadas. Se cuenta que al menos existen 100,000 potenciales integradores a nivel mundial, fuera de usuarios finales.

114

Desarrollando para Elastix (2)


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:

Recompilando los SRPMs (1)

La manera mas 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/S RPMS/

Un link abreviado es:http://elx.ec/srpms Se debe usar los SRPMs estables mas recientes.

Captulo 20

COMPILANDO ASTERISK

115

Recompilando los SRPMs (2)

Requisitos para el RPM (1)

Un SRPM (Source RPM) es un paquete que contiene la informacin necesaria para construir un RPM. Tales como el c digo fuente del paquete y las directrices usadas para compilarlo e instalarlo en el sistema. Estas directrices se especifican en un archivo llamado SPEC, que usualmente se distingue por su extensin *.spec.

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.

Instalar el SRPM de Asterisk (1) Requisitos para el RPM (2)


gcc-c++ m4 openssl-devel newt-devel libtermcap-devel ncurses-devel postgresql-devel 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 gsm-devel net-snmp-devel spandsp-devel >= 0.0.6 curl-devel wget speex-devel >= 1.2 libxml2-devel mISDNuser-devel mISDN-devel libopenr2-devel mysql-devel zlib-devel /usr/bin/soxmix iksemel-devel libsrtp libgsmat autoconf >= 2.63

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

116

Instalar el SRPM de Asterisk (2)

Construir el RPM de Asterisk (1)

Esta instalacin poblar el directorio /usr/src/redhat que es donde se copiar el c digo 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, A adir funcionalidad nueva a Asterisk, Parchar contra bugs, entre otras cosas.

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: rpmbuild -ba /usr/src/redhat/SPECS/

[root@elastix ~]# asterisk.spec

Construir el RPM de Asterisk (2)


Al final del proceso obtendremos los siguientes RPMs en la carpeta / usr/src/redhat/RPMS/: asterisk asterisk-mISDN asterisk-devel asterisk-addons

asterisk-sounds-es
asterisk-chan_mobile asterisk-sounds-fr Ademas obtendremos un nuevo SRPM en la carpeta /usr/src/redhat/ SRPMS/

117