The <accept> element is used to explicitly accept and connect an incoming phone call
The <assign> element updates a local variable, (originally instantiated using the <var> element), with a new ECMAScript value.
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 <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.
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.
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 <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 <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.
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.
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 <disconnect> element is used to disconnect a specific call leg. When encountered, the <disconnect> element will send the 'connection.CONNECTION_DISCONNECTED' asynchronous event to the CCXML document when the operation has completed.
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 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’.
The <eventhandler> element is the main parent element for the <transition> tag. Both of these in conjunction serve as the main event handling elements, (or state machine) of a CCXML document. Events received can be in response to a previous programmatic CCXML action, or they may be generated by an external source, (such as when an incoming call is received and needs to be answered). Additionally, user-defined events can be thrown via the <send> element.
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.
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 <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 <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 <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 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 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 delivered to that thread's currently executing CCXML document.
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 <redirect> tag will redirect an incoming phone call to the specified destination telephony address URL. This URL can be a VOIP endpoint, another phone number, etc. Note that this element is unsupported at this time.
The <reject> tag is an element used for call authentication, in most cases. When encountered the CCXML document will reject an incoming phone call. Rejected phone calls will go unanswered and may return a fast busy to the caller.
Not Enabled, (see below) A <script> element may occur in a <ccxml> element and in executable content. <transition> elements and <if> elements contain executable content.
The <send> element allows a developer to direct user-defined events to the CCXML document. Note that all user-defined events must be prefixed by 'user.', for instance: <send name="'MyName'" event="user.MyEvent" target=" 'SomePage.xml' "/>
The <transition> element is used to catch incoming asynchronous events. The first <transition> element encountered in the document order that matches up with a specific event will be the first one executed by the CCXML interpreter.
The <unjoin> element is used to disconnect two audio endpoints which were previously connected with the <join> element.
The <var> element is used to explicitly declare CCXML variables. All expressions must be valid ECMAScript expressions, assignable to variables with valid ECMAScript names.
The 'sendemail' tag is a new extension element to Voxeo's arsenal of CCXML coolness. This tag allows you to programmatically send an email to a user specified destination. Additionally, this new element also allows you to output debugging information in the body of the email, which is a very useful 'watchdog' feature that allows you to be alerted via email whenever errors are encountered within the application. Also note that the 'xmlns:voxeo' attribute must be declared and mapped to the proper voxeo namespace, (see the 'ccxml' element listing for details).