OMniLeads es una solución de software open-source que utiliza la tecnología WebRTC para optimizar centros de contacto, permitiendo gestionar canales como voz, video y WhatsApp, además de integrar herramientas de colaboración y Text-To-Speech para audios personalizados. Es ideal para empresas que buscan estrategias omnicanal eficientes, ofreciendo métricas, reportes y auditorías en tiempo real para mejorar la calidad del servicio.
OMniLeads Enterprise le brinda las herramientas necesarias para desarrollar negocios
Sobre el corazón del Contact Center Open Source más completo y amigable del mercado, añadimos valor a partir de nuestra capa Enterprise preparada para escenarios más exigentes.
La plataforma es 100% web y accesible desde cualquier navegador, sin necesidad de configuraciones complejas. Esto permite a agentes y supervisores gestionar comunicaciones desde cualquier lugar, facilitando la operación en entornos onsite o home-office, y brindando una solución eficiente y segura para Contact Center en la nube o instalaciones on-premise.
Veamos ahora los pasos para integrar tu central PBX con OMniLeads
Los pasos descritos en esta sección son válidos para cualquier Centralita IP-PBX que maneje protocolo de señalización SIP (VoIP), y tanto para escenarios donde OMniLeads y la PBX están en hosts separados, como para cuando ambos coexisten en el mismo host usando Docker. Debajo probamos nuestra integración con Issabel PBX (enlace al .org) Issabel PBX
1. Configuración del troncal SIP en la PBX
Seleccionamos la creación de un nuevo troncal SIP y completamos la configuración con los siguientes parámetros:
En caso de tener OMniLeads en un host y la IP-PBX en otro host dentro de la red LAN
type=friend
host=XXX.XXX.XXX.OML
port=5161
disallow=all
allow=alaw
qualify=yes
secret=omnileads
fromuser=issabel
defaultuser=issabel
context=from-internal
b. En caso de tener OMniLeads en la nube y la IP-PBX en otro host dentro de la red LAN:
type=friend
host=XXX.XXX.XXX.OML
port=5162
disallow=all
allow=alaw
qualify=yes
secret=omnileads
fromuser=issabel
defaultuser=issabel
context=from-internal
En caso de ejecutar OMniLeads con Docker dentro del sistema operativo base de la IP-PBX:
type=friend
host=XXX.XXX.XXX.PBX
port=5163
disallow=all
allow=alaw
qualify=yes
secret=issabelOML
fromuser=issabel
defaultuser=issabel
context=from-internal
Observar que lo único que cambia entre las diferentes posibilidades es el parámetro port. Ésto está relacionado con el hecho de que en OML se utiliza un puerto SIP para cada tipo de escenario: LAN, NAT cloud o Docker.
Con el troncal SIP disponible, verificamos la accesibilidad utilizando el CLI de Asterisk en la IP-PBX. Iniciamos una sesión bash en el host donde se ejecuta Issabel-PBX y ejecutamos el siguiente comando:
asterisk -rx 'sip show peers'
Si todo va bien, deberíamos observar OK en la línea de salida correspondiente al nuevo troncal SIP, ya sea con el puerto 5161, 5162 o 5163:
2. Configuración del troncal SIP en OMniLeads
Después de generar el troncal SIP en la IP-PBX, se procede a crear la contraparte correspondiente en OMniLeads.
- En caso de tener OMniLeads en un host y la IP-PBX en otro host, utilizamos el siguiente bloque de configuración (plantilla PBX LAN):
type=wizard transport=trunk-transport accepts_registrations=no sends_auth=yes sends_registrations=no accepts_auth=yes endpoint/rtp_symmetric=no endpoint/force_rport=no endpoint/rewrite_contact=no endpoint/timers=yes aor/qualify_frequency=60 endpoint/allow=alaw,ulaw endpoint/dtmf_mode=rfc4733 endpoint/context=from-pbx remote_hosts=XXX.XXX.XXX.PBX:5060 inbound_auth/username=issabel inbound_auth/password=issabelOML outbound_auth/username=omnileads outbound_auth/password=issabelOML
- En caso de tener OMniLeads en un host cloud y la IP-PBX en otro host, utilizamos el siguiente bloque de configuración (plantilla PBX NAT):
type=wizard transport=trunk-nat-transport accepts_registrations=no sends_auth=yes sends_registrations=no accepts_auth=yes endpoint/rtp_symmetric=yes endpoint/force_rport=yes endpoint/rewrite_contact=no endpoint/timers=yes aor/qualify_frequency=60 endpoint/allow=alaw,ulaw endpoint/dtmf_mode=rfc4733 endpoint/context=from-pbx remote_hosts=XXX.XXX.XXX.PBX:5060 inbound_auth/username=issabel inbound_auth/password=issabelOML outbound_auth/username=omnileads outbound_auth/password=issabelOML
- En caso de ejecutar OMniLeads con Docker dentro del sistema operativo base de la IP-PBX, utilizamos el siguiente bloque de configuración (plantilla Docker):
type=wizard transport=trunk-nat-docker-transport accepts_registrations=no sends_auth=yes sends_registrations=no accepts_auth=yes endpoint/rtp_symmetric=yes endpoint/force_rport=yes endpoint/rewrite_contact=yes endpoint/timers=yes aor/qualify_frequency=60 endpoint/allow=alaw,ulaw endpoint/dtmf_mode=rfc4733 endpoint/context=from-pbx endpoint/rtp_symmetric=yes remote_hosts=XXX.XXX.XXX.PBX:5060 inbound_auth/username=issabel inbound_auth/password=issabelOML outbound_auth/username=omnileads outbound_auth/password=issabelOML
Con el troncal activo, verificamos si Issabel es accesible desde OMniLeads utilizando el CLI de Asterisk en OMniLeads.
asterisk -rx 'pjsip show endpoints'
Nota: Si OMniLeads está en Docker, para acceder al contenedor que ejecuta Asterisk, se debe usar el comando `docker exec -it oml-asterisk-prodenv`. Luego, se puede invocar el CLI de Asterisk desde ahí. La salida debería ser similar a la figura mostrada.
En este punto, ya existe un troncal SIP entre ambos sistemas telefónicos, restando configurar el enrutamiento de llamadas entre ellos. Es crucial relacionar los parámetros de la configuración del troncal SIP en Issabel con los de OMniLeads para asegurar un correcto funcionamiento.
Una imagen vale más que 1.000 palabras:
Cómo enviar llamadas desde la IP-PBX hacia OMniLeads
A continuación, se muestra cómo conectar los recursos de la IP-PBX (rutas entrantes, IVRs, anuncios, extensiones, etc.) con OMniLeads. Por ejemplo, desde una opción del IVR principal se puede redirigir a una campaña entrante de OMniLeads o transferir llamadas a una extensión o agente de OMniLeads.
Esto es posible utilizando las extensiones personalizadas de la IP-PBX, como en el caso de Issabel-PBX.
Llamadas hacia rutas entrantes de OMniLeads
El siguiente ejemplo muestra cómo crear una extensión personalizada que, al marcarla o invocarla desde un objeto de la PBX (como un IVR o ruta entrante), establezca un canal hacia OMniLeads. Esto permitirá que la llamada se dirija a una ruta entrante en OMniLeads, la cual puede redirigirla hacia una campaña entrante.
Por lo tanto, se debe configurar una ruta entrante en OMniLeads que apunte, por ejemplo, a una campaña entrante
Teniendo en cuenta que el DID elegido fue 098098, en la IP-PBX hay que generar una extensión del tipo custom, donde la cadena de Dial apunte al troncal SIP contra OMniLeads y el número enviado sea precisamente 098098:
En la figura remarcamos 3 elementos:
- El número de extensión, no necesariamente debe ser idéntico al número enviado hacia OMniLeads (3). Puede ser un número cualquiera, siempre y cuando la cadena de Dial de la extensión custom coincida con el DID de la ruta entrante de OML (098098 para nuestro ejemplo).
- El troncal a donde apuntar la extensión custom. Éste valor debe coincidir con el campo Trunk Name en el troncal SIP contra OMniLeads generado en la IP-PBX.
- El número a enviar por el troncal tiene que coincidir con el DID de la ruta entrante de OMniLeads.
De esta manera, cualquier extensión de la IP-PBX podrá marcar o transferir una llamada a esta extensión personalizada, que será redirigida a la ruta entrante en OMniLeads y conectada con una campaña entrante o el destino asignado.
Además, se pueden crear tantas extensiones personalizadas en la IP-PBX como sean necesarias, cada una apuntando a diferentes rutas entrantes en OMniLeads.
Llamadas hacia agentes de OMniLeads
Partiendo de la siguiente figura del listado de agentes, tomemos al agente Enzo Leandro. Observar que su ID es igual a «300» y su número SIP es «1300». Por lo tanto, a la hora de conformar un llamado hacia el webphone de dicho agente, se debe discar un número conformado por el número SIP con su ID de agente. En nuestro ejemplo, sería 1300300:
Al configurar la PBX para enviar llamadas a los agentes, existen dos alternativas:
1. Utilizar una ruta saliente desde la PBX hacia OMniLeads, tal como indicamos en la siguiente figura:
En éste caso, cualquier extensión de la PBX podrá generar una llamada hacia un agente marcando la combinación citada en el párrafo anterior.
2. Generar una extensión custom por cada agente de OML, es decir que la cadena de Dial de la extensión custom estará conformado ya no por un DID de ruta entrante de OMniLeads como fue en el caso de vincular con rutas entrantes, sino que será una combinación del ID del agente y su número SIP.
Ésto se indica la siguiente figura, donde la extensión 9001 asociada en al IPPBX hace referencia al agente Adrian Belew, cuyo ID es 1 y su Extensión SIP es 1006:
En la figura remarcamos 3 elementos:
- El número de extensión, no necesariamente debe ser idéntico al número enviado hacia OMniLeads (3). Puede ser un número cualquiera, siempre y cuando la cadena de Dial de la extensión custom coincida con la concatenación del ID de agente y su número SIP (10061 para nuestro ejemplo).
- El troncal a donde apuntar la extensión custom. Éste valor debe coincidir con el campo Trunk Name en el troncal SIP contra OMniLeads generado en la IP-PBX.
- El número a enviar por el troncal tiene que coincidir con la concatenación del ID de agente y su número SIP (10061 para nuestro ejemplo).
El procedimiento deberá repetirse para cada agente que se deba vincular en la IP-PBX. Así, el integrador de la PBX podrá asignar una numeración flexible a las extensiones.
Ambas alternativas son igualmente viables y permitirán alcanzar el resultado deseado.
Llamadas desde OMniLeads hacia la PSTN y recursos de la IP-PBX
Finalmente, vamos a configurar el enrutamiento saliente en OMniLeads, permitiendo que los agentes y discadores realicen llamadas hacia la PSTN, mientras que también habilitamos a los agentes para marcar o transferir llamadas a recursos de la IP-PBX como extensiones, grupos de timbre, colas de llamadas, entre otros.
Simplemente, se debe añadir una nueva ruta saliente que apunte al troncal hacia la IP-PBX:
De ésta manera, la integración queda completamente funcional, y ambos sistemas pueden realizar todo tipo de llamadas e interacciones.
Documentación Oficial OMniLEads