Diseñador de Flujos - Telefonía

Es un entorno de Desarrollo para Flujos de Telefonía, Bots Proveedores y Webhooks.

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


Introducción

Con esta herramienta se crean flujos de 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 via 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, van a estar visibles y serán 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 a los mismos y activarlos al momento de realizar la Activación (Deploy).

Ayuda de Camino: Para un mejor entendimiento de los mismos las flechas verdes son el camino Verdadero y las 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 uno 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 este seleccionado (es posible copiar y pegar entre Pestañas del Explorador).

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

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

 

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. 

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

 

Alinear: Opciones para alinear el dibujo.

Encontrar en Diagrama: Encuentra actividades en el Diagrama marcando su nombre en Rojo.

Activar, Cargar y Depurar:

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.



Propiedades

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, entre otros.

La principal forma de utilizarlos es hacer que Asterisk realice diferentes acciones dependiendo desde donde una llamada ingresa. 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 especifico, 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, las mismas 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 lineas 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 mas 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 las extensiones.

Toda llamada originada desde un dispositivo va a buscar flujos que mapeen contra la 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 mas 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 click 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 realizado 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 especificas de un solo canal y pueden ser referidas en cualquier canal en el momento que sea necesario por cualquier llamada.

  • Locales: Las mismas solo pueden ser utilizadas con el canal que se esta utilizando 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 forma se transformará en una variable local.

Ejemplos:

Asignación

Comparación

Actividades

Las actividades están documentadas en Descripción de Aplicaciones v6