SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Ejemplos de uso
 Un ejemplo típico de la utilidad de DUNDi es en una empresa multi-sede, en la cual
cada sede tiene su propio equipo con Elastix.
 Cada equipo puede publicar sus extensiones y si uno de los equipos pregunta, por
ejemplo ¿dónde está el número 456? la consulta se enviará directa o indirectamente a
todos los servidores en la red DUNDi
 El servidor que tenga esa extensión publicada responderá algo como:
 IAX2/usuario:clave@1.2.3.4/456
 El uso de DUNDi hace que no necesite un plan de marcado fijo para cada equipo
integrado en una red.
 Otro uso común de DUNDi es clúster y balanceo de carga.
 Esto es importante en un esquema con muchos usuarios así como para esquemas de
clúster y disponibilidad.
 “Cuando un servidor no alcanza”, comentamos esto en la sección de rendimiento.
Bueno, DUNDi es una muy buena opción.
Seguridades
 DUNDi usa certificados de encriptación RSA par compartir los planes de marcado.
 Esto es requerido ya que las respuestas a una consulta incluyen las contraseñas de las
troncales.
34
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
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
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
Capítulo 24
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
2do Servidor:
1er Servidor:
	
  
38
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
62
Capítulo 25
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
63
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
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
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
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
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
Capítulo 26
Elastix Upgrade
PaloSanto Solutions 2012 – © Todos los derechos reservados
	
  
Haciendo un poco de Historia: Load Module
 Este módulo era requerido en Elastix 1.6 dado que no existían RPMs para Elastix.
 Un módulo que estaba desarrollado podía ser cargado desde aquí comprimido.
 Desde Elastix 2.0 todos los RPMs para Elastix están disponibles, por lo cual este módulo
desaparecerá en las siguientes versiones.
Desarrollando para Elastix
 En los últimos 6 años Elastix a crecido de una manera estable como distribución.
 Se cuenta que al menos existen 100,000 potenciales integradores a nivel mundial, fuera
de usuarios finales.
 Este mercado puede resultar atractivo para empresas con ideas de desarrollo que
quieran integrar sus soluciones a una plataforma de comunicaciones unificadas.
 PaloSanto Solutions tiene planificado publicar un curso para developers para el segundo
semestre del 2012.
 Si están interesados en desarrollar su propio addon, pueden escribir a la siguiente
dirección: certification@palosanto.com
69
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
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
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

Más contenido relacionado

La actualidad más candente

Protocolos unix-netware
Protocolos unix-netwareProtocolos unix-netware
Protocolos unix-netwareLuis Asencio
 
Proyecto final
Proyecto finalProyecto final
Proyecto finalmoisesmo19
 
Actividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosActividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosJofre Mamani
 
Protocolos unix, net ware, microsoft y macintosh
Protocolos unix, net ware, microsoft y macintoshProtocolos unix, net ware, microsoft y macintosh
Protocolos unix, net ware, microsoft y macintoshLarry Ruiz Barcayola
 
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones)
4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones) 4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones)
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones) wilber147
 
Protocolos unix net ware macintosh y microsoft
Protocolos unix net ware macintosh y microsoftProtocolos unix net ware macintosh y microsoft
Protocolos unix net ware macintosh y microsoftcesartg65
 
Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3Rod Hinojosa
 
Manual De Instalacion De Asterisk
Manual De Instalacion De AsteriskManual De Instalacion De Asterisk
Manual De Instalacion De AsteriskCesar Pineda
 
Protocolos de redes TCP/IP
Protocolos de redes TCP/IPProtocolos de redes TCP/IP
Protocolos de redes TCP/IPjanethmeche
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digitallefuente
 
Taller: Mi primer Firewall
Taller: Mi primer FirewallTaller: Mi primer Firewall
Taller: Mi primer FirewallGabriel Orozco
 
GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...
GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...
GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...Luis Espinel Fuentes
 

La actualidad más candente (20)

Práctica VOIP
Práctica VOIPPráctica VOIP
Práctica VOIP
 
Protocolos unix-netware
Protocolos unix-netwareProtocolos unix-netware
Protocolos unix-netware
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Pfsense
PfsensePfsense
Pfsense
 
Actividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosActividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolos
 
Protocolos unix, net ware, microsoft y macintosh
Protocolos unix, net ware, microsoft y macintoshProtocolos unix, net ware, microsoft y macintosh
Protocolos unix, net ware, microsoft y macintosh
 
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones)
4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones) 4.	Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones)
4. Protocolos UNIX, NETWARE, MACINTOSH y MICROSOFT (Características, Funciones)
 
Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux
 
Protocolos gnu linux
Protocolos gnu linuxProtocolos gnu linux
Protocolos gnu linux
 
Protocolos unix net ware macintosh y microsoft
Protocolos unix net ware macintosh y microsoftProtocolos unix net ware macintosh y microsoft
Protocolos unix net ware macintosh y microsoft
 
Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3
 
Manual De Instalacion De Asterisk
Manual De Instalacion De AsteriskManual De Instalacion De Asterisk
Manual De Instalacion De Asterisk
 
Protocolos de redes TCP/IP
Protocolos de redes TCP/IPProtocolos de redes TCP/IP
Protocolos de redes TCP/IP
 
Pfsense
PfsensePfsense
Pfsense
 
Pfsense
Pfsense Pfsense
Pfsense
 
Nat y DHCP Mantenimiento
Nat y DHCP Mantenimiento Nat y DHCP Mantenimiento
Nat y DHCP Mantenimiento
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digital
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Taller: Mi primer Firewall
Taller: Mi primer FirewallTaller: Mi primer Firewall
Taller: Mi primer Firewall
 
GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...
GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...
GUÍA REDES DE COMPUTADORAS Y SISTEMAS DISTRIBUIDOS II CONFIGURACIÓN GRAFICA D...
 

Destacado

Lesson 4-website-traffic-blog cashprofits
Lesson 4-website-traffic-blog cashprofitsLesson 4-website-traffic-blog cashprofits
Lesson 4-website-traffic-blog cashprofitsDaniel parker
 
Conociendo más de elastix 101
Conociendo más de elastix 101 Conociendo más de elastix 101
Conociendo más de elastix 101 enriquetcampos.org
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixPaloSanto Solutions
 
Real integración de una Cámara IP a Elastix
Real integración de una Cámara IP a ElastixReal integración de una Cámara IP a Elastix
Real integración de una Cámara IP a ElastixPaloSanto Solutions
 
Elastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, AlteknativaElastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, AlteknativaElastix México
 

Destacado (11)

Instrucciones examen elx1 o1
Instrucciones examen elx1 o1Instrucciones examen elx1 o1
Instrucciones examen elx1 o1
 
Lesson 4-website-traffic-blog cashprofits
Lesson 4-website-traffic-blog cashprofitsLesson 4-website-traffic-blog cashprofits
Lesson 4-website-traffic-blog cashprofits
 
Conociendo más de elastix 101
Conociendo más de elastix 101 Conociendo más de elastix 101
Conociendo más de elastix 101
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
 
Real integración de una Cámara IP a Elastix
Real integración de una Cámara IP a ElastixReal integración de una Cámara IP a Elastix
Real integración de una Cámara IP a Elastix
 
Libro diapositivas-elx101
Libro diapositivas-elx101Libro diapositivas-elx101
Libro diapositivas-elx101
 
Elastix slide book-ect
Elastix  slide book-ectElastix  slide book-ect
Elastix slide book-ect
 
Elastix: lo que viene
Elastix: lo que vieneElastix: lo que viene
Elastix: lo que viene
 
Presentando a elastix 4.0
Presentando a elastix 4.0Presentando a elastix 4.0
Presentando a elastix 4.0
 
Elastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, AlteknativaElastix MT al descubierto Alfio Muñoz, Alteknativa
Elastix MT al descubierto Alfio Muñoz, Alteknativa
 
Elx1 o1 redes tcp ip
Elx1 o1   redes tcp ipElx1 o1   redes tcp ip
Elx1 o1 redes tcp ip
 

Similar a Elastix slide book-uect

Didactica de la Especialidad
Didactica de la EspecialidadDidactica de la Especialidad
Didactica de la EspecialidadYusmary Sevilla
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosJuliethPaez
 
Herramientas de la web social
Herramientas de la web socialHerramientas de la web social
Herramientas de la web socialmaria pablos
 
Exploration network chapter3
Exploration network chapter3Exploration network chapter3
Exploration network chapter3Edgar Benavente
 
Manuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 dawManuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 dawfanyto
 
Portafolio de diseño digital 4 tito villao o
Portafolio de diseño digital 4 tito villao oPortafolio de diseño digital 4 tito villao o
Portafolio de diseño digital 4 tito villao oTito Villao
 
Portafolio diseño digital Priimer bimestre
Portafolio diseño digital Priimer bimestrePortafolio diseño digital Priimer bimestre
Portafolio diseño digital Priimer bimestreCarolina Alcivar
 
Jorge Mena
Jorge MenaJorge Mena
Jorge Menamallita
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionEduardo J Onofre
 

Similar a Elastix slide book-uect (20)

Marco teorico
Marco teoricoMarco teorico
Marco teorico
 
Software de VOIP
Software de VOIPSoftware de VOIP
Software de VOIP
 
Didactica de la Especialidad
Didactica de la EspecialidadDidactica de la Especialidad
Didactica de la Especialidad
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Herramientas de la web social
Herramientas de la web socialHerramientas de la web social
Herramientas de la web social
 
Exploration network chapter3
Exploration network chapter3Exploration network chapter3
Exploration network chapter3
 
Manuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 dawManuel santiagojosea.ac1u1 daw
Manuel santiagojosea.ac1u1 daw
 
Empresa
EmpresaEmpresa
Empresa
 
Diccionario 1
Diccionario 1Diccionario 1
Diccionario 1
 
Portafolio de diseño digital 4 tito villao o
Portafolio de diseño digital 4 tito villao oPortafolio de diseño digital 4 tito villao o
Portafolio de diseño digital 4 tito villao o
 
Elastix Rosario 2009
Elastix Rosario 2009Elastix Rosario 2009
Elastix Rosario 2009
 
Portafolio diseño digital Priimer bimestre
Portafolio diseño digital Priimer bimestrePortafolio diseño digital Priimer bimestre
Portafolio diseño digital Priimer bimestre
 
Jorge Mena
Jorge MenaJorge Mena
Jorge Mena
 
Diccionario informático
Diccionario informáticoDiccionario informático
Diccionario informático
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
 
Servidores
ServidoresServidores
Servidores
 
Servidores
ServidoresServidores
Servidores
 
Servidores
ServidoresServidores
Servidores
 
Servidores
ServidoresServidores
Servidores
 
Servidores
ServidoresServidores
Servidores
 

Más de enriquetcampos.org

Más de enriquetcampos.org (15)

Elastix 1 o1 introduccion
Elastix 1 o1   introduccionElastix 1 o1   introduccion
Elastix 1 o1 introduccion
 
Sistemas de telefonía elx1 o1elastix
Sistemas de telefonía   elx1 o1elastixSistemas de telefonía   elx1 o1elastix
Sistemas de telefonía elx1 o1elastix
 
Seguridad en implementaciones de voz sobre ip paper
Seguridad en implementaciones de voz sobre ip   paperSeguridad en implementaciones de voz sobre ip   paper
Seguridad en implementaciones de voz sobre ip paper
 
Introducción a las redes tcp
Introducción a las redes tcpIntroducción a las redes tcp
Introducción a las redes tcp
 
Extensiones vs extensiones
Extensiones vs extensionesExtensiones vs extensiones
Extensiones vs extensiones
 
Instructivo de putty elx1 o1
Instructivo de putty elx1 o1Instructivo de putty elx1 o1
Instructivo de putty elx1 o1
 
Instrucciones al alumno elx1 o1 elastix
Instrucciones al alumno elx1 o1 elastixInstrucciones al alumno elx1 o1 elastix
Instrucciones al alumno elx1 o1 elastix
 
Elx1 o1 lab1-instalacion de elastix
Elx1 o1 lab1-instalacion de elastixElx1 o1 lab1-instalacion de elastix
Elx1 o1 lab1-instalacion de elastix
 
Elastix lab ece-book-esp(1)
Elastix lab ece-book-esp(1)Elastix lab ece-book-esp(1)
Elastix lab ece-book-esp(1)
 
Elastix slide book-ect(1)
Elastix  slide book-ect(1)Elastix  slide book-ect(1)
Elastix slide book-ect(1)
 
Elastix slide book-ece
Elastix  slide book-eceElastix  slide book-ece
Elastix slide book-ece
 
Elastix lab uece-book-esp
Elastix  lab uece-book-espElastix  lab uece-book-esp
Elastix lab uece-book-esp
 
Elastix lab ect-book-esp
Elastix  lab ect-book-espElastix  lab ect-book-esp
Elastix lab ect-book-esp
 
Elastix lab ece-book-esp(2)
Elastix  lab ece-book-esp(2)Elastix  lab ece-book-esp(2)
Elastix lab ece-book-esp(2)
 
Elastix lab ece-book-esp
Elastix  lab ece-book-espElastix  lab ece-book-esp
Elastix lab ece-book-esp
 

Último

INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMcespitiacardales
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 

Último (10)

INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 

Elastix slide book-uect

  • 1.
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Ejemplos de uso  Un ejemplo típico de la utilidad de DUNDi es en una empresa multi-sede, en la cual cada sede tiene su propio equipo con Elastix.  Cada equipo puede publicar sus extensiones y si uno de los equipos pregunta, por ejemplo ¿dónde está el número 456? la consulta se enviará directa o indirectamente a todos los servidores en la red DUNDi  El servidor que tenga esa extensión publicada responderá algo como:  IAX2/usuario:clave@1.2.3.4/456  El uso de DUNDi hace que no necesite un plan de marcado fijo para cada equipo integrado en una red.  Otro uso común de DUNDi es clúster y balanceo de carga.  Esto es importante en un esquema con muchos usuarios así como para esquemas de clúster y disponibilidad.  “Cuando un servidor no alcanza”, comentamos esto en la sección de rendimiento. Bueno, DUNDi es una muy buena opción. Seguridades  DUNDi usa certificados de encriptación RSA par compartir los planes de marcado.  Esto es requerido ya que las respuestas a una consulta incluyen las contraseñas de las troncales. 34
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. Capítulo 24 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   2do Servidor: 1er Servidor:   38
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   62
  • 64. Capítulo 25 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   63
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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
  • 69. 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
  • 70. Capítulo 26 Elastix Upgrade PaloSanto Solutions 2012 – © Todos los derechos reservados   Haciendo un poco de Historia: Load Module  Este módulo era requerido en Elastix 1.6 dado que no existían RPMs para Elastix.  Un módulo que estaba desarrollado podía ser cargado desde aquí comprimido.  Desde Elastix 2.0 todos los RPMs para Elastix están disponibles, por lo cual este módulo desaparecerá en las siguientes versiones. Desarrollando para Elastix  En los últimos 6 años Elastix a crecido de una manera estable como distribución.  Se cuenta que al menos existen 100,000 potenciales integradores a nivel mundial, fuera de usuarios finales.  Este mercado puede resultar atractivo para empresas con ideas de desarrollo que quieran integrar sus soluciones a una plataforma de comunicaciones unificadas.  PaloSanto Solutions tiene planificado publicar un curso para developers para el segundo semestre del 2012.  Si están interesados en desarrollar su propio addon, pueden escribir a la siguiente dirección: certification@palosanto.com 69
  • 71. 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
  • 72. 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
  • 73. 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