116

Elastix slide book-ect

Embed Size (px)

Citation preview

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

INSTALACIÓN DE ELASTIX

Instalando desde CD Es recomendable instalar la última versión estable de Elastix disponible en la página del

proyecto.

Para realizar la instalación desde CD, debemos descargar el archivo de imagen (con

extensión iso), y grabarlo en un disco en blanco.

Es importante grabar el iso usando software especializado para este propósito.

muchas veces caemos en el error de descomprimir la imagen y copiar la estructura de

directorios resultantes en un disco, con lo cual NO obtendremos un CD de arranque.

Una vez que tenemos un CD de instalación creado, lo insertamos en la unidad y

procedemos a encender el equipo.

Es importante verificar que el computador esté configurado para arrancar desde CD.

Esto puede ser configurado en el BIOS.

El instalador de Elastix aparecerá en nuestra pantalla.

Una vez que tenemos un CD de instalación creado, lo insertamos en la unidad y

procedemos a encender el equipo.

Es importante verificar que el computador esté configurado para arrancar desde CD.

Esto puede ser configurado en el BIOS.

El instalador de Elastix aparecerá en nuestra pantalla.

Para realizar una instalación estándar basta con presionar ENTER

Advertencia: La instalación estándar borrará completamente el disco duro.

1

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Seleccionamos el idioma para la instalación.

El instalador nos pide seleccionar el esquema del teclado

Seleccionamos el tipo de particionamiento (primera opción).

2

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Confirmamos que se remuevan todas las particiones (Sí).

Revisar/modificar la capa de partiticiones (No).

Configurar interfaces de red (Sí).

3

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Seleccionar que se active al inicio y soporte para IPv4.

Seleccionar ya sea DHCP o configuración manual.

Si se utiliza configuración manual, ingresar la dirección y la máscara.

4

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ingresar la dirección IP de la puerta de enlace y del servidor DNS.

Ingresar el nombre del host.

Seleccionamos el huso horario adecuado.

5

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ingresar la contraseña del usuario root

Esperar hasta que finalice la instalación automática de paquetes.

Ingresamos la contraseña para el usuario root de MySQL (no confundir con usuario

root de linux).

6

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ingresar nuevamente la contraseña de root de MySQL.

Ingresar la contraseña para el usuario ‘admin’ del web GUI de Elastix.

Nota: Esta será además la contraseña para los siguientes servicios: FreePBX, Vtiger, A2Billing y FOP.

Aunque no se menciona esta contraseña es además la contraseña del AMI admin.

Ingresar nuevamente la contraseña ‘admin’ de Elastix.

7

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

La instalación ha sido completada, podremos ingresar a nuestro sistema con usuario

root y su contraseña ingresada durante la instalación.

Instalación con soft RAID RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para

ofrecer redundancia de información.

Dependiendo el número de discos que se disponga y la forma en la que se configure el

arreglo, se pueden obtener diferentes niveles de RAID.

El que se verá a continuación es de nivel 1, en el que intervienen dos discos duros y

uno es espejo del otro.

RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para

ofrecer redundancia de información.

Dependiendo el número de discos que se disponga y la forma en la que se configure el

arreglo, se pueden obtener diferentes niveles de RAID.

El que se verá a continuación es de nivel 1, en el que intervienen dos discos duros y

uno es espejo del otro.

RAID hace referencia a utilizar varios discos duros en arreglo, principalmente para

ofrecer redundancia de información.

Dependiendo el número de discos que se disponga y la forma en la que se configure el

arreglo, se pueden obtener diferentes niveles de RAID.

El que se verá a continuación es de nivel 1, en el que intervienen dos discos duros y

uno es espejo del otro.

8

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Observaremos ambos discos, debemos crear tres (3) particiones en cada uno.

Seleccione la opción "Nuevo”

Tamaños de disco:

1era partición = 100MB para el boot,

2da partición = el doble del tamaño del RAM del sistema para swap (en este ejemplo el

RAM es 512 MB),

3ra partición = debe ser completada con el espacio disponible.

9

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

En cada partición debemos seleccionar "software RAID" como el "Tipo de sistema de

archivos".

Recuerde seleccionar la correspondiente "Unidad admisible", en la imagen del ejemplo

es "hda".

Imagen del proceso para la segunda partición (swap)

Imagen del proceso para la tercera partición (seleccionamos ocupar todo el espacio disponible)

Al final tendremos 3 particiones en cada disco.

No se preocupe por el orden de cada partición se re-ordenarán cuando configuremos

el RAID.

10

Capítulo 1

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Para iniciar la partición en espejos debemos seleccionar la opción "RAID".

Aquí seleccionaremos las particiones que serán miembros del RAID, el "Tipo de

sistema de archivos" y el "Punto de montaje".

Punto de Montaje: partición boot = /boot, swap = no coloque nada, partición "root"

= use /

Tipo de sistema de archivos: partición boot = seleccione ext3, partición swap =

seleccione swap, y seleccione ext3 para la partición "root".

Niveles de RAID: Seleccione RAID1 para todas las particiones.

Miembros del RAID: Escoja el par de particiones que han sido creadas en cada uno

de los discos respectivamente.

Ejemplo del espejo en la partición boot.

Nota: Es importante seleccionar los particiones correspondientes en la sección “Miembros del RAID”. En este

ejemplo hda2 y sda2 son las particiones con 100MB para boot.

Las configuraciones de RAID aparecerán sobre las particiones previamente creadas.

Cuando finalice seleccione "Aceptar" para continuar con la instalación normalmente.

11

Capítulo 2

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

VIRTUALIZACIÓN

Virtualización

Una máquina virtual simula un sistema físico con características de hardware

específicas.

En un solo servidor se pueden implementar varias máquinas virtuales para cumplir

varios servicios.

Esto nos permite la reutilización de hardware existente, lo cual implica ahorro de

recursos.

Nos permite además reducción de costos y una administración global centralizada y

simple.

En un solo espacio podemos tener varios servidores virtuales sin incrementar el

consumo de energía.

Eso ha hecho muy populares los servicios de Hosted PBX, debido a la posibilidad de

virtualizar Elastix en lugar de disponer de un servidor por cliente.

Permite crear un ambiente de pruebas sin afectar la operación real, lo cual es útil

previo a una actualización y nos será útil en este curso para probar el potencial de

Elastix.

12

Capítulo 2

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Entre las alternativas que revisaremos están:

VMware

VirtualBox

XEN

VMware Una máquina virtual simula un sistema físico con características de hardware

específicas.

En un solo servidor se pueden implementar varias máquinas virtuales para cumplir

varios servicios.

Esto nos permite la reutilización de hardware existente, lo cual implica ahorro de

recursos.

Nos permite además reducción de costos y una administración global centralizada y

simple.

VMware Player está creada para usuarios sin licencia para usar Workstation.

Inicialmente no permitía crear máquinas virtuales, pero esta limitación fue removida en

la versión 3.0.1. Está disponible para Windows y Linux.

VMware Server es distribuida gratuitamente para uso no comercial y es la alternativa

para servidores. Se recomienda para pruebas y no para servidores en producción

Página web: http://www.vmware.com/

VirtualBox Es un software de virtualización para arquitecturas x86/amd64 desarrollado

actualmente por Oracle Corporation.

Funciona bajo el concepto de sistemas tipo Guest instalados en un sistema operativo

host, cada uno con su propio ambiente virtual

Sistemas operativos soportados en modo anfitrión: GNU/Linux, Mac OS X, OS/2,

Microsoft Windows y Solaris/OpenSolaris.

Sistemas operativos Guest: FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows,

Solaris, MS-DOS, entre otros.

13

Capítulo 2

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Es un software de virtualización para arquitecturas x86/amd64 desarrollado

actualmente por Oracle Corporation.

Funciona bajo el concepto de sistemas tipo Guest instalados en un sistema operativo

host, cada uno con su propio ambiente virtual

Sistemas operativos soportados en modo anfitrión: GNU/Linux, Mac OS X, OS/2,

Microsoft Windows y Solaris/OpenSolaris.

Sistemas operativos Guest: FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows,

Solaris, MS-DOS, entre otros.

Es un software de virtualización para arquitecturas x86/amd64 desarrollado

actualmente por Oracle Corporation.

Funciona bajo el concepto de sistemas tipo Guest instalados en un sistema operativo

host, cada uno con su propio ambiente virtual

Sistemas operativos soportados en modo anfitrión: GNU/Linux, Mac OS X, OS/2,

Microsoft Windows y Solaris/OpenSolaris.

Sistemas operativos Guest: FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows,

Solaris, MS-DOS, entre otros.

Redes en VirtualBox Es necesario configurar el tipo de red que utilizará Elastix. Existen 6 tipos de redes

No conectado: simula una computadora sin cable de red

NAT: Funciona sólo para acceder a redes externas pero no se puede acceder a la

máquina remotamente

Adaptador puente: Simula redes. Cuando está habilitado, VirtualBox conecta uno de

los dispositivos de red e intercambia paquetes directamente.

Red interna: Sirve para simular redes con otras máquinas virtuales

Adaptador solo-anfitrión: La máquina virtual es vista como otra máquina en la red.

Controlador genérico: usado para compartir una interfaz de red genérica. Un

ejemplo es la interconexión entre dos máquinas virtuales ubicados en diferentes hosts.

Con Elastix podemos usar: Adaptador puente y Adaptador solo anfitrión. Para este

curso utilizaremos Adaptador puente.

14

Capítulo 2

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

XEN Es la alternativa más eficiente de virtualización

Solución recomendada para servidores por su eficiencia

Es lo que utilizan la mayoría de proveedores de hosting de VPS con Elastix

Existe 2 tipos de virtualización: completa y para-virtual

Permite hacer migraciones de máquinas virtuales en caliente

Es software libre: http://www.xen.org/

Arquitectura en XEN XEN se comunica directamente con el hardware a través de un componente llamado

Hipervisor.

Cuando XEN arranca levanta automáticamente un dominio conocido como dom0

Dom0 es un dominio privilegiado donde se administran otros dominios.

Los demás dominios son conocidos como domU

Instalar Elastix en XEN Existen varias formas en las que se puede instalar Elastix con XEN

Se necesita un servidor XEN sobre el cual se instalará Elastix. CentOS es muy buena

opción para este servidor

Se puede instalar con virtualización completa o paravirtual

Se puede instalar sobre una máquina virtual de CentOS 5.x. Esto es muy útil si

tenemos un servidor VPS remoto con CentOS cargado

15

Capítulo 3

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

LINUX PARA ADMINISTRADORES DE ELASTIX

Introducción GNU/Linux es un sistema operativo de software libre

Asterisk y Elastix funcionan sobre Linux

Para administrar una central Elastix no es necesario ser experto en Linux pero es muy

útil conocer del tema.

Es la interfaz de texto entre el usuario y el sistema operativo

Se puede acceder localmente

Se puede acceder remotamente a través del protocolo SSH (Secure Shell)

El SSH es un protocolo encriptado.

Línea de Comandos en Linux Ejemplo terminal Linux de Elastix:.

16

Capítulo 3

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Comandos Básicos

Sistema de Archivos Estructura de árbol de directorios

Todos empiezan en la raíz → /

Directorios importantes en Elastix:

o /etc/asterisk: guarda la configuración de Asterisk

o /var/www/html: se encuentra Elastix

o /var/lib/mysql: las bases de datos de mysql

o /var/log: los archivos de log.

Comando Descripción

ls Lista los archivos en el directorio actual.

ls -la Lista los archivos y sus atributos

cd Cambia de directorio

cd .. Cambia el directorio padre

cat Muestra el contenido de un archivo en la pantalla

pwd Muestra la ruta actual

cp Copia un archivo o grupo de ellos.

mv Mueve un archivo. También se lo usa para renombrar archivos.

rm Elimina un archivo

tail -f filename Muestra las últimas líneas de un archivo

mkdir Crea un directorio

tar zxvf filename.tar.gz Descomprime un archivo .tar.gz

top Muestra un reporte en tiempo real de los procesos que se ejecutan en el sistema. Puede ser ordenado por consumo de memoria o CPU. Muy útil para diagnóstico.

find Permite buscar archivos

vim Programa para ver y editar archivos de texto plano.

ifconfig Muestra información de las interfaces de red y permite modificarlas temporalmente.

ps -aux Muestra un reporte de los procesos que se están ejecutando en el servidor.

reboot Reinicia el equipo

shutdown -h now Apaga el equipo

 

17

Capítulo 3

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Permisos Todo archivo pertenece a un usuario y a un grupo

Los permisos son 3 niveles: usuario, grupo, otros

Los permisos pueden ser de lectura (r), escritura(w) y ejecución(x)

Ejemplo: rwxrw-rw- ; juan - elastix - archivo

o En este caso el archivo pertenece a juan y al grupo elastix. Los permisos para juan

son de rwx, grupo elastix rw y otros rw

Permisos: Notación Octogonal Los permisos se pueden representar con números

r=4, w=2 y x=1

Ejemplos:

o 766=rwxrw-rw-

o 600= rw-------

o 644=rw-r--r--

RPM Forma tradicional de instalar paquetes

Se usa para instalar y desinstalar paquetes

o Instalar: rpm -ivh paquete.rpm

o Desinstalar: rpm -e paquete

Consultas sobre paquetes instalados

Todos paquetes instalados: rpm -qa

Todos los paquetes que contengan asterisk:

o rpm -qa | grep asterisk

Rpm tiene problemas de dependencias

18

Capítulo 3

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

YUM Maneja la instalación de paquetes desde repositorios

Los repositorios pueden estar en Internet o en la lan

No existe problemas de dependencias

Ejemplos de uso:

o Instala paquete: yum install paquete

o Borra paquete: yum remove paquete

o Actualiza paquete: yum update paquete

o Actualiza todo el sistema operativo: yum update

19

Capítulo 4

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

ELASTIX: GENERALIDADES

¿Qué es Elastix? Una solución de servidor de comunicaciones unificadas: telefonía, fax, IM, email,

colaboración.

Es Software Libre.

Se distribuye como una imagen ISO para quemar en CD.

Incluye instalador.

Basada en Linux (CentOS), Asterisk, FreePBX, Hylafax, Postfix y Openfire.

Además de otros paquetes de código abierto.

Rápido crecimiento, 1’000.000 descargas hasta Noviembre de 2010.

Reconocimiento con el premio INTERNET TELEPHONY product of the year Award

años 2011 y 2012

¿Servidor de Comunicaciones Unificadas? Integración de diferentes sistemas de comunicaciones.

Por ejemplo, el teléfono es contestado por Asterisk (telefonía) y en caso de resultar un

documento de fax le pasa el control a Hylafax (FAX) quien recibe el documento y lo

envía por email a través de Postfix a su destinatario.

Mejora la productividad: ahorro de tiempo, papel, mejor acceso a la información

compartida.

Esquema General

20

Capítulo 4

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Breve historia del Proyecto Lanzado en Marzo de 2006 por la compañía PaloSanto Solutions de Ecuador.

Inicialmente no era una distro sino una interfaz de reportación para llamadas de

Asterisk

En Diciembre de 2006 se lanza la primera versión en formato distro. Ganó popularidad

por su usabilidad.

En 2007 y 2008 el proyecto estuvo nominado a los premios CCA de SourceForge.

Actualmente es una de las distros basadas en Asterisk líder del mercado.

Características de Elastix Algunas de las características y funcionalidades de Elastix son:

Voicemail

Fax-a-email

Soporte para soft phones

Consola de operador

IVR (recepcionista digital)

Interfaz de configuración Web

Sala de conferencias

Music-on-hold con soporte mp3s

Campañas de tele-mercadeo

Grabación de llamadas

Parqueo de llamadas

Call-pickup

Colas de atención

Limitación de tiempo de llamada

Least Cost Routing

Roaming de extensiones

Interconexión entre PBXs

Identificación del llamante

CRM incluido Reportación avanzada

Personalización y desarrollo

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

Licenciamiento de Elastix Elastix es software libre licenciado bajo GPL versión 2:

http://elx.ec/gpl2

Esto quiere decir que se puede copiar, distribuir y modificar el software libremente.

No existen versiones cerradas ni doble licenciamiento (como es el caso de Asterisk o

MySQL).

Por si todavía existe la duda: Elastix puede ser descargado sin costo alguno.

21

Capítulo 4

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Interfaz Web de administración

Menú System

Menú PBX

Menú Email

Menú Fax

22

Capítulo 4

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Menú Reports

Menú extendido

Interfaz Web de administración Módulo de Add-ons: Funcionalidad adicional disponible en un sólo clic

www.elastix.org

Sitio Web oficial del proyecto.

Mantenido por PaloSanto Solutions y la comunidad Elastix.

Aquí podemos encontrar:

Foros

Wiki (Documentación)

Chat en vivo IRC

Suscripción a listas de correo

Links de descargas

Información Comercial y Proyectos

Eventos

23

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

FUNCIONAMIENTO INTERNO DE FREEPBX

Fundamentos de FreePBX Software de configuración de Asterisk

Integrado en la distribución Elastix

Genera los archivos de configuración de Asterisk

o Incluye el plan de marcado

o Basados en la configuración ingresada por el usuario

Dos pasos para la configuración:

o Guarda la información en una base de datos de configuración.

o En el caso de Elastix el motor de base de datos usado es MySQL.

o Convierte la información de la base de datos en archivos de configuración a

través de parsing.

24

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Organización de archivos

Configuración de FreePBX amportal.conf: Archivo de texto plano, leído por FreePBX.

Información general de configuración.

Editable en caso de requerirse.

Información de acceso a la base de datos.

Tipo de autenticación para usuarios Web.

Documentación para manejo de opciones y directivas de configuración.

retrieve.conf: Escrito en PHP

Genera el plan de marcado a partir de la información almacenada en la base de datos.

Directorio Descripción

/var/www/html/admin/ Directorio principal del GUI de FreePBX.

/var/www/html/panel/ Directorio del Flash Operator Panel.

/etc/asterisk/ Directorio de archivos de configuración de Asterisk.

/var/lib/asterisk/agi-bin/ Directorio de scripts AGI de Asterisk

/var/lib/asterisk/bin/ Directorio de binarios, links simbólicos a carpetas de módulos.

/usr/local/sbin/ Directorio con script amportal, manipulado solo por root.

/var/lib/asterisk/sounds/ Directorio con sonidos del plan de marcado.

/var/lib/asterisk/sounds/custom/ Directorio con sonidos creados por el usuario.

/var/spool/asterisk/voicemail/ Directorio de almacenamiento de voicemails.

/var/spool/asterisk/monitor/ Directorio de almacenamiento de grabaciones de voz.

25

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Programa ejecutable desde la línea de comandos.

Se ejecuta a través de un script PHP, cada vez que se da clic en la barra roja de FreePBX (”Apply Configuration Changes Here”).

Esta operación será muy frecuente en la mayoría de las configuraciones que realicemos

en el menú de PBX.

dialparties.agi: Script AGI escrito en PHP

Se ejecuta desde el plan de marcado cuando se realiza una llamada.

Revisa el estado de la extensión y otras configuraciones de la misma (call forward, call

waiting, do not disturb).

Toma acciones a partir del estado y la configuración de la extensión.

dialparties.agi consulta la base de datos de Asterisk ubicada en /var/lib/asterisk/astdb/

Se puede ejecutar desde el CLI (Command Line Interpreter) de asterisk

dialparties.agi está ubicado en /var/lib/asterisk/agi-bin/dialparties.agi

Módulo de FreePBX: Estructura

Nombre del Archivo Descripción

module.xml Información del módulo en formato XML.

page.nombredelmodulo.php Archivo principal del módulo escrito en PHP.

functions.inc.php Librería especial con funciones PHP.

install.sql Contiene sentencias SQL que se ejecutan sobre la base de datos al instalar el módulo.

uninstall.sql Contiene sentencias SQL para desinstalar el módulo.

install.php Script PHP que se ejecuta al momento de instalar el módulo.

uninstall.php Script PHP que se ejecuta al momento de desinstalar el módulo

26

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

¿Cómo se embebe en Elastix? Para poder embeber freePBX en Elastix se desarrolló un código WRAPPER

Este código se acopla los módulos de freePBX como un módulo Elastix.

Este desarrollo consiste en:

o Módulo pbxadmin de Elastix

o Archivo /var/www/html/config.php

Módulo pbxadmin de Elastix

Encargado de obtener el contenido de módulos de freePBX por medio de inclusión de

archivos de PHP.

El index.php de éste módulo (Elastix) es muy parecido al index de freePBX (llamado

config.php), pero quitando todos los estilos propios de freePBX.

Contiene un archivo javascript (libfreepbx.javascripts.js) que es una copia mínima del que

esta ubicado dentro del código de freePBX para mantener las acciones que se dan en la

GUI

Archivo /var/www/html/config.php

Este archivo recibe las peticiones hechas desde módulos de freePBX.

Lo que hace es redireccionar las peticiones al módulo pbxadmin de Elastix e incluir el

index.php del framework Elastix.

Gráfico ilustrativo de FreePBX embebido

config.phpIndex.php

Framework Elastix

Módulo pbxadmin de Elastix

Redirecciona las peticiones a

Redirecciona a

Obtiene el contenido de módulos de FreePBX pero sin estilos

Módulos de FreePBXHacen las peticiones alconfig.php ubicado enla raíz

WRAPPER

1

23

4

27

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

FUNCIONAMIENTO INTERNO DE FREEPBX

Fundamentos de FreePBX Software de configuración de Asterisk

Integrado en la distribución Elastix

Genera los archivos de configuración de Asterisk

o Incluye el plan de marcado

o Basados en la configuración ingresada por el usuario

Dos pasos para la configuración:

o Guarda la información en una base de datos de configuración.

o En el caso de Elastix el motor de base de datos usado es MySQL.

o Convierte la información de la base de datos en archivos de configuración a

través de parsing.

28

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Organización de archivos

Configuración de FreePBX amportal.conf: Archivo de texto plano, leído por FreePBX.

Información general de configuración.

Editable en caso de requerirse.

Información de acceso a la base de datos.

Tipo de autenticación para usuarios Web.

Documentación para manejo de opciones y directivas de configuración.

retrieve.conf: Escrito en PHP

Genera el plan de marcado a partir de la información almacenada en la base de datos.

Directorio Descripción

/var/www/html/admin/ Directorio principal del GUI de FreePBX.

/var/www/html/panel/ Directorio del Flash Operator Panel.

/etc/asterisk/ Directorio de archivos de configuración de Asterisk.

/var/lib/asterisk/agi-bin/ Directorio de scripts AGI de Asterisk

/var/lib/asterisk/bin/ Directorio de binarios, links simbólicos a carpetas de módulos.

/usr/local/sbin/ Directorio con script amportal, manipulado solo por root.

/var/lib/asterisk/sounds/ Directorio con sonidos del plan de marcado.

/var/lib/asterisk/sounds/custom/ Directorio con sonidos creados por el usuario.

/var/spool/asterisk/voicemail/ Directorio de almacenamiento de voicemails.

/var/spool/asterisk/monitor/ Directorio de almacenamiento de grabaciones de voz.

29

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Programa ejecutable desde la línea de comandos.

Se ejecuta a través de un script PHP, cada vez que se da clic en la barra roja de FreePBX (”Apply Configuration Changes Here”).

Esta operación será muy frecuente en la mayoría de las configuraciones que realicemos

en el menú de PBX.

dialparties.agi: Script AGI escrito en PHP

Se ejecuta desde el plan de marcado cuando se realiza una llamada.

Revisa el estado de la extensión y otras configuraciones de la misma (call forward, call

waiting, do not disturb).

Toma acciones a partir del estado y la configuración de la extensión.

dialparties.agi consulta la base de datos de Asterisk ubicada en /var/lib/asterisk/astdb/

Se puede ejecutar desde el CLI (Command Line Interpreter) de asterisk

dialparties.agi está ubicado en /var/lib/asterisk/agi-bin/dialparties.agi

Módulo de FreePBX: Estructura

Nombre del Archivo Descripción

module.xml Información del módulo en formato XML.

page.nombredelmodulo.php Archivo principal del módulo escrito en PHP.

functions.inc.php Librería especial con funciones PHP.

install.sql Contiene sentencias SQL que se ejecutan sobre la base de datos al instalar el módulo.

uninstall.sql Contiene sentencias SQL para desinstalar el módulo.

install.php Script PHP que se ejecuta al momento de instalar el módulo.

uninstall.php Script PHP que se ejecuta al momento de desinstalar el módulo

30

Capítulo 5

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

¿Cómo se embebe en Elastix? Para poder embeber freePBX en Elastix se desarrolló un código WRAPPER

Este código se acopla los módulos de freePBX como un módulo Elastix.

Este desarrollo consiste en:

o Módulo pbxadmin de Elastix

o Archivo /var/www/html/config.php

Módulo pbxadmin de Elastix

Encargado de obtener el contenido de módulos de freePBX por medio de inclusión de

archivos de PHP.

El index.php de éste módulo (Elastix) es muy parecido al index de freePBX (llamado

config.php), pero quitando todos los estilos propios de freePBX.

Contiene un archivo javascript (libfreepbx.javascripts.js) que es una copia mínima del que

esta ubicado dentro del código de freePBX para mantener las acciones que se dan en la

GUI

Archivo /var/www/html/config.php

Este archivo recibe las peticiones hechas desde módulos de freePBX.

Lo que hace es redireccionar las peticiones al módulo pbxadmin de Elastix e incluir el

index.php del framework Elastix.

Gráfico ilustrativo de FreePBX embebido

config.phpIndex.php

Framework Elastix

Módulo pbxadmin de Elastix

Redirecciona las peticiones a

Redirecciona a

Obtiene el contenido de módulos de FreePBX pero sin estilos

Módulos de FreePBXHacen las peticiones alconfig.php ubicado enla raíz

WRAPPER

1

23

4

31

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

CONFIGURACIÓN BÁSICA DE ELASTIX

Ingreso a Elastix vía Web Abrir en un navegador web: https://ip-servidor (Dirección IP de Elastix)

La primera vez se debe aceptar el certificado digital. De ser necesario establezca un

excepción en su navegador web

Ingresar con los siguientes datos

Usuario: admin

Password: La clave de admin registrada durante la instalación

Configuración de Red Elastix utiliza DHCP por defecto

En la mayoría de casos se debe configurar:

IP estático

Puerta de Enlace

DNS

Para configurar se debe acceder al menú Sistema → Red

Los dispositivos de red se reconocen como ethernet1, ethernet2, etc...

32

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Creando una extensión Se pueden crear extensiones: sip, iax, zap, dahdi y custom

SIP: protocolo estándar para terminales de voz/ip. Soportado por la mayoría de

teléfonos de ip

IAX: Protocolo propio de Asterisk y no muy difundido. Se comporta mejor que

sip en ambientes nat

Zap: Usada para extensiones análogas o tradicionales

dahdi: Usada para extensiones análogas o tradicionales

Custom: Se puede utilizar para opciones avanzadas. Por ejemplo mapear una

línea externa a una extensión

Ejemplo para crear extensión SIP Para crear una extensión ingrese a:

PBX → PBX Configuration → extensiones

Seleccione: Generic SIP Device

Como mínimo debe ingresar: número de extensión, display name y el secret

El mode DTMF (dtmfmode) de la extensión y teléfono debe ser el mismo.

El dtmfmode predeterminado es: rfc2833

Otras opciones para el modo rfc son:

info

inband

auto

33

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ejemplo: Configuración de Softphone La configuración de un teléfono IP de software debe incluir por lo menos: el usuario

(normalmente la extensión), el password (secret) y la dirección IP del servidor Elastix.

En la gráfica: configuración de cuenta en el softphone Zoiper

Configuraciones generales Configuraciones importantes

Opciones de marcado: Se definen opciones como transferencia de llamada y

grabación de llamadas

Company Directory: Para acceder al directorio telefónico desde un ivr con *411 o

#

Security Settings: No permite llamadas sip anónimas

Actualizaciones: Bloqueada por defecto

Colas Agrupan a varias extensiones conocidas como agentes

Agentes estáticos o dinámicos

Existen varias Estrategias de marcado:

Sonar todos: Timbra a todos los miembros de la cola

Agente con última llamada más antigua: Timbra al agente que fue llamado menos

recientemente

Agente con menos llamadas: Timbra al agente que menos llamadas a contestado

Estrategias de marcado:

Aleatorio: Timbra aleatoriamente

Con memoria: Timbra a cada agente de manera secuencial

Linear: Timbra a los agentes en el orden especificado

34

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Wrandom: Timbra las extensiones de los agentes e manera aleatoria pero

utilizando una penalidad como medida de probabilidad.

Colas: configuración básica Queue number: El número por el que se podrá llamar a la extensión

Queue name: El nombre de la cola que usaremos para identificar en la interfaz

administrativa

Queue password: Clave que deberá ingresar un agente dinámico

CID name prefix: Como un agente puede hacer login en varias colas al mismo tiempo,

es útil colocarle un prefijo al Caller ID para que cuando el agente vea la llamada

entrante en el teléfono sepa a que cola pertenece la llamada.

Static Agents: Se lista las extensiones a agentes y su prioridad en la cola.

Max callers: El número máximo de personas que esperan en una cola si todos los

agentes están ocupados.

Join Empty: Se puede permitir que la cola funcione sin agentes. No se recomienda

Leave when empty: si se pone en yes, los usuarios que estén en espera en la cola serán

removidos de la misma si todos los agentes abandonan la cola.

Ring strategy: Existen 6 tipos de estrategias: ringall, leastrecent, fewestcalls, random,

rrmemory, linear, wrandom.

Wrap-up-time: Tiempo entre llamadas exitosas por agente

Call Recording: Opción para grabar llamadas

Fail Over Destination: Destino a donde van las llamadas entrantes no contestadas

IVR Un IVR funciona como una recepcionista digital

Es necesario grabar o subir sonidos al servidor antes de configurar el IVR

Se pueden tener tantos IVR como sean necesarios

Para que sean accesibles desde las troncales se deben configurar rutas entrantes

IVR: Grabar o subir sonido Para grabar o subir un sonido se debe ingresar a PBX → PBX Configuration →

Grabaciones del Sistema

35

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Para subir un audio haga clic en “Subir un Archivo”, navegue hasta ubicarlo,

selecciónelo y haga clic en “Enviar”.

Continúe al paso 2, asigne un nombre a su grabación y haga clic en “Guardar”.

Archivos WAV deben estar codificados en PCM, 16 bits y a 8000Hz.

Si desea grabar desde un teléfono ingrese el número de extensión y haga clic en “ir”

Marque *77 para grabar el mensaje (desde la extensión que ingresó)

Marque *99 para escuchar la grabación (desde la extensión que ingresó)

Una vez grabado el mensaje asignamos un nombre y hacemos clic en “Guardar”

IVR: Grabar o subir sonido

Ir a PBX → PBX Configuration → IVR – clic en Añadir IVR

Configurar las siguientes variables:

Cambiar nombre: Asignamos un nombre al IVR

Tiempo de espera: Tiempo de espera, en segundos, antes de ir al destino por

defecto.

Habilitar marcación directa: Permitir marcar directamente a extensiones

36

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Anuncio: Seleccionamos un anuncio previamente grabado o cargado en el

sistema.

Se agregan los números de opción y sus destinos.

La opción t sirve para timeout

La opción i para opciones equivocadas

Una vez concluido hacemos clic en “Guardar “

La forma mas sencilla de hacer un IVR es con único Audio que al ser reproducido

indique todas las opciones.

Cuando tenemos varios Audios, tendremos que hacer un IVR para cada Audio.

Una vez que tenemos cada IVR creado, los relacionamos en orden colocando t

como la opción que enlazará el actual IVR al siguiente (siendo t la opción de

timeout)

Es necesario incluir todas las opciones de marcado disponibles en todos los IVRs

creados para no tener errores.

Salas de Conferencia Una sala de conferencia permite hablar a 3 o más personas simultáneamente

Se pueden hacer conferencias con extensiones locales y números remotos

Existen 2 tipos de salas de conferencias:

Permanentes y temporales

De ser necesario se pueden proteger con clave

Salas de conferencia: Temporales Se crean por un tiempo definido y desaparecen

Para crear se debe ingresar a PBX → Conference

Ejemplo de configuración:

37

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Salas de conferencia: Estáticas Se crean para uso permanente

Ejemplo de Configuración: Ir a PBX → PBX Configuration → Conferencias

Número de conferencia: la extensión a la que marcaremos para acceder.

Nombre de la conferencia: Un nombre referencial

PIN de usuario: Clave para acceso a la conferencia (opcional)

PIN de administración: Necesaria únicamente si se selecciona la opción esperar al

administrador.

Opciones de la conferencia

38

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Parqueo de llamadas Sirve para enviar las llamadas a un lugar temporal cuando el destino no es conocido.

Esto permite que sean recuperadas desde otra extensión.

La llamada es transferida desde una extensión inicial a un estacionamiento o parking

slot.

Después puede ser recuperada desde otra locación marcando un número asignado.

Para crear un estacionamiento ingrese a:

PBX → PBX Configuration → Estacionamiento

La extensión de marcado para enviar una llamada a aparcamiento es por defecto 70.

El tiempo de configuración para espera en el estacionamiento va de 15 segundos a 10

minutos.

El contexto de aparcamiento por defecto es: parkedcalls. Esto no debería ser

cambiado.

Al activar la opción de estacionamiento es necesario configurar el destino donde deben

ir las llamadas que no son recuperadas.

Ejemplo:

Durante la llamada marque ## 70 # - Usted escuchará un número de estacionamiento.

Usualmente 71, 72, 73,...n (un máximo de 20).

Luego usted puede recuperar la llamada que puso en el estacionamiento, desde otra

extensión ´marcando el número que escuchó en la grabación.

39

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Música en espera Se puede subir música en formatos wav o mp3 al servidor

Se pueden crear listas de música para asignar en diferentes lugares de nuestra central.

Ej. Callcenter, colas, etc..

Para configurar se debe ingresar a PBX → Configuración → Música en Espera.

Es recomendable usar .wav estar codificado en PCM, 16 bits y a 8000Hz. Mp3 podría

consumir mas recursos.

Bookmark de menúes comunes Elastix 2.2 permite marcar menúes comunes para fácil.

Esta funcionalidad está localizada en la esquina derecha de cada sección con un icono

★ (estrella).

Para añadir un bookmark basta con hacer clic en ★ Iy la sección se mostrará en el

menú de la columna izquierda

40

Capítulo 6

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Flash Operator Panel (1) Es una aplicación web hecha en flash que permite monitorizar la central

Cumple las funciones de un teléfono de recepcionista

Se pueden transferir llamadas, crear conferencias, etc.

La clave de administración es la que configuramos al instalar Elastix en la clave del

admin de la interfaz web.

Flash Operator Panel es un desarrollo de terceros. Elastix introdujo desde la versión

2.0 su propio panel de operador denominado: Elastix Operator Panel.

Pantalla del FOP:

41

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

CONFIGURACIÓN DE TELÉFONO IP

¿Qué es un teléfono IP? Un teléfono IP es un dispositivo que permite realizar una comunicación de voz utilizando

la red IP, ya sea mediante red de área local o a través de Internet.

La tecnología que hace esto posible esto se conoce como VoIP (Voz sobre IP).

El teléfono IP convierte y comprime la señal de la voz en paquetes de datos que serán

enviados en la red IP, en lugar de utilizar una conexión de red teléfonica.

Configuración de teléfono IP Para configurar un teléfono IP debemos tener en cuenta tres aspectos:

1. Configuración de red

2. Registro del dispositivo con el servidor Elastix

3. El Teléfono IP apropiado

Para ilustrar de mejor manera los puntos mencionados, utilizaremos un teléfono Yealink

SIP-T22P.

Configuración de red

La configuración de red puede realizarse por DHCP (lo más común) o se puede asignar

una dirección IP estática.

DHCP

Mediante esta opción, el teléfono obtendrá una dirección IP desde un setvidor DHCP

ubicado dentro de la red local.

Elastix puede ser nuestro servidor DHCP, si no se cuenta con uno en la red local.

42

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

IP estática

Esta opción es útil si deseamos contar contar con un registro exacto de las direcciones

IP de cada teléfono.

Es también útil si deseamos colocar los dispositivos IP en segmentos específicos de

nuestra red.

En esta opción, además de la IP se necesita ingresar la máscara de red y la puerta de

enlace en el caso de que su teléfono se encuentre en otro segmento de red.

La configuración de Teléfonos Yealink SIP-T22P o cualquier otro modelo de Yealink se

puede realizar ingresando a un web browser colocando la dirección IP del teléfono.

El usuario y contraseña por defecto en todos los modelos Yealink es: admin

Nota: también es posible configurar la extensión del teléfono desde el Endpoint Configurator de

Elastix (PBX → Endpoint Configurator) , esto lo veremos más adelante.

Para configurar la extensión debe ir a Cuenta.

El teléfono Yealink SIP-T22P puede ser configurado con 3 cuentas.

La información básica necesaria para la configuración es:

Línea Activa: Habilita la cuenta

Nombre de registro: Extensión de usuario

Nombre de usuario: Extensión de usuario

Contraseña: Secret - La contraseña de la extensión

Servidor SIP: Dirección IP del servidor Elastix

Servidor de salida Proxy: IP del servidor Elastix

Interfaz de administración web de Yealink

 

 

 

43

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Aprovisionamiento El aprovisionamiento permite la configuración en lote de teléfonos IP.

Este proceso se realiza desde la interfaz web de Elastix y su principal herramienta es el

módulo de configuración de Endpoints (Endpoint Configurator).

El proceso adecuado es:

1. Creación de extensiones

2. Habilitar los teléfonos IP para el aprovisionamiento

3. Detección de los dispositivos en la red

4. Asignación de extensiones desde la interfaz.

Aprovisionamiento:  Endpoint Configurator El Endpoint Configurator realiza un scan de la red del servidor Elastix.

En el scan se obtiene información de las direcciones IP y MAC de los dispositivos

conectados.

Al obtener la información de todos los dispositivos este trata de identificar los equipos

que pudieran ser teléfonos IP.

Luego trata de recabar información del fabricante y modelo para elegir cuáles se pueden

configurar.

Actualmente Elastix soporta las siguientes marcas:

Aastra, Atcom, AudioCodes, Cisco, Grandstream, Linksys, Polycom, Siemens, Snom,

Yealink y Zultys.

Se prevé soportar en versiones teléfonos Escene, Voptech y otros.

Cuando ya se tiene el grupo de teléfonos a configurar se presenta la información de los

mismos en la interfaz Web de Elastix.

Se mostrará algo similar a la siguiente imagen:

44

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Para la mayoría de teléfonos, el Endpoint Configurator generará un archivo de

configuración que se graba en el directorio /tftboot del servidor Elastix.

Este archivo lleva el nombre mac_address_del_telefono.cfg (ej: 0015651ab08f.cfg).

En este archivo se guarda la configuración de los teléfonos para hacer el

aprovisionamiento via tftp desde Elastix

Aprovisionamiento:  Habilitación de Teléfonos IP En la actualidad la mayoría de las marcas de teléfonos IP permiten configuración para

aprovisionamiento.

Hay algunas marcas (e.g. Atcom) en que aprovisionamiento no requiere de configuración

previa.

Para habilitar teléfonos Yealink, debemos configurar los siguientes parámetros desde la

interfaz administrtiva del teléfono:

Ir a: Actualizar → Advanzado

o Configurar URL: dirección IP del Servidor Elastix

o Check New Config: Encendido.

 

 

45

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Aprovisionamiento:  Asignación de extensiones 1. En la interfaz web de Elastix ir a PBX

2. Luego Endpoint Configurator

3. Hacer clic en: Descrubrir Endpoints en esta Network

4. En la columna “Configurar”, marcar la casilla correspondiente

5. En la columna “Modelo”, elegir el modelo correspondiente.

6. En la columna “Extension a asignar”, elegir la extensión que queremos asignar al teléfono.

(ya debe haber sido creada previamente)

7. Hacer clic en “Configurar”

Reiniciamos el teléfono (accedemos a su interfaz web haciendo clic en la IP

correspondiente). Una vez dentro: Upgrade → Basic → Reboot).

Nota: Algunos modelos se reinician automáticamente.

¿Qué es un Softphone? Es un software que hace una simulación de teléfono IP por computadora.

Es decir, permite usar la computadora para hacer llamadas a otros softphones, teléfonos

IP o a otros teléfonos convencionales analógicos.

46

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configurando un Softphone Presionamos el botón con la figura de la herramienta y accedemos al menú de opciones.

Allí veremos una pantalla con opciones para configurar nuevas extensiones SIP y también

IAX. Zoiper cuenta con soporte para ambos protocolos.

En nuestro ejemplo configuraremos una extensión SIP. Usuario: 5678 Contraseña: 5678.

X-Lite Counterpath Zoiper Softphone

47

Capítulo 7

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

La información requerida es:

o Domain: La IP o nombre de dominio del servidor Elastix.

o Username: 5678

o Password: 5678

o Caller ID Name: El nombre que aparecerá en los teléfonos que reciban

nuestras llamadas.

Después de llenar la información hacemos clic en OK.

Una vez que volvemos a la pantalla de inicio de Zoiper hacemos clic en register.

Si el Zoiper se registra correctamente veremos que junto al nombre de nuestra cuenta

“Test” aparecerá la palabra “Registered”.

48

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

CONFIGURACIÓN DE HARDWARE

Tipos de tarjetería Esta tarjetería está disponible tanto para interfaces telefónicas analógicas como digitales.

Dentro de cada una de estas categorías existen las siguientes sub-categorías:

EHCP : Elastix Hardware Certification Program El Equipo de Desarrollo Elastix trabaja con varios fabricantes para incluir los

controladores de su hardware.

Además Elastix cuenta con un programa que pone a prueba toda la funcionalidad para

certificar la interoperabilidad con el software.

Este programa es conocido como Elastix Hardware Certification Program o EHCP por

sus siglas en inglés.

Hay muchos modelos y fabricantes de tarjetas compatibles e incluidos en la distro.

Fabricantes soportados Elastix ha probado el soporte para muchos modelos y fabricantes de tarjetería. Los

siguientes son los modelos soportados oficialmente a la fecha:

Analog:FXOFXS

Digital:E1/T1/J1BRI

49

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Hardware modular Existen fabricantes que diseñan su hardware de manera modular, de tal forma que pueda

ser expandible.

Instalando una tarjeta de telefonía Esto no involucra ninguna tarea complicada, solo las precauciones obvias al instalar

tarjetas electrónicas en un computador.

Luego de encender el equipo podemos ir a consola y ejecutar el comando lspci para ver

el hardware enlistado.

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

Detección de hardware Una vez que la tarjetería ha sido instalada es hora de detectarla.

En versiones muy antiguas de Elastix esta tarea se hacía manualmente ejecutando un

comando desde la consola del equipo.

Puertos

ranuras para módulos

Módulo FXS(verde)

Módulo FXO(rojo)

ConexiónFuente de alimentación

Sangoma TMD Card Model A20101

50

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Actualmente se cuenta con una interfaz Web que detecta el hardware automáticamente

y nos muestra gráficamente el hardware detectado.

Esta opción podrá encontrarse en el Menú System → Hardware Detector.

Para detectar una tarjeta hacemos clic en “Avanzado” y seleccionamos la opción

Reemplazar el archivo chan_dahdi.conf.

Después debemos dar clic en Detect New Hardware y después de algunos segundos, el

proceso estará finalizado.

Tarjetas Digitales

Para este modelo hemos seleccionado una tarjeta Sangoma modelo A102. Este hardware

utiliza Wanpipe el cual usa sus propios drivers para comunicarse con Asterisk.

Para detectar la tarjeta debemos dar clic en “Avanzado” y seleccionar: Reemplazar el

archivo chan_dahdi.conf y Detección de Hardware Sangoma.

Después de esto podemos dar clic en Detectar Nuevo Hardware.

Para la detección de tarjetas que usan Dahdi simplemente se debe seleccionar la opción

“Reemplazar el archivo chan_dahdi.conf” y después clic en “Detectar Nuevo Hardware”.

Es importante verificar que la tarjeta esta dentro de la lista de hardware certificado de

Elastix, ECHP.

El reemplazo de chan_dahdi.conf permite al sistema detectar la tarjeta de forma

permanente.

51

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Este acción sobre escribe los siguientes archivos:

/etc/asterisk/chan_dahdi.conf

/etc/dahdi/system.conf

/asterisk/dahdi-channels.conf

Si ya se tiene una tarjeta instalada y deseamos detectar una nueva tarjeta, es

recomendable realizar un respaldo de estos archivos para permitir incluir estas

configuraciones previas en los nuevos archivos.

Configuración Span La herramienta de detección de hardware basada en Web que viene con Elastix nos

permite detectar el hardware de manera sencilla.

La herramienta puede configurar exitosamente el hardware digital en muchos casos, sin

embargo hay que tener en cuenta que la herramienta realiza su trabajo suponiendo

muchos parámetros que pueden diferir de la realidad.

Se puede cambiar estos parámetros usando la interfaz web o mediante consola. A

continuación explicaremos como realizar estas configuraciones por consola.

Configuración Span: Bajo Nivel Un span es un grupo de canales digitales.

El span se puede configurar en el archivo /etc/dadhi/system.conf.

Usualmente un span representa un puerto digital de la tarjeta.

Por ejemplo, si la tarjeta contiene 4 puertos E1 entonces usualmente deberíamos definir

4 spans, uno por cada puerto.

Un span define en una sola línea, la cual tiene el siguiente formato:

Spannum

Es un identificador numérico único para etiquetar el span. Se debe empezar con el

número 1 e ir incrementando este identificador secuencialmente de uno en uno.

Timing

Es un dígito que define la forma en la cual se manejará la sincronización del span.

52

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

LBO (Line Build Out)

Es un dígito que representa la longitud del cable entre la tarjeta y el equipo (modem)

provisto por la compañía telefónica.

Framing

Como recordaremos, los protocolos de comunicación digital T-Carrier y E-Carrier

dividen la información en frames, donde cada frame transporta un número determinado

de timeslots.

Estos frames pueden ser de diferentes formatos y eso es lo que se define aquí.

Coding

Es necesario codificar la información enviada para hacerla menos susceptible a errores.

Esto es así porque la propia data se suele usar como fuente de sincronización (o reloj).

Si se transmiten tramas largas de ceros (largos segmentos sin variación de voltaje) se

puede perder dicha sincronización.

Después de realizar los cambios en el archivo system.conf, es necesario reiniciar DAHDI.

(Asterisk CLI: service dahdi restart)

Después de haber reiniciado DAHDI se ejecuta el comando “lsdahdi”.

Si todo ha sido configurado de forma correcta, se podrá ver las tarjetas configuradas y el

respectivo estado de canal.

53

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configuración Span: Interfaz Web En la interfaz web tenemos las siguientes opciones: Configuración de Span y Parámetros

de Span.

En Parámetros de Span podremos configurar el timing source, LBO, Framing y Coding.

También podemos seleccionar el tipo de tarjeta T1/E1 (para tarjetas que soporten modo

de selección por software).

En la Configuración de Span podemos seleccionar por cada canal el software de

cancelación de eco.

Tarjeta detectada con formato TI

Cambio de formato a E1

Troncalización: chan_dahdi.conf Asterisk cuenta con un módulo llamado chan_dahdi que sirve para conectarse con los

drivers de DAHDI y de esta manera conectar Asterisk con hardware telefónico.

Este módulo se configura a través de un archivo llamado chan_dahdi.conf

En el archivo chan_dahdi.conf básicamente se configura la señalización de los canales de

voz y se mapean los canales de Asterisk con los circuitos o líneas telefónicas definidos en

el archivo system.conf que configuramos antes.

Estos canales se pueden agrupar en troncales troncales.

54

Capítulo 8

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

La siguiente imagen muestra el archivo chan_dahdi.conf:

Signalling

Este parámetro define la señalización de cada canal o grupo de canales.

Lo más común que veremos para circuitos analógicos será fxs_ls y para circuitos digitales

pri_cpe.

Switchtype

Este parámetro es para circuitos digitales y especifica el tipo de switch PRI usado.

Lo más común es national y euroisdn, dependiendo de en qué país nos encontremos

claro está.

55

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

ASTERISK ESSENTIALS

¿Qué es Asterisk? Es un sistema de telefonía basado en software libre que proporciona todas las

funcionalidades que se espera de una central telefónica (PBX).

Esto hace posible conectar un número determinado de teléfonos para hacer llamadas

entre sí y conectar a un proveedor de VoIP PSTN.

Asi tambien proveedores PSTN de telefonia digital y analoga usando hardware

especializado, esto es tarjetas telefonicas FXO/FXS, ISDN pri/bri, entre otras.

Breve Historia de Asterisk Asterisk fue creado por Mark Spencer quien es su principal desarrollador.

Al ser Software libre, tiene tambien una amplia comunidad de desarrolladores que

contribuyen a corregir errores y añadir novedades y funcionalidades.

Mark había creado en 1999 la empresa "Linux Support Services" con el objetivo de dar

soporte a usuarios de Linux.

Para ello necesitaba una centralita telefónica, pero ante la imposibilidad de adquirirla

dados sus elevados precios, decidió construir una con un PC bajo GNU/Linux, utilizando

lenguaje C.

Funcionalidad de Asterisk Asterisk puede funcionar como un sistema IP nativo o uno hibrido, manejando el ruteo

de llamadas, interconectando protocolos y transcodificando medios.

Tiene muchas características internas como buzón de voz, conferencias, IVRs, CDRs,

distribución automática de llamadas, parqueo, tranferencias, captura, musica en espera

Entre muchas otras funcionalidades.

Asterisk tambien soporta multiples protocolos y codecs.

56

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Asterisk soporta diferentes señalizaciones y protocolos para la interconexion con

sistemas de telefonia tradicionales.

Encendido y apagado de Asterisk Asterisk cuenta con scripts ubicados en /etc/rc.d/init.d/asterisk y pordemos iniciarlo con

el comando /etc/init.d/asterisk start y detenerlo con /etc/init.d/asterisk stop.

Sin embargo en elastix es recomendable manejar su inicio o apagado con el script

amportal, mismo que a su vez llama a otros scripts que inician ademas otros servicios

necesarios para ciertas funcionalidades

Su uso es:

o amportal start → inicia asterisk

o amportal stop → detiene asterisk

PROTOCOLOS CODECSIAXTM (Inter-Asterisk Exchange) ADPCMH.323 G.711A/U (A-Law y µ-Law)SIP (Session Initiation Protocol) G.722MGCP (Media Gateway Control Protocol) G.723.1SCCP (Cisco® Skynny®) G.726

G.729 (con una licencia comercial)GSMiLBCLinearLPC-10Speex

Señalización Protocolos PRIE&M 4ESSE&M Wink BRI (ISDN4Linux)Feature Group D DMS100FXS EuroISDNFXO Lucent 5EGR-303 National ISDN2Loopstart NFASGroundstartKewlstartSoporte para MF y DTMFSeñalización Robbed-bit (RBS)MFC-R2 (a través de parches de código)

57

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Estructura de directorios de Asterisk

Módulos de Asterisk Asterisk utiliza módulos para extender su funcionalidad.

Estos módulos residen en la carpeta /usr/lib/asterisk/modules/ (32 bits)

/usr/lib64/asterisk/modules/ (64 bits).

Son archivos con extensión .so

Es posible controlar estos módulos desde el archivo modules.conf, en la carpeta

/etc/asterisk.

Este archivo controla cuáles módulos se cargan o no (load, noload). Además puede

controlar el orden en que se cargan con la opción ”preload”.

Por defecto en elastix se cargan todos los módulos que están en

/usr/lib/asterisk/modules/ a no ser que sea especificado en el archivo modules.conf que

no lo haga

Ejemplos en el archivo modules.conf:

noload => chan_modem.so : Hace que no se carge el módulo.

load => format_ogg_vorbis.so : Hace que se carge el módulo.

preload => res_config_mysql.so : Hace que se carge primero ese módulo

Directorio Descripción/etc/asterisk archivos de configuración de Asterisk/usr/lib/asterisk/modules/ módulos de Asterisk/usr/sbin/ incluye el Binario de Asterisk/var/log/asterisk/ logs de Asterisk/var/lib/asterisk/agi-bin/ AGI scripts/var/lib/asterisk/mohmp3 archivos d audio para Music On Hold

/var/lib/asterisk/soundsIncluye sonidos que Asterisk utiliza como prompts de voz

/var/spool/asterisk/archivos generados por Asterisk durante su operación normal (tales como grabaciones y voicemails)

/var/run/ archivos PID

/var/log/asterisk/Aquí residen los archivos de log de Asterisk como los CDRs o el /var/log/asterisk/full

58

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

DAHDI Dahdi es, básicamente, un conjunto de drivers para controlar hardware telefónico,

principalmente tarjetas.

Estas tarjetas son como cualquier otra tarjeta de expansión de una computadora pueden

usar bahías PCI, puertos USB, etc.

Dahdi tiene su propio archivo de configuración /etc/dahdi/system.conf

Historia del proyecto Zaptel En el año 2000 Jim Dixon lanzó el proyecto Zaptel bajo licencia GPL.

El nombre es una abreviación de Zapata Telephony Project. Lo nombró así en honor a

Emiliano Zapata, héroe de la revolución mexicana.

Inicialmente Zaptel contenía drivers para tarjetas Tormenta fabricadas por Zapata

Telecom.

Digium comenzó a mejorar los drivers y extender el soporte para nuevos modelos de

hardware, entre ellos los que el mismo Digium fabricaba.

Pronto Digium se convirtió en el principal desarrollador de Zaptel.

Comunicación Asterisk con DAHDI Asterisk interactúa con dahdi mediante el modulo chan_dahdi.so, mismo que se controla

a través del archivo chan_dahdi.conf.

En este archivo se mapean los puertos fisicos hacia canales tipo DAHDI, estos canales

son usados por asterisk.

59

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Archivos de configuración Los archivos se encuentran en /etc/asterisk

Plan de marcado (dialplan) El plan de marcado se configura en el archivo extensions.conf, existen otros archivos que

contienen porciones del plan de marcado:

o extensions_additional.conf: el plan de marcado variable escrito por FreePBX,

los cambios realizados manualmente se pierden cunado FreePBX sobreescribe

este archivo.

o extensions_custom.conf: el plan de marcado definido por el usuario, no se

pierden los cambios que se realizan manualmente.

Todos los archivos son de texto plano en formato definido por Asterisk.

Se dividen en secciones llamadas contextos.

Dialplan: Contextos Agrupan la lógica del plan de marcado.

Pueden incluir otros contextos con la claúsula ”include”.

El plan de marcado se agrupa en contextos.

Se definen como agrupadores u organizadores del plan de marcado.

Deben tener un nombre único que va entre los símbolos [ ].

Existen dos contextos reservados [globals] y [general].

extensions.conf

sip.confiax.confchan_dahdi.conf

Reside el plan de marcado, losarchivos adicionales empiezan conextensions_.

Se definen los endpoints SIP.

Se definen los endpoints IAX.

Archivo de configuración paracanales DAHDI, se troncalizan loscanales.

60

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Dialplan: Extensiones Son líneas del plan de marcado.

Son instrucciones llamadas extensiones.

Tienen la siguiente sintaxis:

o exten => nombre_extensión, prioridad, aplicación

Una línea del plan de marcado es una serie de lógica del plan de marcado.

Se puede crear la lógica necesaria para un marcado específico.

Dialplan: Extensiones (Nombre_extensión) Es un identificador númerico de la extensión.

Se lo puede asociar al número de teléfono.

Existe una extensión particular ”s”.

La extensión ”s” significa cualquier extensión.

Esta extensión ”s” se usa cuando el usuario que llama no ha presionado el número de

extensión. Por ejemplo, cuando está en el IVR de bienvenida.

Dialplan: Instrucciones (Prioridad) Indica el orden de ejecución de una instrucción.

La primera prioridad debe ser siempre 1 porque Asterisk busca esta prioridad cuando

lee un contexto para ejecutarlo.

Existe una prioridad especiales n.

La prioridad n indica que a la prioridad de la instrucción anterior se le debe sumar uno.

Sirve para facilitar la estructura del plan de marcado.

Dialplan: Instrucciones (Aplicaciones) Las aplicaciones de un plan de marcado equivalen a las funciones de un lenguaje de

programación.

Permiten realizar acciones programadas en el plan de marcado.

Las aplicaciones permiten realizar ejecuciones entre contextos.

Pueden recibir parámetros para su ejecución.

61

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Dialplan: Variables Las variables en el plan de marcado equivalen a las variables de un lenguaje de

programación.

Son abstracciones que almacenan información de naturaleza variable.

Tiene la siguiente sintaxis:

${NNNN}

donde NNNN es el nombre de la variable.

Pueden ser de tres tipos:

Globales: Se definen en la sección [globals] del archivo extensions.conf o en

globals_custom.conf dentro de cualquier Elastix, pueden ser referenciadas desde

cualquier lugar del plan de marcado.

De canal: Pueden ser definidas usando el comando (o aplicación) ”Set”.

Predefinidas: Asterisk administra algunos nombres de variables con nombres

predefinidos

${CALLERID(all)}, ${CALLERID(name)}, ${CALLERID(num)},

${CHANNEL}, ${CONTEXT}, ${EPOCH}, ${EXTEN},

${SIPUSERAGENT}, ${UNIQUEID},

Estas variables almacenan cierta información dependiendo del comportamiento de la

llamada u otros factores.

Aplicaciones Answer

o Sintaxis: Answer ([delay])

o Contesta un canal si éste está timbrando, recibe el parámetro delay que indica el

tiempo en milisegundos antes de contestar.

Background

o Sintaxis: Background(filename1[&filename2...][|opciones[|langoverride][|context]])

o Reproduce un listado de archivos mientras Asterisk continúa ejecutando el plan

de marcado.

o Aplicación usada para reproducir el mensaje de IVR.

Playback

o Sintaxis: Playback(filename1[&filename2...][,options])

62

Capítulo 9

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

o Reproduce archivos de audio, a diferencia de Background, no permite a Asterisk

tener el control mientras no acabe de reproducir los archivos.

Hangup

o Sintaxis: Hangup()

o Cuelga el canal y retorna -1.

Goto

o Sintaxis: Goto([[context|]extension|]priority)

o Salta la ejecución del plan de marcado a un contexto, extensión o prioridad

indicada. Si se pasa un solo parámetro se entiende que es una prioridad del

mismo contexto.

Dial

o Sintaxis: Dial(type/identifier, timeout, options, URL)

o Marca un canal especificado y lo vincula con el canal corriente.

Asterisk CLI Es el nombre de la consola de Asterisk.

Línea de comandos para controlar Asterisk directamente.

Para ingresar a la consola se ejecuta el comando ”asterisk -r”

Cuando se obtiene un prompt CLI>, se pueden ejecutar comandos de Asterisk

Provee información en tiempo real de la actividad de Asterisk.

Permite controlar el grado de detalle de la información, para ello se usan los comandos:

o Core set debug N

o Core set verbose N

Mientras más alto sea el nivel de las variables debug N y verbose N más detallada será la

información mostrada.

Estos comandos se deben utilizar para tareas de diagnóstico.

63

Capítulo 10

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

PLAN DE MARCADO AVANZADO

Manipulación de Variables Sintaxis para eliminar dígitos

${VAR:x:y} Donde VAR es una variable numérica, ”x” es el número de dígitos a

eliminar al principio y ”y” es cuantos números tendrá la variable final

Ejemplo VAR=1234567890, x=3, y=4 – ${VAR:3:4} → 4567

${VAR:x} Donde VAR es una variable numérica, ”x” es el número de dígitos a eliminar

al principio

Ejemplo VAR=1234567890, x=3 – ${VAR:3} → 4567890

Concatenar variables

exten =>s,n,Set(VAR_CONCAT=${var1}${var2}${VAR3})

Expresiones

$[expresion]

ej. $[ ${VAR1} + ${VAR2} ]

Sintaxis Condicional

expresión?destino1:destino2

Macros Sirven para reutilizar códigos

Se definen como contextos anteponiendo el prefijo macro-

Ej. [macro-nombremacro]

Puede recibir parámetros cuando se llama al macro

El macro es llamado de la siguiente forma:

Macro(nombremacro,parametro1,parametro2,....)

Los parámetros son invocados como:

${ARG1}, ${ARG2}, ....

64

Capítulo 10

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Variables disponibles en Macros A más de las definidas por el usuario ${ARGn} se pueden usar las siguientes variables

AstDB Pequeña base de datos accesible desde el plan de marcado

Agrupa información por familias.

Familias importantes: AMPUSER y DEVICE

Aplicaciones importantes:

Plan de Marcado de FreePBX Reside principalmente en extensions.conf que incluye a:

extensions_additional.conf: Archivo generado por FreePBX que nunca se debe

modificar pues todos los cambios serán sobre escritos cuando FreePBX recargue su

configuración

extensions_custom.conf: archivo que se puede editar para crear nuestros

contextos y que éstos no sean sobre escritos por FreePPX

65

Capítulo 10

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Macros de Apoyo

Contextos de Entrada Son los contextos desde donde se reciben llamadas

Conocimientos Útiles Determinar si una variable esta vacía

ej. exten => s,1,GotoIf($[${LEN(${VARIABLE_TEST})} > 0]?destino)

Obtener la fecha actual

ej. exten => s,4,AGI(recordingcheck,${STRFTIME(${EPOCH},,%Y %m%d-

%H%M%S)},${UNIQUEID})

Sobrescribir extensión.conf.- Para sobreescribir un contexto definido se puede utilizar

el archivo: extensions_override_freepbx.conf

66

Capítulo 11

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

ASTERISK: AGI & AMI

AGI (Asterisk Gateway Interface) Es una manera de interactuar con Asterisk desde un programa de línea de comandos

Este programa puede ser escrito en cualquier lenguaje

El programa AGI es invocado desde el dialplan

La salida estándar debe tener cierto formato. Es lo que se llaman comandos AGI

Gracias a AGI podemos desarrollar funcionalidades extra en nuestro plan de marcado

como: IVRs de consulta a base de datos, etc.

Los programas AGI residen en /var/lib/asterisk/agi-bin/

Elastix trae algunos scripts allí preinstalados

Ejecución de scripts AGI Los scripts AGI se comunican con Asterisk a través de STDIN, STDOUT y STDERR

Por tanto, los scripts AGI se deberían poder ejecutar desde la línea de comandos

Cuando son ejecutados a través de Asterisk los permisos son muy importantes.

Para invocar al script desde el dialplan podemos utilizar la función AGI()

Se le pueden enviar parámetros al script utilizando la sintaxis:

AGI(script.agi,par1,par2,...)

Adicionalmente Asterisk le envía al script ciertos parámetros por omisión, que

veremos a continuación

67

Capítulo 11

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Algunos parámetros enviados por omisión

A continuación algunos de los más importantes:

agi_request – El nombre del archivo script

agi_channel – El canal que originó la llamada

agi_type – El tipo de canal. Por ej. SIP o DAHDI

agi_uniqueid – Un identificador único para la llamada

agi_callerid – El caller ID en caso de estar disponible

agi_context - Contexto

agi_extension - Extensión

agi_accountcode – Código de cuenta, en caso de estar disponible

Algunos comandos AGI útiles say digits: Sintetiza y reproduce números. Util para IVRs que recuperan data de la DB

hangup: Cuelga el canal (llamada) actual

stream file: Reproduce un archivo de audio

set context: Establece un contexto para continuar luego de la finalización del AGI

noop: Sólo muestra mensajes en el log

set variable: Establece una variable de canal

Ejemplo AGI sencillo Veamos lo sencillo que es usando un ejemplo escrito en PHP. Llamaremos al script

simple.agi

Ahora pongámoslo accesible desde el dialplan cuando se marque el número 6789

68

Capítulo 11

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

AMI (Asterisk Management Interface)

Es otra manera de controlar Asterisk pero a través de la red IP. La comunicación es de

tipo texto.

Se pueden desarrollar aplicaciones remotas

Un ejemplo es el módulo de call center de Elastix, otro ejemplo es el FOP

El puerto AMI por omisión es el 5038

No cualquier equipo puede interactuar con el puerto AMI. Previamente su IP tiene que

ser habilitada en el archivo /etc/asterisk/manager.conf

/etc/asterisk/manager.conf

Probando desde telnet Una manera sencilla de probar si nos podemos conectar al puerto AMI

En el siguiente ejemplo nos conectaremos desde el propio servidor. Lo primero que

veremos es el mensaje de bienvenida:

69

Capítulo 11

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Luego probaremos autenticándonos:

Si los datos estuvieron correctos recibiremos un mensaje de éxito

¿Recuerdan cual es la contraseña de AMI?

Tipos de paquetes AMI En la comunicación por AMI se pueden identificar tres tipos de paquetes de

información.

Acción: Un comando enviado por el cliente al servicio AMI para que sea procesado

Respuesta: La respuesta de Asterisk a la Acción requerida por la aplicación cliente

Evento: Se trata de información de un evento asincrónico ocurrido en Asterisk. Por

ejemplo, ingresó una llamada telefónica

Para relacionar las respuestas con las acciones se puede incluir un ActionID en cada

Acción. Asterisk devolverá este parámetro en la respuesta.

Acciones AMI comunes Login: Nos permite autenticarnos con AMI

Logoff: Termina la sesión

Events: Controla el flujo de eventos

Originate: Inicia una llamada telefónica

Redirect: Transfiere una llamada

Hangup: Cuelga una llamada

Getvar: Obtiene una determinada variable de canal

70

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

ELASTIX CONFIGURACIÓN AVANZADA

Ruteo de Llamadas Rutas Entrantes:

Esta opción permite configurar el destino de las llamadas que ingresan por una

determinada troncal.

Cuando una llamada entra, Asterisk puede buscar “matchear” el DID ó el CallerID de

la troncal.

71

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Rutas Salientes:

Mediante las rutas salientes podemos indicar por qué troncal o troncales deben ser

enviadas las llamadas.

Troncales Una troncal es el camino lógico que permite llevar una llamada a cualquier destino

externo.

Alguno de los tipos de troncales son:

DAHDI

IAX2

SIP

Custom

Troncal DAHDI Parámetros a configurar en una troncal DAHDI:

72

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Troncales de tipo IAX2 y SIP Además de las configuraciones especificadas, se deben incluir configuraciones entrantes

y salientes

Esta información generalmente es especificada por el proveedor de servicios de voz.

Las configuraciones pueden incluir username, password, codec, el host destino, etc.

Ejemplo de configuración de los detalles del Peer:

Nota: Es posible que se requiera una cadena de registro que tiene la siguiente sintaxis:

nombre_de_usuario:password@host

Troncales Personalizadas Estas troncales son creadas cuando se usan protocolos no estándares como

h323,misdn, etc.

Se debe especificar un string de marcado. Por ejemplo:

73

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Tarifación La opción Rates/Tarifas (Reports → Billing → Rates) nos permite visualizar y

configurar las tarifas que se usarán para la facturación de llamadas.

Crear Tarifa

Para agregar una nueva tarifa dar clic en el botón Crear Nueva Tarifa. Se mostrará un

formulario en el que se ingresarán los siguientes campos:

Prefijo: Prefijo telefónico al cual se aplicará la tarifa.

Nombre: Nombre para la tarifa.

Tarifa: Valor de la tarifa por minuto.

Rate offset: Valor de interconexión.

Dígitos Ocultos: oculta los últimos "n" dígitos del número en el reporte.

Troncal: Troncal asignada para la tarifa.

74

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Para tener disponible una troncal debemos habilitarla en Billing Setup (Reports →

Billing → Billing Setup).

En este menú podemos configurar además la tarifa por defecto y el rate offset por

defecto.

Visualizar, Editar y Eliminar

El enlace Ver nos llevará a una pantalla donde se mostrará los datos de la tarifa.

Podemos editar los valores de la tarifa haciendo clic en el botón “Editar”, o eliminarla

haciendo clic en “Eliminar”

Reporte de Facturación

Este reporte (Reports → Billing → Billing report) nos permite ver todos los detalles de

las llamadas y su respectivo costo y ruta aplicada.

Este reporte cambiará dependiendo de 3 valores de filtro:

Fecha Inicio: Fecha que queremos configurar como inicial para el reporte.

Fecha Fin: Fecha final para el reporte.

Campos de filtro adicional son: Tarifa aplicada, Duración, Rate value, Fuente,

Destino, Canal destino, Account Code.

75

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Distribución de Destinos

Esta opción (Reports → Billing → Destination distribution) nos permite ver una gráfico

de distribución de llamadas salientes agrupadas por tarifa.

El gráfico cambiará dependiendo de los valores de filtro:

Fecha Inicio: Fecha que queremos iniciar la revisión de llamadas.

Fecha Fin: Fecha final para la revisión.

Criterios de distribución: Distribución por tiempo, distribución por número de

llamadas, distribución por costo.

Reportes: CDR CDR es la abreviación para Registro de Detalle de Llamada (Reports → CDR Reports).

Este reporte nos permite ver un listado con el detalle de todas las llamadas.

76

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Los reportes son exportables a CSV, XLS (para acceso lectura/escritura), o PDF

(lectura-únicamente) formatos.

Este reporte cambiará dependiendo de los siguientes valores de filtro:

Fecha Inicio: Fecha que queremos iniciar la revisión de llamadas.

Fecha Fin: Fecha final para la revisión.

Grupo de timbrado: permite filtrar por grupo de ringado si existe.

Estado: Contestado, Ocupado, Fallido, No Contestado.

Campo de filtros adicionales: Fuente, Canal de Origen, Account code, Canal de

Destino.

Uso de canales El reporte de uso de canales: “Channels Usage” report (Reports → Channels Usage)

permite ver de manera gráfica el número de llamadas simultáneas por canal.

77

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configuración DISA DISA permite que los usuarios puedan acceder telefónicamente a su servidor Elastix

desde fuera y obtener un tono "interno" de marcado.

E.g. podría realizar llamadas internacionales, a teléfonos móviles, entre otros.

Nombre de DISA: El nombre referencial para este accedo DISA

PIN: La contraseña necesaria para acceder al soporte DISA.

Tiempo de espera para la respuesta: Máximo tiempo que la aplicación esperará al

usuario por el PIN.

Tiempo de espera de marcado: Máximo tiempo entre dígitos.

Pedir confirmación: Pregunta por una confirmación antes del pedido de la contraseña.

Identificador de llamante: Todas las llamadas DISA usarán este Caller ID (opcional)

Contexto: Contexto que usará el DISA

Permitir colgar: Permite colgar la llamada presionando "**" para tener tono

nuevamente.

Condiciones de tiempo El uso de condiciones de tiempo es una característica muy útil para modificar el

comportamiento de la PBX dependiendo de la hora o del día de la semana.

EJEMPLOS:

78

Capítulo 12

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

La compañía X desea que por las noches se reproduzca un mensaje indicando el

horario de atención e indicando que en casos de urgencias se podrían comunicar con

un número alterno.

La compañía Z desea reproducir un IVR de bienvenida distinto al habitual durante los

fines de semana ya que siempre lanza promociones durante estos días.

79

Capítulo 13

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

INTERCONEXIÓN CON ELASTIX REMOTOS

A través de troncales SIP Una de las ventajas de usar Elastix es que fácilmente podemos interconectar dos cajas

Elastix de tal manera que se puedan unir las comunicaciones de dos lugares remotos.

Por ejemplo en un solo plan de marcado.

A continuación veremos como configurar la interconexión de dos Elastix mediante una

troncal de tipo SIP.

Escenario:

En el escenario mostrado a continuación queremos interconectar la central A con la

central B de tal forma que el teléfono A y el teléfono B se puedan comunicar

únicamente marcando las extensiones de forma directa

Para implementar esto se requiere definir dos cosas:

La troncal

Las rutas salientes en cada Elastix

Definiendo la troncal

Definimos el nombre de la troncal, el cual en nuestro caso servirá de username para el

proceso de registro.

A la troncal del servidor A la llamaremos elastixA y la troncal del servidor B la

llamaremos elastixB.

Luego definimos los detalles del peer.

80

Capítulo 13

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ejemplo de configuración del peer:

Configuración que se repite en ambos servidores Elastix. Como se ve hemos definido

como “secret” la palabra welcome.

Register String

Definimos el register string siguiendo el formato especificado anteriormente:

En este caso para la central Elastix A debería ser:  

y para la central Elastix B debería ser:

Una vez establecida esta configuración en ambos servidores podemos verificar en si se

encuentran registradas las troncales.

En el Asterisk CLI mediante el comando: sip show registry y deberíamos ver algo como

esto:

El siguiente paso es definir los detalles del user, es decir en donde se quiere terminar la

llamada.

En este caso queremos que sea accesible a la extensiones local, bastará con colocar el

contexto primario. Esto indica que cuando la llamada entre por la troncal iniciará en el

contexto aquí especificado.

La configuración es como sigue:

81

Capítulo 13

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Definiendo la ruta saliente

Primero determinamos el nombre de la ruta salientes. En este caso le pondremos:

HaciaElastixB.

Luego definimos el patrón de marcado, en este caso usaremos el siguiente patrón de

marcado: 2|XXX (asumimos que para marcar al servidor B debemos marcar el prefijo

2).

En tercer lugar escogemos por qué troncal deberá enrutarse la llamada, en este caso

escogemos por la troncal sip/elastixA

Conexión con proveedores VoIP

Hoy en día ha tenido mucho auge los VSP (Voice Services Provider) ó proveedores de

servicios de voz.

Estos proveen conexiones SIP o IAX principalmente, a su infraestructura para permitir

conectar llamadas locales en una región.

En esta sección implementaremos una conexión SIP con un proveedor VSP que nos

permitirá hacer llamadas dentro de Estados Unidos.

Escenario:

En el siguiente escenario queremos registrar una troncal de tipo SIP con un VSP que

nos permita realizar llamadas a EEUU desde cualquier teléfono IP.

Para implementar esto se requiere definir dos cosas:

La troncal

Las rutas salientes en cada Elastix

82

Capítulo 13

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Definiendo la troncal

Como vimos en la sección anterior se debe definir el nombre de la troncal en este

caso la llamaremos: VP-SIP

Luego definimos las características del peer.

Esta información debe ser proporcionada por el VSP y generalmente es la misma para

todos los usuarios a registrar, lo único que cambia es el usuario y el password.

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

Luego agregaremos la cadena de registro que en nuestro caso sería:

Primero determinamos el nombre de la ruta salientes. En este caso le pondremos:

INTERNACIONAL

Luego definimos el patrón de marcado, en este caso usaremos el siguiente patrón de

marcado: 00.

En tercer lugar escogemos por que troncal debe irse la llamada en este caso

escogemos por la troncal SIP/VP-SIP

Una vez realizada la configuración podemos verificar en el Asterisk CLI si se la troncal

se encuentra registrada.

Usamos el comando: sip show registry y deberíamos ver algo como esto:

83

Capítulo 13

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Módulo VoIP Provider

Desde la versión 2.0 Elastix tiene un módulo con proveedores incluidos por defecto.

El módulo permite configurar cuentas VoIP de manera automática.

Si el proveedor no está enlistado usted puede escoger “Custom” como opción para

mostrar el cuadro de “PEER Settings”.

La opción “Custom” es además una alternativa al proceso de crear una conexión con

un proveedor SIP.

Usted puede seguir el procedimiento descrito en la sección anterior o crear una

cuenta a través del módulo VoIP Provider.

Si usted tiene ya una cuenta con alguno de los proveedores incluidos, solo necesita

ingresar la información y la cuenta se creará.

Usted puede revisar el registro en el Asterisk CLI

84

Capítulo 13

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Posterior a esto revisamos la troncal en PBX → PBX Configuration → Troncales.

Observaremos la cuenta como un SIP Trunk, en este ejemplo: N2P-DRB (sip).

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

el servicio.

85

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

CALIDAD DE VOZ

Síntomas que afectan la calidad de voz

Son los problemas que el usuario percibe desde su perspectiva

Existen muchos, sin embargo los más comunes son:

Eco

Bajo volumen

Retardo

Distorsión de la voz

Comunicación entrecortada

Síntomas: Eco

La señal de ida se refleja en la de vuelta

Fácil de identificar por un humano

Una causa común es un desbalance en el híbrido

También hay eco acústico. Ej. El producido por speaker

Algunas tarjetas permiten ajustar este desbalance. La utilería fxotune puede ser usada

con este fin

El famoso híbrido de 2 a 4 hilos

fxotune

El comando fxotune viene en Elastix

Debe ejecutarse con Asterisk apagado

86

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Simplemente se ejecuta “fxotune -i 5”

El número 5 sólo indica qué dígito se debe marcar para suspender el tono de marcado.

En casi todo los casos es cualquier dígito

Guarda los resultados en /etc/fxotune.conf

Para que DAHDI se calibre en base a este archivo hay que ejecutar “fxotune -s”

Síntomas: Bajo Nivel o Volumen

La señal eléctrica se atenúa

Usualmente conductores de mala calidad

Es posible amplificar la señal con el uso de los parámetros rxgain y txgain pero hay que

tener cuidado pues esto podría generar eco

Estos parámetros se modifican a nivel de DAHDI en chan_dahdi.conf.

Síntomas: Retardo

La voz se demora más de lo usual en llegar a destino

Si es menor a 200ms pasa desapercibido

Retardo de más de 500ms provoca que la conversación se traslape, lo cual es molesto

para el interlocutor

Las redes de paquetes pueden introducir retardo si se sobrepasa su capacidad

Hay que tratar de solucionar a nivel de red

Síntomas: Distorsión de la voz

Sonido “robotizado”

Los codecs que comprimen la voz ahorran ancho de banda pero eliminan información,

esto provoca disminución de calidad de voz

Se puede cambiar de codec pero hay que tener en cuenta la disponibilidad de ancho de

banda

Algunos codecs se comportan muy mal frente a problemas de red como pérdida de

paquetes o retardos de red.

87

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Síntomas: Comunicación entrecortada

Se pierde la voz por pequeños instantes de tiempo

Provoca que la conversación sea menos entendible y por lo tanto es molestoso

Usualmente se trata de problemas de red debido a equipos defectuosos, ruido

eléctrico en el cableado o equipos saturados en su capacidad

Se puede mejorar en cierta medida con un jitterbuffer

Parámetros en redes de paquetes relacionados con la calidad de voz

Hablamos de parámetros medibles aquí

A partir de estos podemos determinar cuantitativamente cómo se verá afectada la

calidad de voz por la red de paquetes

Para simplificar las cosas resumiremos todo con tres parámetros de fácil medición:

Retardo de red

Pérdida de paquetes

Jitter

Parámetros: Retardo de red

No estamos hablando de retardo de voz sino de paquetes de red

El retardo se mide en milisegundos

Aunque no es lo ideal se puede medir fácilmente con un ping

Parámetros: Pérdida de paquetes

Porcentaje de paquetes que no llegaron a su destino

Si un paquete llega demasiado tarde ya no se espera por él

La pérdida de paquetes no es deseable en ningún porcentaje. Incluso un 1% puede

afectar significativamente la calidad de voz

También se puede medir (aproximadamente) con un ping

88

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Parámetros: Jitter

Es la variabilidad del retardo

También se mide en milisegundos

No basta con tener un promedio de retardo aceptable si la variabilidad (jitter) es muy

alta

En aplicaciones de tiempo real como la voz si la información no llega justo a tiempo no

se puede esperar por ella

Para esperar paquetes con pequeños retardos se utiliza un jitterbuffer. Este feature ya

viene disponible en Asterisk 1.4

Jitterbuffer

Es un buffer donde se encolan paquetes por un tiempo determinado en espera de que

lleguen todos o la mayor parte posible

El tamaño del jitterbuffer es el tiempo que de espera y está en milisegundos. Un valor

usual es de 200ms

En el sip.conf (o equivalente) el parámetro se llama jbenable=yes

En el iax.conf (o equivalente) el parámetro se llama jitterbuffer=yes

Cuando el teléfono incide en la calidad de voz

Sin duda hay electrónica mejor que otra. Algunos chips procesan mejor la voz,

especialmente cuando se trata de codecs de alta compresión

Algunos chips también añaden tecnología inteligente para mejorar la calidad de voz

La calidad del micrófono y audífono también incide

89

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Lamentablemente, a mayor calidad, mayor precio

Los softphones no están libres de problemas y dependen del computador. Cualquier

problema de desempeño podría afectar la calidad de voz

¿Cómo medir la calidad de voz?

Algo muy difícil pues tiene un componente subjetivo

La mente humana es muy complicada

Hay muchos modelos que intentan medir la calidad de voz. Dos que han cobrado

relevancia son MOS y el modelo E. Los estudiaremos brevemente en este curso

La escala MOS es más subjetiva y el modelo E es más objetivo

Escala MOS

Es una recomendación ITU basada en la toma de muestras subjetivas a participantes

Se les pide a algunas personas que califiquen la calidad de voz del 1 al 5

Previamente se les hace escuchar algunas conversaciones y se les muestra la calificación

para que tengan un marco referencial

Las frases que se hacen escuchar a los participantes se encuentran pre-definidas

también

90

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Modelo E

También es una recomendación ITU

Se trata de un modelo más objetivo y matemático, no “necesariamente” mejor que

MOS

Se calcula en base a algunos parámetros medibles y tiene una escala distinta a MOS

(incluyendo valores negativos)

En este curso utilizaremos una fórmula simplificada que depende básicamente del

retardo de red y la pérdida de paquetes

La fórmula es:

R = 94,2 – Id – Ie

Donde,

R representa la calidad de voz

Id representa cómo afecta el retardo a la calidad

Ie representa cómo afecta la pérdida de paquetes

Notar que el parámetro Id representa el retardo ¡pero no es el retardo en sí!

También es interesante notar que el valor máximo que puede tomar R es de 94,2

Para obtener Id:

Id = 0.024 · d + 0.11 · (d – 177.3) · H(d – 177.3)

Donde d es el retardo en milisegundos y H( ) es la función de Heavyside

H(x) = 0 para x < 0 y 1 para x ≥ 0

Para obtener Ie utilizaremos un gráfico que simplificará las cosas

Vemos que Ie depende del codec, así que ahora es más obvio que algunos codecs se

ven más afectados por la pérdida de paquetes que otros.

91

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Traduciendo R a la escala MOS

Es muy útil ya que MOS es más conocido y sencillo de relacionar con calidad

La fórmula es la siguiente:

Cancelador de eco

Existen versiones hardware y software

En la actualidad ya casi no existe diferencias entre el desempeño de ambas ya que la

capacidad computacional ha crecido mucho

El objetivo es calcular en tiempo real qué porcentaje de la señal de ida se refleja en la

de regreso. Si puede predecir con exactitud sólo queda restar ese porcentaje y

obtendremos una señal sin eco

Esta predicción la realiza un componente llamado filtro adaptativo

En la realidad el eco no sólo es una señal atenuada sino que también puede estar

desplazada en el tiempo (con retardo)

El filtro adaptativo tiene entonces que predecir no sólo el porcentaje de señal reflejada

sino también el retardo

Por lo tanto, analiza la señal por un lapso de tiempo llamado “cola” (o tail) y que está

en el orden de milisegundos

Valores típicos de cola son 64ms o 128ms

92

Capítulo 14

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Estándar G.168

Especificación propuesta por la ITU para definir parámetros de funcionamiento de

canceladores de eco

Existen canceladores de eco compatibles con G.168 y existen otros que no

Hay empresas en el mundo que se encargan de certificar si un cancelador de eco es o

no compatible con G.168.

Por lo general esta certificación la sacan los canceladores de eco comerciales como

Softecho de Octasic

Oslec

Elastix incorpora un interesante software de cancelación de eco, open source,

conocido como OSLEC.

Este cancelador de eco es parte de DAHDI y puede ser configurado, de manera

independiente por cada canal, de manera fácil desde la interfaz Web de Elastix.

La siguiente imagen muestra la configuración de una tarjeta de telefonía analógica. En

ella se selecciona el software para la cancelación de eco.

OSLEC está seleccionado por defecto.

Para configurar el cancelador de eco en una tarjeta instalada ir a System → Hardware

Detector → Configuración de Span.

93

Capítulo 15

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

PROTOCOLOS VoIP AL DESCUBIERTO

Protocolo SIP

El protocolo SIP (Session Initialization Protocol) es un protocolo de señalización

(application-layer control)

Creado para administrar sesiones multimedia entre dos o más partes.

Muchos se confunden pensando en que el protocolo SIP es el que transporta la voz

propiamente dicha pero no es así

Esta labor la realiza otro protocolo que veremos más adelante; de lo que sí se encarga

SIP es de la comunicación necesaria para establecer una llamada, modificarla, así como

para finalizarla.

Detalles del protocolo

RTP es el portador de la voz y el video.

SDP se usa para negociar las capacidades de los endpoints.

Usa dos importantes protocolos como RTP/RTCP y SDP.

La última versión del estándar es la RFC3261.

Basado en texto, lo que nos permite entender los mensajes de una manera

relativamente fácil.

94

Capítulo 15

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Señalización SIP: Métodos y Respuestas

95

Capítulo 15

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

SIP y Asterisk

Algunos detalles a tener en cuenta cuando se usa el protocolo SIP con Asterisk son los

siguientes:

• A pesar de que SIP es independiente de la capa de transporte (puede ser usado

con TCP, UDP, ATM, X.25, entre otros)

• En Asterisk su implementación estaba limitada a UDP hasta la versión 1.6. En la

versión 1.8 viene con soporte nativo para TCP.

• Por omisión se usa el puerto 5060, pero este parámetro se puede modificar en

el archivo sip.conf

• SIP tiene problemas de NAT traversal. Parámetros especiales como externip,

localnet y nat, pueden ser definidos en sip_general_custom.conf para resolver

esto.

• En Asterisk es posible hacer diagnóstico del protocolo SIP. Esto se verá más

adelante.

Una sección de llamada SIP entre dos teléfonos – sin SIP proxy

Protocolo IAX: Generalidades

El protocolo IAX (Inter-Asterisk eXchange) es un protocolo de señalización creado

por Mark Spencer, el mismo creador de Asterisk, con el objetivo de solucionar algunos

problemas existentes con otros protocolos.

En esencia IAX presenta tres ventajas muy interesantes sobre otras alternativas como

SIP.

Consume menos ancho de banda

96

Capítulo 15

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Soluciona mejor problemas de NAT

Pasa más fácilmente a través de firewalls

Actualmente se usa la versión 2 del protocolo IAX,sin embargo la nomenclatura

general se intercambia entre IAX e IAX2.

IAX es un protocolo binario, a diferencia de SIP que como recordaremos es un

protocolo basado en texto.

IAX usa UDP y normalmente usa el puerto 4569.

Lo interesante de IAX es que por un solo puerto transmite tanto la voz como la

señalización y es esto lo que le permite resolver problemas de NAT

Además de esta característica el protocolo permite la troncalización de varios canales

de audio en el mismo flujo de datos.

Llamada usando IAX Una llamada IAX se puede dividir en 3 fases:

Establecimiento de la llamada

Llamada en curso

Terminación de la llamada

Establecimiento de la llamada

El equipo que la inicia (equipo A) le envía un mensaje NEW al equipo B y éste último

responde con un mensaje ACCEPT.

Luego el equipo destino timbrará en espera de que el usuario conteste. Si contesta, el

equipo B enviará un mensaje ANSWER al equipo A.

Llamada en curso

Si se contestó la llamada se inicia el intercambio de audio mediante unos paquetes

llamados frames.

Terminación de la llamada

Para terminar la llamada cualquiera de las partes involucradas debe enviar un mensaje

HANGUP.

97

Capítulo 15

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Estableciendo una llamada

Terminación de la llamada

Frames IAX

Para intercambiar el audio entre los participantes de la llamada se utilizan dos tipos de

frames llamados Full y Mini.

También se les suelen llamar F y M.

Una conversación está compuesta en su mayoría por frames tipo Mini cuya virtud es

ser ligeros. Esto quiere decir que tienen una cabecera pequeña (de 4 bytes), lo cual

ayuda a ahorrar ancho de banda.

De cuando en cuando se intercambian frames tipo Full, los cuales conllevan

adicionalmente información de sincronización.

98

Capítulo 15

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Protocolo RTP

RTP es el protocolo que se encarga de transportar la voz propiamente dicha.

Muchas personas se confunden y piensan que ese es el trabajo de SIP pero no es así.

Una vez que SIP establece una llamada es RTP quien toma la posta para transportar la

voz a su destino.

RTP trabaja sobre UDP y por lo tanto no hay mucho control de transmisión.

Es decir que el equipo emisor envía la voz hacia el otro extremo con la esperanza de

que llegue, pero no espera recibir confirmación de esto y a decir verdad tampoco hay

tiempo para hacerlo pues la voz necesita ser transmitida en tiempo real.

Si un paquete de voz se pierde en el camino simplemente se rellenará ese espacio con

un silencio. Lo que técnicamente se llama ruido confortable (comfort noise).

Es por esta necesidad de transmitir la información en tiempo real que resulta evidente

que RTP sea un acrónimo de Real-time Transport Protocol.

Protocolo RTCP A pesar de encargarse de casi toda la labor de transportar la voz, RTP no está solo y

tiene un protocolo de apoyo llamado RTCP.

RTCP no es del todo indispensable pero proporciona valiosa ayuda al momento de

transportar la voz de manera óptima pues proporciona estadísticas e información de

control que le permiten a Asterisk o al otro extremo tomar decisiones para mejorar la

transmisión en caso de ser posible.

Por lo tanto, los paquetes RTCP se transmiten periódicamente para comunicar dicha

información a los equipos de voz involucrados.

99

Capítulo 16

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

DIAGNÓSTICO BÁSICO

Interpretando logs

Todo software es perfectible, por lo cuál no debe sorprendernos si alguna vez

encontramos un bug en su funcionamiento, inclusive si se trata de Asterisk o algún

otro componente de Elastix.

Para ayudarnos a encontrar la causa por la cuál nuestro Asterisk no se está

comportando de forma habitual, se recomienda revisar la bitácora o también podemos

ayudarnos de depuradores.

Un depurador es un programa que nos permite examinar la ejecución de un programa

a un nivel de detalle mayor que el habitual

Alternativas de herramientas de depuración: strace y gdb

Cuando tenemos un problema con un servidor, antes de perder la cabeza se

recomienda seguir los siguientes pasos:

Identificar el componente que está causando problemas

Reproducir el bug

Buscar si se trata de un bug que ya se encuentra identificado

Depurar

Reportar el bug

Para poder interpretar un error debemos al menos conocer los errores más comunes

de programación, y mejor aún si en nuestras capacidades está el poder aportar con una

corrección en el código fuente.

Algunas causas son:

Falla de segmentación

Deadlock

División para cero

Buffer overflow

Strace

Es un depurador para Linux muy fácil de usar que monitorea las llamadas a sistema que

realiza un programa determinado y todas las señales que este recibe.

Sintaxis:

100

Capítulo 16

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

strace [opciones] programa [argumentos]

Ejemplo:

strace cat /proc/cpuinfo

GDB

Nos permite hacer seguimiento de la ejecución de un programa insertando pausas

cuando creamos necesario.

También nos permite observar lo que un programa estaba haciendo cuando se colgó.

Existen tres maneras de usar gdb:

Depurando un programa desde el depurador

Depuración sobre Asterisk en plena ejecución

Depuración haciendo backtrace sobre un Asterisk caído

Sintaxis: gdb programa opciones

Diagnóstico con el CLI

Asterisk posee una interfaz de línea de comandos (CLI) que permite trabajar

directamente ingresando comandos.

Para ingresar debemos ejecutar asterisk -r

Para depurar los mensajes de Elastix, podemos incrementar el nivel de detalle de los

mensajes mostrado. Para ello usamos el comando: core set verbose 6

Con ello subimos a nivel de detalle 6, con lo que Asterisk será más informativo. El

valor inicial es 3.

Es importante también conocer si todos los dispositivos de mi plan de marcado están

disponibles.

Lo consultamos con el siguiente comando: core show hints

Una forma de consultar la ayuda para revisar los comandos disponibles es ejecutando:

help

Si necesitamos ayuda con algún comando en específico ejecutamos: help [comando]

Sniffing

Sniffing es una práctica que consiste en escuchar los paquetes que circulan por la red.

101

Capítulo 16

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Para poder capturar el tráfico se utiliza una aplicación llamada Sniffer y existen algunas

alternativas disponibles.

Si podemos capturar los paquetes RTP de una llamada podemos utilizar herramientas

para convertir estos paquetes en audio que podamos escuchar.

El protocolo SIP es un protocolo de texto, capturando paquetes SIP de la red

podremos ver información como Caller Ids, comandos y respuestas SIP.

Algunas herramientas disponibles:

VoIPong: rastrea la red en busca de llamadas VoIP, las guarda en formato wav.

Wireshark: el antiguo proyecto Ethereal permite análisis de VoIP y grabar el payload en

formato crudo.

Oreka: algo más complejo pero que permite incluso decodificar codecs, provee

interfaz web de monitoreo.

Para evitar escuchas o pinchazos telefónicos a nivel de VoIP tenemos la alternativa de

encriptar la comunicación (SRTP, VPN, IAX encriptado)

102

Capítulo 17

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

SISTEMA DE CORREO EN ELASTIX

Arquitectura del sistema de email

Un sistema de correo electrónico esta formado de varios componentes. Los

principales son:

MUA (Mail User Agent),

MTA (Mail Transfer Agent),

MDA (Mail Delivery Agent).

MUA (Mail User Agent)

Programa con el que se genera el correo electrónico.

Puede residir en la estación de trabajo del usuario, como Mozilla Thunderbird o

Microsoft Outlook.

Puede residir en el servidor, como servicio de Webmail o sistemas de Voicemail y de

Fax.

Los usuarios acceden a sus buzones de correo a través del MUA, mediante los

protocolos POP y/o IMAP, que deben estar activos en el servidor de correos.

MTA (Mail Transfer Agent)

Mediante protocolo SMTP, recibe el mensaje del MUA.

Decide a quién debe entregar el mensaje.

103

Capítulo 17

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Si el mensaje está destinado a otro dominio, el MTA trata de contactarse con el

servidor de correo de dicho dominio y transfiere mediante el protocolo SMTP el

mensaje.

Si el mensaje está destinado al dominio local, el MTA transfiere el mensaje al MDA que

se encarga de colocarlo en el buzón respectivo.

MDA (Mail Delivery Agent)

Es un software que acepta correo entrante.

Distribuye los mensajes a los buzones de los destinatarios si la cuenta de destino está

en el servidor local.

Reenvía los mensajes a un servidor SMTP si la cuenta de destino está en una ubicación

remota o está dirigido a otro dominio.

En Elastix

El MTA que usa Elastix es Postfix.

El MDA que usa Elastix es Cyrus IMAP, que además provee los servicio de POP e

IMAP.

Elastix tiene una interfaz de webmail incorporada que se llama RoundCube Mail, que

puede ser usada como MUA.

Configurando el sistema de email

Elastix facilita la tarea de configuración del servidor de correo.

En la interfaz gráfica de Elastix, ir a Email → Domains.

Tomando en cuenta que el servicio de correo de Elastix es multi-dominio, podemos

configurar el servidor para recibir los correos de diferentes dominios.

Para crea un nuevo dominio se utiliza el botón ”Crear Dominio”, lo que muestra una

nueva pantalla en la que se ingresa el nuevo dominio.

104

Capítulo 17

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Después de crear un dominio nuevo podremos crear cuentas de correo. Ir a Email →

Accounts.

Seleccione el dominio deseado y haga clic en "Crear una nueva cuenta"

Ingresamos la información básica de la cuenta de correo, la cuota y la contraseña.

Luego guardamos.

El nombre de la cuenta tiene la siguiente syntaxis: nombre_de_la_cuenta@dominio.

Para editar la contraseña y/o la cuota basta con hacer clic en el link de la cuenta.

Relay

Si se va a utilizar un software manejador de correos (Microsoft Outlook, Mozilla

Thunderbird u otro similar), se deberá configurar en el servidor las direcciones de red

que estarán autorizadas para realizar el envío de correos hacia dominios que no son

locales.

El proceso para realizar este envío a un dominio externo se denomina RELAY .

Para configurarlo debemos ir a Email → Relay .

105

Capítulo 17

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Se muestran las direcciones de red que están permitidas, y se puede agregar una

dirección de red por línea, indicando además la máscara de red de la misma.

RoundCube Mail

Es una interfaz gráfica de correo integrada en Elastix localizada en: Email → Webmail

(Interfaz de Elastix).

Para acceder directamente puede colocar la siguiente dirección en su browser:

https://IP_del_Servidor/mail y hacer login con una de las cuentas creadas

anteriormente.

Para hacer login es necesario ingresar la dirección de correo electrónico completa

(usuario@dominio) y la contraseña.

Configuraciones a bajo nivel

Postfix

Servicio de correo MTA usado por Elastix.

Potente, seguro y flexible para configuraciones avanzadas.

Smart Relay (Mensajes de correo no destinados a dominios locales se transfieran a un

servidor específico que a su vez se encarga de transferirlo a los servidores de destino).

En Postfix esta opción es llamada "relayhost"

Para configurar la opción "relayhost":

En una consola ir al archivo: /etc/postfix/main.cf

Se agrega la línea relayhost = [servidor_SMTP_GATEWAY]

Se debe reiniciar el servidor para aplicar cambios.

Luchando contra el SPAM

Elastix provee un filtro contra SPAM que verifica los mensajes recibidos por el servidor

de correo y les asigna un puntaje dependiendo de ciertas características.

Se puede configurar un nivel de atrapar del 1 al 10, siendo 1 el nivel con el

minuciosidad mas alta.

El filtro de SPAM tiene dos políticas:

106

Capítulo 17

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Marcar Asunto.- Marcara correo como spam con un prefijo ([SPAM] está configurado

por defecto) y lo enviará al buzón de entrada.

Capturar Spam: Marcará el spam con un prefijo, pero lo enviará a una carpeta de spam

en lugar del buzón de entrada.

El Antispam debe estar activado para trabajar.

Instalando Antivirus

En Elastix, cualquier antivirus que trabaje con Postfix puede ser instalado.

Es importante seguir las instrucciones del fabricante.

Existen varias opciones de antivirus libres:

ClamAV

F-Prot

Avira

Vexira

Entre otros.

107

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

FAX EN ELASTIX

Sistema de Fax en Elastix

El sistema de fax en Elastix está compuesto de 4 componentes importantes:

Asterisk: telefonía IP.

Iaxmodem: Programa de fax-modem que se conecta a asterisk mediante un canal IAX.

Crea un dispositivo (/dev/ttyIAX), que será utilizado por Hylafax

Hylafax: Programa para envío y recepción de fax.

Framework NEO: Esquema de desarrollo que incluye librerías que implementan Elastix.

Esquema básico del sistema de fax

laxmodem

Es una aplicación que simula un faxmodem mediante librerias DSP (Digital Signal

Processing).

Esta aplicación puede ser usada por cualquier programa de envío y recepción de fax.

Cuando se implementa iaxmodem se crea un archivo que contendrá los datos que

define el dispositivo virtual y lo asocia a una extensión de asterisk.

En Elastix ese archivo es:

108

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

El archivo iaxmodem-cfg.ttyIAX# es generado por Elastix como sigue:

Hylafax

Es un sistema de envío y recepción de fax.

En su esencia Hylafax consta de un programa servidor llamado Faxgetty que se encarga

de estar monitoreando los dispositivos ttyIAX y de un programa despachador de fax

llamado faxrcvd

El servidor Faxgetty está siempre leyendo unos archivos especiales llamados

FIFO.ttyIAX# que es en donde los dispositivos ttyIAX# reciben comandos de modem.

Elastix utiliza un archivo que permite asociar los modems a Hylafax, es archivo :

El archivo config.ttyIAX# es generado por Elastix como sigue:

109

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Funcionamiento Básico

Estructura del Sistema de Fax

El Sistema de Fax de Elastix está compuesto de 7 Módulos:

faxclients

faxlist

faxmaster

faxnew

faxviewer

sendfax

email_template

Utiliza la base de datos fax.db

Cada módulo contiene las carpetas y archivo:

configs

themes

index.php

El módulo de Fax utiliza librerías del framework principal:

/var/www/html/libs/paloSantoFax.class.php

110

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Base de datos del Sistema de Fax

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

Analizando la librería “paloSantoFax.class.php”

Función _createFaxSystem

111

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Función _configureIaxmodem

Función _configureHylafax

Función _writeInittab

112

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Al final de la función createFaxSystem() se ejecuta los siguientes comandos que hacen

que tomen efecto los archivos creados:

Configurando Fax en Elastix

El menú de Fax muestra por defecto el listado de Faxes virtuales. En este menú

podemos ver todas las extensiones de fax creadas.

Podemos modificar cualquier extensión haciendo clic en ella.

Para crear una extensión de Fax debemos crear primero una extensión IAX.

Luego debemos ir a Fax → New Virtual Fax. Ahí podemos crear la extensión de fax

con la información usada para la creación de la extensión IAX.

El email de recepción puede ser cualquiera.

El menú de Fax Master nos permite incluir una dirección de correo general

(normalmente un email de administración) que permita recibir todos los mensajes de

confirmación o errores del servidor de fax.

 

113

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

El menú Fax Client permite incluir la dirección IP permitida para el envío de fax a

través de Elastix.

El menú Fax Viewer nos permite ver un listado completo de fax recibidos. Podemos

además filtrarlos por fecha o por tipo de fax.

Existe además un campo de búsqueda por nombre de compañía y otro por fax de

compañía.

El menú template de Email (Email Template) nos permite configurar ciertos parámetros

del correo que será enviado con el fax.

Protocolo T.38

El protocolo T.38 es un protocolo recomendado por la ITU que sirve para transportar

FAX sobre redes IP.

T.38 surge como solución a ciertos problemas y métodos de tratamiento de fax como

audio a la hora de transportarlos.

114

Capítulo 18

Elastix Certified Technician PaloSanto Solutions 2012 – © Todos los derechos reservados

 

El protocolo T.38 resuelve estos problemas usando algunas técnicas interesantes como

la redundancia de paquetes.

Es decir que por cada paquete enviado a través de la red es probable que se envíen

algunas copias por si alguno se pierde en el camino.

A partir de Asterisk 1.4 se introdujo soporte limitado para el protocolo T.38. Asterisk

no es capaz de terminar una transmisión T.38, ni de entender el protocolo.

Lo único que puede hacer Asterisk con T.38 es pasar la comunicación de un lado a

otro. O sea que T.38 puede pasar a través de Asterisk y a esta modalidad de

funcionamiento se le llama passthrough.

La versión 1.6 de Asterisk añade más soporte para T.38 y estará en la capacidad de

entender el protocolo un poco más y por lo tanto hacer algunas cosas interesantes.

AvantFax, un GUI Alternativo

AvantFax es un GUI que facilita la administración de faxes.

AvantFax utiliza como fax server Hylafax.

Permite el envío y recepción de faxes a través de la interfaz web.

Recientemente se ha lanzado un instalador RPM de AvantFAX que puede ser

descargado del repositorio de Extras de Elastix.

115