Envoi de messages à partir d'une application vocale

Dernière mise à jour : Nov 09, 2023 |
Informations sur le prologue
Pour envoyer un message d'une application VoiceXML à un point d'extrémité distant, utilisez l'<send>élément .
L'<send>élément prend en charge les attributs suivants :
Les <send> attributs
Nom
Description
Requis
Défaut
asynchrone
Un booléen indiquant s’il faut bloquer jusqu’à ce que la réponse finale à la transaction créée en envoyant l’événement externe soit reçue, ou un délai d’attente.
Non
vrai
asyncexpr
Expression ECMAScript évaluant la valeur de l'attribut asynchrone. Si l’évaluation de l’expression échoue, l’interprète affiche « error.semantic ».
Non
S/O
corps
Chaîne représentant les données à envoyer dans le corps du message.
Non
S/O
corpsexpr
Une expression ECMAScript qui évalue le corps du message à envoyer. Si l’évaluation de l’expression échoue, l’interprète affiche « error.semantic ».
Non
S/O
type de contenu
Une chaîne indiquant le type de support du corps envoyé, le cas échéant. L’ensemble des types de contenu peut être limité par la plateforme sous-jacente. Si un type de support non pris en charge est spécifié, l'interprète affiche "error.badfetch. <protocol>.400". L’interprète n’est pas tenu d’inspecter les données spécifiées dans le corps pour valider qu’elles sont conformes au type de support spécifié.
Non
texte/uni
typede contenuexpr
Expression ECMAScript évaluant le type de média du corps. Si l’évaluation de l’expression échoue, l’interprète affiche « error.semantic ».
Non
S/O
événement
Le nom de l'événement à envoyer. La valeur est une chaîne qui ne comprend que des caractères alphanumériques et le caractère « . » (point). Le premier caractère doit être une lettre. Si la valeur n'est pas valide, un événement « error.badfetch » s'affiche.
Non
S/O
événementexpr
Une expression ECMAScript qui évalue le nom de l'événement à envoyer. Si l’évaluation de l’expression échoue, l’interprète affiche « error.semantic ».
Non
S/O
récupérationaudio
Voir la section 6.1 de [VXML2]. Il s'agit d'une valeur par défautde 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
liste de noms
Une liste de noms de variables séparés par un espace blanc ou plus à envoyer. Par défaut, aucune variable n’est soumise. Les valeurs de ces variables sont évaluées lorsque l<send>'élément est exécuté. Seules les variables déclarées peuvent être référencées. Sinon, error.semantic s'affiche. Les variables doivent être soumises au serveur avec la même qualification utilisée dans la liste de noms. Lorsqu'une variable ECMAScript est soumise au serveur, sa valeur doit d'abord être convertie en chaîne avant d'être envoyée. Si la variable est un objet ECMAScript, le mécanisme par lequel elle est soumise est spécifique à la plateforme. Au lieu de soumettre directement un objet ECMAScript, le développeur d’applications peut soumettre explicitement les propriétés individuelles de l’objet. Par exemple, date.mois date.année.
Non
S/O
cible
L'attribut qui spécifie l'URI auquel l'événement est envoyé. Si l'attribut n'est pas spécifié, l'événement est envoyé au composant qui a démarré la session VoiceXML.
Non
Composant invoquant
cibleexpr
Une expression ECMAScript évaluant l'URI cible. Si l’évaluation de l’expression échoue, l’interprète affiche « error.semantic ».
Non
S/O
délai d'attente
Voir 6.13.2.1 Expédier le délai d’attente . La propriété sendtimeout s'affiche par défaut.
Non
S/O
délai d'attenteexpr
Expression ECMAScript évaluant l'intervalle de temporisation pour un synchrone <send>. Si l’évaluation de l’expression échoue, l’interprète affiche « error.semantic »
Non
S/O
Vous pouvez spécifier l'un des éléments suivants. Sinon, le système renvoie le message d’error.badfetcherreur :
  • asynchrone ou asynchrone
  • événement ou événementexpr
  • type de contenu ou type de contenuexpr
  • récupérationaudio ou récupérationaudioexpr
  • cible ou cibleexpr
  • délai d'attente ou délai d'attenteexpr
De plus, un seul des attributs suivants doit être spécifié. Sinon, le système renvoie le message d’error.badfetcherreur :
corps, bodyexpr ou liste de noms.
Pour le synchrone <send>, en cas de temporisation, l'interprète renvoie le message d'error.badfetcherreur. Si l’interprète rencontre une erreur lors de l’envoi du message externe, le système retourne la error.badfetch.<protocol>.<status_code> sortie.
L’exemple suivant montre l’utilisation <send> de synchrone :
<vxml version="2.1"
  xmlns="http://www.w3.org/2001/vxml">

  <form>
  <field name="user_id" type="digits">
    <prompt>veuillez saisir vos cinq chiffres i d</prompt>
    <filled>
      <send async="faux" 
            bodyexpr="'<userinfo><id>' + user_id + '</id></userinfo>'" 
            contenttype="text/xml" timeout=”5s”/>
      <goto next="mainmenu.vxml"/>
    </filled>
  </field>
  </form>
</vxml>
Lors de l'exécution d'un asynchrone <send>, l'interprète continue l'exécution immédiate de l'application vocale et ignore la disposition du message qui a été envoyé.
L’exemple suivant montre l’utilisation <send> asynchrone de :
<vxml version="2.1"
  xmlns="http://www.w3.org/2001/vxml">

  <form>
    <var name="tasktarget" expr="'http://www.example.com/taskman.pl'"/>
    <var name="taskname" expr="'cc'"/>
    <var name="taskstate"/>
    <block>
      <assign name="taskstate" expr="'start'"/>     
      <send async="true" 
            targetexpr="tasktarget" 
            namelist="nomdetâcheétat de tâche
    </block>
    <field name="ccnum"/>
    <field name="expdate"/>
    <block>
      <assign name="taskstate" expr="'end'"/>     
      <send async="true" 
            targetexpr="tasktarget" 
            namelist="nomdetâcheétat de tâche
    </block>
  </form>
</vxml>