Este artículo permite añadir funciones personalizadas a las aplicaciones Rainbow mediante un conjunto de acciones configurables desde un archivo custo-manifest.json.
Las acciones disponibles son:
- Acciones que se activan automáticamente a raíz de eventos:
- on-incoming-pbx-call-actions: para ejecutar una acción cuando se produce una llamada entrante
- on-answering-incoming-pbx-call-actions: para ejecutar una acción cuando se contesta una llamada entrante
- on-releasing-incoming-pbx-call-actions: para ejecutar una acción cuando finaliza una llamada entrante
En las llamadas entrantes, las acciones pueden lanzar un script, una aplicación o una página web con información sobre la llamada entrante.
- Las acciones se activan mediante el uso de botones:
- on-incoming-pbx-call-button-actions: para ejecutar una acción pulsando un botón añadido en la ventana emergente de llamadas entrantes
- on-call-log-list-actions: para ejecutar una acción pulsando un botón insertado en cada elemento del registro de llamadas
- on-contact-list-actions: para ejecutar una acción pulsando un botón insertado en cada elemento de contactos
- on-contact-detail-actions: para ejecutar una acción pulsando un botón insertado en el área detallada de contactos
- on-communication-card-actions: para ejecutar una acción pulsando un menu insertado en la barra del gestor de llamadas.
- on-bubble-actions: para ejecutar una acción pulsando un botón insertado en la propiedad del menu burbujas
- on-bubble-conference-actions: para ejecutar una acción pulsando un botón insertado en el menu de llamadas de conferencia
Al pulsar los botones, las acciones pueden abrir ventanas emergentes con posibilidad de unirse a contactos o servicios por correo electrónico.
- Acciones con visualización automática de la información:
- on-incoming-pbx-call-display-actions: para insertar información en la ventana emergente de llamada entrante
- on-contact-card-display-actions: para insertar información en la zona detallada de contactos.
- Acción con visualización de aplicaciones de terceros:
- on-main-window-actions: para mostrar una aplicación de terceros en la aplicación Rainbow (sólo con la opción Popup activada: véase: Campos adicionales)
Haciendo clic en el icono dedicado en el panel izquierdo, la acción puede mostrar una aplicación de terceros en la parte derecha de la aplicación Rainbow.
Estas acciones se configuran a partir del archivo custo-manifest.json disponible en la aplicación Rainbow.
La configuración consiste en:
- Exportar el archivo custo-manifest.j son en el ordenador
- Editar y completar el archivo custo-manifest. json
- Importar el custo-manifest.j son en la aplicación Rainbow
La configuración sólo se aplica a las aplicaciones Rainbow que se ejecutan en el ordenador.
La configuración debe realizarse para cada aplicación Rainbow.
Requisitos previos
- Debe tener una cuenta de administrador en la empresa con una licencia Business, Enterprise o Attendant.
- Debe utilizar la versión de escritorio de la aplicación Rainbow.
Visión general del archivo custo-manifest
El archivo custo-manifest consta de dos partes:
- La primera parte enumera todas las acciones disponibles, y proporciona para cada acción, una plantilla con los principales parámetros a cumplimentar.
Ejemplo: - La segunda parte proporciona una guía de ayuda que debe leerse para la configuración.
Una acción se define mediante un conjunto de parámetros que se describen en las secciones siguientes.
Campos principales
- "nombre": es un texto utilizado para identificar la acción o la etiqueta del botón para las acciones que utilizan botón
- para acciones que utilizan botón
- "icono": es la ruta de acceso al icono del botón
- "tooltip": es la ruta de acceso a la información sobre la herramienta que se muestra al pasar el ratón por encima del botón
- "comando": define la acción a ejecutar
-
"url": es la ruta o URL de acceso a la aplicación local, página web o API RESTNota: La barra invertida debe ser doble en la ruta de acceso a la aplicación local (por ejemplo, C:\\MicroCRM\MicroCRM.exe).
- "params": es una cadena con variables ${xx} que serán sustituidas por su valor en la ejecución de la acción
-
"commandType": especifica el tipo de acción:
- "none": lanza una aplicación local o una página web (si la url empieza por 'http' o 'https')
- "rest": ejecuta una llamada a la API REST
- "file": recupera el contenido del archivo a recuperar (principalmente para el ajuste del depurador)
-
"responseType": define el tipo de contenido devuelto por la acción: "markdown", "json" o "adaptiveCard".
Si se establece en "json", entonces:
- "displayJsonField": define el campo cuyo valor es el contenido que se mostrará
- "firstNameJsonField": define el campo cuyo valor debe sustituir al nombre del llamante
- "lastNameJsonField": define el campo cuyo valor debe sustituir al apellido de la persona que llama.
- "companyJsonField": define el campo cuyo valor debe sustituir al nombre de la empresa de la persona que llama.
Si se establece como "adaptiveCard", entonces:
- "adaptiveCardTemplateJsonField": define la plantilla de la tarjeta adaptativa que se mostrará
- "adaptiveCardContentJsonField": define el contenido de la tarjeta adaptativa que debe mostrarse
- Plantilla y contenido en un archivo: se utiliza principalmente para pruebas. El archivo puede ser local o recuperarse a través de una URL
- Plantilla en manifiesto y Contenido en un archivo: también se utiliza para pruebas. El archivo también puede ser el resultado de un script CGI
- Plantilla en el manifiesto y Contenido resultado de una llamada Rest: sólo se recuperan los datos de forma remota a través de una API Rest
- Plantilla y contenido resultado de unallamada Rest: los datos y el diseño se recuperan de forma remota a través de una API Rest
Campos principales:
Tipo de contenido en "json
Campos adicionales
- "AnswerOnClick": si se establece en true, ejecuta la acción y responde a la llamada entrante al mismo tiempo (sólo para acciones on-incoming-pbx-call-button-actions )
- "filter": si se establece en "NoShortNumber", no activará el evento si el número de la persona que llama es un número corto
-
"RaiseChangeCall": permite configurar el comportamiento al recibir una llamada transferida:
- false: sólo las llamadas directas al usuario activarán el evento
- true: el evento se dispara para las llamadas directas al usuario y también para las llamadas que han sido transferidas a este usuario
- sólo: sólo las llamadas transferidas al usuario desencadenan el evento
- "Popup": cuando se establece en true, muestra una aplicación de terceros en la parte derecha de la aplicación Rainbow (sólo para acciones en la ventana principal )
Variables ${xx}
La plantilla de acción puede incluir variables ${xx} configuradas en los parámetros "url", "params " y "bodyParameters " (para API REST). Se sustituyen por su valor cuando se ejecuta la acción.
Las variables ${xx} pueden ser
Se puede aplicar una expresión regular (es decir, regex) a una variable ${xx}.
La sintaxis es ${rainbowVariable.regex(regexPatternValue, replacementValue)}
La regex se aplicará a la variable ${xx} antes de enviarla a la aplicación externa si forma parte de la solicitud o antes de pasarla a la aplicación web si forma parte de una respuesta.
Ejemplos:
Al sustituir ${localUser.phonePbx} por su valor, también aplica una regex sobre él.
"params": "pbx=${localuser.phonepbx.regex(^\\+33\|^\\+1, 0)}="0)}"
En este ejemplo, "+333909090" se cambiará por "03909090".
"params": "byEmail=${localUser.email.regex(alcatel.com, al-enterprise.com)}"
En este ejemplo, "someone@alcatel.com" se cambiará por "someone@al-enterprise.com".
Exportación del archivo custo-manifest en el ordenador
- Desde la aplicación Rainbow, haga clic en el avatar del panel izquierdo y, a continuación, en el menu Configuración.
- En el menu de la izquierda, seleccione Telefonía.
Se abrirá la ventana Ajustes - Configuración de telefonía. - Despliegue la ventana hasta la sección PERSONALIZACIÓN.
- Haga clic en Exportar archivo y utilice el navegador para exportar el archivo custo-manifest en el ordenador.
- Haga clic en Cerrar para salir de la ventana de configuración de telefonía.
Configurar el archivo custo-manifest localmente
- Abra el archivo custo-manifest utilizando un editor de texto.
- Configure los parámetros de las acciones a utilizar.Atención: no elimine el espacio entre las comillas dobles de los parámetros no utilizados ("name": " ", "url": " ", "params": " "), de lo contrario no se tendrá en cuenta el archivo importado.
- Elimine los parámetros de todas las acciones no utilizadas.
- Guarde el archivo custo-manifest.
- Si el archivo custo-manifest hace referencia a fuentes externas (imágenes y/o archivos de texto), cree un archivo *.zip con el archivo custo-manifest y las fuentes externas.
Ejemplo:
En este ejemplo, el archivo *.ZIP debe contener los archivos custo-manifest.json, basketball.png y FileDisplay.txt.
Importación del archivo custo-manifest en la aplicación Rainbow
- En la aplicación Rainbow, haga clic en el avatar del panel izquierdo y, a continuación, en el menu Configuración.
- En el menu de la izquierda, seleccione Telefonía.
Se abrirá la ventana Ajustes - Configuración de telefonía. - Despliegue la ventana hasta la sección PERSONALIZACIÓN.
- Haga clic en Importar archivo y utilice el navegador para seleccionar e importar en la aplicación Rainbow el archivo custo-manifest sólo (*.json), o el archivo custo-manifest y sus fuentes externas (*.ZIP).
Se abrirá la ventana Importar archivo de personalización. - Haga clic en Continuar para reiniciar la aplicación Rainbow y tener en cuenta el nuevo archivo de personalización.
Ejemplos de configuración
Ejecutar una aplicación o un script con parámetros
Ejemplo 1:
La acción on-incoming-pbx-call-actions ejecuta una aplicación (por ejemplo, MicroCrm) con un parámetro de "params" (sin retorno).
"versión": "2",
"puntos de extensión": {
"on-incoming-pbx-call-actions": [ { "name": "Ejecutar CRM", "comando": {"url": "C:\MyApp\CustoApp\MicroCRM.exe", "params": "-número ${caller.phoneNumber}" } ],
Ejemplo 2:
La acción on-incoming-pbx-call-actions ejecuta un script (*.bat) con parámetros de 'params' (sin retorno).
"version": "2",
"puntos de extensión": {
"on-incoming-pbx-call-actions": [ { "nombre": "BatScript", "comando": {"url": "C:\MyApp\MyApp.bat", "params": "IN-COMING canNr:${localUser.canonicalNumber} userIntNr:$"{localUser.internalNumber} caller[Nr:${calle.phoneNumber} FN:${caller.firstName} LN:${caller.lastName} .... CorData:[${calle.correlatorData Hex:${calle.hexCorrelatorData]" }
} ],
Abrir una página web con parámetros
Ejemplo 1:
La acción on-incoming-pbx-call-actions abre una página web con parámetros de 'params' (sin retorno).
"version": "2",
"puntos de extensión": {
"on-incoming-pbx-call-actions": [ { "nombre": "Páginas amarillas", "comando": { "url":"https://www.pagesjaunes.fr/annuaireinverse/recherche",
"params": "quoiqui=${caller.phoneNumber}&proximite=0"
}
}
],
Ejemplo 2:
La acción on-incoming-pbx-call-actions abre una página web con parámetros directamente en URL (sin retorno).
"version": "2",
"puntos de extensión": {
"on-incoming-pbx-call-actions": [ { "name": "ventana emergente de contacto", "comando": { "url":"http://localhost:3000/contactShow?phone=${caller.phoneNumber}",
"params": " "
}
}
],
Ejecutar una llamada a la API REST con parámetros
Ejemplo 1:
Cuando se libera una llamada entrante, la acción on-releasing-incoming-pbx-call-actions crea un registro de llamadas END en REST utilizando el método GET y los parámetros de "params" (sin retorno).
"version": "2",
"puntos de extensión": {
"on-releasing-incoming-pbx-call-actions": [ { "name": "GetRestApi", "command": {
"commandType": "rest",
"method": "GET", "url":"http://localhost:3000/IncidentManager/CreateCallLog",
"params": "byEmail=${localUser.email}&CustomerContact=${caller.phonenumber}"
}
}
],
Ejemplo 2:
Cuando se libera la llamada entrante, la acción on-releasing-incoming-pbx-call-actions crea un registro de llamadas END en REST utilizando el método POST y los parámetros de "bodyParameters" (sin retorno).
"version": "2",
"puntos de extensión": {
"on-releasing-incoming-pbx-call-actions": [
{
"name": "PostRestApi",
"comando": {
"commandType": "rest",
"method": "POST",
"url":"http://localhost:3000/IncidentManager/EndCallLog",
"params": " "
},
"bodyParameters": {
"llamante": "${contact.phoneNumber}",
"usuario": "${localUser.email}",
}
],