LogoLogo
  • Go to Docs Center
  • Plum DEV Documentation
  • Overview
  • Developer Reference
    • Tutorial
    • How to...
      • Use Plum's Transcription API
    • Audio Formats and Prompts
    • Grammars and Speech Recognition
    • Available ASR Engines
    • TTS Engine Characteristics
      • Amazon Polly TTS Engine
        • Polly Voice Tag Attribute Details
      • AT&T Natural Voices
      • Cepstral Engine
      • RealSpeak Engine
      • Vocalizer 7
        • Vocalizer 7: <voice> tag and SSML Support
    • Data Exchange
    • Logging
    • Caching
    • Root Documents
  • VoiceXML
    • Tags
      • <assign>
      • <audio>
      • <block>
      • <break>
      • <catch>
      • <choice>
      • <clear>
      • <data>
      • <desc>
      • <disconnect>
      • <else>
      • <elseif>
      • <emphasis>
      • <enumerate>
      • <error>
      • <example>
      • <exit>
      • <field>
      • <filled>
      • <foreach>
      • <form>
      • <goto>
      • <grammar>
      • <help>
      • <if>
      • <initial>
      • <item>
      • <lexicon>
      • <link>
      • <log>
      • <mark>
      • <menu>
      • <meta>
      • <metadata>
      • <noinput>
      • <nomatch>
      • <one-of>
      • <option>
      • <paragraph>
      • <param>
      • <phoneme>
      • <prompt>
      • <property>
      • <prosody>
      • <record>
      • <reprompt>
      • <return>
      • <rule>
      • <ruleref>
      • <say-as>
      • <script>
      • <sentence>
      • <speak>
      • <sub>
      • <subdialog>
      • <submit>
      • <tag>
      • <throw>
      • <token>
      • <transfer>
      • <value>
      • <var>
      • <voice>
      • <vxml>
    • Properties
      • audiofetchhint
      • audiomaxage
      • audiomaxstale
      • bargein
      • bargeintype
      • certverifypeer
      • completetimeout
      • confidencelevel
      • datafetchhint
      • datamaxage
      • datamaxstale
      • documentfetchhint
      • documentmaxage
      • documentmaxstale
      • fetchaudio
      • fetchaudiodelay
      • fetchaudiominimum
      • fetchtimeout
      • grammarfetchhint
      • grammarmaxage
      • grammarmaxstale
      • incompletetimeout
      • inputmodes
      • interdigittimeout
      • logging
      • maxnbest
      • maxspeechtimeout
      • normalizeaudio
      • recordcall
      • recordcallappend
      • recordutterance
      • recordutterancetype
      • scriptfetchhint
      • scriptmaxage
      • scriptmaxstale
      • sensitivity
      • speedvsaccuracy
      • termchar
      • termmaxdigits
      • termtimeout
      • timeout
      • universals
      • voicegender
      • voicename
    • Application and Session Variables
      • application.lastresult$[i].confidence
      • application.lastresult$[i].inputmode
      • application.lastresult$[i].interpretation
      • application.lastresult$[i].recording
      • application.lastresult$[i].recordingduration
      • application.lastresult$[i].recordingsize
      • application.lastresult$[i].utterance
      • session.callrecording
      • session.id
      • session.telephone.ani
      • session.telephone.dnis
    • VoiceXML Resources
  • Plum DEV Guide
    • Using the Plum DEV site
    • Using the File Repository
    • Outbound Calling Guide
      • Using the Outbound Tools in the DEV web UI
      • DEV Outbound Programming Notes
      • Outbound FAQs and Tips
    • Call Reporting
    • Analytics
    • VoiceTrends
    • Debugging
    • Scratchpads
    • Saved URLs
    • Voice Biometrics
    • Call Routing
    • Data Security
      • 'Private' Tags
      • Managing Secure Phone Numbers
      • Sensitive Data Types
    • SMS Guide
      • Standard Short Codes
      • SMS Debugging/Error Logs
      • Additional SMS Info
    • Single Sign On
  • Plum DEV APIs
    • DEV Outbound APIs
      • Contacts CSV Formatting
      • Outbound API Parameter Notes
      • Legacy and Miscellaneous Notes
    • SMS API
    • Call Logs API
    • Call Scheduling and Pacing API
    • Transcription API
    • Application API
    • Blocklist API
Powered by GitBook
On this page
  • <choice>
  • Attributes
  • Notes
  • Example
  • Child Tags
  • Parent Tags
  1. VoiceXML
  2. Tags

<choice>

<choice>

The <choice> element serves several purposes:

  • It specifies a speech and/or dtmf grammar fragment that determines when that choice has been selected.

  • The contents are used to form the prompt string.

  • It specifies the URI to go to when the choice is selected.

Attributes

Name
Data type
Description

fetchaudio

String

The URI of the audio clip to play while the fetch is being done. If not specified, the fetchaudio property is used, and if that property is not set, no audio is played during the fetch. The fetching of the audio clip is governed by the audiofetchhint, audiomaxage, audiomaxstale, and fetchtimeout properties in effect at the time of the fetch. The playing of the audio clip is governed by the fetchaudiodelay, and fetchaudiominimum properties in effect at the time of the fetch.

fetchhint

This attribute is not supported.

fetchtimeout

String

(defaults to “fetchtimeout” global property value) The timeout for fetches. Must be specified with the appropriate time units (e.g., “120s” for 120 seconds).

maxage

String

(defaults to “documentmaxage” global property value) Tells the platform the maximum acceptable age, in seconds, of cached documents.

maxstale

String

(defaults to “documentmaxstale” global property value) Tells the platform the maximum acceptable staleness, in seconds, of expired cached documents.

accept

String

(defaults to “exact”) Override the setting for accept in <menu> for this particular choice. When set to “exact”, the text of the choice element defines the exact phrase to be recognized. When set to “approximate”, the text of the choice element defines an approximate recognition phrase.

dtmf

String

The DTMF sequence for this choice. It is equivalent to a simple DTMF <grammar>, and DTMF properties apply to recognition of the sequence.

event

String

Specify an event to be thrown instead of specifying a next.

eventexpr

String

An ECMAScript expression evaluating to the name of the event to be thrown.

message

String

A message string providing additional context about the event being thrown. The message is available as the value of the variable “_message” within the scope of the catch element.

messageexpr

String

An ECMAScript expression evaluating to the message string.

next

String

The URI of the next dialog or document.

expr

String

Specify an expression to evaluate as a URI to transition to instead of specifying a next.

Notes

Exactly one of “next”, “expr”, “event”, and “eventexpr” must be specified. Exactly one of “message” and “messageexpr” may be specified.

Example

<?xml version="1.0"?>
<vxml version="2.0">
  <menu id="maincoursea">
    <prompt>
      Please select an entree.
    <enumerate>
      For <value expr="_prompt"/>, press <value expr="_dtmf"/> or say <value expr="_prompt"/>.
    </enumerate>
    </prompt>
    <choice next="#maincoursea1" dtmf="1"> swordfish steak </choice>
    <choice next="#maincoursea2" dtmf="2"> roast beef </choice>
  </menu>

  <menu id="maincoursea1">
    <prompt>
      You chose swordfish steak. Press 1 or say dessert to hear what's for dessert.
    </prompt>
    <choice next="#dessert" dtmf="1">Dessert</choice>
  </menu>

  <menu id="maincoursea2">
    <prompt>
      You chose roast beef. Press 1 or say dessert to hear what's for dessert.
    </prompt>
    <choice next="#dessert" dtmf="1">Dessert</choice>
  </menu>

  <form id="dessert">
    <block>
      <prompt>
        The dessert today is chocolate pie.
      </prompt>
    </block>
  </form>
</vxml>

The output of the above script would be:

Computer: Please select an entree. For swordfish steak, press 1 or say swordfish steak. For roast beef, press 2 or say roast beef. Human: Roast beef. Computer: You chose roast beef. Press 1 or say dessert to hear what's for dessert. Human: Dessert. Computer: The dessert today is chocolate pie.

Child Tags

Parent Tags

Previous<catch>Next<clear>

Last updated 1 year ago

<grammar>
<menu>