ACTUALIZACIÓN 25/Nov/2013:
Ya está disponible como Addon de Elastix se puede acceder desde el menú de addons del PBX o bien desde http://addons.elastix.org/index.php
Hola, quienes me conocen saben que yo prefiero usar Asterisk Plano sobre cualquier cosa. Cuando la gente me dice que quieren usar sí o sí una GUI para administrar su asterisk porque no se quieren meter en líos, recomiendo FreePBX. Son pocas las veces que me veo en la necesidad de usar Elastix o recomendarlo de hecho me puedo considerar hasta cierto punto un 'hater' de esa Distro; sin embargo, como dice la canción: "...No todo es blanco, O negro: es gris Todo depende del matiz...", debo decir que una de las cualidades más atractivas de Elastix es su Módulo de Call Center. El cual permite crear campañas de Salida o de Entrada de manera más que sencilla y que su operación es muy pulcra, sin contar además que, integrar nuestro propio CRM es sumamente sencillo.
Este año vendrá de nueva cuenta el ElastixWorld a México y esta vez si pienso asistir ya que dejar pasar las conferencias de las personalidades que vendrán sería un error y más si tomo en cuenta que asistir al Astricon en Atlanta es prácticamente imposible para mi. Es por esta razón que decidí "contribuir"(si se le puede llamar así a una simple edición de código) un poquito al proyecto de Elastix, no quiero ir solo a recibir información valuable al ElastixWorld sin haber "contribuido" en algo.
Elegí un tema de "moda": WebRTC y una herramienta útil como el Módulo de Call Center que combinadas podrían tener mucho éxito-según yo-. Así que me di a la tarea de integrar la fantástica API SIPML5 y el Gateway WebRTC2SIP ambos de Doubango a una instalación de Elastix.
Notas sobre la Integración y Operación.
- Se requiere una versión de 'libtool' más reciente de modo que se instala la version 2.4.2
- Se requiere instalar el Gateway WebRTC2SIP para su operación ya que la versión de Asterisk no soporta WebRTC. La conexión es ws.
- Solo funciona correctamente con el explorador Google Chrome.
- Se modifican algunos archivos(consideren respaldarlos antes) utilizados por Elastix entre ellos:
- /var/www/hmtl/themes/elastixneo/_common/_menu.tpl
- /var/www/html/modules/agent_console/index.php
- /var/www/html/agent_console/themes/default/agent_console.tpl
- La Integración solo funciona con el tema default 'Elastixneo'.
- Debido a mi falta de conocimiento tuve que crear una conexión externa a MySQL para obtener el password del 'Peer'.
- Se han creado algunos archivos extras:
- Conexión a la BD: /var/www/html/libs/astdb.php
- Javascript para el Teléfono: /var/www/html/modules/agent_console/themes/default/js/ml5.js
- SIPml5 API: /var/www/html/modules/agent_console/themes/default/js/SIPml-api.js
- Estilos para botones del Teléfono: /var/www/html/modules/agent_console/themes/default/css/bootstrap.css
- Sonidos utilizados por el Teléfono: /var/www/html/modules/agent_console/themes/default/sounds
- No se puede marcar desde el Teléfono. Esto lo hice así pensando en que el agente sólo debe de recibir las llamadas de una cola Entrante o una campàña del Dialer(Se puede modificar a futuro).
- Si no se esta en llamada y se presiona el botón (CALL/Answer) se enviará la llamada al buzón de voz del Agente.
- La integración esta hecha para trabajar solamente en modo 'Agent CallBack'. Esto se debe a la facilidad de tener el Teléfono registrado en 'Stand-by' una vez que se accedió a la consola del Agente.
El gateway WebRTC2SIP corre bajo una sessión 'screen' con el comando:
screen -dmS wrtc /usr/local/sbin/webrtc2sip --config=/usr/local/sbin/config.xml
Para ingresar a la sesión usar:
Para Salir de la sesión sin detener el gateway usar la combinación de teclas CRTL+A+D.
Para detener el Gateway, entrar en la sesión y escribir 'quit'+ENTER.
screen -r wrtc
Para Salir de la sesión sin detener el gateway usar la combinación de teclas CRTL+A+D.
Para detener el Gateway, entrar en la sesión y escribir 'quit'+ENTER.
Instalación.
Actualización 17/Sep/2013:
Este es el último RPM usado para adaptar chat y marcado libre al módulo de call center.
![]() |
Servicio de Chat habilitado.![]() |
Actualización 04/Sep/2013:
He creado paquetes RPMs para que la instalación sea mucho mas rapida, aqui dejo las instrucciones para instalar via RPMs:
Para instalar desde la consola de Linux seguir estos pasos:
cd /usr/src/ yum install -y screen perl-WWW-Curl elastix-callcenter wget https://dl.dropboxusercontent.com/u/1277237/SIPML5toElastix.zip unzip SIPML5toElastix.zip cd SIPML5toElastix rpm -ihv libtool-2.4.2-DMv1.i386.rpm rpm -ihv libsrtp-1.4.5-DMv1.i386.rpm rpm -ihv --force openssl-1.0.1c-DMv1.i386.rpm rpm -ihv yasm-1.2.0-DMv1.i386.rpm rpm -ihv libvpx-1.2.0-DMv1.i386.rpm rpm -ihv x264-snapshot20130810.2245-DMv1.i386.rpm rpm -ihv ffmpeg-1.2-DMv1.i386.rpm rpm -ihv doubango-2.0r985-DMv1.i386.rpm rpm -ihv webrtc2sip-2.5.1r114-DMv1-Elastix.i386.rpm rpm -ihv --force sipml5_elastix_cc-0.1-DMv1.i386.rpm
Si se cuenta con las versiones más recientes de Elastix y el módulo de Call Center instalar los RPMs hasta el punto 14 y después ejecutar los siguientes comandos :
yum reinstall -y elastix-framework elastix-callcenter rpm -ihv https://dl.dropboxusercontent.com/u/1277237/sipml5_elastix_cc-0.1b-DMv1.i386.rpm
Los pasos anteriores corrigen el bug que elimina los submenús de la barra de Menús y corrige también que no se registre el cliente SIPML5.
Instalación antigua:
Descargar el tarball desde este enlace. Y extraer el contenido con el comando:
Cambiar al directorio creado con:
# tar zxvf Elastix_CC_ML5.tar.gz
Cambiar al directorio creado con:
# cd ccml5
Instalar el gateway webrtc2sip.
Para instalar el Gateway ejecutar el siguiente comando:
# ./install_wrtcgw.sh
Esto instalará el framework de doubango, las dependencias y el gateway, dependiendo de la velocidad del equipo puede tomar desde 30 minutos hasta un par de horas.
Añadir el Teléfono WebRTC a la consola de Agente.
Para integrar el teléfono a la consola de agente ejecutar el siguiente comando:
# ./install_webfiles.sh
Si no se ha instalado el Módulo de Call Center previamente, el script preguntará si desean instalarlo. Basta presionar Y+enter para que así lo haga.
![]() |
Inicio de Sesión Consola de Agente modo 'Callback login' |
![]() |
Consola de Agente con el Telefóno WebRTC Insertado |
Demo.
Para configurar y usar el Módulo del Call Center de Elastix pueden usar el manual oficial que esta en este enlace Recuerden que el Teléfono WebRTC solo trabajará correctamente en el modo 'callback login' en el manual se refieren a él como modo dinámico.
Yo ya tengo preparado una Cola de Entrada sin datos y una Campaña saliente con un CRM Custom. Y este es el Resultado:
Inbound Queue:
Outgoing Campaign:
Feedback: Como nada en esta vida es perfecto cualquier feedback se agradecerá. ;)
Inbound Queue:
Outgoing Campaign:
Feedback: Como nada en esta vida es perfecto cualquier feedback se agradecerá. ;)
Excelente arituclo a probar .....
ResponderEliminarHola.
ResponderEliminarSoy de Argentina; me pareció muy bueno el artículo, por lo que estoy intentando ponerlo en práctica, pero surgieron algunos errores que todavía no puedo resolver y espero me puedan ayudar. Les comento que estoy trabajando con el módulo Call Center - 2.2.0-2 de elastix 2.4. Logré integrar WebRTC pero al iniciar sesión como agente me aparece el mensaje "Lost connection to server (SSE), retrying.." por unos segundo en una franja roja; luego desaparece y al momento de comenzar la campaña, en este caso una campaña saliente, no muestra los datos en "información de llamada" ni en "Diálogo de llamada" ni el "Formulario". Desde ya muchas gracias.
Hola estás iniciando sesión en modo "CallBack Login"? Este "hack" solo soporta ese modo de trabajo.
EliminarEs la versión más actual del call-center y el framework de elastix?Si tu PBX es un ambiente de prueba, intenta con un yum update al sistema.
Después del yum update, ejecuta yum reinstall elastix-framework y finalmente instala el siguiente RPM https://dl.dropboxusercontent.com/u/1277237/sipml5_elastix_cc-0.1b-DMv1.i386.rpm con el comando:
rpm -ihv --force sipml5_elastix_cc-0.1b-DMv1.i386.rpm
INSISTO SOLO SI TU PBX ES DE PRUEBAS EJECUTA LOS COMANDOS ANTERIORES.
Saludos.
Hola Max E. Reyes Vera Juarez.
EliminarAntes de nada gracias por tu pronta respuesta. Te comento que tengo las últimas actualizaciones de elastix-framework y call-center; seguí paso a paso el tutorial. Cuando instalo todo resulta que en el módulo de call-center me muestar un mensaje de mysql que no se conecta con la base de datos; por lo que para solucionar esto edito el archivo /var/www/html/libs/astdb.php y cambio "root" por "asteriskuser" y ahí aparece el módulo de call-center. Ejecuté los comandos que me indicas y los resultados son: que ahora me muestra el mje "Registered with Sip Server" sobre las teclas del webrtc donde antes me parecía el mje "navegador no soportado"; tambien funciona el dialer del call-center que no funcionaba, es decir no hacía las llamadas, ahora si las hace, pero todavía no muestra la información cargada en el archivo .csv en cada llamada ni el formulario; sigue mostrando la franja roja que dice "Lost connection to server (SSE), retrying.." ;a demás de eso desaparece el contenido del menu tercer nivel sólo queda la barra negra pero sin los enlaces de cada uno de los módulos. Para solucionar esto edito el archivo /var/www/html/themes/elastixneo/_common/_menu.tpl y lo dejo como estaba antes de la actualización; pero en ese caso otra vez vuelve el mensaje de "navegador no soportado" o sea que ya no se registra el webrtc y tampoco hace las llamadas salientes de cola. Espero me puedas ayudar. Desde ya muchas gracias.
Hola lo del menu es un bug qué encontramos que pasa cuando actualizas a la ultima versión, esto se soluciona ejecutando los comandos yum reinstall elastix-framework. Al ejecutar este comando la versión del _menú.tpl vuelve a ser la correcta.
EliminarDespués tienes que bajar el RPM del enlace que deje en mi respuesta anterior y ejecutar: rpm -ihv --force sipml5_elastix_cc-0.1b-DMv1.i386.rpm
Esto modificará el menú.tpl sin romperlo.
Sobre el mensaje de lost connection eso hasta ahora solo pasa cuando no entramos como callback login, si puedes generar algunas capturas o video por favor compartelos. El tipo de campaña es saliente o entrante?
Saludos
Hola.
EliminarTe dejé un mensaje por gmail. Donde te envié algunas impresiones de pantalla. Espero te sirvan para poder ayudarme. Desde ya muchas gracias.
Hola, no llego nada ni en la bandeja de SPAM, por favor usa imgur.com y pega los enlaces aquí.
EliminarEsto de las desconexiones(SSE Lost connection) pasa enseguida o después de un tiempo? Aún no sé si el error del formulario es con tus campañas salientes o entrantes.
Saludos.
Hola.
EliminarEjecuté los comandos y se reestableció el menú; lo estoy probando con una campaña saliente pero aún no muestra la información cargada en el .csv ni tampoco muestra el formulario a la hora de la comunicació. Ahí te paso algunas imágenes de la secuencia desde que me registro hasta el momento de hacer llamadas; tambien una imagen con los cambios en el archivo /var/www/html/libs/astdb.php para poder visualizar el módulo de call-center
http://imgur.com/pik9p5g
http://imgur.com/GwVMJT8
http://imgur.com/9SJIslU
http://imgur.com/r1CJPRJ
http://imgur.com/zISMMAi
http://imgur.com/OY1xxOG
http://imgur.com/MA2ro0O
Hola, estuve haciendo pruebas y en mi caso si me salen los datos del CSV y el formulario que había creado(anexo imágenes):
Eliminarhttp://i.imgur.com/7XxkkzT.png
http://i.imgur.com/Q9BqjY7.png
http://i.imgur.com/xlVPOwc.png
Sobre perder la conexión tampoco me sucedió estuvo el agente de prueba conectado por 40 minutos y no se desconecto, lo que note de tu pantallazo es que en el STATUS del peer dice "Disconnected failed to.."(tengo que hacer más pequeña la letra para que se vea todo). Esto pasa cuando el media gateway deja de responder o bien asterisk marco como UNREACHABLE al peer.
Para saber si el media gateway dejó de responder, la próxima vez que pase entra en la consola de linux y verifica que el gateway este corriendo con: wrtc -ls, si te lista alguna session entra en ella y ve el log. si no encuentra ninguna sesión quiere decir que esta muerto.
Para intentar resolver lo del Form y los datos vamos a empezar de cero otra vez, cierra la sesión web que estes usando en elastix y después ejecuta desde la consola de linux:
yum reinstall -y elastix-callcenter elastix-framework
rpm -ihv --force sipml5_elastix_cc-0.1b-DMv1.i386.rpm
El primer comando para reestablecer todo al origen y el segundo para volver habilitar el cliente webrtc-sipml5 en la consola de agente. Yo hice eso un par de veces y me sigue mostrando el form y los datos.
Las versiones que estoy ejecutando son:
elastix-callcenter.noarch 0:2.2.0-2
elastix-framework.noarch 0:2.4.0-9
Saludos.
Muchas gracias por la respuesta... Lo voy a intentar con esos comandos y te comento como me va....
EliminarSaludos
Hola
ResponderEliminarCuando intento instalar desde la consola y pongo cd /usr/src/ me devuelve el mensaje: -no such file or directory- ....previamente deberia instalar algo?
Para que cambias a /usr/src? Como dice al inicio de la entrada ya puedes instalarlo desde el addon market de elastix. Desde consola sería:
Eliminaryum install elastix-agent_console_webrtc.noarch
Hola, excelentes comentarios, les comento he instalado el modulo pero lamentablemente no funciona ni el telefono no el chat, solo aparece que el browser no es permitido y no registra.
ResponderEliminarSólo funciona para Chrome y si la versión es mayor a la 34 debes aplicar este parche forum.elastix.com/viewtopic.php?f=18&t=128877
ResponderEliminarSaludos, no logro quitar el error de "Browser Not Supported" Podrías ayudarme? Gracias de antemano
ResponderEliminarSólo funciona para Chrome, debes aplicar este parche forum.elastix.com/viewtopic.php?f=18&t=128877 Y tienes que usar Chrome < v37.
EliminarAún no tengo planeado hacer un fix para Chrome 37.
Saludos, Gracias por la pronta respuesta.
ResponderEliminarYa había seguido las instrucciones de ese enlace que me envías, estoy probando en chrome Version 36.0.1985.143 m, lo único que no hice del parche fue reload el WebRTC Agent Console. Lo que hice fue reiniciar el servidor, si hay un comando en específico para reload el WebRTC Agent Console, me lo podrías proporcionar? Puedes confirmarme si el parche funciona para la version que estoy trabajando? Gracias.
El parche funciona para la versión 36 de Chrome.
EliminarHola Max exelente articulo, una pregunta yo tengo un elastix funcionando con campañas entrantes y lo unico que quiero es que los agentes puedan realizar llamadas salientes desde la consola de agente, es posible eso?
ResponderEliminarGracias por tu ayuda
buenas noches y para versiones mas actuales de chrome por ejemplo yo tengo la Versión 49.0.2623.87 (64-bit) me puedes ayudar
ResponderEliminarHola para versiones mas nuevas de google chrome no tienes parche o algo lo baje de la consola de add y me dice q no soporta el navegador y es muy buen trabajo me sirve para las campañas d eentrada.. gracias por tu labor y gracias x ayudarme
ResponderEliminarEl addon ya solo es compatible con la Versión 4 de Elastix. Para usar Chrome se deben contar con certificados firmados por una autoridad, los de LetsEncrypt funcionan. Con certificados autofirmados solo funciona con Firefox.
EliminarToda la información aquí: http://forum.elastix.org/viewtopic.php?f=54&t=131437&p=141899#p141899