Custom asterisk dialplan

Resulta súmamente útil disponer de la posibilidad de poder forzar a que una llamada ejecute un “plan de discado” generado a imagen y semejanza de cualquier requerimiento puntual del modelo de negocios implicado.

Pero, ¿a qué nos referimos con “plan de discado”?

Como bien sabemos, OMniLeads utiliza Asterisk como pieza fundamental dentro del módulo de “gestión de llamadas telefónicas”, y por lo tanto, cualquier programador con conocimientos de sintaxis de “dialplan” podrá generar sus propias rutinas de tratamiento de llamadas, pudiendo a su vez invocarlas dentro del flujo de llamadas de:

  • Rutas entrantes
  • Inbound campaigns
  • Failover destination
  • Outbound routes
  • Etc.

Por lo que se permite entonces, generar un “nodo” invocable dentro de una llamada procesada en OMniLeads, siendo éste “nodo”, lógica de programación de Asterisk, personalizada de acuerdo a cualquier necesidad puntual que esté por afuera del alcance de los módulos típicos del sistema.

For example, a developer can write a dialplan to integrate different business processes and numerous data sources to your IVR using API integrations with CRM or ERP.

Custom destination settings

Para crear un destino personalizado, se debe acceder al menú Telefonía -> Destinos personalizados.

El módulo “destino personalizado” simplemente involucra un formulario sencillo donde se indica el nombre del nodo de “dialplan personalizado” y la tríada:

  • Context
  • Extension
  • Priority

Además, contamos con la necesidad de indicar un destino en caso de fallo.

Todo ésto, se visualiza en la siguiente figura:

_images/telephony_custom_dst.png

Figura 1: Formulario de destino personalizado

Por otro lado, el programador podrá generar su código a nivel archivo de texto “oml_extensions_custom.conf”. Éste será cargado en tiempo real y también tenido en cuenta a la hora de generar los Backup&Restore de la plataforma.

Example

We will implement the dialplan

[omnileads_custom]
exten => s,1,Verbose(*** Ejemplo de destino personalizado ***)
same => n,Answer()
same => n,Playback(demo-congrats)
same => n,Hangup()

Then, we will write the code on oml_extensions_custom.conf the file is on “/opt/omnileads/asterisk/etc/asterisk” dir.

Luego, debemos generar el “nodo” destino personalizado, sobre la interfaz de configuración de OMniLeads:

_images/telephony_custom_dst_example.png

Figure 2: Ejemplo de destino personalizado

Finalmente, podemos invocar a nuestro nodo, desde una opción del IVR, validación horaria o ruta entrante:

_images/telephony_custom_dst_example_2.png

Figure 3: Ejemplo de destino personalizado