ZVON > References > VoiceXML Reference
Element:block
Attributes: | cond | expr | name |
Parents: | form |
Children: | assign | audio | clear | disconnect | enumerate | exit | goto | if | prompt | reprompt | return | script | submit | throw | value | var |
Description:

Go to Standard

Examples:


<block> Welcome to Flamingo.example, your source for lawn ornaments. </block>


<vxml version="1.0">
     <form>
          <block>Hello World!</block>
     </form>
</vxml>


<vxml version="1.0">
     <property name="caching" value="fast"/> …
     <form id="test">
          <block>
               <audio src="http://www.weather4U.example/vxml/welcome.wav"/>
               <audio caching="safe" src="http://www.onlineads.example/weather4U/ad17"/>
          </block> …
     </form> …
</vxml>


<form id="gather_pager_message">
     <object name="message" classid="builtin://keypad_text_input">
          <prompt> Enter your message by pressing your keypad once per letter. For a space, enter star. To end the message, press the pound sign. </prompt>
     </object>
     <block>
          <assign name="document.pager_message" expr="message.text"/>
          <goto next="#confirm_pager_message"/>
     </block>
</form>


<vxml version="1.0">
     <form>
          <field name="drink">
               <prompt>Would you like coffee, tea, milk, or nothing?</prompt>
               <grammar src="drink.gram" type="application/x-jsgf"/>
          </field>
          <block>
               <submit next="http://www.drink.example/drink2.asp"/>
          </block>
     </form>
</vxml>


<vxml version="1.0">
     <meta name="author" content="John Doe"/>
     <meta name="maintainer" content="hello-support@hi.example"/>
     <var name="hi" expr="'Hello World!'"/>
     <form>
          <block>
               <value expr="hi"/>Goodbye!
          </block>
     </form>
</vxml>


<form id="no_bargein_form">
     <property name="bargein" value="false"/>
     <block>
          <prompt> This introductory prompt cannot be barged into. </prompt>
          <prompt> And neither can this prompt. </prompt>
          <prompt bargein="true"> But this one
               <emp>can</emp> be barged into.
          </prompt>
     </block> …
</form>


<form id="tapered">
     <block>
          <prompt bargein="false"> Welcome to the ice cream survey. </prompt>
     </block>
     <field name="flavor">
          <grammar>vanilla|chocolate|strawberry</grammar>
          <prompt count="1">What is your favorite flavor?</prompt>
          <prompt count="3">Say chocolate, vanilla, or strawberry.</prompt>
          <help>Sorry, no help is available.</help>
     </field>
</form>


<vxml version="1.0">
     <meta name="author" content="John Doe"/>
     <meta name="maintainer" content="hello-support@hi.example"/>
     <var name="hi" expr="'Hello World!'"/>
     <form>
          <block>
               <value expr="hi"/>
               <goto next="#say_goodbye"/>
          </block>
     </form>
     <form id="say_goodbye">
          <block> Goodbye! </block>
     </form>
</vxml>


<vxml version="1.0">
     <meta name="author" content="John Doe"/>
     <meta name="maintainer" content="hello-support@hi.example"/>
     <var name="hi" expr="'Hello World!'"/>
     <form>
          <block>
               <value expr="hi"/>
               <goto next="#say_goodbye"/>
          </block>
     </form>
     <form id="say_goodbye">
          <block> Goodbye! </block>
     </form>
</vxml>


<form id="launch_missiles">
     <field name="password">
          <prompt>What is the code word?</prompt>
          <grammar>rutabaga</grammar>
          <help>It is the name of an obscure vegetable.</help>
          <catch event="nomatch noinput" count="3">
               <prompt>Security violation!</prompt>
               <submit next="apprehend_felon" namelist="user_id"/>
          </catch>
     </field>
     <block>
          <goto next="#get_city"/>
     </block>
</form>


<block>
     <prompt> The card type is
          <value expr="debit.card"/>.
     </prompt>
     <prompt> The card number is
          <value expr="debit.card_no"/>.
     </prompt>
     <prompt> The expiration date is
          <value expr="debit.expiry_date"/>.
     </prompt>
     <prompt> The approval code is
          <value expr="debit.approval_code"/>.
     </prompt>
     <prompt>The confirmation number is
          <value expr="debit.conf_no"/>.
     </prompt>
</block>


<form id="weather_info">
     <block>Welcome to the weather information service.</block>
     <field name="state">
          <prompt>What state?</prompt>
          <grammar src="state.gram" type="application/x-jsgf"/>
          <catch event="help"> Please speak the state for which you want the weather. </catch>
     </field>
     <field name="city">
          <prompt>What city?</prompt>
          <grammar src="city.gram" type="application/x-jsgf"/>
          <catch event="help"> Please speak the city for which you want the weather. </catch>
     </field>
     <block>
          <submit next="/servlet/weather" namelist="city state"/>
     </block>
</form>


<form id="get_from_and_to_cities">
     <grammar src="http://www.directions.example/grammars/from_to.gram"/>
     <block> Welcome to the Driving Directions By Phone. </block>
     <initial name="bypass_init">
          <prompt> Where do you want to drive from and to? </prompt>
          <nomatch count="1"> Please say something like "from Atlanta Georgia to Toledo Ohio". </nomatch>
          <nomatch count="2"> I’m sorry, I still don’t understand. I’ll ask you for information one piece at a time.
               <assign name="bypass_init" expr="true"/>
               <reprompt/>
          </nomatch>
     </initial>
     <field name="from_city">
          <grammar src="http://www.directions.example/grammars/city.gram"/>
          <prompt>From which city are you leaving?</prompt> … etc. …
     </field> … etc. …
</form>


<form name="transfer">
     <var name="mydur" expr="0"/>
     <block>
          <audio src="chopin12.wav"/>
     </block>
     <transfer name="mycall" dest="phone://18005551234" connecttimeout="30s" bridge="true">
          <filled>
               <assign name="mydur" expr="mycall$.duration"/>
               <if cond="mycall == 'busy'">
                    <prompt> Sorry, our customer support team is busy serving other customers. Please try again later. </prompt>
                    <elseif cond="mycall == 'noanswer'"/>
                    <prompt> Sorry, our customer support team's normal hours are 9 am to 7 pm Monday through Saturday. </prompt>
               </if>
          </filled>
     </transfer>
     <block>
          <submit namelist="mycall mydur" next="/cgi-bin/report"/>
     </block>
</form>


<vxml version="1.0">
     <form>
          <var name="hours"/>
          <var name="minutes"/>
          <var name="seconds"/>
          <block>
               <script> var d = new Date(); hours = d.getHours(); minutes = d.getMinutes(); seconds = d.getSeconds(); </script>
          </block>
          <field name="hear_another" type="boolean">
               <prompt> The time is
                    <value expr="hours"/> hours,
                    <value expr="minutes"/> minutes, and
                    <value expr="seconds"/> seconds.
               </prompt>
               <prompt>Do you want to hear another time?</prompt>
               <filled>
                    <if cond="hear_another">
                         <clear/>
                    </if>
               </filled>
          </field>
     </form>
</vxml>


<form id="survey_2000_03_30">
     <catch event="exit">
          <goto nextitem="confirm_exit"/>
     </catch>
     <block>
          <prompt> Hello, you have been called at random to answer questions critical to U.S. foreign policy. </prompt>
     </block>
     <field name="q1" type="boolean">
          <prompt>Do you agree with the IMF position on privatizing certain functions of Burkina Faso’s agriculture ministry?</prompt>
     </field>
     <field name="q2" type="boolean">
          <prompt>If this privatization occurs, will its effects be beneficial mainly to Ouagadougou and Bobo-Dioulasso?</prompt>
     </field>
     <field name="q3" type="boolean">
          <prompt>Do you agree that sorghum and millet output might thereby increase by as much as four percent per annum?</prompt>
     </field>
     <block>
          <submit next="register" namelist="q1 q2 q3"/>
     </block>
     <field name="confirm_exit" type="boolean">
          <prompt>You have elected to exit. Are you sure you want to do this, and perhaps adversely affect U.S. foreign policy vis-à-vis sub-Saharan Africa for decades to come?</prompt>
          <filled>
               <if cond="confirm_exit"> Okay, but the U.S. State Department is displeased.
                    <exit/>
                    <else/> Good, let’s pick up where we left off.
                    <clear namelist="confirm_exit"/>
               </if>
          </filled>
     </field>
</form>


<vxml version="1.0">
     <form id="getcredit">
          <var name="status" expr="'no_result'"/>
          <var name="username"/>
          <field name="creditcardnum">
               <prompt> What is your credit card number? </prompt>
               <help> I am trying to collect your credit card information.
                    <reprompt/>
               </help>
               <nomatch>
                    <return namelist="status"/>
               </nomatch>
               <grammar/>
          </field>
          <field name="expirydate" type="date">
               <prompt> What is the expiry date of this card? </prompt>
               <help> I am trying to collect the expiry date of the credit card number you provided.
                    <reprompt/>
               </help>
               <nomatch>
                    <return namelist="status"/>
               </nomatch>
          </field>
          <block>
               <assign name="status" expr="'result'"/>
               <return namelist="status creditcardnum expirydate"/>
          </block>
     </form>
</vxml>


<vxml version="1.0">
     <var name="username"/>
     <form id="buysoftware">
          <var name="ccn"/>
          <var name="exp"/>
          <grammar/>
          <initial name="start">
               <prompt> Please tell us the software product you wish to buy and the operating system on which it must run. </prompt>
               <noinput>
                    <assign name="start" expr="true"/>
               </noinput>
          </initial>
          <field name="product">
               <prompt> Which software product would you like to buy? </prompt>
          </field>
          <field mname="operatingsystem">
               <prompt> Which operating system does this software need to run on? </prompt>
          </field>
          <subdialog name="cc_results" src="http://somedomain.example/ccn.vxml">
               <filled>
                    <if cond="cc_results.status=='no_result'"> Sorry, your credit card information could not be Obtained. This order is cancelled.
                         <exit/>
                         <else/>
                         <assign name="ccn" expr="cc_results.creditcardnum"/>
                         <asssign name="exp" expr="cc_results.expirydate"/>
                    </if>
               </filled>
          </subdialog>
          <block> We will now process your order. Please hold.
               <submit namelist="username product operatingsystem ccn exp"/>
          </block>
     </form>
</vxml>


<vxml version="1.0">
     <property name="caching" value="safe"/>
     <property name="audiofetchhint" value="safe"/>
     <property name="confidence" value="0.75"/>
     <form>
          <property name="confidence" value="0.5"/>
          <property name="bargein" value="false"/>
          <grammar src="address_book.gram" type="application/x-jsgf"/>
          <block>
               <prompt> Welcome to the Voice Address Book </prompt>
          </block>
          <initial name="start">
               <property name="timeout" value="5s"/>
               <prompt> Who would you like to call? </prompt>
          </initial>
          <field name="person">
               <prompt> Say the name of the person you would like to call. </prompt>
          </field>
          <field name="location">
               <prompt> Say the location of the person you would like to call. </prompt>
          </field>
          <field name="confirm" type="boolean">
               <prompt> You said to call
                    <value expr="person$.utterance"/> at
                    <value expr="location$.utterance"/>. Is this correct?
               </prompt>
               <filled>
                    <if cond="confirm">
                         <submit next="http://www.messagecentral.example/voice/make_call" namelist="person location"/>
                    </if>
                    <clear/>
               </filled>
          </field>
     </form>
</vxml>


<form id="weather_info">
     <grammar src="cityandstate.gram" type="application/x-jsgf"/>
     <block>
          <prompt bargein="false"> Welcome to the weather information service.
               <audio src="http://www.online-ads.example/wis.wav"/>
          </prompt>
     </block>
     <initial name="start">
          <prompt> For what city and state would you like the weather? </prompt>
          <help> Please say the name of the city and state for which you you would like a weather report.</help>
          <noinput count="1">
               <reprompt/>
          </noinput>
          <noinput count="2">
               <reprompt/>
               <assign name="start" expr="true"/>
          </noinput>
     </initial>
     <field name="state">
          <prompt>What state?</prompt>
          <help>Please speak the state for which you want the weather.</help>
     </field>
     <field name="city">
          <prompt>Please say the city in
               <value expr="state"/> for which you want the weather.
          </prompt>
          <help>Please speak the city for which you want the weather.</help>
          <filled>
               <if cond="city == 'Los Angeles' && state == undefined">
                    <assign name="state" expr="'California'"/>
               </if>
          </filled>
     </field>
     <field name="go_ahead" type="boolean" modal="true">
          <prompt>Do you want to hear the weather for
               <value expr="city"/>,
               <value expr="state"/>?
          </prompt>
          <filled>
               <if cond="go_ahead">
                    <prompt bargein="false">
                         <audio src="http://www.online-ads.example/wis2.wav"/>
                    </prompt>
                    <submit next="/servlet/weather" namelist="city state"/>
               </if>
               <clear namelist="start city state go_ahead"/>
          </filled>
     </field>
</form>