Scripts


Généralités


Les scénarios peuvent interagir avec des scripts externes écrits par exemple en langage PHP (https//www.php.net), Javascript(via le support de Node.JS) ou Python (https://www.python.org)

Les scripts PHP/JS/PY permettent de traiter les données reçues par serveur vocal, telles que les saisies du correspondant, mais aussi certaines caractéristiques de la communication telles que le numéro de l’appelant (selon installation), le numéro appelé, le scénario en cours etc.

Toutes les variables sont accessibles en lecture/écriture dans un tableau nommé params .
En PHP : $params
En JS : nativip.param
En Python : nativip['params']
Certaines variables accessibles en lecture permettent de connaitre le contexte de l'appel (numéro appelant, saisies effectuées...). En retour, le script peut modifier le comportement du serveur en définissant des variables d'action (définition de variables qui seront lues, numéro de transfert, saut vers une rubrique etc.)

Les scripts peuvent se situer n’importe où, cependant hormis le cas où ils sont partagés entre plusieurs scénarios/serveurs, il est préférable de les placer dans le répertoire correspondant au scénario utilisé. 

Si le même script doit être utilisé dans plusieurs scénarios alors il est conseillé de déporter ses fonctions communes dans un fichier partagé qui sera par exemple inclus dans le script via un require en PHP.




Script de fin de communication : liberation


S’il existe dans le répertoire du scénario concerné (de prise en charge de la communication), le serveur exécutera automatiquement le script liberation.php  en fin de communication (quelque soit la raison de la fin de communication) permettant de prévoir des actions post-communication (notifications, remontées d’informations en DB….). 

Ce script peut contenir des fonctions mais aucune n’est appelée automatiquement.

Ce script recevra les mêmes paramètres que les autres scripts utilisés dans les scénarios vocaux, mais il pourra optionnellement accéder aux paramètres techniques de la communication (codec, IPs, paquets perdus...).