Réception synchrone des messages externes

Dernière mise à jour : Nov 09, 2023 |
Informations sur le prologue
Lorsque le message externe est transmis de manière synchrone, un développeur d'application décide si le message est préservé ou supprimé en définissant la externalevents.queue propriété. La propriété peut être définie sur l'une des valeurs suivantes :
externalevents.valeurs de file d'attente
vrai
Les messages externes sont mis en file d'attente et réglés sur application.lastmessage$ .
faux
Un message externe qui n'est pas livré en tant qu'événement VoiceXML est supprimé. Il s’agit de la valeur par défaut.
Pour recevoir un message externe de manière synchrone, réglez la externalevents.enable propriété sur Faux et la externalevents.queue propriété sur Vrai, et utilisez l'<receive>élément pour retirer les messages de la file d'attente. Les <receive>blocs d'éléments attendent qu'un message externe soit reçu ou que le délai d'attente spécifié par l'attribut maxtime soit dépassé.
L'<receive>élément prend en charge les attributs suivants :
Les <receive> propriétés
Nom
Description
Requis
Défaut
récupérationaudio
Voir la section 6.1 de [VXML2]. Il s'agit de la valeur par défaut de la propriété de récupération audio décrite à la section 6.3.5 de [VXML2].
Non
S/O
récupérationaudioexpr
Une expression ECMAScript évaluant l'URI de récupération audio. Si l'évaluation de l'expression échoue, l'interprète affiche "error.semantic".
Non
S/O
durée maximale
Un spécificateur de temps W3C indiquant la durée maximale pendant laquelle l’interprète attend de recevoir un message externe. Si le délai d’attente est dépassé, l’interprète lance « error.badfetch ». La valeur « aucun » indique à l'interprète que les blocs sont indéfiniment.
Non
0s
maxtimeexpr
Une expression ECMAScript qui évalue la valeur maxtime. Si l’évaluation de l’expression échoue, l’interprète lance « error.semantic ».
Non
0s
Vous pouvez spécifier n'importe lequel des fetchaudio et fetchaudioexpr. Sinon, le système renvoie le message d’error.badfetcherreur.
Vous pouvez spécifier n'importe lequel des maxtime et maxtimeexpr . Sinon, le système renvoie le message d’error.badfetcherreur.
Lorsqu’ils sont présents, les attributs fetchaudioexpr et maxtimeexpr sont évalués lorsque la <receive> commande est exécutée.
L’exemple suivant montre un message externe reçu de façon synchrone. Dans cet exemple, l’interprète bloque pendant 15 secondes en attendant l’arrivée d’un message externe. Si aucun message externe n’est reçu pendant cet intervalle, l’interprète renvoie le message d’error.badfetcherreur. Si un message est reçu, l’interprète exécute l’<log >élément.
<vxml version="2.1"
  xmlns="http://www.w3.org/2001/vxml">

  <property name="externalevents.queue" value="true"/>
  <form>
    <catch event="error.badfetch">
      <log>temporisation en attente d’un message externe</log>
    </catch>
  
    <block>
      Garder sur...
      <receive maxtime="15s" 
        récupérationaudio="http://www.example.com/audio/fetching.wav"/>
      <log>a obtenu <value expr="application.lastmessage$.content"/></log>
    </block>
  </form>
</vxml>