When the accept attribute of choice is
set to "approximate", or is not set and the accept attribute of
its enclosing menu is set to "approximate", then the text of the
choice element defines an approximate recognition phrase, as defined
under "Grammar Generation" in section 2.2.
The type attribute, if present, specifies
the name of one of the following builtin grammar types from Appendix
P: boolean, date, digits, currency, number, phone, time.
[optional] A field containing two builtin
grammar elements, one referring to the builtin speech grammar
and the other referring to the builtin DTMF grammar of the same
type is equivlent to a field whose type attribute is set to the
equivalent type.
A VoiceXML document can initiate a transfer
to another entity using the transfer tag, such that the Interpreter
remains connected to the original caller and interpretation resumes
upon termination of the transfer.
A VoiceXML document can initiate a transfer
to another entity using the transfer tag, such that the Interpreter
disconnects from the caller immediately upon attempting the transfer
and continues execution as it would under termination of the Session.
A bridged transfer can contain speech
grammars such that the interpreter listens to the original caller
for the duration of the transfer, terminating the transfer as
soon as a spoken utterance matches an active speech grammar.
A bridged transfer specifying a 'connecttimeout'
attribute with a W3C time specification will terminate a transfer
attempt if the destination entity cannot be connected to within
that period of time.
A bridged transfer specifying a 'maxtime'
attribute with a W3C time specification will terminate a transfer
after that period of time has elapsed after connecting to the
destination entity if it has not already been terminated for other
reasons.
A bridged transfer specifying a 'transferaudio'
attribute with valid URI to an audio file wil play that audio
from the beginning of the transfer attempt until the attempt is
terminated or the destination entity is connected to.
If the originating caller hangs up during
a bridged transfer, a 'connection.disconnect.hangup' event is
thrown and the transfer name variable remains undefined.
If the Interpreter is unable to connect
to the destination entity when attempting a transfer because it
is busy, the transfer name variable is filled with the value 'busy'.
If a transfer is terminated because the
original caller matches an active DTMF grammar, the transfer name
variable is filled with the value 'near_end_disconnect'.
If a bridge transfer is terminated by
the Interpreter because the 'maxtime' has expired without the
transfer being terminated, the transfer name variable is filled
with the value 'maxtime_disconnect'.
Upon termination of bridge transfer,
the shadow variable 'name$.duration' (where name is the name attribute
of the transfer element) is set to the number of seconds from
the time the destination entity was connected to and the transfer
was terminated.
Upon termination of bridge transfer due
to the caller matching an active speech grammar ('near_end_disconnect'),
the 'name$.inputmode' shadow variable is set to 'voice'.
Upon termination of bridge transfer due
to the caller matching an active DTMF grammar ('near_end_disconnect'),
the 'name$.inputmode' shadow variable is set to 'dtmf'.
Upon termination of a bridge transfer
due to the caller matching an active speech grammar ('near_end_disconnect'),
the 'name$.utterance' shadow variable is set to utterance text.
session.connection.redirect returns an
array representing the connection redirection paths. The first
element is the original called number, the last element is the
last redirected number. Each element of the array contains a uri,
pi (presentation information), si (screening information), and
reason property. The reason property can be either "unknown",
"user busy", "no reply", "deflection during alerting", "deflection
immediate response", "mobile subscriber not reachable".
session.connection.originator returns
the local or remote property. (For instance, the following ECMAScript
would return true if the remote party initiated the connection:
var caller_initiate = connection.originator == connection.remote;
A bridged transfer can contain DTMF grammars
such that the interpreter listens to the original caller for the
duration of the transfer, terminating the transfer as soon as
DTMF input matches an active DTMF grammar.
The form item 'object' has a guard condition
specified with the cond attribute. A form item is visited if it
is not filled and its cond is not specified or evaluates, after
conversion to boolean, to true.
The input item transfer may contain the
filled element. Filled elements contain an action to execute after
the result input item variable is filled in.
Upon termination of a bridged transfer
due to the caller matching an active DTMF grammar ('near_end_disconnect'),
application.lastresult$ is assigned to the DTMF result.
Upon termination of a bridged transfer
due to the caller matching an active speech grammar ('near_end_disconnect'),
application.lastresult$.utterance is assigned the same value as
the transfer's utterance shadow.
If a bridged transfer is terminated due
to a reason other than the caller matching an active speech or
DTMF grammar ('near_end_disconnect'), application.lastresult$
is undefined.
When the accept attribute of an option
element is set to "approximate", the user may say a subphrase
of the specified PCDATA for the option to be selected.
If the caller has insufficient permission
to perform a call transfer (e.g. not allowed to make long distance
calls, not permitted to make any transfers, etc.), destination
URL is malformed, a error.connection.noauthorization error is
thrown.
The name (session.connection.protocol.name)
also represents the subobject name for protocol specific information.
For instance, if session.connection.protocol.name is 'q931', session.connection.protocol.q931.uui
might specify the user-to-user information property of the connection.
An application root document's
variables are defined and reachable via the application
scope upon the loading of a document that specifies it
as the application root.
An application root document's
variables are no longer reachable from the application
scope when the user transitions to a document not in that
application.
A user can direct interpretation
in scenarios where grammars outside the current dialog
are active, by matching one of these grammars, at which
point execution transitions to the dialog containing the
matched grammar.
The value of xml:lang must be
inherited down the document hierarchy by elements which
also define the xml:lang attribute and do not have an
alternative value.
When transitioning between two
leaf documents that both specify the same application
fully resolved URI then the transition must preserve the
application root document's variables for use by the second
leaf document.
A transition from an application
leaf document to its own application root document caused
by a 'goto' must preserve the application root document's
variables for use by the root document.
If a transition occurs as the
result of a submit between an application leaf document
and its own application root document the application
root document's variables must be re-initialized.
If a transition occurs from an
application root document to a different application root
document it must initialize the new application root document
and use the new application root document's variables.
A form may contain form items,
which are subdivided into input items ( <field>,
<record>, <transfer>, <object>, <subdialog>)
and control items (<block> and <initial>).
The value of the name attribute
of a form item defines a dialog-scoped variable that holds
the value of the form item, i.e., dialog.name is a reference
to the form item variable.
For all types of form item, if
the form item is assigned a value, that form item is not
eligible to be visited by the FIA (unless/until it is
subsequently set to undefined).
Using the clear tag on a form
item variable will make it eligible to be visited by the
FIA (provided that it does not have a cond attribute evaluating
to false).
If the last main FIA loop did
not result in a goto nextitem and there is no form item
which is eligible to be visited then an implicit exit
is generated.
If an event handler, executed
after an event is thrown while processing a form item,
transfers control with a <goto> or <submit>,
the FIA resumes in the new form at the initialisation
phase.
If an event handler, executed
after an event is thrown while processing a form item,
does not transfer control with a <goto> or <submit>
the FIA resumes in the current form at the selection phase.
If an event is thrown during
the execution of a <filled>, event handler selection
starts in the scope of the <filled>, which could
be a form item or the form itself, and then proceeds outward
by enclosing dialog scopes.
If a menu's scope attribute is
set to "document", the menu's grammars are active over
the whole document (or if the menu is in the application
root document, any loaded document in the application).
If a menu's dtmf attribute is
set to "true", the first nine choices that have not explicitly
specified a value for the dtmf attribute are given the
implicit ones "1", "2", etc. Remaining choices that have
not explicitly specified a value for the dtmf attribute
will not be assigned DTMF values (and thus cannot be matched
via a DTMF keypress).
When the accept attribute of
choice is set to "exact", or is not set and the accept
attribute of its enclosing menu is set to "exact", or
neither choice's accept attribute nor menu's is set, then
the text of the choice element defines the exact phrase
to be recognized. The user must say the entire phrase
in the same order in which it occurs in the choice element
phrase for matching this element.
The messageexpr attribute is
an ECMAScript expression evaluating to the variable _message
inside the catch element which catches the event being
thrown.
If the event handler called after
matching a choice with an event or eventexpr attribute
does not cause the interpreter to exit or transition control,
then the FIA will clear the form item variable of the
menu's anonymous field, causing the menu to be executed
again.
If the form item is initialized
to a value via evaluation of the expr attribute, the form
item will not be visited unless the form item variable
is cleared.
If the slot attribute is absent,
the interpreter uses the value associated with the name
attribute of the field to map the grammar slot to the
form item variable.
The field element exposes a shadow
variables named confidence, utterance, inputmode, and
interpretation. The values of the utterance and inputmode
shadow variables correspond to the values of the corresponding
properties of the first object in the application-scoped
lastresult$ array.
The confidence shadow variable
is the confidence level for the name field of this interpretation
and may range from 0.0-1.0. A value of 0.0 indicates minimum
confidence, and a value of 1.0 indicates maximum confidence.
When the accept attribute of
an option element is set to "exact", the PCDATA of the
option defines the exact phrase to be recognized for the
option to be selected.
The variables passed to the subdialog
via the <param> element are accessible as variables
within the dialog scope of the invoked subdialog. A <param>
overrides the corresponding <var> expr attribute
which is ignored.
The interpreter throws error.badfetch
after the specified fetchtimeout when the URL associated
with the src or srcexpr attribute points to a non-existent
resource.
The variable associated with
the name attribute of the record element can be submitted
via the namelist of the submit element. The submitted
audio is valid.
If the dtmfterm attribute is
true, and the user terminates the recording by pressing
a DTMF key which doesn't match any active DTMF grammar,
then the name$.termchar shadow variable is set to the
key pressed.
When the accept attribute of choice is
set to "approximate", or is not set and the accept attribute of
its enclosing menu is set to "approximate", then the text of the
choice element defines an approximate recognition phrase, as defined
under "Grammar Generation" in section 2.2.
The type attribute, if present, specifies
the name of one of the following builtin grammar types from Appendix
P: boolean, date, digits, currency, number, phone, time.
[optional] A field containing two builtin
grammar elements, one referring to the builtin speech grammar
and the other referring to the builtin DTMF grammar of the same
type is equivlent to a field whose type attribute is set to the
equivalent type.
A VoiceXML document can initiate a transfer
to another entity using the transfer tag, such that the Interpreter
remains connected to the original caller and interpretation resumes
upon termination of the transfer.
A VoiceXML document can initiate a transfer
to another entity using the transfer tag, such that the Interpreter
disconnects from the caller immediately upon attempting the transfer
and continues execution as it would under termination of the Session.
A bridged transfer can contain speech
grammars such that the interpreter listens to the original caller
for the duration of the transfer, terminating the transfer as
soon as a spoken utterance matches an active speech grammar.
A bridged transfer specifying a 'connecttimeout'
attribute with a W3C time specification will terminate a transfer
attempt if the destination entity cannot be connected to within
that period of time.
A bridged transfer specifying a 'maxtime'
attribute with a W3C time specification will terminate a transfer
after that period of time has elapsed after connecting to the
destination entity if it has not already been terminated for other
reasons.
A bridged transfer specifying a 'transferaudio'
attribute with valid URI to an audio file wil play that audio
from the beginning of the transfer attempt until the attempt is
terminated or the destination entity is connected to.
If the originating caller hangs up during
a bridged transfer, a 'connection.disconnect.hangup' event is
thrown and the transfer name variable remains undefined.
If the Interpreter is unable to connect
to the destination entity when attempting a transfer because it
is busy, the transfer name variable is filled with the value 'busy'.
If a transfer is terminated because the
original caller matches an active DTMF grammar, the transfer name
variable is filled with the value 'near_end_disconnect'.
If a bridge transfer is terminated by
the Interpreter because the 'maxtime' has expired without the
transfer being terminated, the transfer name variable is filled
with the value 'maxtime_disconnect'.
Upon termination of bridge transfer,
the shadow variable 'name$.duration' (where name is the name attribute
of the transfer element) is set to the number of seconds from
the time the destination entity was connected to and the transfer
was terminated.
Upon termination of bridge transfer due
to the caller matching an active speech grammar ('near_end_disconnect'),
the 'name$.inputmode' shadow variable is set to 'voice'.
Upon termination of bridge transfer due
to the caller matching an active DTMF grammar ('near_end_disconnect'),
the 'name$.inputmode' shadow variable is set to 'dtmf'.
Upon termination of a bridge transfer
due to the caller matching an active speech grammar ('near_end_disconnect'),
the 'name$.utterance' shadow variable is set to utterance text.
session.connection.redirect returns an
array representing the connection redirection paths. The first
element is the original called number, the last element is the
last redirected number. Each element of the array contains a uri,
pi (presentation information), si (screening information), and
reason property. The reason property can be either "unknown",
"user busy", "no reply", "deflection during alerting", "deflection
immediate response", "mobile subscriber not reachable".
session.connection.originator returns
the local or remote property. (For instance, the following ECMAScript
would return true if the remote party initiated the connection:
var caller_initiate = connection.originator == connection.remote;
A bridged transfer can contain DTMF grammars
such that the interpreter listens to the original caller for the
duration of the transfer, terminating the transfer as soon as
DTMF input matches an active DTMF grammar.
The form item 'object' has a guard condition
specified with the cond attribute. A form item is visited if it
is not filled and its cond is not specified or evaluates, after
conversion to boolean, to true.
The input item transfer may contain the
filled element. Filled elements contain an action to execute after
the result input item variable is filled in.
Upon termination of a bridged transfer
due to the caller matching an active DTMF grammar ('near_end_disconnect'),
application.lastresult$ is assigned to the DTMF result.
Upon termination of a bridged transfer
due to the caller matching an active speech grammar ('near_end_disconnect'),
application.lastresult$.utterance is assigned the same value as
the transfer's utterance shadow.
If a bridged transfer is terminated due
to a reason other than the caller matching an active speech or
DTMF grammar ('near_end_disconnect'), application.lastresult$
is undefined.
When the accept attribute of an option
element is set to "approximate", the user may say a subphrase
of the specified PCDATA for the option to be selected.
If the caller has insufficient permission
to perform a call transfer (e.g. not allowed to make long distance
calls, not permitted to make any transfers, etc.), destination
URL is malformed, a error.connection.noauthorization error is
thrown.
The name (session.connection.protocol.name)
also represents the subobject name for protocol specific information.
For instance, if session.connection.protocol.name is 'q931', session.connection.protocol.q931.uui
might specify the user-to-user information property of the connection.
An application root document's
variables are defined and reachable via the application
scope upon the loading of a document that specifies it
as the application root.
An application root document's
variables are no longer reachable from the application
scope when the user transitions to a document not in that
application.
A user can direct interpretation
in scenarios where grammars outside the current dialog
are active, by matching one of these grammars, at which
point execution transitions to the dialog containing the
matched grammar.
The value of xml:lang must be
inherited down the document hierarchy by elements which
also define the xml:lang attribute and do not have an
alternative value.
When transitioning between two
leaf documents that both specify the same application
fully resolved URI then the transition must preserve the
application root document's variables for use by the second
leaf document.
A transition from an application
leaf document to its own application root document caused
by a 'goto' must preserve the application root document's
variables for use by the root document.
If a transition occurs as the
result of a submit between an application leaf document
and its own application root document the application
root document's variables must be re-initialized.
If a transition occurs from an
application root document to a different application root
document it must initialize the new application root document
and use the new application root document's variables.
A form may contain form items,
which are subdivided into input items ( <field>,
<record>, <transfer>, <object>, <subdialog>)
and control items (<block> and <initial>).
The value of the name attribute
of a form item defines a dialog-scoped variable that holds
the value of the form item, i.e., dialog.name is a reference
to the form item variable.
For all types of form item, if
the form item is assigned a value, that form item is not
eligible to be visited by the FIA (unless/until it is
subsequently set to undefined).
Using the clear tag on a form
item variable will make it eligible to be visited by the
FIA (provided that it does not have a cond attribute evaluating
to false).
If the last main FIA loop did
not result in a goto nextitem and there is no form item
which is eligible to be visited then an implicit exit
is generated.
If an event handler, executed
after an event is thrown while processing a form item,
transfers control with a <goto> or <submit>,
the FIA resumes in the new form at the initialisation
phase.
If an event handler, executed
after an event is thrown while processing a form item,
does not transfer control with a <goto> or <submit>
the FIA resumes in the current form at the selection phase.
If an event is thrown during
the execution of a <filled>, event handler selection
starts in the scope of the <filled>, which could
be a form item or the form itself, and then proceeds outward
by enclosing dialog scopes.
If a menu's scope attribute is
set to "document", the menu's grammars are active over
the whole document (or if the menu is in the application
root document, any loaded document in the application).
If a menu's dtmf attribute is
set to "true", the first nine choices that have not explicitly
specified a value for the dtmf attribute are given the
implicit ones "1", "2", etc. Remaining choices that have
not explicitly specified a value for the dtmf attribute
will not be assigned DTMF values (and thus cannot be matched
via a DTMF keypress).
When the accept attribute of
choice is set to "exact", or is not set and the accept
attribute of its enclosing menu is set to "exact", or
neither choice's accept attribute nor menu's is set, then
the text of the choice element defines the exact phrase
to be recognized. The user must say the entire phrase
in the same order in which it occurs in the choice element
phrase for matching this element.
The messageexpr attribute is
an ECMAScript expression evaluating to the variable _message
inside the catch element which catches the event being
thrown.
If the event handler called after
matching a choice with an event or eventexpr attribute
does not cause the interpreter to exit or transition control,
then the FIA will clear the form item variable of the
menu's anonymous field, causing the menu to be executed
again.
If the form item is initialized
to a value via evaluation of the expr attribute, the form
item will not be visited unless the form item variable
is cleared.
If the slot attribute is absent,
the interpreter uses the value associated with the name
attribute of the field to map the grammar slot to the
form item variable.
The field element exposes a shadow
variables named confidence, utterance, inputmode, and
interpretation. The values of the utterance and inputmode
shadow variables correspond to the values of the corresponding
properties of the first object in the application-scoped
lastresult$ array.
The confidence shadow variable
is the confidence level for the name field of this interpretation
and may range from 0.0-1.0. A value of 0.0 indicates minimum
confidence, and a value of 1.0 indicates maximum confidence.
When the accept attribute of
an option element is set to "exact", the PCDATA of the
option defines the exact phrase to be recognized for the
option to be selected.
The variables passed to the subdialog
via the <param> element are accessible as variables
within the dialog scope of the invoked subdialog. A <param>
overrides the corresponding <var> expr attribute
which is ignored.
The interpreter throws error.badfetch
after the specified fetchtimeout when the URL associated
with the src or srcexpr attribute points to a non-existent
resource.
The variable associated with
the name attribute of the record element can be submitted
via the namelist of the submit element. The submitted
audio is valid.
If the dtmfterm attribute is
true, and the user terminates the recording by pressing
a DTMF key which doesn't match any active DTMF grammar,
then the name$.termchar shadow variable is set to the
key pressed.