CCXML 1.0-W3C Development GuideHome  |  Frameset Home

Element Summary

ElementsAttributesParentsChildren
acceptconnectionid, hintsnonenone
assignexpr, namenonenone
authenticatepassword, server, useridnonenone
cancelsendidnonenone
ccxmlversion, xml:base, xmlns, xmlns:voxeononechildren
createcalldest, aai, callerid, connectionid, hints, joindirection, joinid, timeout, voxeo-answer-on-media, voxeo-cpa-maskevent, voxeo-cpa-maskstop, voxeo-cpa-maxsilence, voxeo-cpa-maxtime, voxeo-cpa-runtime, voxeo-cpa-versionnonenone
createccxmlenctype, maxage, maxstale, method, namelist, next, sessionid, timeoutnonenone
createconferenceconferenceid, confname, hints, reservedlisteners, reservedtalkersnonenone
destroyconferenceconferenceid, hintsnonenone
dialogprepareconferenceid, connectionid, dialogid, enctype, hints, maxage, maxstale, mediadirection, method, namelist, parameters, src, typenonenone
dialogstartconferenceid, connectionid, dialogid, enctype, hints, maxage, maxstale, mediadirection, method, namelist, parameters, prepareddialogid, src, typenonenone
dialogterminatedialogid, hints, immediatenonenone
disconnectconnectionid, hints, reasonnonenone
elsenonenonenone
elseifcondnonenone
eventprocessorstatevariablenonenone
exitexpr, namelistnonenone
fetchenctype, fetchid, maxage, maxstale, method, namelist, next, timeout, typenonenone
foreachcond, item, name, objectnonenone
gotofetchidnonenone
ifcondnonenone
joindtmfclamp, duplex, entertone, exittone, hints, id1, id2, toneclamp, voxeo-termdigitsnonenone
logexpr, labelnonenone
mergeconnectionid1, connectionid2, hintsnonenone
metacontent, http-equiv, namenonenone
metadatanonenonenone
moveevent, sessionid, sourcenonenone
redirectdest, hints, reasonnonenone
rejectconnectionid, hints, reasonnonenone
scriptfetchid, maxage, maxstale, src, timeoutnonenone
senddelay, hints, name, namelist, sendid, target, targettypenonenone
transitioncond, event, name, stateparentschildren
unjoinhints, id1, id2nonenone
varexpr, namenonenone
voxeo:sendemailbody, from, to, typenonenone
The connectionid attribute allows the developer to specify an ECMAScript expression whose string value serves as the identifier of a connection on which the incoming call is signalled. If this value is unspecified, then the CCXML interpreter will use the id value of the current event being processed. If the attribute value is invalid or there is no valid default value, an error.semantic event will be thrown.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
The <accept> element is used to explicitly accept and connect an incoming phone call
The expr attribute specifies the value to assign to the variable in question. This may be any valid ECMAScript value.
is the name of the variable to assign a value / expression to.
The <assign> element updates a local variable, (originally instantiated using the <var> element), with a new ECMAScript value.
Not Enabled
The password attribute is an ECMAScript expression that denotes what password will be used for authentication with the Voxeo CCXML platform.
Not Enabled
The server attribute simply designates an ECMAScript expression that defines the server to authenticate with. The value for this may be in URI format, or may contain an IP address with an optional port ID.
Not Enabled
The userid attribute is an ECMAScript expression which defines what userid that the script will use to authenticate with the platform.
Not Enabled

The <authenticate> element is used to determine whether the Voxeo CCXML platform is to trust the webserver serving up the CCXML document itself. The attributes of this element contain the login credentials needed to be validated by the hosting platform. At this time, the requirement of having an <authenticate> tag within the CCXML document is not required, but this may change in the future.
The sendid attribute denotes an ECMAScript expression evaluating to the event identifier of the <send> command that is to be cancelled.

The <cancel> element provides a quite useful method of stopping a CCXML event timer, (such as an event that is in a pending state from a <send> directive that has a delay specified. When executed, this element will remove any pending event from the event queue of the invoking CCXML session in question. Note that if a delay timer has already expired when this element is fired off, an error.notallowed will be thrown to the event queue instead. Also be aware that this 'cancel' event can be sent to a local, or even a remote CCXML session.
The version of this CCXML document (required). The only allowable version number is 1.0.
The URI value of the xml:base attribute denotes the base URL of the document. All relative URI’s contained in the document are derived from the base attributes value. If unspecified, then the platform assumes that the current URI is the value of the xml:base attribute.
The xmlns attribute defines the CCXML namespace; all tags and attributes belong to this namespace.
This attribute defines the XML namespace for any extension elements. This attribute is only required when a developer is using a voxeo-specific CCXML element extension, (such as 'voxeo:sendemail'). The only allowable value for this attribute is 'http://community.voxeo.com/xmlns/ccxml'
eventprocessor, var
The <ccxml> element is the parent tag of any CCXML document, which encloses the entire contents of the document. Any child elements are executed in document order before the target <eventhandler> elements are reached in the document initialization.
This attribute indicates the telephone URL which evaluates to the target for the outbound call. Not specifying this element will certainly cause a fatal, application-stopping error.
The aai attribute is populated with Application-to-Application Information from the call endpoint when the initial connection is successfully made.

Note: this attribute is non-functional on the Voxeo hosted IVR network due to telco restricions.
The callerid attribute is used for specifying a callerid value that will be sent to the destination of the outbound call.

The voxeo platform follows the RFC's for both 'telephone' and 'sip' values, (RFC2806and RFC3261, respectively):

<createcall callerid="'tel:+18002223333'"...> (absolute syntax)
<createcall callerid="'tel:18002223333'"...> (exact syntax)
<createcall callerid="'sip:xxx.xxx.xxx.xxx'" ...> (sip address)
The required connectionid attribute of the <createcall> element defines an ECMAScript expression that evaluates to a previously defined variable. The value of this variable is required to receive the identifier of the connection on which the outgoing call is attempted.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
Unsupported Attribute
The joindirection attribute defines the media flow direction between a newly created connection and a pre-existing connection/conference/dialogid that is referenced by the joinid attribute.
Allowable values and their descriptions are:
  • both: Specifes a full duplex connection where the media flows in both directions.
  • calltransmit: The new connection transmits media to the referenced connection/conference/dialog but does not receive any media streams.
  • dialogreceive: The new connection receives media from the referenced connection/conference/dialog but does not transmit any media streams.
Unsupported Attribute
The joinid attribute allows the developer to specify an ECMAScript expression that serves as an identifier to a conference/connection/dialog ID that the new call will be joined to.

At the time of this writing, this attribute is entirely unsupported on the Voxeo CCXML 1.0 platform, but we do plan on deploying full support for this feature in the coming months. When this does happen, announcements will be made in our public forums, and Voxeo newsletter. An existing methodology to work around this limitation is to simply workaround is to perform the <join> after the call is established, (call is in a "connection.connected" state).


The timeout attribute specifies the amount of time to allow the call attempt to be made. If the call is not answered by the end of the duration of the maxtime attribute, then a 'connection.failed' event will be returned.
Determines when audio passes from second call leg to the first. If set to "TRUE," this will pass audio back to the originating call leg upon the first instance of media. In practice, this will typically mean the caller hears the standard "telephone ring" as if they had picked up a normal telephone and dialed the number. If set to "FALSE," there will be silence until an actual answer or callfailure is achieved.

Note that this attribute is primarily used to detect that a phone has been answered in the event that the destination number does not send back the proper ISDN signal upon pickup, (common to some 800 numbers).
The 'cpa-maskevent' parameter lists the CPA results that should throw an event.  This assures that only desired results, important to your specific application, will be acknowledged.  The value for this parameter should be a comma-separated list, any combination of the following:

  • human
  • machine
  • beep
  • modem
  • faxtone
  • sit
The 'cpa-maskstop' parameter lists the CPA results that, when received, will simply stop CPA from listening for further events. The value for this parameter should be a comma-separated list, any combination of the following:

  • human
  • machine
  • beep
  • modem
  • faxtone
  • sit
The 'cpa-maxsilence' parameter is used to identify the end of voice activity.  When activity begins, CPA will measure the duration until a period of silence greater than the value of 'cpa-maxsilence' is detected.  Armed with start and end timestamps, CPA can then calculate the total duration of voice activity.  A value of 800 to 1200ms is suggested for this parameter.
The 'cpa-maxtime' parameter is the "measuring stick" used to determine 'human' or 'machine' events.  If the duration of voice activity is less than the value of 'cpa-maxtime', the called party is considered to be 'human.'  If voice activity exceeds the 'cpa-maxtime' value, your application has likely called a 'machine.'  The recommended value for this parameter is between 4000 and 6000ms.
The 'cpa-runtime' parameter specifies the maximum amount of time CPA should listen for events.  If the 'runtime' exprires, CPA will return an "unknown" result.  Therefore, 'cpa-runtime' should always be longer than the average answering machine outgoing message.  We recommend a value of at least 15000-20000ms.
This parameter is optional.  The current CPA version is "2.0."
The <createcall> element is used for initiating a bridged transfer to the single outbound destination specified in the dest attribute. The tag is a 'fire and forget' element, meaning that the CCXML document is free to perform other tasks while the call is performed.  When the call attempt has been completed, either sucessfully or unsucessfully, an asynchronous event is sent back to the document, which can be caught via the <transition> element, thus allowing the developer to conference the call, or initiate a VXML dialog with the called party, etc.

Note: This tutorial requires the use of outbound dialing priveleges, which must be provisioned by voxeo support. If you have not contacted us to get these permissions, click here to learn how you can get hooked up with this feature.

enctype specifies an ECMAScript string expression that denotes the media encoding type of the submitted document, (when the POST method is used). The only allowable value of this attribute is 'application/x-www-form-urlencoded', which specifies that the indicates that the variables in the namelist attribute must be url-encoded.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
The method attribute specifies the HTTP method to use when sending the request. If unspecified, then the value of ‘GET’, (default) is assumed, unless the submission of multipart/form-data is encountered, in which case the implied method will be ‘POST’.
The namelist attribute denotes the space-separated list of variable names to be sent along with the fetch. The variables will then be available as a variable/value pair in the resultant URI querystring that is sent to the server.
This attribute simply indicates the URI of the XML document to be fetched.
The sessionid attribute is an expression resolving to a platform-defined unique identifier that denotes the newly-instantiated thread of control.
The timeout attribute specifies the amount of time to allow the fetch attempt to be made, specified by the next attribute value. If the new CCXML session is unable to fetch the initial document within the timeout interval denoted, then an error.fetch event will be thrown.

The <createccxml> element is used to spawn another thread of control, which begins execution with the document identified by this element. This thread of control provides independent execution and an entirely separate variable space for the CCXML documents that it executes. Such independent threads are associated with one or more event endpoints; such endpoints are the only things capable of sending events to these independent threads of execution.Note that the new thread of execution has an entirely separate address space and lifetime.
The conferenceid attribute evaluates to a pre-defined ECMAScript variable, which is required in order to receive the URI-formatted conference identifier. This identifier must be unique, (as conferences are globally scoped), and is a required attrbute of the <createconference> element.
confname evaluates to a ECMAScript string value that is the name of the conference. This attribute value defines the conference identifier that is returned via the conferenceid attribute. In the event that the conference specified does not already exist, then the CCXML platform produces a new conference object and then returns the conference identifier back to the variable denoted in the conferenceid attribute. If a conference is already is in existence, then the CCXML platform will return the conference identifier of the original conference.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
Unsupported Attribute

The reservedlisteners attribute allows the developer to specify an ECMAScript expression that returns the number of guaranteed listener slots that the conference mixer is to reserve. In the event that a conference already exists, then this attribute will be ignored. Should the conference mixer be unable to reserve the amount of listener slots requested, then the <createconference> will fail with a error.conference.create event being thrown.
Unsupported Attribute The reservedtalkers attribute allows the developer to specify an ECMAScript expression that returns the number of guaranteed talker slots that the conference mixer is to reserve. In the event that a conference already exists, then this attribute will be ignored. Should the conference mixer be unable to reserve the amount of talker slots requested, then the <createconference> will fail with a error.conference.create event being thrown.
The <createconference> element is used to create a conferencing object, which is then used to create multi-party conferences. Once this has been created, the CCXML document can then add call legs (using the <join> element), subtract call legs, (using the <unjoin> element) form the conference, or bring down the conference object entirely, (using the <destroyconference> element). Note that any of the above operations will send an asynchronous event to the invoking CCXML document upon completion.
The conferenceid attribute defines the ECMAScript string value that is the identifier of the target conference to be destroyed. If the attribute value is invalid, then an error.semantic event will be thrown to the CCXML interpreter.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
The <destroyconferenece> element is used to tear down a conference object that was instatiated using the <createconference> element. Upon completion of this operation, an asynchronous event will be sent to the CCXML document notifying the application that the conference has indeed been destroyed.
Unsupported Attribute
The conferenceid attribute is used to define an ECMAScript identifier of a particular conference bridge. If neither the connectionid or conferenceid is defined, and the dialog had not previously been prepared, the interpreter will deafult to the 'id' indicated in the current event that is being processed. Note that if connectionid and conferenceid are both specified, an error.fetch event must be thrown.
The connectionid attribute is used within the context of the <dialogprepare> element as an ECMAScript expression that returns the identifier of a connection. It is required that the connection denoted in this attribute be associated with the dialog being prepared. Also note that either connectionid or confereceid may be specified, but not both.

The dialogid attribute is used to reference a predefined value that equates to the dialog identifier value for the dialog to be launched.
enctype specifies an ECMAScript string expression that denotes the media encoding type of the submitted document, (when the POST method is used). The only allowable value of this attribute is 'application/x-www-form-urlencoded', which specifies that the indicates that the variables in the namelist attribute must be url-encoded.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
Unsupported Attribute

The mediadirection attribute specifies the media flow direction between the dialog and connection, (or conference)
  • bothSpecifies a full duplex connection where the media flows in both directions.

  • dialogtransmit: The dialog transmits media to the Connection or Conference but does not receive any media streams.

  • dialogreceive:The dialog receives media from the Connection or Conference but does not transmit any media streams.

The method attribute specifies the HTTP method to use when sending the request. If unspecified, then the value of ‘GET’, (default) is assumed, unless the submission of multipart/form-data is encountered, in which case the implied method will be ‘POST’.
The namelist attribute denotes the space-separated list of variable names to be sent along with the fetch. The variables will then be available as a variable/value pair in the resultant URI querystring that is sent to the server.
The parameters attribute specifies a listing of whitespace delimited CCXML variable names which will be sent to the dialog target as a listing of variable/value pairs. Note that these values are formed by converting the referenced ECMAScript variable to string form.
The src attribute indicates the URL of the VoiceXML dialog to be started. Also note that with the Voxeo dialog extensions, this can also be used to indicate playable audio files or dtmf tones to be output. In addition, this can also hold the value of a TTS string, and/or valid dtmf termdigit entries that can be accepted from the caller. Also allowed is a URI address specifying where a recorded audio stream is to be sent. See the 'Appendix D: Dialog Extensions' section for further details of this usage.
Specifies the MIME type of the requested resource to prepare.  This value is used to determine and initiate the appropriate dialog system.

Standard Values:
  • application/voicexml+xml: Requests a VoiceXML interpreter instance.
  • audio/wav: Requests a dialog system to play a simple audio prompt.
Additional Voxeo-specific Extension Values:
(see 'Appendix D' for additional details)
  • application/x-texttospeech: Requests a dialog system to render a Text-To-Speech (TTS) prompt.
  • application/x-recordaudio: Requests a dialog system to execute a simple audio recording dialog.
  • application/x-fetchdigits: Requests a dialog system to execute a simple dialog to capture DTMF key-presses.
  • application/x-senddtmf: Requests a dialog system to render DTMF tones.
The <dialogprepare> element is used to prepare a VoiceXML dialog, or audio resource for execution via the <dialogstart> element. While the usage of this element as a precursor to a dialog exection is entirely optional, best practices dictate that this is included in CCXML front-end applications that utilize VoiceXML content for finer-grained control. Of course, the dialog will execute in a thread that is entirely seperate execution thread, and will not block the execution of CCXML events that occur during the session.

When a dialog has been successfully readied for execution, a dialog.prepared event is thrown to the CCXML application. In the event that the dialog cannot be prepared for any reason, an error.dialog.notprepared event is sent to the CCXML session.

Be aware that if the prepareddialogid attribute is specified and a conferenceid attribute was specified on the prior <dialogprepare> element, specifying a different conferenceid on the <dialogstart> element will incur an error.dialog.notstarted event being thrown to the CCXML session.
Unsupported Attribute
The conferenceid attribute is used to define an ECMAScript identifier of a particular conference bridge. If neither the connectionid or conferenceid is defined, and the dialog had not previously been prepared, the interpreter will deafult to the 'id' indicated in the current event that is being processed. Note that if connectionid and conferenceid are both specified, an error.fetch event must be thrown.
The connectionid attribute is used within the context of the <dialogprepare> element as an ECMAScript expression that returns the identifier of a connection. It is required that the connection denoted in this attribute be associated with the dialog being prepared. If this value, and the conferenceid value is left unspecified, then the CCXML interpreter will use the id value of the current event being processed. Also note that either connectionid or confereceid may be specified, but not both.

The dialogid attribute specifies the value of the session name used to identify the launched dialog. This value is used to reference dialog events, and is used as an identifier when the <dialogterminate> element is invoked.

enctype specifies an ECMAScript string expression that denotes the media encoding type of the submitted document, (when the POST method is used). The only allowable value of this attribute is 'application/x-www-form-urlencoded', which specifies that the indicates that the variables in the namelist attribute must be url-encoded.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
Unsupported Attribute

The mediadirection attribute specifies the media flow direction between the dialog and connection, (or conference)
  • bothSpecifies a full duplex connection where the media flows in both directions.

  • dialogtransmit: The dialog transmits media to the Connection or Conference but does not receive any media streams.

  • dialogreceive:The dialog receives media from the Connection or Conference but does not transmit any media streams.

The method attribute specifies the HTTP method to use when sending the request. If unspecified, then the value of ‘GET’, (default) is assumed, unless the submission of multipart/form-data is encountered, in which case the implied method will be ‘POST’.
This attribute indicates the space-separated list of variable names to be appended to the dialog URL as parameters. The variables will then be available as a variable/value pair in the resultant URI querystring that is sent to the server.
The parameters attribute specifies a listing of whitespace delimited CCXML variable names which will be sent to the dialog target as a listing of variable/value pairs. Note that these values are formed by converting the referenced ECMAScript variable to string form.
The prepredialogid attribute is used to specify an ECMAScript expression that evaluates to the dialog identifier that has been readied by way of the <dialogprepare> element. In the event that the identifier refers to an invalid dialog, or one that has already executed, then an error.dialogwrongstate event will be thrown. Also be aware that this attribute must not be specified in conjunction with the src, type or namelist attributes.
The src attribute indicates the URL of the VoiceXML dialog to be started. Also note that with the Voxeo dialog extensions, this can also be used to indicate playable audio files or dtmf tones to be output. In addition, this can also hold the value of a TTS string, and/or valid dtmf termdigit entries that can be accepted from the caller. Also allowed is a URI address specifying where a recorded audio stream is to be sent. See the 'Appendix D: Dialog Extensions' section for further details of this usage.
Specifies the MIME type of the requested resource.  This value is used to determine and initiate the appropriate dialog system.

Standard Values:
  • application/voicexml+xml: Requests a VoiceXML interpreter instance.
  • audio/wav: Requests a dialog system to play a simple audio prompt.
Additional Voxeo-specific Extension Values:
(see 'Appendix D' for additional details)
  • application/x-texttospeech: Requests a dialog system to render a Text-To-Speech (TTS) prompt.
  • application/x-recordaudio: Requests a dialog system to execute a simple audio recording dialog.
  • application/x-fetchdigits: Requests a dialog system to execute a simple dialog to capture DTMF key-presses.
  • application/x-senddtmf: Requests a dialog system to render DTMF tones.

NOTE: The type attribute should not be used in conjunction with the prepareddialogid attribute.
The <dialogstart> element is used to launch a VXML dialog and associate it with a specific call leg. Said dialog executes on an entirely separate thread of execution from the invoking CCXML document, leaving the CCXML script in control to handle incoming events.
The dialogid attribute specifies a character string identifying the dialog. This dialogid will have been generated by <dialogstart> and stored in the ECMAScript variable identified by the "dialogid" attribute.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
Set to "true" or "false" to specify if the dialog is immediately terminated.
When any VXML dialog has completed, best practices dictate that it should be 'torn down', (or, more properly, 'destroyed'). This is accomplished by using the <dialogterminate> element. When this tag is encountered and executed, a 'dialog.exit' event is returned to the CCXML layer of the application.
The connectionid attribute defines an ECMAScript expression which returns a string that is the id of a call leg that must be disconnected. If the connectionid attribute is left unspecified, then the CCXML interpreter will use the id value of the current event being processed. If the attribute value is invalid or there is no valid default value, an error.semantic event will be thrown.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
Not Enabled
The reason attribute returns a user-defined ECMAScript string indicating the reason for the call being redirected. The value returned will be a standard HTTP status code, (i.e., "500" etc).
The <disconnect> element is used to instruct the platform to disconnect a Connection.  A <disconnect> may also be used to abandon an outbound connection using <createcall> which has not yet entered the "connected" state.  If this occurs, it results in the generation of a "connection.failed" event.  If the connection was bridged when the <disconnect> request was sent, the platform must tear down all bridges to the connection, and send a conference.unjoined event to the CCXML document afterwards.
The else element is used as the final logic constructor in an array of conditional statements. The content nested within the else element will get executed when all other if and elseif  cond attributes evaluate to ‘false’.
The cond attribute specifies an ECMAScript expression which can be evaluated to 'true' or 'false'. A condition must evaluate to 'true' in order for any enclosed operations to be performed.
The elseif element is used to specify additional content when all other else or if  statements equate to ‘false’.  When a series of if-elseif-else statements are encountered, the application will execute the first one which evaluates to ‘true’.
This attribute denotes the variable name which is the <eventhandler> state variable. be aware that this variable must be defined using the <var> or the <script> element in the ccxml scope.
The <eventprocessor> element replaces the <eventhandler> that was used in previous incarnations of the CCXML specification. It is identical in all respects to the deprecated <eventhandler> element, in that it is used as a container for the <transition> elements that drive the CCXML execution. Of course, only a single instance of this element may exist within any CCXML document.
Not Enabled
The expr attribute should have an ECMAScript expression that indicating a message to be sent and caught. If unspecified, then the value returned by the expr will resolve to 'zero'.  Note that this atrribute is currently non-functional, as the Voxeo CCXML browser does not return a 'ccxml.exit' event when the <exit> element is encountered.
Not Enabled
The namelist attribute denotes the space-separated list of variable names to be sent as properties of the <exit> event. Note that this atrribute is currently non-functional, as the Voxeo CCXML browser does not return a 'ccxml.exit' event when the <exit> element is encountered.
The <exit> element is used to stop execution of a CCXML program and it's thread of control. Any and all pending events are discarded, and application termination begins immediately.
enctype specifies an ECMAScript string expression that denotes the media encoding type of the submitted document, (when the POST method is used). The only allowable value of this attribute is 'application/x-www-form-urlencoded', which specifies that the indicates that the variables in the namelist attribute must be url-encoded.
The fetchid attribute is an ECMAScript expression which receives an internally generated unique string identifier to be associated with the completion event. This identifier can be tested by the fetch completion event handler to distinguish among several outstanding fetch requests.  Every fetch request will receive a unique fetch ID, even requests for the same document.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
The maxage and maxstale attributes specify the maximum acceptable staleness, in seconds, of the resource in question. However, it is strongly advised not to rely on this attribute for cache-control; caching is always best controlled by the hosting server's response headers. If no headers are specified, then no cache control will be present, regardless of the value set for the maxage and maxstale attributes.
The method attribute specifies the HTTP method to use when sending the request. If unspecified, then the value of ‘GET’, (default) is assumed, unless the submission of multipart/form-data is encountered, in which case the implied method will be ‘POST’.
The namelist attribute denotes the space-separated list of variable names to be sent along with the fetch. The variables will then be available as a variable/value pair in the resultant URI querystring that is sent to the server.
This attribute simply indicates the URI of the XML document to be fetched.
The timeout attribute specifies the amount of time to allow the fetch attempt to be made. If the fetch is not successful by the end of the duration specified, then an error.fetch will be thrown.
The type attribute specifies the MIME type of the resource to be fetched. Allowable values are:
  • application/ccxml+xml:This specifies that the document being fetched must be a CCXML document.

  • text/ecmascript: This specifies that the fetched content must be ECMA Script.

  • text/javascript:This specifies that the fetched content must be JAVA Script.
  • text/xml+e4x:This specifies that the fetched document will contain E4X data
The <fetch> element, used in conjunction with the <goto> element, is used to transfer execution to a separate CCXML document. The <fetch> element allows for a pre-emptive fetch and parse of the target document to ensure that it is well formed and can execute before the <goto> ever executes.
The cond attribute specifies an ECMAScript expression which can be evaluated to 'true' or 'false'. A condition must evaluate to 'true' in order for any enclosed operations to be performed.


The item attribute denotes the name of the variable that stores a particular array value as it is being iterated within the loop. If this variable is not already defined, then it will be declared upon invocation of the <foreach> element and will evaluate to "item$".
The name attribute defines the name of the index that is to be refenced, (in this case, the connectionid). If undefined, this will contain a default value of "index$".
The object attribute defines the name of the array or object to enumerate by the <foreach> element; failure to specify this attribute will result in an error.semantic event being thrown.

Voxeo Extension Element
The <foreach> element is a Voxeo extension to the CCXML 1.0 specification, (which is being proposed for inclusion to the spec), that allows the developer to iterate through a set of array values, (such as the session.connections[] array). This allows a simpler shorthand than using pure ECMAScript to loop through array values.
This attribute indicates the ID of any document referenced in a fetch operation, which is gathered with the fetchid. A sucessful fetch completion additionally provides a property whose value is the fetch ID of the document being fetched.
The <goto> element, used in conjunction with the <fetch> element, is used to transfer execution to a separate CCXML document. The <fetch> element allows for a pre-emptive fetch and parse of the target document to ensure that it is well formed and can execute before the <goto> ever executes.
The cond attribute specifies an ECMAScript expression which can be evaluated to 'true' or 'false'. A condition must evaluate to 'true' in order for any enclosed operations to be performed.
The <if> element, (in conjunction with the <else/elseif> elements), provides a method to utilize conditional logic expressions which allow the developer to change the control flow within the application based on variable values, or events.
The dtmfclamp attribute provides a useful method to direct the conference mixer to remove any DTMF tones detected during the <join> operation. If set to 'true', then the mixer will then remove the DTMF tones. Conversely, if set to 'false', (or iof the attribute is left unspecified), then the DTMF tones will not be removed at all.
This attribute denotes whether parties in the conference will be able to hear the joining party. This attribute is useful for implementing an 'eavesdropping' functionality in a conferenced call. If 'half' is specified as the value, then the joined party will not be able to be heard by the rest of the parties in the conference. If set to 'full' then all parties will be able to hear the joined party. If not specified, this attribute defaults to 'full'.
The entertone is used to play a tone or custom wav file to the conference participents when another caller enters. Setting this to 'true' will play the default system beep, while setting it to 'false' will result in no alerting sound being played at all. The developer may also specfy a URL value that points to a user-defined wav file to be played instead of the default system beep. Note that this URL has a limitation of 250 characters maximum. <join id1="evt.callid" id2="smallConf" entertone="'http://MyServer.com/MySound.wav'"/>
The exittone is used to play a tone or custom wav file to the conference particapents when another caller exits. Setting this to 'true' will play the default system beep, while setting it to 'false' will result in no alerting sound being played at all. The developer may also specfy a URL value that points to a user-defined wav file to be played instead of the default system beep. Note that this URL has a limitation of 250 characters maximum. <join id1="evt.callid" id2="smallConf" voxeo-exittone="'http://MyServer.com/MySound.wav'"/>
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
This attribute indicates the first of the call leg identifiers or conference objects to <join> together in a conference.
This attribute indicates the second of two call leg identifiers or conference objects to <join> together in a conference. If both audio endpoints are call legs, then the interpreter will inherently be bridged together. However, if we have a call leg attempting to connect to a conference, (or vice-versa), then the call leg will be added into the conference automatically. Note that in the Voxeo implementation, two separate conferences maynot join together.


The toneclamp attribute defines a Boolean expression that instructs the conference mixer whether or not to remove loud single-frequency tones from the streamed audio. If set to 'true', then the mixer will remove the single-frequency tones, and if the specified value is set to 'false', then the single-frecency tones will not be removed from the audio stream.
The voxeo-termdigits attribute extension has been added to allow a user a method of disconnecting from a conference without hanging up the call. The value of this attribute specifies which DTMF key will disconnect the caller and return to the CCXML application:

<join sessionid1="evt.callid" sessionid2="smallConf" voxeo-termdigits="'2'"/>


Note that specifying a value of '@' will allow any dtmf key to be pressed to exit from the conference.

The <join> element is used to connected the audio of two "endpoints" in a CCXML script.  These endpoints can either be a conference object previously created with <createconference>, or a normal call leg object.
The expr attribute is a required parameter for the <log> element that is an ECMAscript expression evaluating to a string to be logged. This string will be output in the Voxeo Realtime Logger when the <log> element is encountered.
Not Enabled
The label attribute is an ECMAScript expression that returns a character string which is used as an identifier, or 'marker' indicating the reason for the <log> statement.
The log element allows the developer to output debug messages to the Voxeo Logger. Generous use of log statements placed within code can greatly assist when tracking variable values, and errors that occur in the application.
Unsupported Attribute
The connectionid attribute defines an ECMAScript string value that identifies the first connection to be merged. If this attribute holds an invalid value, then an error.semantic event will be thrown.
Unsupported Attribute
The connectionid attribute defines an ECMAScript string value that identifies the second connection to be merged. If this attribute holds an invalid value, then an error.semantic event will be thrown.
The hints attribute can be used to specify information used by the platform to configure the event processor. The value of this attribute should equate to an object that contains an array property of "headers"; for instance:


<script>
  var Hints = new Object();
  Hints.headers = new Object();
  Hints.headers['x-mySipHeader'] = 'hello world';
</script>


Note that 'hints.headers' stores what headers to add to the sip request, and that only headers starting with an 'x-' prefix are sent.
Unsupported Element
The <merge> element is used to bridge two connections that are in a CONNECTED state at the network level, (severing the connections to the CCXML platform associated with those calls). If a <merge> operation fails for any reason, then a single error.merge event will be thrown which identifies both of the connections against which the merge was performed.

Note that while this element is currently unsupported on the Voxeo platform, this is planned for inclusion on our network at a later date. When this feature is made available, announcements will be posted to the Prophecy User Forums, and via our Voxeo Developer Newsletter.
The content attribute specifies the value of the metadata property.
The http-equiv attribute specifies the name of the HTTP response header that should be honored for a specified VoiceXML document. Note that this will not affect the caching of vxml documents on the platform; caching should be controlled at the server level, as detailed in the caching tutorial.
The name attribute specifies the name of the meta-data property. The more commonly used properties are:
  • Author: information about the author
  • Copyright: copyright information
  • Description: description of the document for search engines
  • Keywords: keywords describing the document
  • Maintainer: document maintainer’s email address
  • Robots: directives to search engine robots
The meta element functions in CCXML 1.0 as it does in HTML. It denotes meta information about the document, and its http headers. Note that cache-control is ignored; see our documentation on caching, and how to control it.
This container element is used to allow the developer to specify information about the CCXML document for reference. Per the CCXML 1.0 specification, it is recommended that the Resource Description Format [RDF] be used in conjunction with the general metadata properties defined by the Dublin Core Metadata Initiative [DC].
The event attribute specifies the event object to be sent to the target session to provide notifaction. The event endpoint may also be sent along with the event, if any.


The sessionid attribute indicates the thread of control to which the endpoint will be added.
The source attribute specifies an ECMAScript expression which evaluates to a connectionID or dialogID. The event source that is associated with the identifier is then moved to the target specified in the sessionid attribute. source or event must be specified when using this element, (bot not both!), else an error.fetch event will be thrown. If the attribute holds an invalid value, then an error.semantic event will be thrown.
Unsupported Element
The <move> tag is used to add an event endpoint to an executing CCXML thread of control.  When an endpoint is added to a thread of control, events originating from that endpoint will be d