Cet article permet d'ajouter des fonctionnalités personnalisées aux applications Rainbow à l'aide d'un ensemble d'actions configurables à partir d'un fichier custo-manifest.json.
Les actions disponibles sont les suivantes :
- Actions déclenchées automatiquement à la suite d'événements :
- on-incoming-pbx-call-actions : pour exécuter une action lors d'un appel entrant.
- on-answering-incoming-pbx-call-actions: pour exécuter une action lorsqu'un appel entrant est pris.
- on-releasing-incoming-pbx-call-actions: exécution d'une action lorsqu'un appel entrant est terminé.
Lors d'appels entrants, les actions peuvent lancer un script, une application ou une page web contenant des informations sur l'appel entrant.
- Actions déclenchées par l'utilisation d'un bouton :
- on-incoming-pbx-call-button-actions: pour exécuter une action en cliquant sur un bouton ajouté dans la fenêtre contextuelle de l'appel entrant.
- on-call-log-list-actions: pour exécuter une action en cliquant sur un bouton inséré dans chaque élément du journal des appels.
- on-contact-list-actions: pour exécuter une action en cliquant sur un bouton inséré dans chaque élément des contacts
- on-contact-detail-actions: pour exécuter une action en cliquant sur un bouton inséré dans la zone détaillée du contact
- on-communication-card-actions: pour exécuter une action en cliquant sur un menu inséré dans la barre du gestionnaire d'appels.
- on-bubble-actions: pour exécuter une action en cliquant sur un bouton inséré dans la propriété du menu bulle.
- on-bubble-conference-actions: permet d'exécuter une action en cliquant sur un bouton inséré dans le menu conférence appel.
En cliquant sur les boutons, les actions peuvent ouvrir des fenêtres pop-up avec la possibilité de rejoindre des contacts ou des services par e-mail.
- Actions avec affichage automatique des informations :
- on-incoming-pbx-call-display-actions: pour insérer des informations dans la fenêtre contextuelle de l'appel entrant.
- on-contact-card-display-actions: pour insérer des informations dans la zone détaillée du contact.
- Action avec l'affichage d'une application tierce :
- on-main-window-actions : pour afficher une application tierce dans l'application Rainbow (uniquement lorsque l'option Popup est activée : voir : Champs supplémentaires)
En cliquant sur l'icône dédiée dans le panneau de gauche, l'action permet d'afficher une application tierce dans la partie droite de l'application Rainbow.
Ces actions sont configurées à partir du fichier custo-manifest.json disponible dans l'application Rainbow.
La configuration consiste à :
- Exporter le fichier custo-manifest.json sur l'ordinateur.
- Modifier et compléter le fichier custo-manifest.json
- Importer le fichier custo-manifest.json sur l'application Rainbow
La configuration ne s'applique qu'aux applications Rainbow fonctionnant sur ordinateur.
La configuration doit être effectuée pour chaque application Rainbow.
Conditions préalables
- Vous devez disposer d'un compte administrateur dans l'entreprise avec une licence Business, Enterprise ou Attendant.
- Vous devez utiliser la version desktop de l'application Rainbow.
Présentation du fichier custo-manifest
Le fichier custo-manifest se compose de deux parties :
- La première partie énumère toutes les actions disponibles et fournit pour chaque action un modèle avec les principaux paramètres à remplir.
Exemple : - La seconde partie fournit un guide d'aide à lire pour la configuration.
Une action est définie par un ensemble de paramètres décrits dans les sections suivantes.
Principaux champs
- "name": texte utilisé pour identifier l'action ou l'étiquette du bouton pour les actions utilisant un bouton.
- Pour les actions utilisant un bouton :
- "icône": chemin d'accès à l'icône du bouton
- "tooltip": chemin d'accès à l'info-bulle affichée lorsque la souris passe sur le bouton.
- "command": définit l'action à exécuter
-
"url": chemin d'accès ou URL pour accéder à l'application locale, à la page web ou à l'API REST.Note: La barre oblique inverse doit être doublée dans le chemin d'accès à l'application locale (par exemple C:\NMicroCRM\NMicroCRM.exe).
- "params": est une chaîne contenant les variables ${xx} qui seront remplacées par leur valeur lors de l'exécution de l'action
-
"commandType": spécifie le type d'action :
- "none": démarre une application locale ou une page web (si l'url commence par "http" ou "https").
- "rest": exécute un appel à l'API REST
- "file": récupère le contenu du fichier à récupérer (principalement pour le réglage du débogueur).
-
"responseType: définit le type de contenu renvoyé par l'action : "markdown", "json" ou "adaptiveCard".
Si la valeur est "json", alors.. :
- "displayJsonField": définit le champ dont la valeur est le contenu à afficher
- "firstNameJsonField": définit le champ dont la valeur doit se substituer au prénom de l'appelant
- "lastNameJsonField": définit le champ dont la valeur doit être substituée au nom de famille de l'appelant
- "companyJsonField" : définit le champ dont la valeur doit être remplacée par le nom de l'entreprise de l'appelant.
S'il est défini sur "adaptiveCard", alors :
- "adaptiveCardTemplateJsonField": définit le modèle de la carte adaptative à afficher.
- "adaptiveCardContentJsonField": définit le contenu de la carte adaptative à afficher.
- Modèle et contenu dans un fichier: principalement utilisé pour les tests. Le fichier peut être local ou repris via une URL.
- Modèle dans le manifeste et contenu dans un fichier: également utilisé pour les tests. Le fichier peut également être le résultat d'un script CGI.
- Modèle dans le manifeste et contenu résultant d'un appel Rest: seules les données sont reprises à distance via une API Rest.
- Template and Content result of Rest call: les données et la mise en page sont reprises à distance via une API Rest.
Principaux champs :
Type de contenu en "json":
Champs supplémentaires
- AnswerOnClick": si la valeur est " true", l'action est exécutée et l'appel entrant est répondu en même temps (uniquement pour les actions "on-incoming-pbx-call-button-actions" ).
- "Filtrer": si la valeur est "NoShortNumber", l'action ne sera pas déclenchée si le numéro de l'appelant est un numéro court.
-
"RaiseChangeCall": permet de configurer le comportement lors de la réception d'un appel transféré :
- false: seuls les appels directs à l'utilisateur déclencheront l'événement.
- true: l'événement est déclenché pour les appels directs à l'utilisateur et également pour les appels qui ont été transférés à cet utilisateur
- only: seuls les appels transférés vers l'utilisateur déclenchent l'événement
- "Popup": lorsque la valeur est fixée à true, une application tierce s'affiche dans la partie droite de l'application Rainbow (uniquement pour les actions on-main-window-actions ).
Variables ${xx}
Le modèle d'action peut inclure des variables ${xx} configurées dans les paramètres "url", "params" et "bodyParameters" (pour l'API REST). Elles sont remplacées par leur valeur lorsque l'action est exécutée.
Les variables ${xx} peuvent être
Une expression régulière (c'est-à-dire une regex) peut être appliquée à une variable ${xx}.
La syntaxe est la suivante : ${rainbowVariable.regex(regexPatternValue, replacementValue)}
La regex sera appliquée à la variable ${xx} avant de l'envoyer à l'application externe si elle fait partie de la demande ou avant de la transmettre à l'application Web si elle fait partie d'une réponse.
Exemples :
Lorsqu'on remplace ${localUser.phonePbx} par sa valeur, on applique également une regex sur celle-ci.
"params" : "pbx=${localuser.phonepbx.regex(^\\+33\|^\\+1, 0)}="0)}"
Dans cet exemple, "+333909090" sera remplacé par "03909090".
"params" : "byEmail=${localUser.email.regex(alcatel.com, al-enterprise.com)}"
Dans cet exemple, "someone@alcatel.com" sera remplacé par "someone@al-enterprise.com".
Exportation du fichier custo-manifest sur l'ordinateur
- A partir de l'application Rainbow, cliquez sur l'avatar dans le panneau de gauche, puis sur le menu Paramètres.
- Dans le menu de gauche, sélectionnez Téléphonie.
La fenêtre Paramètres - Configuration de la téléphonie s'ouvre. - Développez la fenêtre jusqu'à la section PERSONNALISATION.
- Cliquez sur Exporter le fichier et utilisez le navigateur pour exporter le fichier custo-manifest sur l'ordinateur.
- Cliquez sur Fermer pour quitter la fenêtre de configuration de la téléphonie.
Configuration locale du fichier custo-manifest
- Ouvrez le fichier custo-manifest à l'aide d'un éditeur de texte.
- Configurez les paramètres des actions à utiliser.Attention: ne supprimez pas l'espace entre les guillemets pour les paramètres non utilisés ("name": " ", "url": "", "params": ""), sinon le fichier importé ne sera pas pris en compte.
- Supprimez les paramètres de toutes les actions inutilisées.
- Sauvegardez le fichier custo-manifest.
- Si le fichier custo-manifest fait référence à des sources externes (images et/ou fichiers texte), créez un fichier *.zip contenant à la fois le fichier custo-manifest et les sources externes.
Exemple :
Dans cet exemple, le fichier *.ZIP doit contenir les fichiers custo-manifest.json, basketball.png et FileDisplay.txt.
Importation du fichier custo-manifest sur l'application Rainbow
- Depuis l'application Rainbow, cliquez sur l'avatar dans le panneau de gauche, puis sur le menu Paramètres.
- Dans le menu de gauche, sélectionnez Téléphonie.
La fenêtre Paramètres - Configuration de la téléphonie s'ouvre. - Développez la fenêtre jusqu'à la section PERSONNALISATION.
- Cliquez sur Importer un fichier et utilisez le navigateur pour sélectionner et importer dans l'application Rainbow soit le fichier custo-manifest uniquement (*.json), soit le fichier custo-manifest et ses sources externes (*.ZIP).
La fenêtre Importer un fichier de personnalisation s'ouvre. - Cliquez sur Continuer pour redémarrer l'application Rainbow et prendre en compte le nouveau fichier de personnalisation.
Exemples de configuration
Exécuter une application ou un script avec des paramètres
Exemple 1 :
L'action on-incoming-pbx-call-actions exécute une application (par exemple MicroCrm) avec un paramètre de 'params' (sans retour).
"version" : "2",
"extension-points" : {
"on-incoming-pbx-call-actions" : [ { "name" : "Exec CRM", "command" : { "url" : "C:\NMyApp\NCustoApp\NMicroCRM.exe", "params" : "-number ${caller.phoneNumber}" } } ],
Exemple 2 :
L'action on-incoming-pbx-call-actions exécute un script (*.bat) avec les paramètres de 'params' (sans retour).
"version" : "2",
"extension-points" : {
"on-incoming-pbx-call-actions" : [ { "name" : "BatScript", "command" : { "url" : "C:\NMyApp\NMyApp.bat", "params" : "IN-COMING canNr:${localUser.canonicalNumber} userIntNr:$"{localUser.internalNumber} caller[Nr:${calle.phoneNumber} FN:${caller.firstName} LN:${caller.lastName} .... CorData :[${call.correlatorData Hex:${call.hexCorrelatorData]" }
} ],
Ouvrez une page web avec des paramètres
Exemple 1 :
L'action on-incoming-pbx-call-actions ouvre une page web avec les paramètres de 'params' (sans retour).
"version" : "2",
"extension-points" : {
"on-incoming-pbx-call-actions" : [ { "name" : "Pages jaunes", "commande" : { "url" :"https://www.pagesjaunes.fr/annuaireinverse/recherche",
"params" : "quoiqui=${caller.phoneNumber}&proximite=0"
}
}
],
Exemple 2 :
L'action on-incoming-pbx-call-actions ouvre une page web avec des paramètres directement dans l'URL (sans retour).
"version" : "2",
"extension-points" : {
"on-incoming-pbx-call-actions" : [ { "name" : "Popup de contact", "command" : { "url" :"http://localhost:3000/contactShow?phone=${caller.phoneNumber}",
"params" : " "
}
}
],
Exécuter un appel API REST avec des paramètres
Exemple 1 :
Lorsqu'un appel entrant est publié, l'action on-releasing-incoming-pbx-call-actions crée un journal d'appel END en REST en utilisant la méthode GET et les paramètres de "params" (sans retour).
"version" : "2",
"extension-points" : {
"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}"
}
}
],
Exemple 2 :
Lorsqu'un appel entrant est libéré, l'action on-releasing-incoming-pbx-call-actions crée un journal des appels END en REST en utilisant la méthode POST et les paramètres de "bodyParameters" (sans retour).
"version" : "2",
"extension-points" : {
"on-releasing-incoming-pbx-call-actions" : [
{
"name" : "PostRestApi",
"command" : {
"commandType" : "rest",
"method" : "POST",
"url" :"http://localhost:3000/IncidentManager/EndCallLog",
"params" : " "
},
"bodyParameters" : {
"caller" : "${contact.phoneNumber}",
"utilisateur" : "${localUser.email}",
}
],