Scripts serveur vocal
Nous présentons ici quelques exemples d'utilisation du serveur vocal.
Script pour appel entrant : horloge parlante
Ce script utilise la synthèse vocale.
Voici le script correspondant ci-dessous. Nous détaillerons les différentes instructions par la suite.
Dim _nKey As Integer
Dim _sToPlay As String
_nKey = 0
PLAYTEXT("Bonjour, bienvenue sur notre horloge parlante." , "fr-fr")
_nKey = TTSMENU("Appuyez sur, 1, pour connaitre l'heure. Appuyez sur, 2, pour connaitre la date. Appuyez sur, 3, pour connaitre la date et l'heure. Appuyez sur, 4, pour arrêter cet appel.", "1234", 3, 15, "Je ne vous ai pas compris", TRUE, "fr-fr")
If _nKey = 1 Then
_sToPlay = FORMAT(NOW(), "hh:nn:ss")
PLAYTEXT("Il est " + _sToPlay, "fr-fr", TRUE)
ElseIf _nKey = 2 Then
_sToPlay = FORMAT(NOW(), "dd/mm/yyyy")
PLAYTEXT("Nous sommes le " + _sToPlay, "fr-fr", TRUE)
ElseIf _nKey = 3 Then
_sToPlay = FORMAT(NOW(), "fl à hh:nn:ss")
PLAYTEXT(_sToPlay, "fr-fr", TRUE)
Else
PLAYTEXT("Au revoir.", "fr-fr", TRUE)
EndIf
WAITENDOFPLAY(500)
DISCONNECT()
Tout d'abord, le script diffuse un message de bienvenue avec la fonction PLAYTEXT.
PLAYTEXT("Bonjour, bienvenue sur notre horloge parlante.", "fr-fr")
Un menu est ensuite diffusé à l'appelant qui doit faire un choix en pressant une touche de son téléphone. La fonction TTSMENU offre cette fonctionnalité.
TTSMENU("Appuyez sur, 1, pour connaitre l'heure. Appuyez sur, 2, pour connaitre la date. Appuyez sur, 3, pour connaitre la date et l'heure. Appuyez sur, 4, pour arrêter cet appel.", "1234", 3, 15, "Je ne vous ai pas compris", TRUE, "fr-fr")
En fonction de la touche préssée, l'action est effectuée. Ici 1 qui donne l'heure, 2 qui donne la date, 3 qui donne la date et l'heure ou 4 pour quitter.
Le script arrête ensuite la communication avec DISCONNECT après s'être assuré que tous les sons aient été joués grâce à la fonction WAITENDOFPLAY.
Script pour appel sortant : diffusion des messages d'alarme et des messages de service.
Ce script utilise également la synthèse vocale.
Voici le script correspondant ci-dessous. Les différentes instructions sont décrites par la suite.
Dim sIdCode As String
Dim nCount As Integer
Dim nCalledUserId As Integer
Dim nFoundId As Integer
Dim nLang As Integer
nFoundId = 0
nCalledUserId = -1
nLang = 0
GETREMOTEPARTYUSERID(nCalledUserId, nLang)
For nCount = 1 To 3
PLAYTEXT("Bonjour, ici Alert. Veuillez vous identifier avec votre code opérateur.", "fr-fr")
If GETDTMFSTRING(3, 15, sIdCode) Then
GETUSERIDFROMCODE(sIdCode, nFoundId, nLang)
If nFoundId = nCalledUserId Then
PLAYTEXT("Appel acquitté.", "fr-fr", TRUE)
ACKCALL()
nCount = 3
Else
PLAYTEXT("Code Invalide.", "fr-fr")
EndIf
EndIf
Next
' Call acked : play messages
If nFoundId = nCalledUserId Then
PlayUserMessages()
EndIf
WAITENDOFPLAY(1000)
DISCONNECT()
SUB PlayUserMessages()
Dim nAlarmId As Integer
Dim sMessage As String
Dim nAlarmLang As Integer
Dim nAlarmTime As Time
Dim sAudioFile As String
Dim sInstructionFile as String
Dim sShortMessage As String
Dim nFromId As Integer
nAlarmId = 0
DO WHILE GETNEXTALARMMESSAGE(0, 0, nAlarmId, sMessage , nAlarmLang , nAlarmTime , sAudioFile , sInstructionFile , sShortMessage)
PLAY(sAudioFile)
LOOP
DO WHILE GETNEXTUSERMESSAGE(0, 0, nFromId, sMessage , nAlarmLang , sAudioFile , sInstructionFile , sShortMessage)
PLAY(sAudioFile)
LOOP
END SUB
Après les initialisations, le script recherche l'identifiant de l'utilisateur d'ALERT dont le numéro de téléphone est celui qui est connecté au serveur vocal. Dans le cas d'un appel sortant, c'est le numéro appelé par ALERT.
GETREMOTEPARTYUSERID(nCalledUserId, nLang)
C'est la fonction GETREMOTEPARTYUSERID qui fait cette recherche.
La séquence qui suit est effectué en boucle (3 fois max.) tant que le bon code n'est pas fourni par l'opérateur.
Le script diffuse un message de bienvenue avec la fonction PLAYTEXT.
PLAYTEXT("Bonjour, ici Alert. Veuillez vous identifier avec votre code opérateur.", "fr-fr")
Le code sur 3 digits est ensuite attendu avec la fonction GETDTMFSTRING.
GETDTMFSTRING(3, 15, sIdCode)
Si le code est correct, l'appel est acquitté via la fonction ACKCALL et un message est joué pour confirmer l'acquittement d'appel.
Sinon un message d'erreur est diffusé et la séquence est recommencée.
Si l'appel est acquitté, le script diffuse la liste des messages à destination de l'opérateur connecté.
En premier lieu les messages d'alarmes avec GETNEXTALARMMESSAGE.
DO WHILE GETNEXTALARMMESSAGE(0, 0, nAlarmId, sMessage , nAlarmLang , nAlarmTime , sAudioFile , sInstructionFile , sShortMessage)
PLAY(sAudioFile)
LOOP
Puis les messages de service avec GETNEXTUSERMESSAGE.
DO WHILE GETNEXTUSERMESSAGE(0, 0, nFromId, sMessage , nAlarmLang , sAudioFile , sInstructionFile , sShortMessage)
PLAY(sAudioFile)
LOOP