XML has become the lingua franca of Internet applications. It is an open specification endorsed by the World Wide Web Consortium, very easy to customize and is text-based, hence understood by all types of computers, browsers and applications.
As the application development community adopted XML it was inevitable that XML would be used as the basis for describing telephony and speech applications. VoiceXML emerged as the first widely accepted XML schema for defining caller interaction in the interactive voice response arena. VoiceXML lets developers define what audio prompts are played to callers when a call is received and accept input in the form of tones or speech to let the caller interact with the application.
While VoiceXML provides an excellent means of defining caller dialogs in a standard way, the functionality to interface with VoIP networks was left to the discretion of the VoiceXML platform implementer. But applications need the ability to control interaction with the caller and the call itself. Call Control XML (CCXML) fills this gap in the standards for telephone-based voice applications.
CCXML complements the VoiceXML interpreter by adding telephone call control capabilities to the platform. Together, CCXML and VoiceXML make it possible to develop completely open-standards-based voice applications. The CCXML specification is at the last-call, working draft stage of Version 1.0.
The CCXML specification defines an XML schema that provides capabilities to receive inbound calls (including intermediate call-processing events), make outbound calls (including call-progress analysis) and create conference calls.
Similar to the VoiceXML system architecture, CCXML applications are deployed on an application server and are accessed as URLs, mostly via HTTP. The CCXML interpreter is generally a component of the platform or media server, as is the VoiceXML interpreter. Application provisioning and run-time management is performed through administration interfaces to the platform or media server.
Each CCXML application is associated with a CCXML session and can control several calls and dialog (VoiceXML) applications. CCXML sessions may exist independent of calls and a single session may receive inbound calls as well as make outbound calls.
CCXML’s principal features are:
• Provides session management functions to create and destroy sessions.
• Receives connection state events notifying the application of incoming calls and can access information related to the call.
• Initiates outbound calls and reports connection states.
• Can create conferences and add or remove calls to/from the conferences.
• Can merge or bridge calls in the telephone network.
• Can transfer or redirect calls to a different termination point.
• Can pass and retrieve control to/from VoiceXML applications, enabling voice dialog execution on any call.
• Can execute embedded ECMAscript within the application.
In summary, CCXML is the language that defines call control operations on telephone or VoIP networks for voice applications. CCXML complements VoiceXML and lets developers create voice applications that are completely based on open standards.
Sawai is Vice President of Research and Development at Envox Worldwide. He can be reached at sanjeev.sawai@envox.com.




