Combining VoiceXML with CCXML: A Comparative Study - PowerPoint PPT Presentation

About This Presentation
Title:

Combining VoiceXML with CCXML: A Comparative Study

Description:

Used VoiceXML media servers (Nuance's NVP 3.0 and Brooktrout's Snowshore A1) and ... Nuance includes its own Grammar Specification Language, used inside the VXML code ... – PowerPoint PPT presentation

Number of Views:187
Avg rating:3.0/5.0
Slides: 21
Provided by: daniel642
Category:

less

Transcript and Presenter's Notes

Title: Combining VoiceXML with CCXML: A Comparative Study


1
Combining 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

2
Motivation
  • 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?

3
Overview
  • VoiceXML (a.k.a. VXML)
  • CCXML
  • Comparative study based
  • Simple Personal Assistant system
  • Observations
  • VoiceXML Portability Issues
  • Conclusions

4
VoiceXML 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

5
VoiceXMLExample
  • 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

6
Typical Configuration with VXML ( SIP)
Voice Interactions
Signalling and Call Control
Business Logic
7
CCXML 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

8
CCXML 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)

9
Typical Configuration with CCXMLVXML
Voice Interactions
Signalling and Call Control
Business Logic
10
Example Scenario Personal Assistant
11
CCXMLExample
  • 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

12
Example 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

13
CCXML vs SIP for Call Control
  • CCXML
  • ltjoin id1"in_connectionid" id2"out_connectionid
    " /gt
  • SIP

14
Typical 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

15
Typical Scenario with VoiceXML CCXML
CCXML snippet seen earlier
VoiceXML script seen earlier
16
Same Scenario with VoiceXML SIP
17
Observations
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
18
VoiceXML 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

19
Conclusions
  • 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

20
For Further Information
  • Daniel AmyotAssistant ProfessorSITE, University
    of Ottawa1-613-562-6800 ext. 6947damyot_at_site.uot
    tawa.ca
Write a Comment
User Comments (0)
About PowerShow.com