Diseñador de Flujos - Telefonía

Es un entorno de desarrollo para flujos de telefonía, bots proveedores y webhooks.

Aquí se encuentran temas generales y de telefonía. Las otras funcionalidades están disponibles en los siguientes enlaces:


Introducción

Con esta herramienta se crean flujos para un plan de marcado, estos flujos le indican al sistema como comportarse en llamadas tanto entrantes como salientes.

Es una herramienta HTML5 y Javascript de arrastrar y soltar, cada actividad es una aplicación del plan de marcado, y es posible cambiar su comportamiento vía sus propiedades.

Se genera código que es activado (deploy) en el servidor. Pueden cargarse flujos del servidor para editarlos y activarlos al momento.

Una vez un flujo es activado, queda inmediatamente activo.

Cada origen de datos, nombre de campañas, sonidos, etc. creados en el administrador, son visibles y sugeridos en las actividades correspondientes en sus propiedades. Al cargar un flujo del servidor se entra en modo edición, el cual permite hacer modificaciones y activarlos al momento de realizar la activación (deploy).

A tener en cuenta:

Ayuda de camino -  Las flechas verdes son el camino verdadero y las flechas rojas el camino falso cuando hay condiciones.

En la esquina inferior derecha muestra si nos encontramos en modo edición o en la creación de un flujo nuevo.


Básicas

Operaciones básicas de la barra de herramientas

Nuevo: Crea un nuevo flujo (se pierden los cambios que no fueron salvados o activados).

Abrir: Carga un Flujo que previamente fue guardado en un archivo JSON.

Guardar: Guarda en un Archivo JSON.

Deshacer: Deshace la última acción.

Rehacer: Rehace la última acción deshecha.

Copiar: Copia una parte del dibujo que esté seleccionado (es posible copiar y pegar entre pestañas del explorador).

Pegar: Pega cualquier actividad/es copiadas o cortadas (incluye conexiones y propiedades).

 

Zoom entrante: Acerca la vista del dibujo.

Zoom saliente: Aleja la vista del dibujo.

Bloquear: Bloquea una selección del dibujo, no la deja mover. 

Eliminar: Eliminar Actividad o Conexión, es posible usar Ctrl V, C, X.

Agrupar: Agrupa partes del dibujo para poder trasladarlas en conjunto.

 

Alinear: Opciones para alinear el dibujo.

Buscar en el diagrama: Encuentra actividades en el diagrama marcando su nombre en rojo.

Activar, Cargar y Debug:

Permiten activar cambios o nuevos flujos, o cargarlos del servidor o mostrar el código generado en consola.


Selección de ítem

Muestra panel de propiedades.

Crea conectores de una actividad a otra. 

Crea copia del ítem seleccionado.

Muestra descripción y parámetros de la actividad seleccionada.


Extensiones y contextos

Dialplan consiste de una colección de contextos como forma de organización y separación, como por ejemplo para separación entre funcionalidades y herramientas, así como reforzar la seguridad entre los diferentes contextos.

El principal modo de utilizarlos es hacer que Asterisk realice diferentes acciones, dependiendo desde dónde ingresa una llamada. Cuando Asterisk tiene una conexión de llamada, ya sea una llamada entrante desde afuera o una extensión interna, esa llamada pertenece a un único contexto, según el canal por el cual haya ingresado la llamada.
Si la extensión marcada no existe en un contexto específico, Asterisk rechaza la llamada, por lo que es importante entender que según la configuración que el usuario tenga, es lo que le dice a Asterisk como dirigir la llamada desde el punto entrante a nuestro sistema.

Los contextos son una colección de extensiones que son un conjunto de acciones. Asterisk ejecutará cada acción, en secuencia, cuando el contexto en el cual esta extensión se encuentra sea llamado. Una extensión puede ser de dos tipos: un literal o un patrón (no confundir con extensiones de teléfono).

Un literal puede ser un número o letras como _1234.

 

Extensiones especiales: 

i  : Inválido

s  : Inicio 

h  : Cortar 

t  : Tiempo finalizado

T  : Tiempo Absoluto finalizado

a : Extensión de Asterisk

o : Operador

i: Usada en un IVR cuando se marca algo que no hace referencia a ninguna extensión de su contexto.

s:  Usada para macros y líneas analógicas, es cuando no llega números ni letras.

h: Se ejecuta al final cuando se corta una llamada antes de ser guardado su registro en el sistema, pueden setearse variables de acuerdo al resultado o ejecutar más actividades.

t: Cuando se demora en digitar algo mientras hay una reproducción de un audio.

T: Global como la anterior.

a: Es llamada cuando el usuario presiona " * " durante el inicio de un correo de voz

o: Usado para salir al presionar cero en correo de voz.

Patrones 

X cualquier dígito del 0-9 

Z cualquier dígito del 1-9 

N cualquier dígito del 2-9 

[1237-9] cualquier dígito o letra entre los paréntesis rectos (ejemplo, 1,2,3,7,8,9) 

. comodín uno o más caracteres

! comodín, 0 o más caracteres



Ejemplos 

_NXXXXXX coincide con NANP 7 dígitos 555-1212 

_1NXXNXXXXXX coincide con un 1 y n número mayor a 2, y 2 mayores que 0, uno mayor que 2 y 6 números más a 1 1-860-555-1212 

_9011. cualquier número que comience con 9011 más un dígito más 

_9011! igual al anterior pero también el 9011

_# un #

_X! cualquier patrón de uno o más dígitos

_[*#0-9]! igual al anterior pero admite * y #

_[*0-9]! igual al anterior sin #

s si no hay patrón que mapee

No usar _.  Usar  _X. or _X para no mapear contra extensiones especiales.

Un contexto tiene un nombre ejemplo "John" y cada contexto define una o más extensiones. Para cada extensión se define una serie de aplicaciones (actividades del flujo) que definen el comportamiento de la llamada.

Los contextos y extensiones son definidos en la StartActivity, actividad principal e inicio de los flujos, los contextos se le asocian a agentes o proveedores.


Manejo de Flujos

 

Carga

Esta ventana permite cargar flujos del servidor, están agrupados en contextos y dentro de ellos se encuentran las extensiones.

Toda llamada originada desde un dispositivo va a buscar flujos que mapeen contra las extensiones que existen en su contexto, si mapea una extensión se ejecutan los pasos de ese flujo. Todos los flujos juntos son el plan de marcado del sistema.

Controla todas las llamadas que pasan por el sistema. Se configura todo el comportamiento del sistema, ya existen flujos estándar que hacen más sencillo las configuraciones. 

  • Historial: Registra las acciones realizadas en cada Flujo.

  • Los diferentes tipos de acciones son:

  • INSERT(creación de un flujo),

  • UPDATE(actualización de un flujo)

  • y DELETE(flujo borrado).
    La gran ventaja del historial es la recuperación de flujos borrados para volver a trabajar sobre ellos sin haber perdido datos.
    Se pueden aplicar filtros de búsqueda tales como por columna de Contexto o Exten, escribiendo lo deseado y haciendo clic en el logo de la lupa de búsqueda.

  • Borrar: Borra el flujo seleccionado en la lista.

  • Cargar: Carga el flujo seleccionado.

  • Abrir en pestaña adicional: Permite abrir el flujo seleccionado en una pestaña aparte a la actual. Facilitando el trabajo con varios flujos a la vez.

Activar

En esta ventana se activa (deploy) de un flujo y se le agrega una descripción para luego saber que hace, una vez ejecutado, ya comienza a tomar los cambios en el sistema.

Si cargamos un Flujo al Activar nos va a sugerir el comentario previo.

Guardar

Es posible guardar en disco en un archivo flujos por si se requieren luego activar en otro servidor o instalación.

Manejo de Variables

Asterisk utiliza variables globales, compartidas y especificas de canales.

  • Globales: Estas variables no son específicas de un solo canal y pueden ser referidas en cualquier canal en el momento que sea necesario por cualquier llamada.

  • Locales: Las mismas solamente pueden ser empleadas con el canal que se está usando en el momento. Cada variable local obtiene su propio espacio, de esta manera no se verá interferida de ninguna forma por otras llamadas, y la misma variable se destruirá cuando la llamada finalice. Estas son aplicadas utilizando el comando Set(). 

  • Compartidas: Uno o más canales puede tener total acceso a este tipo de variables, de esta manera se transformará en una variable local.

Ejemplos:

Asignación

Comparación

Actividades

Las actividades están documentadas en https://integra-scm.atlassian.net/l/c/n2gK00sd