Supported VoiceXML Elements

You can use only the supported VoiceXML elements and attributes. They are listed in the table below.

Note: If you import a VoiceXML application that includes other than supported elements, they are removed during import. Import does not check if the VoiceXML is logically sound after removing those elements.

The elements callout, connect, customstate, error, setextradata, setlanguage, setobcallresult, setpriority, setrecordingconsent, setskills, soap and timeout are specific to Sinch Contact Pro, they are extensions to the VoiceXML standard. Other elements also have Sinch Contact Pro-specific attributes. Those specific elements and attributes are marked in VoiceXML documents with the prefix bcm:.

Only block, callout, customstate, form, menu, noinput, nomatch, setextradata, setlanguage, setpriority, setrecordingconsent, setskills, soap, and var elements can be placed directly to the VoiceXML document. Others can be child elements to these parent elements, or their child elements, only. All parent and child elements are listed in the table below.

In the table, links in the element names provide more specific information about the element. For general instructions about element attributes, see Element Attributes.

* = The element is specific to Sinch Contact Pro, not part of the VoiceXML standard.

Table 1. Supported VoiceXML Elements

Element

Description

Parent Elements

VXML refers to main level in VoiceXML document

Child Elements

assign

Assigns a value to a variable.

block, error, filled, if, noinput, nomatch, timeout

-

audio

Plays audio files in the IVR application.

block, choice, error, field, filled, if, menu, noinput, nomatch, record, timeout, transfer

-

block

A container element for executable content that executes if the condition of the block equals to true.

form, vxml

assign, audio, callout, clear, customstate, disconnect, exit, goto, if, log, prompt, setlanguage, setpriority, setskills, soap, var

callout *

Creates a new call to another destination, joining the original call and the new call together. Call control is returned to the IVR after the new call terminates.

block, filled, form, if, noinput, nomatch, vxml

error, timeout

choice

Defines a menu item.

menu

-

clear

Resets the selected element's value, or if no elements are selected, the fields in the form element it is placed in.

block, error, filled, if, noinput, nomatch, timeout

-

connect *

Connects the call. Used in early queuing IVRs.

block, error, filled, nomatch, timeout

-

customstate *

Calls a Python customizer. To manage customizers in the system, see Managing Customizers for IVRs

block, error, form, if, timeout, vxml

error, timeout

disconnect

Disconnects the call.

block, error, filled, nomatch, timeout

-

else

Is used as the final logic constructor in an array of conditional statements, and its content is executed when all earlier conditional statements evaluate to false.

if

-

elseif

Is used to specify additional content when all other conditional statements in an array of conditional statements evaluate to false. The application will execute the first conditional statement that evaluates to true.

if

-

error *

Is used with the soap and customstateelements. It allows assigning event handlers when a query fails with an error.

callout, customstate, soap

assign, audio, callout, clear, customstate, disconnect, exit, goto, if, log, prompt, setlanguage, setpriority, setskills, soap, var

exit

Exits the IVR application.

Note: Make sure the call knows where to go after exiting, for example, in opt-in IVRs it returns to original queue. To finish the call, use the disconnect element.

block, error, filled, if, noinput, nomatch, timeout

-

field

Allows IVR applications to collect information from users.

form

audio, filled, log, noinput, nomatch, prompt

filled

Checks if there is caller input in field or record elements.

form, field, record

assign, audio, callout, clear, disconnect, exit, goto, if, log, prompt, setlanguage, setpriority, setskills, var

form

Acts as a container for all field items, and for all control items.

vxml

block, callout, customstate, field, filled, noinput, nomatch, record, soap, transfer, var

goto

Is used to transfer application execution to a specific element in current VXML document.

block, error, filled, if, noinput, nomatch, timeout

-

if

Specifies conditional statements that allow choosing different options based on, for example, variable values.

block, error, filled, if, noinput, nomatch, timeout

assign, audio, callout, clear, customstate, else, elseif, exit, goto, if, log, prompt, setlanguage, setprioroty, setskills, soap, var

log

Allows writing messages to CEM log.

block, error, field, filled, if, nomatch, timeout

-

menu

Enables building a DTMF controlled menu with a maximum of 12 menu items.

vxml

audio, choice, noinput, nomatch, prompt

noinput

Handles situations when the IVR application expects DTMF input from the caller, but has received none.

field, form, menu, transfer, record, vxml

assign, audio, clear, exit, goto, if

nomatch

Handles situations when the caller inputs a value that is not recognized by the IVR application.

field, form, menu, transfer, vxml

assign, audio, clear, disconnect, exit, goto, if, log, var

prompt

Enables building audio messages that include numerical information, such as cardinal and ordinal numbers, dates, and times. Requires the say-as child element.

block, error, field, filled, if, menu, record, timeout, transfer

say-as

record

Enables the audio recording of the call.

form

audio, filled, noinput, nomatch, prompt

say-as

Spells numerical information as string of numbers, cardinal numbers, ordinal numbers, dates, times, and date-times. Requires the value child element.

prompt

value

setextradata *

Allows attaching extra data to the call. Typically it is used in opt-in IVRs to attach the survey IVR number to the call and thus connect the call to the right survey. Expression can be a Python statement, or a number.

block, error, if, noinput, nomatch, timeout, vxml

-

setlanguage *

Sets the call language, that is, selects one of the supported languages and passes this selection to a queue or application where the call is transferred to. If the call language is not set, the system language is used.

block, error, filled, if, nomatch, noinput, timeout, vxml

-

setobcallresult *

Sets the call result for an Outbound campaign call

block,filled, if, nomatch, noinput

-

setpriority *

Allows setting the call priority expression. Expression can be a Python statement, or a number.

block, error, filled, if, noinput, nomatch, timeout, vxml

-

Setrecordingconsent Element *

Enables saving the customer consent in the database for later use.

block, error, filled, if, noinput, nomatch, timeout, vxml

-

setskills *

Allows setting skill requirements for the call.

block, error, filled, if, noinput, nomatch, timeout, vxml

-

soap *

Is used to fetch data from external data sources by using the SOAP protocol.

block, error, form, if, timeout, vxml

error, timeout

timeout *

Is used with the soap and customstate elements. It allows assigning event handlers when a SOAP query times out.

callout, customstate, soap

assign, audio, callout, clear, customstate, disconnect, exit, goto, if, log, prompt, setlanguage, setpriority, setskills, soap, var

transfer

Transfers caller to another destination, such as a queue, or another IVR application.

form

audio, filled, noinput, nomatch, prompt

value

Defines the numerical value used in the say-as element.

say-as

-

var

Sets a VoiceXML variable within the scope specified by its parent element.

block, error, filled, form, if, nomatch, timeout, vxml

-