Call
Control and Voice Apps: CCXML
Introduction
and History
As
editor of the new CCXML specification I am proud to
report that the W3C has just released the first working
draft of CCXML, a language to provide Call Control support
for telephone applications.
What
is Call Control?
Newton's
Telecom Dictionary, 16th edition, defines Call Control
as "the term used by the telephone industry to
describe setting up, monitoring, and tearing down telephone
calls". Fundamentally, Call Control is session
control for telephone calls.
What
is CCXML?
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, 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 the telephone network. Additionally, CCXML will
create a high-level industry standard for Call Control
that can run over any telephony platform.
Why
not build Call Control into VoiceXML directly?
VoiceXML
was never designed to support advanced Call Control
features -it was designed to be a dialog control language
and it does that quite well. While VoiceXML does support
basic Call Control features via the <transfer>
tag, those features are in fact too basic for many telephony
applications. Because of this limitation, vendors looked
at adding Call Control to VoiceXML using several different
approaches. Some companies added robust Call Control
support by extending VoiceXML while others created their
own Call Control languages such as CallXML from Voxeo
or TXML from Telera. While these solutions provided
enhanced Call Control support they were incompatible
with each other and did not address all of the Call
Control scenarios reviewed by the W3C.
VoiceXML
controls the presentation of media inside of calls. It
uses a model based on forms and transactions that occur
in a linear fashion - a model that works very well for
user driven voice interfaces. Call Control uses a model
based on events and commands that can occur at any time.
The fundamental differences in these models made it very
difficult - if not impossible - to deliver robust Call
Control inside of VoiceXML itself.
Additionally,
many W3C members and telephone industry leaders wanted
a language that could be used outside of VoiceXML itself.
While only some phone calls require automated voice
interaction, every phone call requires Call Control.
As a result, CCXML could end up being used and supported
by everything from PBX's to the telephone switches that
run the phone network itself. Many of these telephony
platforms have no need or support for the things VoiceXML
itself can do.
What
does CCXML allow you to do?
There
are a number of features that VoiceXML currently can't
supply that CCXML will:
- Support
for multi-party conferencing, plus more advanced conference
and audio control. Any telephone conferencing application
requires such features.
- The
ability to give each active line in a voice application
its own dedicated VoiceXML interpreter. Currently,
many VoiceXML platforms initiate a second call or
"call leg" to transfer a call from an automated
VoiceXML platform to another telephone user. The second
leg of a transferred call on these platforms lacks
a VoiceXML interpreter of its own, limiting the scope
of possible applications that can occur on that second
leg.
- Sophisticated
multiple-call handling and control, including the
ability to place outgoing calls at any time, initiated
outside of the VoiceXML platform.
- Handling
for richer and more asynchronous events. Advanced
telephony operations involve substantial signaling,
status events, and message-passing. VoiceXML does
not currently have a way to integrate these asynchronous
"external" events into its event-processing
model.
- An
ability to receive events and messages from systems
outside of the CCXML or VoiceXML platform. Interaction
with an outside call center platform, calls started
asynchronously from the VoiceXML platform, and communication
between multiple "clustered" VoiceXML or
CCXML platforms all require event interaction from
one platform to another.
CCXML
allows developers to write advanced applications that
require these features. Examples of such applications
include
- "Follow
me, Find me" applications that find the person
you are trying to call by dialing their cell phone,
home phone, and office phone in parallel.
- Call
center applications that intelligently gather information
from the caller and then pass that information on
to the call center agent.
The
W3C Voice Browser Working Group decided to tackle Call
Control and came up with a set of comprehensive requirements
that address the Call Control needs of almost all voice
applications. After reviewing those requirements several
proposals were submitted. CCXML is the result of those
proposals.
CCXML
is currently a first working draft and the specification
is still far from complete. The W3C wanted to start getting
comments from the public as early in the CCXML standardization
process as possible. If you have comments on CCXML you
can subscribe to the www-voice@w3.org e-mail list and
send in your feedback. You can sign up for the www-voice
list by visiting http://www.w3.org/Voice .
What does CCXML do?
CCXML
adds robust Call Control support to VoiceXML. However
CCXML could also be used with other dialog systems such
as a traditional IVR (Interactive Voice Response) platforms
created before VoiceXML was available.
One critical thing to understand is that CCXML is not
a media/dialog language like VoiceXML. It only provides
support to move calls around and connect them to dialog
resources. CCXML does not provide any dialog resources
on its own. (Note:
A dialog resource is anything that interacts with a
caller via voice, such as a VoiceXML platform or even
a second caller at another location.)
Continued...
back
to the top
Copyright
© 2001-2002 VoiceXML Forum. All rights reserved.
The VoiceXML Forum is a program of the
IEEE
Industry Standards and Technology Organization
(IEEE-ISTO).
|