The <subdialog> element invokes another dialog as a subdialog of the current one. The subdialog is a reusable dialog that allows values to be returned. The subdialog executes in a new execution context with all variables and execution states initialized. Values can be passed into the subdialog using <param> child elements; the subdialog must contain the <var> variable declaration for each parameter. The original dialog can continue execution only when the subdialog executes the <return> element. Returned values are available as properties of the <subdialog> field item variable.
<subdialog name="String" expr="ECMAScript_Expression" cond="ECMAScript_Expression" namelist="variable1 variable2 ..." src="URI" method="get" | "post" enctype="application/x-www-form-urlencoded" | "multipart/form-data" fetchaudio="URI" fetchhint="prefetch" | "safe" fetchtimeout="time_interval" maxage="time_interval" maxstale="time_interval"> </subdialog>
| name | The name attribute defines the name of the field item variable for the <subdialog> element. The returned results can be retrieved as a property of the variable, name.returnVariable. This attribute is required. |
| expr | The expr attribute is the initial value of the form item variable. The <subdialog> element will be visited only if the variable is undefined. This attribute is optional and defaults to undefined. |
| cond | The cond attribute is a Boolean expression that must evaluate to true for the <subdialog> to execute. This attribute is optional and defaults to true. |
| namelist | The namelist attribute is a space-separated list of variables to submit. This attribute is optional and defaults to nothing. |
| src | The src attribute is the URI of the <subdialog>. This attribute is required - specifically either src or srcexpr is required. |
| method | The method attribute specifies the query request method, get or post. This attribute is optional and defaults to get. |
| enctype | The enctype attribute defines the MIME encoding of the document. This attribute is optional and defaults to application/x-www-form-urlencoded. The following types are supported: * application/x-www-form-urlencoded. * multipart/form-data (to post recorded messages). |
| fetchaudio | The fetchaudio attribute is the URI of the audio to play while waiting for the next document to be fetched. |
| fetchtimeout | The fetchtimeout attribute is the time interval to wait for the audio file to be fetched before playing the alternate content. This attribute is optional. |
| fetchhint | The fetchhint attribute defines when the audio file should be retrieved. This attribute is optional. * prefetch – the audio file may be downloaded when the page is loaded. * safe – the audio file loads only when needed. |
| maxage | The maxage attribute indicates the maximum time in seconds that this document will use this subdialog file before fetching another copy. This attribute is optional. |
| maxstale | The maxstale attribute indicates the maximum time in seconds that this document will use a subdialog file that exceeded the maxage time. This attribute is optional. |
<form>
<audio>, <catch>, <enumerate>, <error>, <filled>, <help>, <noinput>, <nomatch>, <param>, <prompt>, <property>, <value>
None.
The variables submitted to the <subdialog> element in the namelist attribute may not be objects.
The following is an example of a document that calls the <subdialog>:
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
<form>
<subdialog name="result" src="subdialog.vxml">
<filled>
<prompt>
Your account number is <value expr="result.acctnum"/>
Your phone number is <value expr="result.acctphone"/>
</prompt>
</filled>
</subdialog>
</form>
</vxml>
The following is an example of a document containing the <subdialog>:
<?xml version="1.0"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
<form id="basic">
<field name="acctnum" type="digits">
<prompt> What is your account number? </prompt>
</field>
<field name="acctphone" type="phone">
<prompt> What is your home telephone number? </prompt>
<filled> <prompt> What is your home telephone number? </prompt>
<filled>
<return namelist="acctnum acctphone"/>
</filled>
</field>
</form>
</vxml>