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 (http://www.voicexmlreview.org/Mar2002/features/ccxml.html)
and April 2004 (http://www.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 rj@voxeo.com. 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.
|