Using Call Control XML (CCXML) as a SIP Softswitch
By RJ Auburn
Introduction
CCXML is a sibling standard to VoiceXML, designed to facilitate enhanced call control capabilities in both VoiceXML platforms and in call control platforms that have no relationship to or with VoiceXML. CCXML gives both VoiceXML and non-VoiceXML telephony developers alike the ability to quickly create and deploy telephony applications that make use of enhanced call routing, multiparty call conferencing, outbound dialing, intelligent call progress analysis, call center / Computer Telephony Integration (CTI), and more.
Over the last few years, developers have increasingly used CCXML to add robust call control features to their telephony applications. In parallel, over the last few years Voice over IP – and more specifically SIP Voice over IP - has found widespread acceptance and deployment in everything from long distance networks to enterprise call centers and consumer telephony services like Vonage and AT&T’s CallVantage. SIP has even conquered the world of cell phones: many of the proposed third generation (“3g”) cellular telephony standards are in fact SIP signaling over cellular data networks.
As both SIP and CCXML technologies are finding rapid adoption by carriers, enterprises, and consumers, many in the industry have wondered how these technologies work together in next generation telephony deployments. Are they competitive or complimentary? Do they work well together? What advantages or disadvantages result from a combination of both? This article will address many of those questions by showing how CCXML can be used to implement an extensible SIP Softswitch.
CCXML Overview
Traditionally, Call Control has required interaction with and understanding of telephony API's which often change from one platform to another.
CCXML is the "Call Control eXtensible Markup Language". It is an XML based language that can control the setup, monitoring, conferencing, routing, and tear down of phone calls. CCXML allows the industry to leverage the strength of Web platforms and technologies to intelligently control calls on, and off any telephone network. Additionally, CCXML delivers a high-level industry standard for Call Control that can run over any telephony platform.
CCXML is composed of two distinct components: 1: A state machine and event based execution environment; and 2: A set of protocol independent call control primitives and events. By combining these two components, you can deliver a very robust platform for voice and call control applications. CCXML also includes an extensible Event I/O processor model which facilitates easy integration with external systems such as call center CTI platforms, asynchronous event sources, back-end databases, and enterprise messaging platforms.
I have previously written in-depth introductions to CCXML in the March 2002 (https://voicexmlreview.org/Mar2002/features/ccxml.html) and April 2004 (https://voicexmlreview.org/Apr2004/features/ccxml.html) editions of the VoiceXML Review. If you have not already read them I suggest taking a few moments to do so as they will help get you up to speed on the basics of CCXML.
In figure 1 below we see how a CCXML platform can be used in a VoiceXML and SIP environment. In this environment CCXML works as a SIP “Back to Back User Agent” that employs SIP-based call control both towards callers and towards network resources such as VoiceXML browsers and conferencing mixers. All of the call control and call routing in this environment is driven by the CCXML platform, which is in turn driven by CCXML documents from one or more web servers and via event input from various CCXML Event I/O processors.
SIP Softswitch Overview
At the core of most SIP-based networks is a Softswitch that manages all the calls and endpoints within that network.
In the world of SIP, the term “Softswitch” can mean many things. Some people view Softswitches as being responsible for only call routing and directory lookup functions. Others see the Softswitch providing functions such as protocol conversion between SIP and H.323, ISDN or SS7 networks. Still others view SIP Session Border Controllers (SBC’s) – which are basically SIP “firewalls” - as a type of Softswitch that bridges two SIP networks to implement all call routing and SIP signaling between them.
SIP Softswitches are often single purpose products that support a limited degree of customization. These softswitches normally provide configuration-based customization, however major or dynamic per-call customization often requires modification by the softswitch vendor.
On the other end of the spectrum are Softswitches that take the customization to the extreme and provide low-level SIP API’s - such as SIP Servlets – that require SIP applications to control every level of SIP signaling. These products allow for robust customization at the cost of application simplicity. In such softswitches, applications interface with and must understand many details of low-level SIP signaling and SIP API’s. To further complicate matters, there are multiple generations of both proprietary API’s and attempts at an API standard with the SIP market. If these problems sound familiar, it’s because they are: SIP application development problems are fundamentally the same as problems found in the world of IVR and speech recognition before VoiceXML.
Figure 2 shows an example of an architecture using a non-CCXML SIP Softswitch to manage calls in a SIP network. In this case the Softswitch is responsible for routing calls to their proper destination based on embedded routing rules and using an external database driven directory.
CCXML – The high level programmable Softswitch
When reviewing figures 1 and 2 above it is obvious that the architectures are similar in many ways. In reality, both are SIP Softswitch systems. In figure 2, a centralized SIP server routes calls by consulting built-in rules and an external database. In figure 1, a centralized SIP server routes calls by consulting CCXML scripts retrieved from a web server.
If you take the best of both architectures you will end up with a platform architecture like the one shown in figure 3, below. In this architecture you have a CCXML browser acting as a Softswitch and managing all SIP devices and resources including phones, SIP VOIP gateways, VoiceXML browsers, and conference mixers. In this case we have augmented CCXML’s basic functionality with an integrated ENUM driven directory system. ENUM is the IETF standard for DNS-based call routing directories.
The result of this unified architecture is a SIP platform that has a number of benefits over both pre-SIP VoiceXML deployments and pre-CCXML Softswitch deployments, including:
- Completely programmable call control and routing using high level CCXML scripts as opposed to low level message oriented SIP API’s.
- Integration with both next-generation SIP telephony deployments and traditional PSTN deployments
- Call control application portability across both SIP and PSTN networks thanks to CCXML’s abstract call model.
- Support for custom, low level SIP messages - as needed - using a SIP CCXML Event I/O Processor.
- Separation of back-end application routing logic from the core Softswitch platform, enabling centralized call control deployments that can be driven by a wide variety of distributed enterprise systems and custom, per-call routing applications. This model allows hosted call control deployments to be driven by enterprise web applications - just as VoiceXML allows hosted IVR platforms to be driven by enterprise web apps.
- A tiered deployment architecture that scales easily by adding additional CCXML softswitch, VoiceXML, conferencing, or ENUM DNS servers at any time.
- Integrated support for VoiceXML and multi-party conferencing functions
This architecture and its benefits are not theoretical. In fact, the architecture shown in Figure 3 above is exactly how Voxeo’s VoiceCenter VoiceXML/CCXML platform and hosting solutions have been deployed since early 2002
Summary
By developing and deploying applications on a CCXML based SIP Softswitch, enterprises and carriers alike have access to a rich set of call control features while retaining the simplicity and power of web-based application development. The resulting applications work well with both next-generation SIP deployments and traditional PSTN solutions. SIP and CCXML are extremely complimentary technologies that work well together. Many of the most valuable benefits of both technologies are found at the intersection of the two: CCXML makes it much easier to build SIP call control applications; and SIP makes it much easier to integrate CCXML with both new and existing telephony architectures.
If you have questions or comments about using CCXML as a SIP Softswitch, please don’t hesitate to email me at . If you'd like to learn more about CCXML, you can read the latest version of the CCXML specification at http://www.w3.org/TR/CCXML. Additionally, Voxeo offers extensive CCXML references, tutorials, samples, and free developer access to our SIP/CCXML platform in the “IVR Developer” section of our web site at http://www.voxeo.com.
|