73

Elastix slide book-uect

Embed Size (px)

Citation preview

Page 1: Elastix  slide book-uect
Page 2: Elastix  slide book-uect

Capítulo 19

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

MENSAJERÍA INSTANTÁNEA

Protocolo XMPP

XMPP o Extensible Messaging and Presence Protocol, por sus siglas en inglés, es un

protocolo extensible y abierto basado en el estándar XML.

Es ampliamente utilizado para el intercambio en tiempo real de mensajes y presencia

entre dos puntos en Internet.

Existe una gran red de servidores XMPP interconectados entre sí, y a la vez

independientes unos de otros.

Usuarios de distintos servidores conectados a la red Jabber pueden hablar entre ellos

sin ningún problema, ya que cada usuario está conectado a su servidor, y los servidores

de estos usuarios se intercambian los mensajes.

XMPP es el protocolo seleccionado por Facebook para su chat y por Google para

GoogleTalk.

Al nivel más básico, si dos contactos tienen cuentas creadas en el mismo servidor

XMPP, podrán hablar entre ellos.

Características de XMPP

Es abierto: El protocolo de XMPP es gratuito, abierto, público y comprensible.

Existen múltiples implementaciones de código abierto para Servidores XMPP, asi como

numerosos clientes y librerías de desarrollo.

1

Page 3: Elastix  slide book-uect

Capítulo 19

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Es extensible: Usando el potencial del lenguaje XML, cualquiera puede extender el

protocolo de XMPP para una funcionalidad personalizada.

Es seguro: Cualquier servidor XMPP puede ser aislado de la red pública Jabber.

Cualquier implementación del servidor usa SSL para las comunicaciones cliente-

servidor y numerosos clientes soportan PGP-GPG para encriptar las comunicaciones

de cliente a cliente.

Es descentralizado: Cualquiera puede montar su propio servidor XMPP, además está

libre de patentes y no depende de ninguna empresa de modo que se puede usar

siempre con total libertad.

Para mantener la interoperabilidad, las extensiones comunes son controladas por la

XMMP Standards Foundation.

Clientes XMPP

Spark: Integrado con el servidor OpenFire y pensado para empresas. Escrito en Java.

Libre, gratuito. (Windows, Linux, Mac).

Jabbin: Cliente libre desarrollado a partir de Psi (Windows, Linux) No se sigue

desarrollando.

Bitlbee: Es una pasarela IRC-IM que permite conectar a varios protocolos usando un

cliente IRC.

Pidgin: (Windows y Linux) soporta además protocolos para msn y yahoo.

iChat: cliente incluido en OSX (Mac)

Openfire en Elastix

Openfire es un sistema de mensajería instantánea de código abierto que permite

habilitar servicio de mensajería instantánea interna.

Es el servicio de IM utilizado por Elastix por sus características que permiten

transferencia de archivos, transmisión de mensajes (broadcast), integración con

telefonía, integración con otros gateways, y por supuesto IM.

Está escrito en Java y su funcionalidad puede ser extendida con plugins.

Openfire viene desactivado por defecto en Elastix.

Para instalar Openfire ir al menú “IM” y luego hacer clic en “click aquí”.

2

Page 4: Elastix  slide book-uect

Capítulo 19

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

El primer paso consiste en seleccionar el idioma

Se debe especificar el dominio del sistema, el cuál ya debe estar configurado (Es el

mismo dominio del servidor Elastix).

3

Page 5: Elastix  slide book-uect

Capítulo 19

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Se debe especificar la configuración de la Base de Datos. Es conveniente elegir la base

de datos embebida.

En esta pantalla seleccionamos el lugar de datos donde se almacenarán los usuarios.

En esta pantalla seleccionamos la contraseña del administrador.

4

Page 6: Elastix  slide book-uect

Capítulo 19

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Después del paso anterior culmina la instalación y podemos ingresar a la interfaz

administrativa.

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

grupos.

5

Page 7: Elastix  slide book-uect

Capítulo 19

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Una vez que instalamos Openfire tendremos acceso a algunas de las siguientes

características de este servicio:

Funcionalidad expandible a través de plugins

Posibilidad de integración con Asterisk

Interacción con otras redes de mensajería instantánea como Gtalk, Yahoo

Messenger, ICQ, entre otros

Soporte para mensajes broadcast

Transferencia de archivos

Puede guardar histórico de conversaciones

Soporte para clustering

Permite crear diferentes grupos de trabajo

6

Page 8: Elastix  slide book-uect

Capítulo 20

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

SINTETIZACIÓN Y RECONOCIMIENTO DE VOZ

Sintetización de voz

Es la tecnología que permite convertir el texto a audio.

También se conoce como TTS debido al término Text-To-Speech (texto-a-habla en

inglés).

Actualmente ya existen alternativas de sintetización de voz de relativo bajo costo e

inclusive de libre uso como Festival o FreeTTS.

Festival es el motor de sintetización por defecto en Elastix. Es necesario activarlo.

La técnica de sintetización de voz usada por Festival está dividida en en tres partes:

• Análisis de texto.- Normaliza el texto, lo traduce a un formato de palabras

estándar.

• Análisis lingüístico.- Convierte el texto normalizado en fonemas.

• Generación de audio.- Traducción de fonemas a audio.

El algoritmo por omisión usado por Festival para la traducción de fonemas a audios es

RELP (Residual Excited Linear Prediction)

Festival

Festival es un sistema de sintetización de voz desarrollado por la Universidad de

Edimburgo utilizando lenguaje de programación C++

Festival soporta Inglés Americano, Inglés Británico y Español.

7

Page 9: Elastix  slide book-uect

Capítulo 20

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Puede ser utilizado desde Asterisk.

Festival puede trabajar como cliente y como servidor.

Como cliente puede trabajar en dos modos: línea de comandos y tts (text-to-speech).

Festival dentro del plan de marcado

Asterisk provee una aplicación de plan de marcado llamada Festival.

Esta aplicación funciona internamente conectándose a un servidor Festival a través de

la red y reproduciendo la salida de audio en el canal en uso.

La sintaxis de la aplicación Festival es la siguiente:

text es el texto que se desea sintetizar (y reproducir)

intkeys es un parámetro opcional que especifica las teclas telefónicas que pueden

interrumpir la ejecución del comando.

En este ejemplo si llamamos a la extensión 5333, escucharemos ese mensaje escrito.

Festival en Elastix

Con festival se puede sintetizar voz desde la interfaz Web de Elastix.

Ir a PBX → Tools → Text to Wav.

Se puede escribir un texto y generar un en formato wav o gsm.

Esta funcionalidad podría servir para crear prompts de voz que podemos usar en el

plan de marcado.

8

Page 10: Elastix  slide book-uect

Capítulo 20

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Reconocimiento de voz

Es el proceso en el que un sistema computacional reconoce lo que un ser humano le

dice.

El término reconocimiento de voz es muchas veces utilizado para referirse al

reconocimiento del habla, como en el caso del sistema telefónico.

Una aplicación muy utilizada para sistemas telefónicos IP basados en Asterisk es

LUMENVOX.

Lumenvox

Lumenvox aunque usa algunos de los fundamentos del reconocimiento de voz, es

diferente ya que no trata de identificar a individuos.

Más bien trata de identificar lo que éste dice.

Para esto hace una comparación de las ondas del audio de una persona que llama, con

los modelos acústicos de su base de datos.

De ahí que sea común encontrarlo en aplicaciones donde una persona que llama

completa una orden de voz; Ej: decir la extensión o el nombre de la persona a la que

llamamos.

Procedimiento Lumenvox

El procedimiento completo sería el siguiente:

Cargar una lista de palabras para ser reconocidas.

El SRH (Sistema de Reconocimiento del Habla) carga el audio del altavoz. Este audio se

representa como una forma de onda.

El SRH compara la forma de onda con sus propios modelos acústicos (Las bases de

datos que contienen información sobre las formas de onda de cada uno de los sonidos)

El SRH comparan las palabras en la gramática a los resultados obtenidos a partir de su

búsqueda de modelos acústicos.

Determina qué palabras en la gramática de audio concuerdan y devuelve un resultado.

9

Page 11: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

DESEMPEÑO & DIMENSIONAMIENTO

Desempeño de Elastix

El desempeño de un servidor Elastix es un asunto complejo de analizar.

Existen muchos parámetros a tomar en cuenta principalmente el desempeño de

Asterisk, ya que la comunicación de voz es en tiempo de real.

En muchos casos interesa conocer los resultados y recomendaciones principalmente

desde el punto de vista de una PBX.

Factores que afectan el desempeño de Elastix

Hay muchos factores que pueden afectar el desempeño de Elastix de alguna manera.

Los más comunes relacionados con la operación de un servidor de comunicaciones

unificadas son:

Llamadas Concurrentes

Transcoding

Interrupciones de Hardware

Numero de llamadas concurrentes

El número de llamadas concurrentes afecta directamente el consumo de CPU del

servidor. “Es Muy Importante”

El gráfico siguiente tiene pruebas realizadas (sin transcoding) en un computador con un

CPU de 2.2 GHz con 512 MB de RAM.

Obviamente una prueba teórica siempre supone condiciones ideales, por lo cual el

rendimiento debe ser tomado como referencia únicamente.

En el computador se usó Elastix 1.3.

10

Page 12: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

CPU vs. Llamadas Concurrentes

Uso de CPU

Vemos que se han superado las 200 llamadas concurrentes con menos del 50% de

CPU.

Transcoding

En ocasiones una llamada llega con un codec y el punto de destino final utiliza un codec

distinto.

Asterisk está en el medio por lo tanto tiene que hacer las veces de traductor para que

los dos puntos se entiendan. A este proceso denominamos transcoding.

El transcoding requiere de muchos cálculos matemáticos pues se está decodificando y

codificando información con algoritmos complejos, consumiendo recursos a nivel de

CPU.

11

Page 13: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Openfire

Openfire es un software escrito en Java que proporciona el servicio de Mensajería

Instantánea.

Sin embargo, cabe señalar que consume una gran cantidad de memoria.

Por lo tanto, si el servicio no es realmente necesario y se cuenta con un servidor

limitado por recursos, es recomendado dejarlo apagado.

Por omisión Openfire no activa al instalar Elastix.

12

Page 14: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Dimensionamiento telefónico

Determinando el número de líneas telefónicas necesarias

Primer parámetro en un proyecto telefónico nuevo: calcular número de líneas para

satisfacer la demanda prevista.

No se quiere tener más líneas de las necesarias, esto podría significar un desperdicio

de recursos.

Tampoco se debe sub dimensionar el número de líneas, ya que los usuarios podrían

recibir continuamente tonos de ocupado.

El cálculo, por lo tanto debe basarse en criterios técnicos y no ser tomado a la ligera.

El “modelo Erlang” es una aproximación estadística para calcular cuántas líneas

telefónicas necesitaremos en una instalación determinada para satisfacer una demanda

prevista con cierta calidad.

Agner Krarup Erlang

Erlang, Ingeniero y matemático danés que desarrolló las técnicas de Ingeniería de

Tráfico y Teoría de Colas.

Exploraremos estos conceptos para darle al lector cierto conocimiento básico y

práctico de estas técnicas sin llegar al rigor matemático que ellas demandan.

Estas técnicas nos permitirán dimensionar cuántas líneas telefónicas necesitaremos en

una instalación.

La unidad Erlang

Un Erlang es una unidad adimensional comúnmente utilizada para medir el tráfico

telefónico por hora, o se puede decir que un Erlang representa la utilización continua

de un circuito.

13

Page 15: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

1 Erlang equivale a la utilización de un circuito continuamente durante una hora, en un

lapso de una hora de tiempo o lo que es lo mismo que el circuito estuvo siempre en

uso.

Así mismo 0.5 Erlangs quiere decir que en el lapso de una hora el circuito se utilizó

solo 30 minutos.

Para calcular el tráfico en Erlangs se puede proceder de la siguiente manera:

Encontrar el tráfico total en horas: Se suma el tiempo de todas las llamadas

durante un lapso de tiempo cualquiera y se convierte este valor a horas

Encontrar el tráfico por unidad de tiempo (en horas): Se divide el total anterior

para el lapso de tiempo en horas

Ejemplo

En una empresa cualquiera entre las 9H00 y 12H00 de un día determinado se

realizaron 300 llamadas, con un promedio de 6 minutos por llamada y se quiere medir

el tráfico en Erlangs.

Tráfico Total = Tráfico en 3 horas = 300 x 6 = 1800 minutos

= 1800 minutos / 60 minutos = 30 horas

(quiere decir que se hablaron 30 horas en ese lapso de tiempo)

Tráfico por hora = Tráfico Total / Lapso de Tiempo

= 30 horas / 3 horas = 10 Erlangs

Hemos obtenido una medida de tráfico de 10 Erlangs.

Modelos Erlang

En esencia existen dos modelos en las teorías de Erlang que se utilizan mucho en

telefonía:

modelo B

modelo C

En la presente obra estudiaremos el modelo B pero recomendamos al lector recabar

información del modelo C.

Nota: El modelo C se utiliza para calcular probabilidades en llamadas que entran a colas así que si el

lector está pensando en administrar un call center sería útil que indagara en el modelo Erlang C.

14

Page 16: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Erlang B

El modelo Erlang B es el más común. Se usa determinar el número de líneas necesarias.

Básicamente necesitamos alimentar a la fórmula con un par de parámetros y podemos

obtener el número de líneas que necesitamos.

Estos parámetros son:

Tráfico punta o pico (el tráfico en la hora de mayor actividad)

Grado de Servicio (o GOS por sus siglas en inglés).

El Tráfico punta o pico se obtiene sumando todo el tráfico en la hora con más actividad

telefónica.

Es útil tomar muestras no solo de un día sino de algunos días o semanas para que la

información sea más exacta.

El Grado de Servicio representa la probabilidad de que una llamada sea rechazada. Su

valor va de 0 a 1. Donde 1 significa el 100% de rechazo de llamadas.

Grados de Servicios Comunes

15

Page 17: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Fórmula Modelo Erlang B

Donde:

E es el valor del tráfico punta o pico (en Erlangs)

N es el número total de líneas telefónicas

Como vemos, el valor de GoS no es sencillo de calcular.

N, que es el valor que buscamos, tampoco es sencillo de despejar.

Actualmente hay muchas herramientas en línea, algunas gratuitas, o aplicaciones para

Smartphones que permiten calcular el modelo de Erlang B.

La presentación de la fórmula ayuda a que el profesional de Elastix sepa los

fundamentos del cálculo de la misma lo cual siempre es útil.

Tomemos el cálculo que hicimos anteriormente:

Tráfico Total = Tráfico en 3 horas = 300 x 6 = 1800 minutos

Tráfico por hora = 10 Erlangs

¿Cuántas líneas telefónicas necesito con un GoS de 0.01?

Calcúlalo en:

http://www.erlang.com/calculator/erlb/

Flash Operator Panel En instalaciones con alta actividad telefónica el FOP puede comenzar a consumir

recursos fuera de los niveles deseados.

16

Page 18: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

En instalaciones con alta actividad telefónica el FOP puede comenzar a consumir

recursos fuera de los niveles deseados.

El FOP se comunica con Asterisk a través de AMI.

Por lo tanto se encuentra escuchando toda la actividad telefónica a través del puerto

de red que levanta Asterisk para este fin.

Cuanto más actividad, más información tiene que procesar el FOP.

En instalaciones grandes, en caso de que el uso del FOP no sea requerido es mejor

apagarlo.

Herramientas

top

Para hacer un análisis breve de los servicios que están consumiendo recursos, basta

con ejecutar un comando top.

Ordenamos su salida por consumo de memoria y también por consumo de CPU.

Para hacer lo primero escribimos la letra M (Mayúscula) y para lo segundo la letra P.

En algunas ocasiones podemos observar el proceso java liderando las estadísticas de

consumo.

17

Page 19: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Normalmente esto tiene que ver con Openfire debido a que se encuentra

implementado sobre java.

sipp

Sirve como generador tráfico SIP, ayudándonos a generar llamadas SIP hacia nuestro

servidor Elastix.

Esto nos permite tomar muestras para entender cómo reaccionan los recursos del

sistema (CPU, memoria).

La idea general es generar un volumen alto de llamadas y determinar el performance

de nuestro equipo en varios escenarios.

Sipp es una herramienta de código abierto. Información de descarga y documentación

puede ser encontrada en: http://sipp.sourceforge.net/

Cuando un solo servidor no alcanza

Muchas veces una instalación es tan grande que rebasa la capacidad de un sólo equipo.

Para estos casos es recomendable dividir un Elastix en uno o más servidores, o

balancear la carga.

Existen dos esquemas que se usan en la práctica:

Distribuir el trabajo en equipos especializados

Distribuir el plan de marcado

18

Page 20: Elastix  slide book-uect

Capítulo 21

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Distribuir el trabajo en equipos especializados

Es posible migrar ciertos servicios a otros servidores:

MySQL

Antispam

Postfix

Openfire

Distribuir el Plan de marcado

La funcionalidad utilizada es DUNDi y puede configurarse para utilizar varios

servidores.

Elastix tiene actualmente un addon que permite configurar un plan de marcado

distribuido.

Revisaremos Plan de Marcado Distribuido y DUNDi mas adelante en este curso.

19

Page 21: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

SEGURIDAD

Algo de Historia

Por los años 60 se dieron cuenta que si generaban una señal audible a la frecuencia

exacta de 2,600 Hertz producían que las llamadas telefónicas se colgaran.

Algunos hackers se pusieron a estudiar y entender la señalización telefónica, realizando

llamadas de larga distancia de manera gratuita.

Desde entonces hay personas dedicando miles de horas de investigación a tratar de

quebrantar la seguridad de servidores alrededor del mundo.

Buenas Prácticas

Todas las acciones básicas recomendadas para iniciar la operación de un servidor de

comunicaciones unificadas

Limitación del acceso al servidor

No usar el usuario root

No dejar sesiones de consola abiertas

Bloquear el reinicio

Utilizar contraseñas fuertes

Deshabilitar el acceso directo a FreePBX

Ataques y vulnerabilidades a nivel de red IP

Denegación de servicio

Ataques de inundación SIP (SIP Flooding)

Sniffing

Captura de llamadas a nivel de VoIP

Fraude telefónico

Intento de obtención de privilegios de root

Algunas soluciones a los problemas de seguridad

Apagar los servicios que no vamos a usar

20

Page 22: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Firewalls

IDSs e IPSs

Actualizaciones

Monitoreo

Usar un Switch en lugar de un HUB

Cambiar las claves por omisión

Encriptando la VoIP

SRTP: El protocolo SRTP (Secure RTP) no se encuentra soportado oficialmente en

Asterisk 1.6; Asterisk 1.8 tiene soporte nativo para SRTP.

VPNs: Una VPN (Virtual Private Network) o Red Privada Virtual es un concepto que

nos permite simular una red privada sobre una red pública como el Internet.

Encriptación IAX: Cuando IAX fue concebido se pensó en problemas de violación a

la privacidad y se añadió soporte nativo para encriptación de llamadas.

Auditoría de seguridad

Una auditoría de seguridad debe ser considerada como una práctica preventiva.

Es recomendable que se realice periódicamente para detectar a tiempo problemas que

podrían poner en riesgo nuestros equipos.

Escaneo de puertos de red

Revisión de logs del sistema

Revisión de rootkits

Auditoría avanzada con Nessus

El módulo de Seguridad de Elastix

Configuraciones básicas de seguridad a nivel de interfaz:

Gestión de Firewall

Auditoría de uso de la Interfaz web de Elastix

Auditoría de Contraseñas débiles

Configuración Avanzada

21

Page 23: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Gestión de Firewall

Interfaz para administración de IPTables

Posee un conjunto de reglas predefinidas

Permite la personalización de puertos

22

Page 24: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Activando el Firewall

Creando una nueva regla

Opciones para configuración

Tráfico: ENTRADA, SALIDA, A TRAVES

Interfaz de ENTRADA: CUALQUIERA, Ethernet 0, Loopback

Dirección de Origen

Dirección de Destino

Protocolo: TODOS, TCP, UDP, ICMP, ESTADO

Objetivo: ACEPTAR, DESCARTAR, RECHAZAR

 

23

Page 25: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Personalizando un Puerto o un rango de Puertos

Auditoría de uso de la Interfaz web de Elastix

Permite visualizar las operaciones efectuadas utilizando la Interfaz web de Elastix

Posee la posibilidad de utilizar filtros por fecha o por búsqueda de una palabra clave

Ofrece la descarga de los logs de utilización en formato CSV, XLS o PDF

Auditoría de Contraseñas Débiles

Analiza las contraseñas de las extensiones creadas en Elastix

Verifica que no sean demasiado cortas o que estén basadas en diccionario

Algunos ejemplos: qweasd, a1b2c3, 123456

 

24

Page 26: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configuración Avanzada

En este menú se puede activar el acceso directo a FreePBX

Se puede también activar llamadas SIP anónimas.

Es importante mencionar, que aunque existan estas configuraciones, se recomienda

mantenerlas desactivadas por defecto.

Activando FreePBX sin embeber

Elastix mantiene desactivado por defecto la interfaz no embebida de FreePBX.

Si aun es necesario activar la interfaz no embebida de FreePBX, es importante hacerlo

correctamente.

Para esto es necesario ir a: Security → Advanced Settings

Una vez que culminemos cualquier configuración que necesitemos hacer es

recomendable volver a desactivarla.

“No actualice FreePBX desde su interfaz, existen procedimientos de

actualización con Elastix, consulte en los foros o listas.”

 

25

Page 27: Elastix  slide book-uect

Capítulo 22

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Una vez activado FreePBX, podemos revisar lo requerido y después desactivarlo de

nuevo.

Técnicas Adicionales

Implementación de Fail2Ban

Implementación de Port Knocking

Implementación de ordenes Allow/Deny durante la configuración de las extensiones

Mantener deshabilitada la interfaz de FreePBX sin embeber

Cambio de puertos por defecto

Utilización de VPNs para extensiones remotas

Documentación Adicional

Seguridad en servidores CentOS con Elastix – Rodrigo Martín

Elastix Network Security Guide – Bob Fryer

Trunking entre dos Sistemas de PBX Elastix PBX Vía Internet – Bob Fryer

Asegurando Elastix – Samuel Cornú

 

 

 

26

Page 28: Elastix  slide book-uect

Capítulo 23

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

DEPURAMIENTO AVANZADO

Introducción

Un depurador permite examinar la ejecución de un programa a un nivel de detalle

mayor que el habitual.

La ejecución en detalle permite encontrar errores que de otro modo resultarían

difíciles de hallar.

Con un depurador es posible examinar qué estuvo ocurriendo en el momento en que

un programa se colgó.

Dos alternativas para depuración son: strace y gdb

¿Qué hacer cuando Asterisk se comporta mal?

Identificar el componente que está causando problemas

En algunas ocasiones existen problemas por errores en el código, o bugs.

Es importante saber diferenciar si el problema está relacionado con un bug o no

Muchas veces no es un problema de Asterisk sino de Sistema Operativo

El problema puede ser también por otros componentes de Software o Hardware

Reproducir el bug

Los pasos básicos a seguir son:

Examinar los logs, siendo clave la revisión de los minutos anteriores a la falla.

Consultar a los usuarios, ellos viven la operación telefónica día a día.

Monitorear el equipo

Aunque suene drástico en ocasiones es necesario montar guardia en las instalaciones

del cliente y esperar a que el problema ocurra.

Una vez que logramos reproducir el bug y determinamos la situación en que se

produce podemos hacer dos cosas:

Verificar si ha sido reportado - http://bugs.digium.com

Verificar si ya fue solucionado en recientes versiones de Asterisk.

Reportar el bug, si este aun no ha sido reportado, de tal manera que la comunidad de

desarrollo de Asterisk lo resuelva.

27

Page 29: Elastix  slide book-uect

Capítulo 23

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Errores de Programación

Errores de programación que provocan caídas, colgados o comportamientos

indeseados

Falla de segmentación (Segmentation Fault)

Deadlock

Fuga de memoria

División para cero

Buffer overflow

Strace

Monitorea las llamadas a sistema que realiza un programa determinado y todas las

señales que éste recibe.

Llamadas al sistema comunes en Linux: open, read, write, close, wait, exec, fork, exit,

kill, entre otras.

ptrace es la carácterística que hace posible el trabajo de Strace.

Ejemplo de ejecución de Strace al programa: “cat /proc/cpuinfo”:

[root@elastix ~]# strace cat /proc/cpuinfo

Depuración en Asterisk

Un ejemplo sencillo

Hay ocasiones donde es importante monitorear un proceso de Asterisk en ejecución.

Por ejemplo si nuestro servidor consume muchos recursos de CPU y queramos

averiguar qué está ocurriendo.

Para depurar un programa en ejecución con strace primero debemos averiguar el PID

del proceso que queremos monitorear.

Un ejemplo sencillo

En nuestro enlistaremos los procesos que contengan la palabra Asterisk y tomaremos

el menor PID

[root@elastix ~]# ps aux | grep asterisk

28

Page 30: Elastix  slide book-uect

Capítulo 23

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ahora que sabemos el PID podemos monitorearlo con strace de manera sencilla:

[root@elastix ~]# strace -p 1619

GDB

GDB es un completo depurador desarrollado y mantenido por la Free Software

Foundation.

Nos permite hacer seguimiento de la ejecución de un programa insertando pausas

cuando creamos necesario.

También nos permite observar lo que un programa estaba haciendo cuando se colgó.

Además nos permite cambiar ciertas cosas dentro del programa para ver los efectos

que se producen con dichos cambios.

GDB es una opción más completa que strace pero también su uso requiere un tanto

más de conocimiento.

Con GDB podemos depurar programas escritos en C o C++ como es el caso de

Asterisk

Ejemplos simples de uso de GDB

GDB puede utilizarse para depurar un programa de tres maneras diferentes:

Depurando un programa desde el depurador; Desde el propio GDB

gdb programa

Depuración sobre Asterisk en plena ejecución

gdb programa PID

Depuración haciendo backtrace sobre un Asterisk caído

gdb programa caído

29

Page 31: Elastix  slide book-uect

Capítulo 23

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Comandos básicos

Nota: Para más información puede recurrir al comando “man gdb”

Archivos core y backtraces

Muchas aplicaciones dejan archivos core cuando terminan inesperadamente, esto nos

permite hacer una depuración post-mortem del software.

En el caso de Asterisk esto es posible cuando se lo inicia con la opción –g (Elastix inicia

Asterisk con dicha opción por defecto).

30

Page 32: Elastix  slide book-uect

Capítulo 23

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Si no se está seguro que Asterisk haya sido iniciado con la opción –g se puede verificar

con el siguiente comando.

Un archivo core es el contenido de memoria del programa en el momento en que se

detuvo.

Es el sistema operativo quien guarda ese contenido de memoria.

Este contenido de memoria, combinado con la tabla de símbolos que se genera cuando

el programa es compilado hacen que gdb nos pueda mostrar información más legible.

Un backtrace es un reporte de las llamadas a funciones que se encontraban en

memoria en un momento dado.

Desde gdb es posible realizar backtraces sobre un archivo core.

Para hacerlo existen dos comandos, el bt y el bt full.

El bt full es un backtrace más detallado que el normal. Muestra parámetros y variables

locales usados por las funciones que están siendo invocadas.

Ejemplo: Primero identificamos el archivo core que necesitamos examinar, por lo

general se trata del último.

31

Page 33: Elastix  slide book-uect

Capítulo 23

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

¿Cómo reportar un Backtrace a Digium?

Si determinamos que tenemos un bug de Asterisk el siguiente paso lógico es reportar

ese bug al fabricante.

Digium dispone de una interfaz Web para esta finalidad ubicada en:

http://issues.asterisk.org

Cuando se reporta un bug es de mucha ayuda para los desarrolladores de Asterisk

contar un backtrace para poder entender mejor lo que ocurrió a nivel interno.

Los lineamientos generales para reportar backtraces son:

http://www.asterisk.org/doxygen/trunk/AstDebug.html

Se pide no subir archivos core sino únicamente la salida del comando bt y bt full

conseguidos con gdb.

Es importante, al reportar un bug de Asterisk, mencionar que se está utilizando

Elastix.

Esto permitirá a los desarrolladores de Digium conocer que se trata de un Asterisk

compilado con parches y funcionalidades adicionales.

32

Page 34: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

PLAN DE MARCADO DISTRIBUIDO DUNDi

Distributed Universal Number Discovery

DUNDi es un sistema de localización de gateways para el acceso a los servicios de

telefonía.

Utiliza un esquema punto a punto y no requiere ninguna arquitectura de red en

particular ni un esquema jerárquico cliente-servidor.

Este es un punto de diferenciación con ENUM

En otras palabras DUNDI es capaz de consultar los contextos de otros equipos para

encontrar una ruta hacia determinado usuario o peer.

DUNDi en realidad no realiza una llamada como tal, ya que no es un protocolo de

señalización VoIP

Recibe y proporciona la información necesaria para poder contactar a los equipos

independientemente del protocolo de señalización usado.

Por esto es posible usar DUNDi virtualmente con cualquier protocolo soportado por

asterisk.

Es parte de Asterisk por lo cual su integración y funcionalidad en Elastix es

transparente.

Funcionamiento

Para que DUNDi funcione se debe conocer al menos un peer

Si este peer no puede responder a la consulta (él no tiene ese usuario), puede delegar

la consulta a otro peer conocido.

Esto sucede sucesivamente hasta que se encuentre a un peer que tenga una respuesta

al peer consultado.

DUNDi puede ser utilizado en una empresa para extender su operación a varios

servidores en una o diferentes sucursales.

33

Page 35: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ejemplos de uso Un ejemplo típico de la utilidad de DUNDi es en una empresa multi-sede, en la cual

cada sede tiene su propio equipo con Elastix.

Cada equipo puede publicar sus extensiones y si uno de los equipos pregunta, por

ejemplo ¿dónde está el número 456? la consulta se enviará directa o indirectamente a

todos los servidores en la red DUNDi

El servidor que tenga esa extensión publicada responderá algo como:

IAX2/usuario:[email protected]/456

El uso de DUNDi hace que no necesite un plan de marcado fijo para cada equipo

integrado en una red.

Otro uso común de DUNDi es clúster y balanceo de carga.

Esto es importante en un esquema con muchos usuarios así como para esquemas de

clúster y disponibilidad.

“Cuando un servidor no alcanza”, comentamos esto en la sección de rendimiento.

Bueno, DUNDi es una muy buena opción.

Seguridades

DUNDi usa certificados de encriptación RSA par compartir los planes de marcado.

Esto es requerido ya que las respuestas a una consulta incluyen las contraseñas de las

troncales.

34

Page 36: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Asterisk integra el comando astgenkey que se encarga de generar dichos certificados.

Su uso es: astgenkey -n nombre-de-certificado, ej:

Estos certificados deben ubicarse en la carpeta /var/lib/asterisk/keys de cada servidor.

Podemos compartir este archivo de un servidor a los demás servidores con el

comando spc:

Configuración

DUNDi guarda su configuración en el archivo dundi.conf dentro de la carpeta

/etc/asterisk/.

Este archivo se divide en tres secciones:

[general] - donde se define la identificación en la nube DUNDi y opciones

globales.

[mappings] - donde se definen las respuestas a una consulta de otro equipo.

Peers – definición de peers que consultarán y serán consultados.

Esta configuración debe ser realizada en cada servidor donde se distribuirá el plan de

marcado.

iax_custom.conf - Configuración de troncal.

extensions.conf - Configuración para modificar el contexto "from-internal" de

FreePBX, de tal manera que no obtengamos una respuesta de bad-number en la

búsqueda del número.

extensions_custom.conf - definimos los contextos personalizados para que DUNDi

relacione nuestras extensiones, realice búsquedas en otros equipos y redirija las

llamadas.

Esta configuración permite que cuando creemos una extensión nueva desde la interfaz,

se añada al contexto local incluido en dundi-priv-canonical que usará DUNDi.

35

Page 37: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configurando en la Interfaz Elastix incluye un Addon para realizar esta configuración desde interfaz.

La aplicación está disponible desde la versión 2.0.3

Vamos al menú Addons, ubicamos “Distributed Dial Plan” y hacemos clic en install.

Una vez instalado, aparecerá un submenú en el menú PBX, denominado “Distributed

DialPlan”.

Iniciamos la configuración en el 1er Servidor.

Llenamos la información marcada como requerida.

36

Page 38: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Luego, en el mismo servidor iremos al submenú “Password Connection”.

Aquí podemos generar el certificado de configuración RSA.

Podemos además enviarlo al destinatario del otro servidor.

El usuario del 2do servidor recibirá un mensaje como este con el certificado:

Una vez con el certificado, el usuario del 2do servidor debe configurar la información

de peer.

Ingresa la dirección IP del primer servidor y el certificado que recibió. El comentario

puede ser cualquiera, generalmente una descripción.

Después hace clic en “Request”.

37

Page 39: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

2do Servidor:

1er Servidor:

 

38

Page 40: Elastix  slide book-uect

Capítulo 24

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

2do Servidor:

Esta aplicación realiza todas las configuraciones necesarias por nosotros.

Bajo este esquema podemos distribuir un plan de marcado en varios servidores.

Una ventaja visible es su facilidad.

Aun así es importante saber como configurar DUNDi en bajo nivel para entender la

funcionalidad

39

Page 41: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

MÓDULO DE CALL CENTER

Módulo de Call Center Este software está diseñado para hacer campañas de llamadas entrantes y salientes.

Estas llamadas permiten la interacción entre operadores (agentes) y personas

contactadas (abonados).

Se usa el término “campaña” para designar la ejecución de un conjunto de llamadas.

El módulo incluye un marcador predictivo que se encarga de llamar de manera

automática a los números “objetivo”.

Además incluye dos componentes importantes: consola de agente (basada en web) y una

interfaz de administración de llamadas.

La versión actual incluye soporte para el protocolo ECCP.

Este protocolo permite que la operación del módulo sea mas eficiente y es posible

integrar aplicaciones externas.

El módulo de Call Center de Elastix es Open Source.

40

Page 42: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Modelo de Funcionamiento

El módulo del Call Center está implementado alrededor del soporte de colas de

Asterisk.

El diseño asume que cada una de las colas alberga al menos a un agente.

Cada campaña utiliza exactamente una cola. Un agente puede pertenecer a varias colas.

Actualmente se reconocen dos modos principales de funcionamiento: Campañas

Salientes y Campañas Entrantes.

Funcionalidades Implementadas

Llamado automático a partir de una lista de números.

Ejecución de múltiples campañas simultáneas.

Seguimiento de agente asignado a una llamada.

Marcador predictivo.

Almacenamiento de guión de atención.

Ingreso de formulario.

Agendamiento de llamada.

Capacidad de poner en hold una llamada.

Reportes de actividad de llamadas.

Limitaciones conocidas

No se puede asignar un agente específico a una llamada.

No reproduce mensajes de audio en llamadas no atendidas; es decir no coloca llamadas

en una cola sin agentes.

Esto es debido a que el módulo está diseñado para mediar llamadas que son atendidas

por agentes humanos.

Es posible que se implemente esta funcionalidad en el futuro como “Campaña Sin

Agentes”.

41

Page 43: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Marcador predictivo

Es la porción del Call Center que interactúa directamente con las llamadas.

Está implementado como un servicio residente (daemon) escrito en PHP. Se puede

iniciar como servicio a través del comando:

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

El marcador revisa constantemente las llamadas que han sido colocadas por el y que no

hayan recibido un evento OriginateResponse.

Si el marcador recibe una respuesta del tipo OriginateResponse (ejemplo: join o

link) escribe la información de esa llamada en la base de datos.

El marcador interroga regularmente el estado de la cola para averiguar cuántos agentes

se encuentran registrados y libres.

El número de agentes libres regula cuántas llamadas son iniciadas simultáneamente.

42

Page 44: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

El marcador estima la duración media de llamada, para intentar predecir si las llamadas en

curso están por terminar, para colocar proactivamente nuevas llamadas. Esta

funcionalidad es configurable.

El modelo para predicción es una distribución Erlang acumulada.

La interfaz Web permite iniciar y detener el servicio de marcador

Además permite activar y desactivar la depuración de problemas en el marcador, incluso

si el marcador está corriendo.

La ruta por omisión del log del marcador es el archivo

/opt/elastix/dialer/dialerd.log

El marcador predictivo se encuentra encendido por defecto cuando se instala el módulo.

Sin embargo es posible apagarlo o encenderlo desde la interfaz, en el menú de

configuración del módulo.

Administración del Módulo

La administración del módulo permite :

o Crear Agentes

o Agregar colas

o Crear nuevas campañas salientes

o Crear nuevas campañas entrantes

o Administración de breaks

También proporciona una interfaz de configuración que permite iniciar, detener y

configurar el marcador predictivo, incluyendo la activación de depuración.

43

Page 45: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Iniciando la operación de Call Center

Antes de iniciar la operación de Call Center es necesario seguir las siguientes

configuraciones básicas:

1. Instalar el Call Center en Elastix

2. Crear un grupo con la configuración para Agentes

3. Crear Usuarios en el sistema para los Agentes

4. Crear Extensiones para los Agentes

5. Crear Agentes en el módulo de Call Center

6. Crear la(s) cola(s) requeridas para la operación.

Iniciando la operación de Call Center : Instalación

La instalación del módulo es sencilla. Únicamente es necesario ir al menú Addons y hacer

clic en INSTALL.

La instalación se realiza automáticamente.

Una vez concluida se habilitará Call Center en el menú principal.

44

Page 46: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Iniciando la operación de Call Center : Creación de Grupo

Para la operación es necesario crear usuarios en Elastix para los Agentes que participarán

en ella.

Por razones de seguridad y control necesitamos limitar el acceso de estos usuarios.

Es necesario crear un grupo que tenga únicamente acceso a la consola.

Para crear un grupo debemos ir a:

Sistema → Usuarios → Grupo: Crear Nuevo Grupo

Para configurar el permiso de nuestro nuevo grupo debemos ir a:

Sistema → Usuarios → Permisos de Grupo

Seleccionamos el grupo creado (haciendo clic en mostrar), y filtramos el recurso: Agent

Console.

Seleccionamos y Guardamos.

45

Page 47: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Una vez que hemos creado el grupo con el acceso restringido, podemos crear los

usuarios para los agentes. Ir a:

Sistema → Usuarios → Crear Nuevo Usuario

Podemos crear tantos Agentes como necesitemos.

Iniciando la operación de Call Center : Creación de Extensiones Debemos crear tantas extensiones como Agentes operen en una campaña.

Es suficiente crear extensiones tipo SIP.

Para facilitar la operación del Call Center estas extensiones son usadas normalmente en

Softphones.

El módulo de Call Center transferirá al agente todas las llamadas en una campaña a su

extensión.

Iniciando la operación de Call Center : Creación de Agentes La creación de Agentes se diferencia de la creación de usuarios ya que estos son

generados en el Módulo de Call Center.

Un operador de Call Center necesita un usuario para hacer login en Elastix, y una vez en

la interfaz, necesita un Agente para hacer login en el Call Center.

Para crear un agente ir a:

Call Center → Agent Options → Agents

Hacemos clic en el link “Nuevo Agente”.

46

Page 48: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

No se debe colocar nada en “Contraseña ECCP”. El sistema se encarga de asignar una al

crear el Agente.

Iniciando la operación de Call Center : Creación de Colas El proceso de creación de Colas es similar al que vimos anteriormente.

Se diferencia únicamente en que en lugar de colocar extensiones creadas en Elastix,

colocaremos los números de los Agentes que queremos que estén en la cola.

La nomenclatura que se coloca en el listado de Agentes fijos también se diferencia, ya

que tenemos que anteponer la letra “A”.

Crearemos la cola con el número ectetest con el número 101.

47

Page 49: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Como podemos observar en la figura colocamos los Agentes creados en el módulo de

Call Center, con el prefijo A, seguido de una “,” y el número 0.

Podemos colocar cualquier política de estrategia de ringado. Usualmente se selecciona

“Agente con menos llamadas”.

Iniciando la operación de Call Center : Activando el Módulo Antes de iniciar comprobaremos que el servicio de Call Center está Activo.

Esto se puede comprobar desde el Dashboard o desde el menú de configuración del Call

Center (Dialer apagado/encendido).

Consola del Agente La consola de agente administra la interacción del agente con el sistema. Está basada en

Web.

La consola recibe eventos de una llamada a través del ECCP, al igual que la toda la

información correspondiente a la llamada.

Por medio de la consola el Agente obtiene información de la operación (número

telefónico atendido, información de contacto).

En la actualidad la consola de agente trabaja utilizando el protocolo ECCP.

48

Page 50: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Acciones

Colgar: Permite terminar una llamada

Descanso: Permite a un agente/operador hacer tomar un receso para una actividad. Los

descansos deben estar previamente configurados por el administrador

Transferir: Transfiere la llamada a alguna extensión existente en el plan de marcado. La

transferencia es ciega actualmente.

VTiger CRM: Abre Vtiger en una ventana nueva del browser. Vtiger debe estar activo.

Fin de sesión: Finaliza la sesión del agente/operador en el Call Center.

Funciones de Campaña

Información de Llamada: Muestra la información de la persona que llama, si se

encuentra en la base de datos. Si no existe la información mostrará el número de

teléfono de la llamada entrante en la parte de abajo.

Diálogo de llamada: Muestra un Script que se ha creado anteriormente para que sirva

de instructivo al agente.

Formulario de llamada: En esta pantalla se muestra el formulario creado para una

campaña.

49

Page 51: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Campañas Salientes El sistema se alimenta con un archivo que contiene los números telefónicos a marcar.

Al activarse la campaña, el sistema marca los números telefónicos, verificando los agentes

libres registrados que se encuentren en la cola. Tantas llamadas como agentes libres.

En este método se une la cola con el número del abonado. Si la llamada es exitosa entra

a la cola y es asignada al siguiente agente libre.

La asignación depende de la política asignada a la cola (linear, wrandom…etc).

El sistema registra en una base de datos al agente que se asignó a la llamada.

Esta información servirá para varios propósitos de consulta.

Al terminar la llamada, el agente pasa al estado ocioso, y está de nuevo disponible para

recibir una llamada.

Este proceso continúa hasta recorrer toda la lista de números.

Se puede configurar el número de intentos, de tal manera que el módulo llame a los

números que fallaron en ser contactados.

Campañas Entrantes Se define una cola, en la cual se incluyen los agentes. El marcador predictivo no funciona

en esta modalidad.

Se debe organizar que los abonados que llamen al sistema, sean dirigidos a la cola

configurada para la campaña.

El sistema registra en una base de datos al agente que se asignó a la llamada. Esta

información servirá para varios propósitos de consulta.

Se puede alimentar el sistema con datos sobre números específicos para que el agente

tenga información disponible en su pantalla.

50

Page 52: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configuración de Campañas Existe un menú habilitado para cada tipo de campañas:

o Outgoing Calls: Campañas Salientes.

o Ingoing Calls: Campañas entrantes.

Antes de iniciar una campaña es importante definir:

1. Formularios

2. Lista de Contactos (Opcional para campañas entrantes)

3. Lista de números telefónicos (Requerido en campañas salientes)

4. Breaks

5. Y por supuesto: Agentes y Colas.

Configuración de Campañas : Formularios Los formularios se crean en:

Call Center → Forms → Form Designer

Cada formulario tiene la opción de agregar múltiples campos de los siguientes tipos:

o Campo de Texto

o Campo de Selección de Lista

o Campo de Fecha

o Campo de área de Texto

o Campo tipo etiqueta

51

Page 53: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Podemos ver un preliminar del formulario en “Form Preview”.

La creación y manejo del formulario funciona bien en Firefox, es probable que algunas

funcionalidades no se puedan configurar desde otros Browsers.

Configuración de Campañas : Clients – Ingoing Calls Las campañas de llamadas entrantes permiten subir un listado de contactos.

El módulo verifica el número entrante con el listado y muestra la información del

contacto al Agente.

La información soportada por el módulo de Call Center para el listado de contactos es:

"teléfono","cedula/ruc","nombre","apellido”

Es útil hacer el listado en Excel o en hoja de cálculo de OpenOffice

En la primera columna observamos el número telefónico. La segunda contiene el número

de cédula (o un id). La tercera y cuarta columna contienen el nombre y apellido.

El campo cedula/ruc, es un campo requerido por el módulo para subir correctamente el

listado. Podemos colocar un número identificador en el contacto si no conocemos su ID.

En el ejemplo anterior se muestra un número identificador para cada contacto.

El archivo del listado debe ser guardado como csv:

52

Page 54: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

o Si el archivo es hecho en OpenOffice debe ser guardado como “Texto CSV

(.csv)”

o Si el archivo es hecho en Excel debe ser guardado como “Windows Comma

Separated (.csv)”.

Una vez creado el archivo con el listado de contactos debemos subirlo en el menú

Clients:

Call Center → Ingoing Calls → Clients

Configuración de Campañas : Phone List – Outgoing Calls La información principal de una campaña de llamada saliente es sin duda el listado de

números telefónicos a llamar.

Esta información será requerida cuando creemos la campaña, sin embargo es importante

crearla adecuadamente.

Es útil hacer el listado en Excel o en hoja de cálculo de OpenOffice

El archivo del listado debe ser guardado como csv.

o Si el archivo es hecho en OpenOffice debe ser guardado como “Texto CSV

(.csv)”

o Si el archivo es hecho en Excel debe ser guardado como “Windows Comma

Separated (.csv)”

53

Page 55: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Configuración de Campañas : Configuración de Breaks Los breaks permiten que un agente salga de operación y permanezca en Stand by como

no disponible.

En este estado el dialer no le asignará llamadas.

Tampoco se le asignarán llamadas en una campaña entrante.

Para crear los breaks vamos a: Call Center → Breaks y hacemos clic en: “Crear nuevo

break”

Los breaks pueden estar en estado “Activo” o “Inactivo”.

Para que el agente pueda seleccionarlos deben estar Activos, caso contrario ni siquiera

aparecerán como opción.

En Campaña: Ingoing Calls Primero debemos seleccionar una cola.

El módulo transferirá las llamadas entrantes a la cola y la cola las distribuirá entre los

agentes que estén configurados en ella.

Pueden existir varias colas y se pueden activar varias campañas entrantes.

Una cola puede además estar seleccionada por dos campañas entrantes.

Call Center → Ingoing Calls → Queues

54

Page 56: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Luego de seleccionar la cola, es recomendable subir la base de datos de los clientes que

llamarán.

A continuación crearemos la(s) campaña(s) para que inicie la operación de llamadas

entrantes.

Debemos ir a: Call Center → Ingoing Calls → Ingoing Campaigns

Una vez ahí debemos crear una nueva campaña, donde seleccionaremos el formulario a

usar, y detallaremos un breve script para el agente.

55

Page 57: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Una vez creada la campaña, esta iniciará su operación y asignará llamadas a todos los

agentes que estén conectados.

Revisaremos el proceso de login de un agente posteriormente.

En Campaña: Outgoing Calls Debemos ir a: Call Center → Outgoing Calls → Campaigns.

Una vez ahí debemos crear una nueva campaña.

El módulo permite a varias campañas trabajar al mismo tiempo. El único limitante será la

cantidad de líneas telefónicas que tengamos.

Al igual que en las campañas entrantes, una cola puede estar asignada a varias campañas.

Sin embargo si tenemos una cola seleccionada en una campaña entrante, no podrá ser

seleccionada para una campaña saliente.

56

Page 58: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Una vez creada la campaña, el dialer iniciará su operación y asignará llamadas a todos los

agentes que estén conectados.

Revisaremos el proceso de login de un agente posteriormente.

El módulo tiene una funcionalidad de indicar números que no deben ser llamados.

Esta funcionalidad permite ingresar un número específico.

También se puede cargar un listado de números de un archivo .csv que previamente ya

teníamos seleccionados para este efecto.

Call Center → Outgoing Calls → Do not call list

57

Page 59: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Ingreso de Agente a consola Un agente debe ingresar primero a Elastix con su usuario y clave.

Al hacer login, el agente tendrá acceso únicamente a la consola.

Una vez ahí debe escoger el número de agente y la extensión a la que tiene acceso y

hacer clic en ingresar.

El módulo llamará a la extensión, el agente debe contestar y marcar el password

requerido seguido de la tecla # para ingresar al Call Center.

Una vez en el Call Center, el Agente estará listo para recibir llamadas.

58

Page 60: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

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

Interacción de Agente Llamada entrante (no se muestran datos del cliente porque no está en la base de datos).

59

Page 61: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

El agente puede revisar el Script preparado para la campaña en el TAB “Dialogo de

Llamada”.

El formulario puede ser llenado en el TAB “Formulario de llamada”.

El agente puede colgar la llamada o transferirla a otro número del plan de marcado

interno.

60

Page 62: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Reportes Los reportes implementados incluyen:

Calls Detail

Calls per hour

Calls per Agent

Hold Time

Login Logout

Ingoing Calls Success

Graphic Calls per hour

Agent Information

Agents Monitoring

Trunks used per hour

Agents connection time

Incoming calls monitoring

61

Page 63: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

62

Page 64: Elastix  slide book-uect

Capítulo 25

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

63

Page 65: Elastix  slide book-uect

Capítulo 26

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

EXTENDIENDO ELASTIX

Extendiendo Elastix Una de las ventajas que tiene Elastix es la posibilidad de hacer customizaciones o

desarrollo adicional.

Cualquier desarrollo que tengamos en mente, puede estar incluido en la interfaz con su

propio menú.

Estos desarrollos adicionales se comportan como módulos.

Un ejemplo de desarrollo adicional en Elastix es el módulo de Call Center.

La posibilidad de que realicemos un aplicación adicional puede impulsar incluso un

potencial negocio para el desarrollador.

Desde la versión 2.0 en adelante muchos desarrollos de PaloSanto Solutions y de

terceros se distribuyen a través del módulo de Addons.

El módulo de Addons, permite a un administrador de Elastix instalar de manera

transparente una aplicación que se encuentre enlistada.

Aunque no se vislumbre como un negocio, es importante saber que podemos tener un

grupo de desarrollo interno ideando como personalizar adicionar características a

nuestra implementación.

A lo largo del curso hemos visto ejemplos de instalación de una solución por medio del

módulo de Addons.

Veremos un ejemplo más instalando el módulo developer.

64

Page 66: Elastix  slide book-uect

Capítulo 26

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Framework NEO

Es el framework detrás de la interfaz Web de Elastix

Un framework es un conjunto de librerías y código para facilitar la programación y

reutilización de código

Algunas características interesantes son:

Arquitectura Web basada en MVC2

Continuación de características:

Desarrollo POO

Concepto e implementación modular

Mantenimiento de idiomas

Mantenimiento de la ayuda embebida

Soporte ACL

Estructura de archivos en NEO

Archivo o Directorio Descripción

themes/ Contiene las plantillas html, javascripts y css. Representa la capa de vista

index.php

El punto de entrada común para todas las pantallas de la interfaz de Elastix. Es quien decide qué pantalla mostrar dependiendo de los parámetros recibidos. Representa al controlador del módulo

libs/ Aquí se encuentran librerías (código reciclable)

configs/ Archivos de configuración

langs/ Definición de los lenguajes, actualmente se soportar 22 idiomas

images/ Imágenes que serán usadas tanto en la ayuda como en el módulo

help/ Ayuda del módulo

65

Page 67: Elastix  slide book-uect

Capítulo 26

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Iniciando el desarrollo En versiones anteriores el desarrollo de un módulo se realizaba totalmente a nivel de

consola.

Actualmente Elastix provee una aplicación para crear módulos de una manera mas gráfica

y manteniendo el estilo de la interfaz.

Para instalarlo debemos ir al menú Addons e instalamos el módulo “Developer”

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

Usando módulo Developer Es una poderosa herramienta que facilita la creación de nuevos módulos de Elastix

Consta de cuatro sub-módulos:

Constructor de módulos

Eliminar módulo

Mantenimiento de idiomas

Cargar Menú

Builder

66

Page 68: Elastix  slide book-uect

Capítulo 26

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Builder: Secciones Información general: Nos ayuda a definir el nombre e identificador del módulo, así

como datos del creador y permisos

Localización: Aquí indicamos en qué nivel del árbol de menús se colocará el nuevo

módulo

Descripción: Aquí es donde realmente se define el módulo.

Puede ser de tres tipos: reporte, formulario o enmarcado

Builder: Tipos de módulos Reporte: Es un listado (tabla). Es independiente de la fuente de datos que puede ser una

DB, un arreglo, etc.

Formulario: Formulario para recolectar datos del usuario. Están soportados los tipos

de campos HTML más comunes como:

o text, select, checkbox, textarea, radio, file, hidden, entre otros

Enmarcado: Inserta un frame que nos permite integrar otra aplicación Web en la

interfaz del Elastix

Builder Al final del proceso de creación del nuevo módulo se generará un código esqueleto.

Este nos servirá de guía o plantilla para continuar desarrollando la funcionalidad necesaria

Estos archivos se crearán en la ruta:

/var/www/html/modules/<id módulo>

A partir de este instante dependemos de nuestros conocimientos de programación PHP

Ventajas del Builder Es fácil de instalar

Podemos crear los módulos que necesitemos.

Los permisos se crean automáticamente,

Las carpetas se crean automáticamente

Podemos crear el esqueleto inicial del código ahorrando parte del trabajo de desarrollo.

67

Page 69: Elastix  slide book-uect

Capítulo 26

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Eliminar módulos Nos permite eliminar un módulo determinado de manera sencilla

Debido a su sencillez es importante remarcar que:

HAY QUE TENER MUCHO CUIDADO PUES PODEMOS ELIMINAR UN

MÓDULO ÚTIL POR ERROR!

Mantenimiento de idiomas Nos permite administrar los diferentes idiomas de los módulos en Elastix

También nos permite crear nuevos lenguajes

Las palabras claves o keys siempre están en idioma inglés

Se puede seleccionar un módulo específico pues cada módulo puede tener su propio

archivo .lang

Una vez realizados los cambios desde la interfaz, dichos cambios se guardan en los

archivos .lang respectivos

68

Page 70: Elastix  slide book-uect

Capítulo 26

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Haciendo un poco de Historia: Load Module Este módulo era requerido en Elastix 1.6 dado que no existían RPMs para Elastix.

Un módulo que estaba desarrollado podía ser cargado desde aquí comprimido.

Desde Elastix 2.0 todos los RPMs para Elastix están disponibles, por lo cual este módulo

desaparecerá en las siguientes versiones.

Desarrollando para Elastix En los últimos 6 años Elastix a crecido de una manera estable como distribución.

Se cuenta que al menos existen 100,000 potenciales integradores a nivel mundial, fuera

de usuarios finales.

Este mercado puede resultar atractivo para empresas con ideas de desarrollo que

quieran integrar sus soluciones a una plataforma de comunicaciones unificadas.

PaloSanto Solutions tiene planificado publicar un curso para developers para el segundo

semestre del 2012.

Si están interesados en desarrollar su propio addon, pueden escribir a la siguiente

dirección: [email protected]

69

Page 71: Elastix  slide book-uect

Capítulo 27

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

COMPILANDO ELASTIX

Recompilando los SRPMs La manera más fácil de recompilar Asterisk en Elastix es utilizando los SRPMs provistos

por el proyecto Elastix.

Estos se pueden descargar de

http://repo.elastix.org/elastix/index.php?dir=2.0/updates/SRPMS/

Un link abreviado es: http://elx.ec/srpms

Se debe usar los SRPMs estables más recientes.

Un SRPM (Source RPM) es un paquete que contiene la información necesaria para

construir un RPM.

Tales como el código fuente del paquete y las directrices usadas para compilarlo e

instalarlo en el sistema.

Estas directrices se especifican en un archivo llamado SPEC, que usualmente se distingue

por su extensión *.spec.

Requisitos para el RPM Instalar un Elastix con los requisitos para construir el RPM

Según el último archivo asterisk.spec los siguientes RPMs son requeridos para construir

el RPM de Asterisk.

Debemos asegurarnos que tenemos los paquetes necesarios instalados antes de empezar.

Un listado completo se detalla en la siguiente diapositiva.

gcc-c++

m4

openssl-devel

newt-devel

libtermcap-devel

ncurses-devel

postgresql-devel

gsm-devel

net-snmp-devel

spandsp-devel >= 0.0.6

curl-devel

wget

speex-devel >= 1.2

libxml2-devel

70

Page 72: Elastix  slide book-uect

Capítulo 27

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Instalar el SRPM de Asterisk Instalar el SRPM de Asterisk y modificar el SPEC de acuerdo a nuestras

necesidades

Luego de descargar el SRPM de Asterisk lo instalamos en la máquina concebida para este

fin.

Esto se hace de manera sencilla con el comando rpm:

[root@elastix ~]# rpm -ivh asterisk-1.8*.src.rpm.

Esta instalación poblará el directorio /usr/src/redhat que es donde se copiará el código

fuente de Asterisk, el archivo SPEC y cualquier otra información nacida del SRPM.

A continuación deberemos hacer los cambios en el archivo SPEC para personalizar

nuestro Asterisk.

Aquí podremos hacer casi cualquier cosa como: Eliminar parches para conseguir un

Asterisk mínimo, Añadir funcionalidad nueva a Asterisk, Parchar contra bugs, entre otras

cosas.

zlib-devel

libpri-devel >= 1.4.12

dahdi-devel >= 2.4.1.2

libtiff-devel >= 3.5.7

libogg-devel

libvorbis-devel

unixODBC-devel

libtool

sqlite-devel

libtool-ltdl-devel

alsa-lib-devel

mISDNuser-devel

mISDN-devel

libopenr2-devel

mysql-devel

zlib-devel

/usr/bin/soxmix

iksemel-devel

libsrtp

libgsmat

autoconf >= 2.63

71

Page 73: Elastix  slide book-uect

Capítulo 27

Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados

 

Construir el RPM de Asterisk Una vez realizados los cambios en el SPEC nos encontramos listos para recompilar

Asterisk o siendo exactos construir un nuevo RPM para Asterisk.

Para lograr esto nos valemos del comando rpmbuild, pasándole como parámetro la ruta

del archivo SPEC que hemos modificado:

[root@elastix ~]# rpmbuild -ba /usr/src/redhat/SPECS/ asterisk.spec.

Al final del proceso obtendremos los siguientes RPMs en la carpeta

/usr/src/redhat/RPMS/:

Además obtendremos un nuevo SRPM en la carpeta /usr/src/redhat/SRPMS/

asterisk

asterisk-devel

asterisk-sounds-es

asterisk-sounds-fr

asterisk-mISDN

asterisk-addons

asterisk-chan_mobile

72