Title: Combining VoiceXML with CCXML: A Comparative Study
1Combining VoiceXML with CCXMLA Comparative
Study
- Daniel Amyot and Renato Simoes
- School of Information Technology and Engineering
- University of Ottawa , Canada
- damyot_at_site.uottawa.ca, renatops_at_yahoo.com
2Motivation
- Interactive Voice Response (IVR) applications
- User interacts with an automated system
- Recorded speech or computer generated
- Telephone keys or speech recognition
- Examples Information retrieval, virtual
secretaries, bookings and payments, - Popular IVR applications use
- VoiceXML for vocal dialogs
- Session Initiation Protocol (SIP) for call
control - New Call Control eXtensible Markup Language
(CCXML) emerging - Can CCXML help accelerate the development of
complex VoIP solutions that have an IVR component?
3Overview
- VoiceXML (a.k.a. VXML)
- CCXML
- Comparative study based
- Simple Personal Assistant system
- Observations
- VoiceXML Portability Issues
- Conclusions
4VoiceXML Highlights
- Voice Extensible Markup Language
- Version 2.0, W3C Recommendation (16 March 2004)
- Bring the advantages of Web-based development to
IVR - Familiar client/server paradigm
- Web Server keeps the logic (DB, generates VXML)
- Multiple dialogs
- Enables (voice) access to Web services
- Avoid low-level programming and resource
management - Designed for
- Creating audio dialogs
- Synthesized speech
- Digitized audio
- Speech recognition
- DTMF key input
- Recording
- Basic telephony control
5VoiceXMLExample
- ltvxmlgt
- ltform id"get_tophone"gt
- ltfield name"tophone" type"digits?length7"gt
- ltpromptgt ltaudio src"enterphone.wav"/gt
lt/promptgt - ltnoinputgt ltreprompt/gt lt/noinputgt
- ltnoinput count"3"gt ltexit/gt lt/noinputgt
- lt/fieldgt
-
- ltfield name"confirm" type"boolean"gt
- ltpromptgt
- ltaudio src"thephoneis.wav"/gt
- ltvalue expr"tophone"/gt
- ltaudio src"correct.wav"/gt
- lt/promptgt
- ltnomatchgt ltreprompt/gt lt/nomatchgt
- ltnoinputgt ltreprompt/gt lt/noinputgt
- ltfilledgt
- ltif cond"confirm"gt
- ltexit namelist"tophone"/gt
6Typical Configuration with VXML ( SIP)
Voice Interactions
Signalling and Call Control
Business Logic
7CCXML Highlights
- Call Control eXtensible Markup Language
- W3C Working Draft, 22 November 2006 (8th version)
- Declarative description of advanced telephony
functions - Conference control, Find Me Follow Me,
click-to-dial, third-party call control manager
- Handling of asynchronous events from many sources
- CCXML is protocol independent can interwork with
voice dialogs - VoiceXML, Parlay, SLEE, JAIN SIP
8CCXML Benefits
- Handles sophisticated multiple call control
- Ability to give each call leg its own dedicated
IVR - Note possible with VoiceXML only
- Often SIP is added to solve this issue
- Suitable for direct interaction with end users
- Necessary for IVR and conference services
- Could not be done easily using IETFs Call
Processing Language (CPL)
9Typical Configuration with CCXMLVXML
Voice Interactions
Signalling and Call Control
Business Logic
10Example Scenario Personal Assistant
11CCXMLExample
- lttransition event"dialog.exit" name"evt
state"welcoming_caller"gt - ltassign expr"evt.calleephone" name"tophone"
/gt - lt!-- Place the caller on hold --gt
- ltdialogstart dialogid"dlg_onhold"
connectionid"in_connectionid"
src"'holdmusic.jsp'" /gt - lt!-- Contact the callee. --gt
- ltassign expr"'contacting_target'"
name"currentstate" /gt - ltcreatecall dest"'tel ' evt.calleephone"
connectionid"out_connectionid" /gt - lt/transitiongt
12Example of ComplementaryVoiceXML Script
- lt! Generated on the fly by Web Server --gt
- ltvxml version"1.0"gt
- ltvar name"callid" expr"'lt callid gt'"/gt
- ltform id"callee_confirm"gt
- ltfield name"confirm" type"boolean"gt
- ltpromptgt ltaudio src"acceptcall.wav"/gt
lt/promptgt - ltnomatch count"1"gt ltreprompt/gt lt/nomatchgt
- ltnomatchgt ltexit/gt lt/nomatchgt
- ltnoinputgt ltreprompt/gt lt/noinputgt
- ltnoinput count"3"gt ltexit/gt lt/noinputgt
- ltfilledgt
- ltif cond"confirm"gt
- ltassign name"accepted" value"true" /gt
- ltexit namelist"accepted" /gt
- ltelse/gt
- ltassign name"accepted" value"false"
/gt - ltexit namelist"accepted" /gt
- lt/ifgt
- lt/filledgt
13CCXML vs SIP for Call Control
- CCXML
- ltjoin id1"in_connectionid" id2"out_connectionid
" /gt - SIP
14Typical SIP Message (INVITE)
- 09/07/2005 181405.168 Outgoing Message
- Transport UDP (reliablefalse) ip10.11.12.200,
port5060, pluginnull, forceUDPfalse, TTL1 - INVITE sip3334444_at_10.11.12.2005060 SIP/2.0
- Call-ID 4AF4DBF6-A72611D5-9791C1FA-3D9B40D_at_10.11.
12.200 - From ltsip2341234_at_10.11.12.13gttag1975362409.1.k
aaaaagpidddjkejhbchhkoc - To ltsip3334444_at_10.11.12.200gttag7EB680D0-1A20
- CSeq 103 INVITE
- Contact sipsipserver5060
- Content-Type application/sdp
- Content-Length 362
- Max-Forwards 70
- Via SIP/2.0/UDP 10.0.0.2465070branchz9hG4bK0A0
000F6BADF00D00000104FD963E68191 - v0
- oSIP-GW-UserAgent 9597 1982 IN IP4 10.11.12.200
- sSIP Call
- cIN IP4 10.11.12.200
- t0 0
- maudio 17968 RTP/AVP 18 0 8 4 2 3 19
- cIN IP4 10.11.12.200
15Typical Scenario with VoiceXML CCXML
CCXML snippet seen earlier
VoiceXML script seen earlier
16Same Scenario with VoiceXML SIP
17Observations
Criteria SIP VXML CCXML VXML Comments
Code Complexity Higher Lower CCXML code more abstract and smaller by an order of magnitude
Flexibility Higher Lower SIP can do all that CCXML can, but not the opposite
Maintainability Higher Lower CCXML simpler to understand but its XML-based nature enables all sorts of errors hard to catch at design time
Extensibility N/A Higher (CC)XML language easy to extend, but can lead to interoperability and portability issues
Coupling Lower Higher CCXML server expected to be strongly coupled with the VXML browser. May have to come from same vendor or be on the same media server platform
18VoiceXML Portability Issues
- Used VoiceXML media servers (Nuances NVP 3.0 and
Brooktrouts Snowshore A1) and studied Convedia
and BeVocal - Shadow Variables
- Platform-specific, used to modify or access
additional information from a VXML tag. - Nuances name.termchar, name.duration,
name.size - Proprietary Grammar
- Nuance includes its own Grammar Specification
Language, used inside the VXML code - Proprietary Tags
- ltbevocalforeachgt, ltbevocallistengt
- Nuances tags for voice recognition capabilities
- Partial Support for VXML 2.0
- Others
19Conclusions
- CCXML provides appropriate abstractions and
offers capabilities that are easier and faster to
use than a plain SIP-based approach for IVR
applications - The SIP-level flexibility may still be required
in some situations - Room for a hybrid solution?
- CCXMLs future will depend on the availability of
good development and execution environments,
including APIs - Emerging CCXML platforms include
- Hewlett-Packard HP Open Call Media Platform
- Voxeo Corporation Prophecy IVR Voice Platform
- Loquendo VoxNauta Platform
20For Further Information
- Daniel AmyotAssistant ProfessorSITE, University
of Ottawa1-613-562-6800 ext. 6947damyot_at_site.uot
tawa.ca