Vxml application root document

Contents

  1. Formation : VoiceXML: Mise en oeuvre
  2. Des ressources et des outils au service des acteurs et des professionnels.
  3. Localiser un cellulaire gratuitement au quebec

Il est traité par un interpréteur VoiceXML. Il faut indiquer la version. Ce document est basé sur la version 2. Une version 3. En plus de l attribut version, d autres attributs peuvent être spécifiés. La définition générale des éléments qui font partie du langage VoiceXML est donnée par la DTD [3], dont certains extraits sont repris dans les différents tableaux ci-dessous. Les éléments de plus haut niveau sont les dialogues VoiceXML ou formulaires. Un même document peut comporter plusieurs formulaires. L identifiant permet de faire référence au formulaire soit dans le même document vxml, soit dans un autre.

Ces valeurs sont alors désignées par le nom du sous-dialogue suivi du nom de la variable contenant la valeur notation pointée. Si aucune condition n est spécifiée, il sera systématiquement exécuté, sinon l exécution dépendra de la valeur de vérité de la condition évaluée à Vrai. La qualité de la synthèse TTS peut-être améliorée en introduisant des pauses, en mettant en emphase une partie du texte, en influant sur la prosodie, Ceci peut être fait par le biais de balises qui ne seront pas détaillées ici.

Voir spécifications VoiceXML [1]. Le fichier source qui doit être joué doit être mentionné. Pour les autres utilisations voir VI Ces applications étant également des applications téléphoniques, il est possible de communiquer également le système par le biais des touches téléphoniques touches DTMF. Le nom qui lui est attribué doit être unique à l intérieur d un même formulaire. On peut utiliser des types prédéfinis pour typer le champ.

Dans ce cas une grammaire interne standard est utilisée pour décoder la réponse de l utilisateur. Sinon, il faut avoir recours à une grammaire interne ou externe. Attention : sous OptimTalk, utiliser ces types n est pas possible. Il faut donc écrire ses propres grammaires. Soit pour décoder les énoncés de l utilisateur soit pour décoder les actions sur les touches DTMF. Cette balise peut apparaître à deux niveaux.

Dans ce cas, la séquence peut porter sur plusieurs champs, pour contrôler leur cohérence par exemple. Dès qu au moins un des champs est renseigné, la valeur de la balise passe à true et l annonce ne se reproduit plus. On peut ensuite basculer dans un mode plus dirigé par le système où les champs sont demandés un par un. Je vais changer de mode et vous demander les informations une à une. La portée du lien définit la zone où la grammaire est active. Si ce que dit l utilisateur correspond à la grammaire, le comportement à adopter est celui associé à l événement détecté ou au formulaire appelé.

Gestion des erreurs Plusieurs types d événements peuvent être activés soit par la plateforme soit par l interpréteur. Ils nécessitent de relancer l utilisateur voire de rejouer le message courant. La plateforme définit un laps de temps après lequel cet événement est déclenché. Pour cela, il faut lui donner la possibilité d indiquer à l utilisateur que sa réponse n a pas été comprise.

Le message peut varier en fonction du nombre consécutif de fois où l erreur se produit. Pour qu un tel événement puisse être déclenché, il faut qu une grammaire capable de reconnaître une demande d aide soit active. Certaines plateformes la prévoit d autres pas. Les variables visibles au moment du déclenchement de l événement sont accessibles dans la partie interception.

Ainsi des cas d erreurs comme error. Rappeler plus tard. IV- Spécification d une grammaire Une grammaire décrit, sous forme compacte et structurée, un ensemble de mots, d expressions et de phrases susceptibles d être énoncés par l utilisateur. Une interprétation sémantique peut également être associée à une suite de mots décrite par la grammaire. L écriture des grammaires dites speech grammar suit des spécifications [5] correspondant au standard du W3C Une DTD spécifique indique quels sont les éléments XML qui interviennent dans l écriture de grammaires [6].

Des extraits de celle-ci seront repris dans les tableaux suivants. Une grammaire est dite interne lorsqu elle est écrite dans le code même du document VoiceXML. Une grammaire externe sera définie dans un autre fichier suivant un format bien précis. Si un même symbole a plusieurs possibilités de réécriture, il y aura soit autant de règles que de parties droites différentes.

Cependant on peut factoriser les écritures en se ramenant à une seule règle et des disjonctions ou de parties droites. La balise token est facultative et souvent omise pour ne pas alourdir l écriture. Elle peut faire référence à une règle définie dans la même grammaire ou dans une grammaire externe. Vient ensuite son expansion regroupant toutes les parties droites des règles ayant même partie gauche et éventuellement des exemples de suite de mots modélisées.

Cette variable contiendra la valeur correspondant à l interprétation ou représentation sémantique qui aura pu être extraite de la partie d énoncé traité par la règle. Cette variable est désignée par out. Elle est locale à la règle, donc attention aux problèmes de visibilité. Il est aussi possible de l évaluer pour utiliser sa valeur dans une expression out. Il existe un objet générique rules qui possède autant de propriétés que de règles visibles et donc appelables rules. Ainsi rules. L interprétation associée la dernière règle référencée la plus récente peut être aussi désignée par rules. Chaque résultat partiel comporte par défaut une propriété text et une propriété score.

La première mémorise la suite de mots qui a été traitée localement, la seconde le score correspondant si celui-ci est calculé. Dans ce cas, la partie text associée à une règle est identifiée par meta. Ces dernières sont en lecture seule non modifiable. Idem pour la partie score : meta. Définition d une grammaire IV. Grammaire interne à un document Une grammaire est dite interne si sa définition est incluse dans le fichier Vxml à interpréter. Section suivante IV. Le type Date V. A ce t 0 vient se rajouter le décalage horaire de la zone concernée. En considérant qu il y a millisecondes par jour, on peut calculer : - le nombre de jours entiers depuis t 0 - le nombre de millisecondes de la journée - ce qui permet de calculer l heure exacte heures, minutes, secondes et milisecondes.

Cela permet de gérer la même structure objet de type Date les jours de l année ainsi que les heures, minutes, secondes et ce sur le plan international. Variable VI.


  • recherche telephone portable sur anibis.
  • Comment vérifier que vxml a une erreur? - xml, ivr, vxml?
  • Serveur de la Voix XML hors de message d`erreur de mémoire.
  • comment installer un logiciel espion sur iphone 8 Plus;
  • enlever logiciel espion portable.
  • Formation : Voice XML : mise en oeuvre de l'organisme NEXCOM SYSTEMS (Carif-Oref).
  • application gratuite camera surveillance?

C est donc à la charge du programmeur de gérer cette variable. Si la variable contient déjà une valeur, celle-ci sera écrasée. Dans ce dernier cas les compteurs count associés aux événements sont réinitialisés. Dans ce cas l attribut count n est pas significatif. Par contre on peut utiliser l attribut cond. Instructions VI. Définition des Webservices Ordre de paiement par email Version 1. Présentation du langage XML 1. Les bases de XML 18 2. La syntaxe XML 21 3. Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme?

Protocole expérimental. Vous avez tous déjà. Yann Régis-Gianas yrg pps. Sortez un appareil qui peut se rendre. Avec les boutons d écriture Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données data integration est de permettre un accès cohérent à des données d origine, de structuration. Il se compose d un langage de programmation, d. Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.

Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. Étape 0. Dans votre espace personnel, créer. Mot de Passe Type de Mot de Passe Sortie Programmable Table des matières 1 Pourquoi. Le LOM peut être utilisé pour décrire des ressources. Créer une base de données vidéo sans programmation avec Drupal NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de.

Formation Module WEB 4. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par. Notre outil a été spécifiquement. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4.

Documentation 5. Index des mots-clés 6. Les erreurs fréquentes. Alfstore workflow framework Spécification technique Version 0. Pensez à ajuster le volume à un niveau normal, et non pas au maximum. Traduction assurée par LDLC. COM Toute. Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation.

Il vous permettra de comprendre les. TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens.

Version 2. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions. Ces nouveautés. Génie Logiciel 4 février Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre. Barème indicatif sur 20,5 points max. On peut évaluer. En revanche, ces deux langages sont très différents dans leur structure organisation du.

Apprentissage Automatique Introduction-I jean-francois. Wikipedia L'apprentissage automatique machine-learning en anglais est un des champs. Lead développeur Magento herve agence-soon. Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données Installation de Hibernate Synchronizer Le document racine d'application reste chargé en mémoire tant que l'utilisateur effectue des transitions entre les autres documents de la même application et il est vidé de la mémoire lorsque l'utilisateur opère une transition vers un document qui ne se trouve pas dans l'application.

La figure 2 montre les documents de transition D dans une application partageant un document racine d'application commun racine. Figure 2 : Les documents de transition dans une application. Dans les applications dirigées par la machine , toutes les grammaires d'un dialogue ne sont actives que lorsque l'utilisateur se trouve dans le dialogue en question. Dans les applications à initiative mixte , où l'utilisateur et la machine déterminent en alternance quoi faire ensuite, certains dialogues sont marqués pour rendre leurs grammaires actives c'est-à-dire, à l'écoute , même si l'utilisateur se trouve dans un autre dialogue du même document, ou dans un autre document chargé issu de la même application.

Dans cette situation, si l'utilisateur dit quelque chose touchant les grammaires actives d'un autre dialogue, l'exécution opère une transition vers cet autre dialogue, l'énoncé de l'utilisateur étant alors traité comme s'il avait été dit dans ce dialogue. L'initiative mixte apporte de la puissance et de la flexibilité aux applications vocales.

Le langage VoiceXML fournit un mécanisme de remplissage de formulaire pour la manipulation normale d'une entrée d'utilisateur. Il définit, en outre, un mécanisme pour la gestion des événements non couverts par le mécanisme du formulaire. La plateforme suscite des événements dans diverses circonstances, comme lorsque l'utilisateur ne répond pas, ou ne répond pas de manière intelligible, demande de l'aide, etc. L'interpréteur suscite également des événements s'il trouve une erreur sémantique dans un document VoiceXML. Les événements sont capturés par des éléments catch ou leur forme syntaxique abrégée.

Tout élément dans lequel un événement peut survenir peut définir des éléments catch. En outre, les éléments catch peuvent également s'hériter des éléments englobants comme par copie. On peut ainsi spécifier un comportement de gestion des événements communs à n'importe quel niveau, lequel s'applique à tous les niveaux inférieurs. Le lien gère les interactions d'initiative mixte. Il définit une grammaire active dès lors que l'utilisateur se trouve dans la portée du lien. Si l'entrée d'utilisateur correspond à la grammaire indiquée par le lien, le contrôle est transféré à l'adresse URI de ce lien.

Un lien peut servir à susciter un événement ou à aller sur l'adresse URI de destination. Un document VoiceXML se compose principalement d'éléments de niveau supérieur appelés dialogues. Un document peut également avoir des éléments meta et metadata , des éléments var et script , des éléments property , des éléments catch et des éléments link. L'exécutions du document débute implicitement au premier dialogue. Au fur et à mesure de l'exécution, chaque dialogue détermine le suivant.

Lorsqu'un dialogue n'indique aucun dialogue suivant, l'exécution du document se termine. Voici développé un Salut tout le monde! L'exemple inclut maintenant une variable de niveau document appelée salut et contenant le message d'accueil. Sa valeur sert d'invite dans le premier formulaire. Puisque le second formulaire ne fait aucune transition vers un autre dialogue, cela provoque une sortie du document. Normalement, chaque document s'exécute comme une application isolée. Dans les cas où l'on souhaite que plusieurs documents travaillent ensemble comme une seule application, on sélectionne un document afin qu'il devienne le document racine d'application , les autres documents devenant des documents terminaux d'application.

Chaque document terminal indique alors le document racine dans son élément vxml. Une fois cette indication donnée, à chaque fois que l'interpréteur sera instruit de charger et d'exécuter un document terminal dans cette application, il chargera d'abord le document racine d'application si ce n'était pas déjà fait. Le document racine d'application reste chargé jusqu'à ce que l'interpréteur soit instruit de charger un document appartenant à une application différente.

Le document racine d'application et un seul document terminal sont tous les deux chargés et l'utilisateur interagit avec le document terminal. Lorsqu'on définit une succession de sous-dialogues dans des documents séparés, plusieurs documents terminaux peuvent avoir été chargés, bien que l'exécution ne se situe que dans l'un de ces documents. Lorsque le chargement d'un document terminal déclenche celui d'un document racine d'application, aucun des dialogues dans le document racine n'est exécuté.

L'exécution débute dans le document terminal. Dans cet exemple, l'application est conçue de telle sorte que le document terminal. L'élément vxml du document racine ne définit pas d'attribut application et, au contraire, c'est l'élément vxml d'un document terminal qui définit un attribut application. Un interpréteur aura toujours un document racine d'application chargé, mais un document terminal d'application ne le sera pas toujours.

Le nom de l'application courante de l'interpréteur est l'adresse URI absolue du document racine d'application. L'interpréteur demeure dans la même application tant que le nom reste le même. Lorsque le nom change, il entre dans une nouvelle application et son contexte racine est initialisé. Le contexte racine de l'application se compose des variables, des grammaires, des éléments catch , des scripts et des propriétés dans la portée de l'application. Pendant une session d'utilisateur, l'interpréteur passe d'un document à l'autre selon les requêtes des éléments choice , goto , link , subdialog et submit.

Certaines transitions restent dans une application, d'autres ont lieu entre des applications. Si un document se réfère à un document racine d'application inexistant, un événement error. Si l'attribut application d'un document se réfère à un document qui possède déjà un attribut application , alors un événement error. Les diagrammes suivants illustrent les effets des transitions entre les documents racine et terminal et le contexte racine de l'application.

Dans ces diagrammes, les boîtes représentent des documents, les changements de texture des boîtes identifient les initialisations de contexte racine, les flèches en trait plein symbolisent les transitions vers l'adresse URI dans l'étiquette de la flèche, les flèches verticales en pointillés indiquent un attribut application dont l'adresse URI correspond à l'étiquette de la flèche. Figure 3 : Les transitions qui préservent le contexte racine. Dans ce diagramme, tous les documents appartiennent à la même application. Figure 4 : Les transitions qui initialisent le contexte racine.

Un sous-dialogue est un mécanisme permettant de décomposer des séquences de dialogues complexes afin de mieux les structurer ou de créer des composants réutilisables. Par exemple, la sollicitation des renseignements concernant un compte peut impliquer de réunir plusieurs informations, tels qu'un numéro de compte et un numéro de téléphone du domicile. Un service d'assistance à la clientèle pourrait se construire autour de plusieurs applications indépendantes partageant ce bloc de construction élémentaire, qu'il serait donc raisonnable de construire comme un sous-dialogue.

Formation : VoiceXML: Mise en oeuvre

On en trouvera une illustration dans l'exemple ci-dessous. Le premier document app. Les renseignements sur le compte sont obtenus au moyen d'un élément subdialog qui invoque un autre document VoiceXML, lequel sollicite une entrée de l'utilisateur. Pendant l'exécution de ce second document, le dialogue appelant est suspendu en attente du retour des informations.

Le second document fournit le résultat des interactions avec l'utilisateur au moyen d'un élément return , les valeurs résultantes devenant accessibles au travers de la variable définie par l'attribut name sur l'élément subdialog. Les sous-dialogues ajoutent un nouveau contexte d'exécution lorsqu'on les invoque. Le sous-dialogue peut être un nouveau dialogue dans le document existant ou un nouveau dialogue dans un nouveau document.

Les sous-dialogues peuvent se composer de plusieurs documents. Figure 5 : Un sous-dialogue composé de plusieurs documents revenant du dernier document de sous-dialogue. Le contexte d'exécution du dialogue D2 est suspendu pendant l'invocation du sous-dialogue SD1 dans le document sd1. Ce sous-dialogue transfère l'exécution au dialogue dans le document sd2. En définitive, le contrôle est rendu directement au dialogue D2 lorsque le dialogue dans sd2.

Des ressources et des outils au service des acteurs et des professionnels.

La figure 6 montre un exemple de sous-dialogue en plusieurs documents dans lequel le contrôle est transféré d'un sous-dialogue à l'autre. Figure 6 : Un sous-dialogue composé de plusieurs documents revenant du premier document de sous-dialogue. Le sous-dialogue dans sd1. Dans certaines circonstances notamment, pendant que l'interpréteur VoiceXML traite un événement disconnect , l'interpréteur peut poursuivre l'exécution dans l' état de traitement final après l'interruption d'une connexion, afin de permettre à l'application VoiceXML d'effectuer une éventuelle purge nécessaire finale , telle que soumettre les informations au serveur d'applications.

Par exemple, l'élément catch suivant capturera l'événement connection. Ainsi, par exemple, l'application ne devrait pas aller dans les éléments field , record et transfer pendant l'état de traitement final. Hormis cette restriction, l'exécution de l'application VoiceXML se poursuit normalement pendant l'état de traitement final.

Un ensemble d' éléments de formulaire , lesquels sont lus par la boucle principale de l'algorithme d'interprétation des formulaires. Les éléments de formulaire se rangent en éléments d'entrée , qui peuvent être remplis par une entrée d'utilisateur, et les éléments de commande , qui ne le peuvent. Des actions remplies , à savoir des blocs de logique procédurale s'exécutant quand certaines combinaisons de variables d'éléments d'entrée sont assignées. Cette partie décrit certains concepts sous-jacents des formulaires puis donne quelques exemples détaillés de leur utilisation.

Les formulaires sont interprétés par un algorithme d'interprétation des formulaires implicite FIA. La boucle principale de l'algorithme FIA sélectionne à maintes reprises un élément de formulaire pour le visiter. L'élément de formulaire sélectionné est le premier dans l'ordre du document dont la condition de veille n'est pas satisfaite.

Par exemple, la condition de veille implicite d'un champ vérifie si la variable d'élément de formulaire du champ possède une valeur, de sorte que, si un formulaire simple ne contient que des champs, l'utilisateur fera l'objet d'une invite pour chaque champ à tour de rôle. L'interprétation de toutes les actions filled correspondant aux éléments d'entrée nouvellement remplis. L'algorithme FIA se termine lorsqu'il rencontre une déclaration de transfert de contrôle par exemple, un élément goto menant à un autre dialogue ou document, ou un élément submit envoyant des données au serveur de documents.

Il se termine également pour un élément exit implicite, quand il ne reste aucun élément de formulaire susceptible d'être sélectionné. Les éléments de formulaire sont ceux pouvant être visités dans la boucle principale de l'algorithme FIA. Les éléments d'entrée conduisent l'algorithme FIA à réunir un résultat pour un élément particulier. Lorsque l'algorithme FIA sélectionne un élément de commande , cet élément peut contenir un bloc de code procédural à exécuter, ou il peut dire à l'algorithme FIA de mettre en place l'invite-et-collecte initiale d'un formulaire à initiative mixte.

Un élément d'entrée définit une variable d'élément d'entrée à recueillir de l'utilisateur. Les éléments d'entrée ont des invites pour indiquer à l'utilisateur quoi dire ou quoi saisir, des grammaires qui définissent les entrées permises et des gestionnaires d'événement pour traiter tous les événements susceptibles d'en résulter.

Un élément d'entrée peut également comporter un élément filled , lequel définit l'action à prendre juste après que la variable d'élément d'entrée a été remplie. À chaque élément de formulaire est associée une variable d'élément de formulaire , dont la valeur implicite n'est pas définie lorsqu'on accède au formulaire.

Cette variable d'élément de formulaire contiendra le résultat de l'interprétation de l'élément de formulaire. La variable d'élément de formulaire d'un élément d'entrée s'appelle aussi une variable d'élément d'entrée , et elle contient la valeur collectée auprès de l'utilisateur. Une variable d'élément de formulaire peut recevoir un nom au moyen de l'attribut name ou peut rester anonyme, auquel cas il sera généré un nom interne. Chaque élément de formulaire admet une condition de veille , laquelle régit le fait qu'un élément de formulaire puisse ou non être sélectionné par l'algorithme FIA.

La condition de veille implicite vérifie simplement si la variable d'élément de formulaire a une valeur. Si c'est le cas, l'élément de formulaire ne sera pas visité. Les éléments d'entrée reçoivent habituellement un nom, au contraire des éléments de commande. En général, les variables d'élément de formulaire n'ont pas de valeurs initiales et aucune autre condition de veille n'est définie. Parfois, cependant, un contrôle plus fin peut se révéler nécessaire. Un formulaire peut avoir une variable d'élément de formulaire dont la valeur est fixée initialement pour cacher un champ puis être effacée par exemple, au moyen d'un élément clear pour forcer la collecte du champ en question.

Localiser un cellulaire gratuitement au quebec

Un autre champ peut avoir une condition de veille qui l'active seulement quand il n'a pas été collecté et après que deux autres champs ont été remplis. Un élément de bloc s'exécutera seulement quand certaines conditions seront vérifiées. On peut donc exercer un contrôle plus fin sur l'ordre dans lequel l'algorithme FIA sélectionnera et exécutera les éléments de formulaires. Toutefois, en général, on pourra construire beaucoup de dialogues sans avoir recours à un tel niveau de complexité.

Voici un service météorologique répondant à ce type. La première itération de l'algorithme FIA sélectionne le premier élément block , car sa variable d'élément de formulaire cachée n'est pas définie au départ. Ce bloc produit l'invite principale et la valeur de sa variable d'élément de formulaire est fixée à " true ". À la deuxième itération, le premier élément block est sauté car sa valeur d'élément de formulaire est maintenant définie et le champ pays est sélectionné puisque l'état de la variable de dialogue n'est pas définie.

Ce champ invite l'utilisateur à indiquer le pays puis assigne la réponse à la variable. La troisième itération du formulaire invite à remplir le champ ville pour le collecter ensuite. La quatrième itération exécute l'élément block final et effectue une transition vers une autre adresse URI. Chaque champ de cet exemple produit une invite dans un certain ordre afin d'obtenir une réponse, indique une grammaire définissant ce qu'il faut écouter et comporte un gestionnaire d'événement pour l'événement help.

L'événement help est suscité dès que l'utilisateur demande une assistance. Le gestionnaire d'événement help capture ces événements et fait une invite plus détaillée. Remarquez que les alternatives grammaticales amex et american express renvoient des valeurs littérales qui demandent un traitement distinct dans les expressions conditionnelles. O : Nous avons maintenant besoin du type de votre carte de crédit, de son numéro et de sa date d'expiration.

O : Je n'ai pas compris ce que vous avez dit un message implicite propre à la platerforme. Est-ce exact? Les champs sont les blocs de contruction principaux des formulaires. Un champ déclare une variable et définit les invites, les grammaires, les séquences DTMF, les messages d'assistance et les autres gestionnaires d'événements qui servent à l'obtenir. Chaque champ déclare une variable d'élément de formulaire VoiceXML dans la portée du dialogue du formulaire.

Ces variables peuvent faire l'objet d'une soumission une fois le formulaire rempli ou être copiées dans d'autres variables. L'attribut type peut s'utiliser pour les grammaires intégrées, comme les grammaires de type digits et boolean dans l'exemple. Chaque champ peut définir une ou plusieurs invites. S'il n'y a qu'une invite, elle est répétée jusqu'à tant que l'utilisateur fournisse une valeur.

L'attribut count sert à déterminer quelle invite utiliser à chaque itération. Dans l'exemple, les invites se raccourcissent. C'est ce qu'on appelle une incitation dégressive. Les messages d'assistance peuvent également être dégressifs. L'élément filled définit ce qu'il faut faire lorsque l'utilisateur fournit une entrée reconnue pour le champ. Pour faire un formulaire à initiative mixte , où l'ordinateur et l'humain mènent tous deux la conversation, il faut que le formulaire ait une ou plusieurs grammaires de niveau formulaire.

On peut écrire le dialogue de plusieurs façons. Un style de composition courant combine un élément initial , invitant à une réponse générale, et des éléments field , invitant à des renseignements particuliers. L'exemple ci-dessous en est une illustration. On peut obtenir un effet similaire avec des techiques plus complexes, comme utiliser l'attribut cond sur des éléments field. Seuls les éléments d'entrée et non les éléments de commande peuvent être remplis en résultat du filtrage d'une grammaire de niveau formulaire. Également, les grammaires du formulaire peuvent être actives lorsque l'utilisateur se trouve dans d'autres dialogues.

Si un document comporte deux formulaires, disons un formulaire pour une location de voiture et un autre pour une réservation d'hôtel, et que les deux formulaires ont des grammaires actives pour le document, alors un utilisateur pourrait répondre à une demande de renseignements concernant la réservation d'hôtel par des renseignements concernant la location de voiture et donc conduire l'ordinateur à discuter de location de voiture à la place.

L'utilisateur peut avoir un échange avec n'importe quelle grammaire et, par conséquent, avoir des éléments d'entrée qui soient fixés et des actions qui soient entreprises en réponse. Voici une deuxième version du service d'informations météorologiques, montrant une initiative mixte. O : Bienvenue sur ce service d'informations météorologiques! Achetez la mayonnaise de tante Louise!. La valeur de l'attribut modal du champ continuer est fixée à " true ". Ce qui entraîne la désactivation de toutes les grammaires sauf celles définies dans l'élément de formulaire courant, de sorte que la seule grammaire active pendant la durée de ce champ est la grammaire intégrée de type boolean.

Achetez la mayonnaise de tante Louise! On peut personnaliser l'algorithme FIA de plusieurs manières. Une façon consiste à assigner une valeur à une variable d'élément de formulaire, de sorte que l'élément de formulaire ne soit pas sélectionné. Une autre façon est d'utiliser un élément clear pour fixer la valeur de la variable d'élément de formulaire à " undefined ", ce qui force l'algorithme FIA à visiter de nouveau l'élément de formulaire.

Ce qui force un transfert immédiat vers cet élément de formulaire, même si la valeur d'un quelconque attribut cond présent était évaluée à " false ". Aucune variable ni condition ni compteur dans l'élément de formulaire visé ne sera réinitialisé. L'invite de l'élément de formulaire sera reproduite mais si elle a déjà été visitée. Si l'utilisateur dit quitter [ndt. Nous avons présenté l'algorithme d'interprétation des formulaires FIA à un niveau conceptuel. Dans ce chapitre, nous le décrivons de manière plus détaillée.

Dès lors qu'on entre dans un formulaire, celui-ci est initialisé. Les variables du compteur d'invites interne dans la portée du dialogue du formulaire sont réinitialisées à "1". Chaque variable les éléments var de niveau formulaire et les variables d'élément de formulaire est initialisée, dans l'ordre du document, à la valeur " undefined " ou à la valeur de l'attribut expr concerné.

La phase de sélection : l'élément de formulaire suivant non rempli est sélectionné pour une visite. La phase de collecte : l' élément de formulaire sélectionné est visité, ce qui produit une invite de l'utilisateur à une entrée, l'activation des grammaires appropriées puis l'attente et la collecte d'une entrée comme une phrase prononcée ou l'appui de touches DTMF ou d'un événement comme une demande d'assistance ou un dépassement du délai d'entrée.

La phase de traitement : une entrée se traite en remplissant les éléments d'entrée et en exécutant les éléments field pour effectuer certaines actions telle qu'une validation d'entrée. Un événement se traite en exécutant le gestionnaire d'événement approprié pour le type d'événement en question. Auquel cas, la première itération de la boucle principale saute les phases de sélection et de collecte pour aller directement à la phase de traitement avec cette entrée. Remarquez également que si une erreur survient au cours de la phase de sélection ou de collecte provoquant la génération d'un événement, alors l'événement est suscité et l'algorithme FIA se place directement dans la phase de traitement.

Le but de la phase de sélection consiste à sélectionner l'élément de formulaire suivant à visiter. Sinon, le premier élément de formulaire dont la valeur de la condition de veille est " false " est retenu pour une visite. Si une erreur survient pendant la vérification des conditions de veille, l'événement concerné est suscité, ce qui saute la phase de collecte, puis examiné dans la phase de traitement. Si aucune condition de veille n'est fausse et que la dernière itération a parcouru le formulaire sans rencontrer un transfert de contrôle explicite, alors l'algorithme FIA produit implicitement une opération exit de la même manière, si l'exécution se poursuit hors d'un formulaire, comme lorsqu'une erreur est générée hors d'un formulaire, sans qu'il y ait de transfert explicite du contrôle, alors l'interpréteur produira une opération exit implicite.

Le but de la phase de collecte consiste à recueillir une entrée ou un événement.

Désactiver la fonction

Si c'est un élément field , ou record , qui est visité, alors l'algorithme FIA sélectionne et met en file d'attente toutes les invites, selon le compteur d'invites de l'élément et les conditions des invites. Ensuite, il active et écoute la ou les grammaires de niveau champ et les éventuelles grammaires de niveau supérieur, et attend que l'élément se remplisse ou qu'un événement soit généré. Si c'est un élément transfer qui est visité, alors les invites sont mises en file d'attente, selon le compteur d'invites de l'élément et les conditions des invites.

Les grammaires des éléments sont activées. La file d'attente est exécutée avant que le transfert n'ait lieu. Si c'est un élément subdialog , ou object , qui est visité, alors les invites sont mises en file d'attente, selon le compteur d'invites de l'élément et les conditions des invites. Les grammaires ne sont pas activées. Au contraire, le comportement de collecte des entrées est défini par le contexte exécutant du sous-dialogue ou de l'objet.

La file d'attente n'est pas lue tant que le sous-dialogue ou l'objet n'ont pas été exécutés, mais elle devrait plutôt l'être au cours de la collecte d'entrées suivante. Si c'est un élément initial qui est visité, alors l'algorithme FIA sélectionne et met en file d'attente les invites, selon le compteur d'invites de l'élément initial et les conditions des invites.

Il écoute ensuite la ou les grammaires de niveau formulaire et les éventuelles grammaires actives de niveau supérieur. Il attend enfin la reconnaissance par une grammaire ou un événement. Un élément block sera visité en fixant la valeur de sa variable d'élement de formulaire à " true " puis en évaluant son contenu et enfin en ignorant la phase de traitement.

Aucune entrée n'est collectée et l'itération suivante de la boucle principale de l'algorithme FIA est engagée. Après achèvement de la phase de traitement, l'interprétation se poursuit en revenant à la phase de sélection. Tout comme un formulaire régulier, sa grammaire peut avoir une portée fixée de façon à être active lorsque l'utilisateur exécute un autre dialogue. O : Bienvenue à la maison. Dis ton choix parmi : sports, météo, le journal d'astrophysique de l'astronome. O : Je n'ai pas compris ce que tu as dit un message implicite propre à la plateforme.

Cet élément identifie le menu et détermine la portée de ses grammaires. Il définit l'événement qu'il faut susciter ou bien l'adresse URI où aller lorsque le choix est sélectionné. On doit définir exactement un seul d'entre les attributs next , expr , event ou eventexpr , sinon un événement error. On peut indiquer exactement un seul d'entre les attributs message ou messageexpr , sinon un événement error.

Si un élément grammar est défini dans un élément choice , alors la grammaire externe sera utilisée au lieu d'une grammaire générée automatiquement. Les menus peuvent dépendre seulement de la voix, seulement des tonalités DTMF ou bien d'une combinaison des deux en plaçant un élément property dans l'élément menu. L'élément enumerate est une description, générée automatiquement, des choix disponibles pour l'utilisateur. Il définit un modèle lequel s'applique à chacun des choix dans l'ordre où ceux-ci apparaissent dans le menu. En l'absence d'un contenu, c'est un modèle implicite listant tous les choix et déterminé par le contexte d'interprétation qui est utilisé.

En présence d'un contenu, c'est alors le contenu qui définit le modèle. Pour les sports, tape 1. Pour la météo, tape 2. Pour le journal d'astrophysique de l'astronome, tape 3. Un événement error. Toute phrase de choix définit un ensemble de mots et de phrases à écouter. Une phrase de choix se construit à partir des données de type PCDATA des éléments contenus directement ou indirectement dans un élément choice d'un élément menu ou bien dans un élément option d'un élément field.

Si la valeur de l'attribut accept est " exact ", alors l'utilisateur doit dire les mots de la phrase entière dans le même ordre que celui où ils apparaissent dans la phrase de choix.


  1. application iphone localiser restaurant!
  2. Statut du document traduit.
  3. Le Tableau TCD affiche une durée fausse où l'appel est abandon dans la file d'attente.
  4. Serveur de la Voix XML hors de message d`erreur de mémoire.
  5. ecoute telephonique facebook.
  6. Si la valeur de l'attribut accept est " approximate ", alors le choix est susceptible d'être retenu quand l'utilisateur prononce une sous-phrase de l'expression. Par exemple, en réponse à l'invite Le journal d'astrophysique de l'astronome , l'utilisateur pourrait dire astronome , astrophysique , le journal de l'astronome , le journal d'astrophysique , et ainsi de suite.

    La grammaire correspondante peut dépendre de la langue et de la plateforme employées. Un menu se comporte comme un formulaire ayant un seul champ qui endosse tous les rôles. Les invites du menu deviennent des invites du champ. Les gestionnaires d'événement du menu deviennent des gestionnaires d'événement du champ. Les grammaires du menu deviennent des grammaires du formulaire. Comme pour les formulaires, les correspondances de grammaire dans les menus mettront à jour le tableau application. Les grammaires générées doivent toujours produire des résultats simples dont les valeurs d'interprétation et de prononciation sont identiques.

    Au lancement du menu, les grammaires du menu sont construites et activées puis l'invite est jouée. Lorsque l'entrée d'utilisateur correspond à un choix, le contrôle se déplace vers une transition conformément à la valeur de l'attribut next , expr , event ou eventexpr de l'élément choice , seul l'un d'entre eux pouvant être défini. Si on définit un attribut event sans que son gestionnaire d'événement n'incite l'interpréteur à quitter ou à déplacer le contrôle, alors l'algorithme FIA effacera la variable d'élément de formulaire du champ anonyme du menu, entraînant une nouvelle exécution du menu.

    Un élément de formulaire est un sous-élément de l'élément form pouvant faire l'objet d'une visite au cours de l'interprétaton du formulaire. Ce sont les éléments field , block , initial , subdialog , object , record et transfer. Ils ont une variable de résultat, définie par l'attribut name.

    Cette variable peut recevoir une valeur initiale par le biais d'un attribut expr. Ils ont une condition de veille définie par l'attribut cond. Un élément de formulaire sera visité s'il n'est pas rempli et que son attribut cond n'est pas défini ou que l'évaluation de sa valeur, après conversion en un booléen, donne " true ". Les éléments de formulaire se rangent en éléments d'entrée , lesquels définissent les variables d'élément d'entrée du formulaire, et en éléments de commande , lesquels facilitent la collecte des éléments d'entrée du formulaire. Des éléments filled qui comprennent certaines actions à exécuter après que la variable d'élément d'entrée résultante a été remplie.

    Des éléments property afin de définir les propriétés en vigueur pour cet élément d'entrée l'élément de formulaire initial peut également contenir cet élément. Des éléments prompt afin de définir les invites à jouer lorsque ce élément est visité. Des éléments grammar afin de définir les entrées vocales et textuelles permises pour cet élément de formulaire les éléments subdialog et object ne peuvent pas contenir cet élément. Des éléments et des abréviations de l'élément catch qui sont en vigueur pour cet élément d'entrée l'élément de formulaire initial peut également contenir cet élément.

    À chaque élément d'entrée est associé un ensemble de variables fictives. Les variables fictives servent à renvoyer des résultats provenant de l'exécution d'un élément d'entrée, outre la valeur stockée par l'attribut name. Par exemple, il peut se révéler utile de connaître le niveau de fiabilité obtenu en résultat de la reconnaissance d'une grammaire dans un élément field. Les variables fictives sont inscriptibles et elles peuvent être modifiées par l'application. Par exemple, l'élément field renvoie une variable fictive confidence qui donne un indice de fiabilité.

    L'exemple ci-dessous illustre comment utiliser cette variable fictive. Un champ définit un élément d'entrée qu'il faut recueillir de l'utilisateur. Les valeurs des variables fictives utterance , inputmode et interpretation doivent être les mêmes que celles dans le tableau application. Le niveau de fiabilité du champ nom , défini dans l'intervalle 0. Une valeur de "0. Une plateforme peut se servir de la fiabilité de l'énoncé la valeur de la variable application. Cette distinction entre niveau de fiabilité du champ et niveau de fiabilité de l'énoncé est propre à la plateforme.

    L'interprétation plus spécifique d'une valeur de fiabilité dépend de la plateforme puisque le calcul de celle-ci différera probablement d'une plateforme à l'autre. Si on définit à la fois l'attribut src d'un élément grammar et une grammaire directe, alors un événement error. La prise en compte par une plateforme de ressources intégrées telles que les grammaires vocales, les grammaires DTMF et les fichiers sons est optionnelle.

    Le premier élément grammar appelle la grammaire vocale intégrée de type boolean et le second la grammaire DTMF intégrée de type boolean. Où la valeur type-intégré représente l'un des types intégrés fondamentaux de champ c'est-à-dire, boolean , date , etc. En outre, on peut utiliser les systèmes d'adresse URI intégrés propres à une plateforme pour accéder aux grammaires reconnues par des contextes d'interprétation particuliers. Lorsque l'on a simplement besoin d'un ensemble d'alternatives pour définir les valeurs d'entrée légales d'un champ, il peut se révéler plus commode d'utiliser une liste d'options qu'une grammaire.

    On représente une liste d'options par un ensemble d'éléments option compris dans un élément field. On peut se servir d'attributs afin de définir une séquence DTMF pour chaque option et afin de contrôler la valeur assignée à la variable d'élément de formulaire du champ. Lors du choix d'une option, l'attribut value détermine la valeur interpretation pour la variable fictive du champ et pour la variable du tableau application.

    O : Veuillez sélectionner une entrée. H : aide lance l'événement help capturé par l'élément catch de niveau formulaire. H : 7 lance l'événement nomatch capturé par l'élément catch de niveau formulaire. H : beaucoup lance un événement nomatch capturé par l'élément catch de niveau formulaire. L'utilisation de l'élément enumerate par l'élément catch de niveau formulaire entraîne le déclenchement d'un événement error. L'utilisation d'éléments option n'empêche pas celle d'éléments grammar.


    • espionner iphone whatsapp.
    • whatsapp espiar iphone gratis!
    • Autres documents traduits;

    Le résultat correspondrait à l'une ou l'autre grammaire et non à la présence de deux éléments grammar dans le même élément field représentant une disjonction de choix. C'est un élément de formulaire avec un contenu exécutable lequel est exécuté si la valeur de la variable d'élément de formulaire de l'élément block est " undefined " et si la valeur de son attribut cond , le cas échéant, est évaluée à " true ".

    La valeur de la variable d'élément de formulaire est fixée automatiquement à " true " juste avant que le bloc ne soit visité. C'est pourquoi, les blocs ne sont en général exécutés qu'une seule fois par invocation du formulaire. Parfois, on peut avoir besoin d'un contrôle accru des blocs. Pour ce faire, on peut nommer la variable d'élément de formulaire et en fixer ou effacer la valeur afin de contrôler l'exécution de l'élément block.

    Cette variable se déclare dans la portée du dialogue du formulaire. Dans un formulaire à initiative mixte typique, un élément initial est visité lorsque l'utilisateur fait l'objet d'une invite initiale pour des renseignements concernant l'ensemble du formulaire et que l'utilisateur ne se trouve pas encore dans le mode dirigé selon lequel chaque champ est visité individuellement. Comme les éléments d'entrée, il dispose d'invites, d'éléments catch et de compteurs d'événements.

    Par contre, il ne comporte aucune grammaire ni action filled. Si un événement se produit pendant la visite d'un élément initial , alors un de ses gestionnaires d'événement s'exécute. Comme pour les autres éléments de formulaire, l'élément initial reste éligible pour une visite tant que la valeur de sa variable d'élément de formulaire est " undefined " et que son attribut cond vaut " true ". Si une ou plusieurs des variables d'élément de formulaire sont fixées par une entrée d'utilisateur, alors toutes les valeurs des variables d'élément de formulaire de l'élément initial sont fixées à " true ", avant l'exécution d'une quelconque action filled.

    On peut manipuler explicitement la variable d'élément de formulaire d'un élément initial afin d'inactiver ou de rétablir son éligibilité vis-à-vis de l'algorithme FIA. Par exemple, dans le programme précédent, la valeur de la variable d'élément de formulaire de l'élément initial est fixée lors du second événement nomatch. Cela a pour effet de détourner l'algorithme FIA de l'élément initial vers l'élément de formulaire suivant, à savoir un élément field qui produit explicitement une invite pour la ville de départ. On pourrait tout aussi bien effacer la valeur de la variable d'élément de formulaire de l'élément initial , de sorte que celui-ci devienne à nouveau sélectionnable par l'algorithme FIA.

    On peut définir plusieurs éléments initial dans le même formulaire. Une fois dans le formulaire, seul le premier élément initial , dans l'ordre du document, qui est éligible en vertu de son attribut cond , sera visité. Une fois la première variable d'élément de formulaire remplie, toutes les variables d'élément de formulaire des éléments initial reçoivent la valeur " true ", ceux-ci ne seront dès lors plus visités. L'effacement explicite des variables des éléments initial permet leur réutilisation et même la sélection d'un élément initial différent lors des itérations suivantes de l'algorithme FIA.

    L'attribut cond peut aussi servir à sélectionner quel élément initial utiliser dans une itération donnée. Une application pourrait aligner plusieurs éléments initial et les marquer avec leur attribut cond en vue d'une utilisation particulière selon les circonstances, par exemple, l'attribut cond étant utilisé pour tester la nature d'un mode d'exploitation , pour utilisateur expérimenté ou bien pour utilisateur novice, et les éléments initial ne servant que dans le mode avancé.

    En outre, si le premier élément initial dans l'ordre du document définissait une valeur improbable pour son attribut cond , il ne serait alors jamais exécuté. Si les valeurs des attributs cond de tous les éléments initial empêchaient leur sélection, alors aucun ne serait exécuté.

    En particulier, aucune grammaire attachée à un élément field n'est active. Remarque : L'assignation explicite de valeurs à des variables d'élément d'entrée n'affecte pas la valeur de la variable d'élément de formulaire d'un élément initial. Les sous-dialogues représentent un mécanisme permettant la réutilisation de dialogues communs et la constitution de librairies d'applications réutilisables. L'élément subdialog invoque un dialogue appelé c'est le sous-dialogue identifié par les attributs src ou srcexpr dans le dialogue appelant. Le sous-dialogue s'exécute dans un nouveau contexte d'exécution qui comprend toutes les déclarations et informations d'état du sous-dialogue, le document du sous-dialogue et le cas échéant la racine de l'application du sous-dialogue, les compteurs étant réinitialisés et les variables initialisées.

    Le sous-dialogue se poursuit jusqu'à l'exécution d'un élément return ou bien exit , ou jusqu'à ce qu'il ne reste plus aucun élément de formulaire susceptible d'une sélection par l'algorithme FIA ce qui équivaut à un élément exit. Lorsque le sous-dialogue revient, son contexte d'exécution est détruit et l'exécution reprend alors dans le dialogue appelant, les éventuels éléments filled étant remplis de manière appropriée.

    Le contexte du sous-dialogue et celui du dialogue appelant sont indépendants, même si les dialogues se trouvent dans le même document. Et, même quand le sous-dialogue est défini dans le même document que le dialogue appelant, le contexte d'exécution du sous-dialogue contiendra des instances de variables différentes. Lorsque le sous-dialogue et le dialogue appelant sont dans des documents différents tout en partageant le même document racine, leurs valeurs d'attribut root sont également des instances différentes.

    Toutes les liaisons de variables appliquées dans le contexte du sous-dialogue sont perdues au retour dans le contexte appelant. Par contre, dans le contexte du sous-dialogue, les règles de portée normales des grammaires, des événements et des variables s'appliquent. Les grammaires actives d'un sous-dialogue comprennent les grammaires implicites définies par le contexte d'interprétation et les grammaires de portée convenable définies dans les éléments link , menu et form dans le document du sous-dialogue et son document racine.

    La gestion des événements et la liaison des variables suit également la hiérarchie normale des portées. Dans une perspective de programmation, les sous-dialogues se comportent différemment des sous-routines dans la mesure où les contextes appelant et appelé sont indépendants. Alors qu'une sous-routine peut accéder à des instances de variables appartenant à la routine appelante, un sous-dialogue ne pourra pas accéder à la même instance de variable définie dans le dialogue appelant.

    De même, les sous-dialogues n'obéissent pas au modèle de percolation des événements trouvé dans des langages comme Java, pour lequel un événement suscité dans une méthode va remonter automatiquement au contexte appelant s'il n'est pas pris en charge dans le contexte appelé. Le sous-dialogue est désigné par l'adresse URI dans l'attribut src ou srcexpr de l'élément subdialog voir le document [RFC].

    Si cet appel d'adresse URI contient une adresse absolue ou relative, pouvant contenir une chaîne de requête , alors cette adresse URI est extraite et le sous-dialogue se trouvera dans le document résultant. Si l'élément subdialog comporte un attribut namelist , alors les variables composant sa valeur sont ajoutées à la chaîne de requête de l'adresse URI. Le fragment d'un appel d'adresse URI indique, le cas échéant, le sous-dialogue à invoquer. En l'absence d'un fragment, le sous-dialogue invoqué est le premier dialogue lexical dans le document.

    Si l'appel d'adresse URI n'est pas valide c'est-à-dire quand le dialogue ou le document n'existent pas , un événement error. Remarquez que, en ce qui concerne les erreurs qui se produisent pendant une transition de dialogue ou de document, la portée dans laquelle les erreurs sont censés être traitées est propre à la plateforme. On doit définir exactement un seul attribut src ou bien srcexpr , sinon un événement error. L'élément subdialog peut contenir les éléments communs à tous les éléments de formulaires et aussi des éléments param. Les éléments param d'un élément subdialog définissent les paramètres à passer au sous-dialogue.

    Ces paramètres doivent être déclarés comme éléments var dans le formulaire exécuté comme sous-dialogue ou alors un événement error. Lors de l'initialisation du sous-dialogue, les éléments var sont également initialisés, dans l'ordre du document, à la valeur indiquée par l'élément param dont le nom correspond. Les valeurs paramètres sont calculées en évaluant l'attribut expr de l'élément param dans le contexte de l'élément param. Un attribut expr dans l'élément var sera ignoré dans ce cas. Si aucun élément param ne correspond à un élément var , on utilise un attribut expr comme valeur par défaut, ou bien la variable prend la valeur " undefined " si l'attribut expr n'est pas défini, comme pour un élément form régulier.

    Dans l'exemple suivant, on se sert de la date de naissance d'une personne pour valider son permis de conduire. L'attribut src de l'élément subdialog se rapporte à un formulaire dans le même document. On utilise l'élément param pour passer la valeur de la date de naissance au sous-dialogue. La valeur du permis de conduire est renvoyée au dialogue appelant, accompagnée d'une variable de statut, afin d'indiquer si le permis est valide ou non. Cet exemple illustre également la commodité avec laquelle on transmet des données au sous-dialogue afin d'y instancier des valeurs sans faire appel à un script côté serveur.

    On donne ci-dessous une autre solution avec un script. Dans l'exemple précédent, un script côté serveur était chargé de générer le document et d'incorporer la valeur de la date de naissance. On donne ensuite un dernier exemple qui montre la capture des informations générales d'une carte de crédit par un sous-dialogue. On définit tout d'abord le sous-dialogue dans un document séparé car on souhaite le réutiliser dans des applications différentes.

    Voici maintenant une application qui présente un dialogue appelant. Elle demande le nom d'un logiciel et d'un système d'exploitation au travers d'un dialogue à initiative mixte puis sollicite les informations de la carte de crédit au moyen du sous-dialogue précédent. Une plateforme d'implémentation VoiceXML peut offrir, au travers de l'élément object , une fonctionnalité propre utilisable par une application VoiceXML. L'élément object utilise directement son propre contenu au cours de l'initialisation par exemple, un sous-élément param et de l'exécution.

    Par conséquent, on ne peut pas traiter le contenu d'un élément object comme un contenu alternatif. Notez que, à l'instar des autres éléments d'entrée, l'élément object peut produire des invites et comporter des éléments catch. Il peut également comprendre des actions filled. Lorsque cet élément object est exécuté, il renvoie un objet ECMASCript comme valeur de sa variable d'élément de formulaire.

    Comme autre exemple, supposons qu'un plateforme ait une fonctionnalité selon laquelle l'utilisateur peut saisir des messages textuels arbitraires au moyen d'un clavier téléphonique. L'utilisateur est d'abord invité à laisser un message puis il le tape. L'élément block copie le message dans la variable document. Les implémentations ne sont pas obligées de fournir des objects spécifiques à la plateforme, mais elles doivent gérer l'élément object et susciter un événement error.

    Si une implémentation se comporte ainsi, alors on considère qu'elle gère l'élément object. Il est du ressort de l'objet en question de déterminer la validité des noms ou valeurs des paramètres reçus. L'élément object suscite une erreur en cas d'invalidité. L'élément record est un élément d'entrée destiné à recueillir un enregistrement provenant de l'utilisateur. L'utilisateur est invité à laisser un message puis il l'enregistre. Notez que, comme les autres éléments d'entrée, l'élément record peut avoir une grammaire, produire des invites et comporter des éléments catch. Il peut également comporter des actions filled.

    Lorsqu'un utilisateur raccroche en cours d'enregistrement, l'enregistrement se termine et un événement connection. Toutefois, le son enregistré jusqu'au raccrochage reste disponible dans la variable de l'élément record. Un enregistrement commence immédiatement après la lecture d'une invite y compris le bip , le cas échéant. Pour des raisons d'optimisation, une plateforme peut lancer l'enregistrement dès que l'utilisateur commence à parler. Un délai de temporisation commence immédiatement après la lecture d'une invite y compris le bip , le cas échéant et sa durée est déterminée par la propriété timeout.

    Si le délai de temporisation expire avant le commencement de l'enregistrement, alors un événement noinput est suscité. Une durée maximale commence en même temps que l'enregistrement et elle est déterminée par un attribut maxtime. Si la durée maximale expire avant que l'enregistrement ne soit fini, alors l'enregistrement est interrompu et la variable fictive de l'attribut maxtime reçoit la valeur " true ".

    Un enregistrement se termine lorsque un événement est suscité, une entrée vocale ou DTMF est filtrée par une grammaire active ou la durée maximale est dépassée. Pour des raisons d'optimisation, une plateforme peut interrompre un enregistrement après un délai de silence fixé par l'attribut finalsilence indiquant que l'utilisateur a cessé de parler. Si aucun son n'est recueilli pendant l'exécution de l'élément record , alors la variable d'enregistrement reste vide voir remarque.

    Cela peut se produire, par exemple, lorsqu'une entrée vocale ou DTMF est reçue pendant la lecture de l'invite ou avant que l'intervalle de temporisation n'expire. En particulier, si aucun son n'est recueilli avant que l'utilisateur ne termine l'enregistrement par une entrée DTMF correspondant à une grammaire DTMF locale ou quand la valeur de l'attribut dtmfterm est fixée à " true " , alors la variable d'enregistrement n'est pas remplie et donc aucune variable fictive n'est fixée et l'algorithme FIA poursuit normalement sans qu'un événement noinput ne soit suscité.

    Néanmoins, dans ces situations, on peut accéder aux informations concernant l'entrée via le tableau application. L'élément record contient un attribut dtmfterm pour des raisons de commodité envers les développeurs. L'attribut dtmfterm est prioritaire sur les grammaires DTMF locales définies. N'importe quelle touche DTMF correspondant à une grammaire active termine l'enregistrement. Les touches DTMF qui ne correspondent pas à une grammaire active sont ignorées et, de fait, ne terminent ni n'affectent d'une quelconque manière l'enregistrement et la plateforme peut, en option, les supprimer du signal.

    La reconnaissance des grammaires vocales par la plateforme pendant l'enregistrement est optionnelle. Si la plateforme gère simultanément la reconnaissance et l'enregistrement, alors une commande vocale filtrée par une grammaire vocale non locale peut terminer l'enregistrement et l'algorithme FIA est invoqué, lequel transfère l'exécution à l'élément contenant la grammaire. La commande vocale terminante est acessible via le tableau application. Par contre, le son de la commande vocale terminante reconnue n'est pas disponible et il ne fait pas partie de l'enregistrement.

    Si la grammaire de terminaison retenue est une grammaire locale, alors l'enregistrement est placé dans la variable d'enregistrement. Sinon, celle-ci est laissée intacte voir la remarque et l'algorithme FIA est invoqué. Quel que soit le cas, le tableau application. Remarquez que l'implémentation de cette variable peut varier d'une plateforme à l'autre bien que toutes les plateformes doivent gérer son comportement dans les éléments audio et submit , comme décrit dans cette spécification.

    L'élément transfer instruit l'interpréteur de connecter l'appelant à une autre entité par exemple, une ligne téléphonique ou une autre application vocale. Pendant l'opération de transfert, la session d'interprétation courante est suspendue. Une plateforme d'implémentation peut initier un transfert de diverses manières, dont ceux de type pont , aveugle , redirection de réseau appelé parfois rappel et transfert , transfert par support commutateur , etc.

    L'élément transfer est optionnel, bien que les plateformes devraient le prendre en charge. Les plateformes gérant l'élément transfer devraient gérer les transferts de type pont ou ceux de type aveugle , ou les deux. Celles qui gèrent l'un ou l'autre type de transfert peuvent gérer, en option, les modes d'entrée asynchrones des commandes DTMF, ou des commandes vocale, ou les deux, pendant le transfert d'appel afin d'annuler la tentative de liaison distante. Les tentatives de transfert de type aveugle peuvent s'annuler tant que l'appel sortant n'a pas encore commencé.

    Transfert de type pont. La plateforme ajoute l'appelé dans la connexion. L'interprétation du document est suspendue jusqu'à ce que le transfert de l'appel soit terminé. Si l'appelant se déconnecte en raccrochant ou si le réseau déconnecte l'appelant, alors la plateforme suscite un événement connection. Si la connexion est interrompue pour une quelconque autre raison, ce résultat est signalé dans l'attribut name voir le tableau suivant.

    Transfert de type aveugle par défaut. La plateforme redirige l'appelant vers l'appelé sans demeurer dans la connexion et elle ne surveille pas le résultat. La plateforme suscite immédiatement un événement connection.