CCXML For Advanced Communications Applications


Published on

Slides from RJ Auburn's SpeechTek 2011 session on developing communication applications in CCXML.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

CCXML For Advanced Communications Applications

  1. 1. CCXML For Advanced Communications Applications<br />RJ Auburn<br />CTO, Voxeo<br />Editor in Chief, CCXML<br />Paolo Baggia<br />Director International Standards, Loquendo<br />Co-Editor, CCXML<br />
  2. 2. Outline<br />Voxeo and LoquendoToday<br />Introduction<br />What is CCXML? Where is it today?<br />CCXML vs. VoiceXML:<br />Complementary and/or Supplementary<br />Intro to CCXML<br />Basic Application Scenarios<br />Advanced Application Scenarios<br />More Information and Resources <br />
  3. 3. Voxeo Company Profile<br /><ul><li>Founded in 1999
  4. 4. World’s only triple cloud offering – Over 90,000 hosted ports globally; thousands of private and hybrid deployments
  5. 5. Over 200,000 developers using one or more of Voxeo’s three clouds
  6. 6. The Voxeo difference: Customer Obsession Teams, Unlocked Communications, Communications Passion</li></ul>3<br />Proprietary and Confidential<br />
  7. 7. Company Profile<br />Loquendo Company Profile<br />Local representative sales offices in New York, Rome, Madrid, Paris, London, Munich<br />Text-To-Speech<br />Speech Recognition<br />Speaker Verification<br />Founded in 2001 as spin-off of Telecom Italia Lab, capitalizing the 30yrs experience <br />by<br /><br />
  8. 8. What’s CCXML?<br />CCXML 1.0 stands for “Voice Browser Call Control: CCXML Version 1.0”<br /><ul><li>W3C Standard for Call Control:
  9. 9. Set-up calls, bridge to VoiceXML dialogs, but also transferring, conferencing, and more
  10. 10. From the specification:“[…] the Call Control eXtensible Markup Language. CCXML provides declarative markup to describe telephony call control. CCXML is a language that can be used with a dialog system such as VoiceXML.CCXML can provide a complete telephony service application, comprised of Web server CGI compliant application logic, one or more CCXML documents to declare and perform call control actions, and to control one or more dialog applications that perform user media interactions.”
  11. 11. Aims of CCXML:
  12. 12. Simple for basic telephony control
  13. 13. Powerful for advanced call control features
  14. 14. Fully compatible with SIP and new applications scenarios</li></ul><br />
  15. 15. W3CRecommendation<br />ProposedRecommendation<br />CandidateRecommendation<br />1 Apr 10<br />Impl. Report Dev <br />IRTesting<br />Last CallWorking Draft <br />19 Jan 07<br />Specification development<br />Dispose publiccomments <br />WorkingDraft<br />Where is CCXML?<br />CCXML 1.0 is the next W3C Recommendation:<br /><ul><li>W3C Recommendation since July 5th, 2011
  16. 16. Implementation Test-Suite finalized
  17. 17. 4 companies submitted Implementation Results
  18. 18. All spec features were implemented</li></ul>5 Jul 11<br />Enforce interoperability across platforms<br />12 May 11<br />2011<br />2001<br />2002<br />2003<br />2004<br />2005<br />2006<br />2007<br />2008<br />2009<br />2010<br />
  19. 19. CCXML Ecosystem <br />
  20. 20. Semantic Interpretation forSpeech Recognition (SISR)<br /> VoiceXML 2.1 <br />N-gram Grammar ML<br />EMMA 1.0<br />Speech Recognition<br />Grammar Spec. (SRGS)<br />Natural Language<br />Semantics ML<br />VoiceXML 2.0<br />World<br />Wide<br />Web<br />ASR<br />Language<br />Understanding<br />Context<br />Interpretation<br />Dialog<br />Manager<br />DTMF Tone Recognizer<br />Pronunciation LexiconSpecification (PLS)<br />Telephone<br />System<br />Media<br />Planning<br />Pre-recorded Audio Player<br />User<br />TTS<br />Language<br />Generation<br />Speech SynthesisMarkup Language (SSML)<br />Reusable Components<br />Call Control XML(CCXML)<br />Where is CCXML?<br />
  21. 21. CCXML System Design<br />
  22. 22. <ul><li>Advanced Telephony Call Control
  23. 23. Extremely flexible and powerful It takes full advantage of SIP/VoIP
  24. 24. External Events
  25. 25. Sends and receives HTTP eventsIt allows CCXML to speak/update/react to other entities
  26. 26. Conferencing
  27. 27. Allows the creation of advanced conferencing systems
  28. 28. Other Modalities
  29. 29. Can interact with other modalities, e.g. inside W3C Multimodal Architecture</li></ul>supplementary<br />CCXML – Complementary/Supplementary<br /><ul><li>Two different domains:
  30. 30. VoiceXML: dialog-oriented synchronous languagefor high-level dialog design</li></ul>Complemented by:<br /><ul><li>CCXML: event-driven asynchronous telephony call control</li></ul>CCXML completes VoiceXML:<br /><ul><li>By implementing many telephony features within an XML markup language</li></ul>complementary<br />
  31. 31. Highlights & Commands relationship<br /><createcall><br /><join><br /><unjoin><br /><disconnect><br /><dialogprepare><br /><dialogstart><br /><dialogterminate><br /><var><br /><script><fetch><br /><accept><br /><reject><br /><createsession><br /><exit><br />Incoming call <br />screening<br />Outbound call<br />Dialog <br />management<br />Scripting<br />Create a new <br />session<br />Call transfer<br />Conferencing<br />Walking across <br />a CCXML app<br />External entity<br />Interaction<br />Logging<br /><createcall><br /><join><br /><unjoin><br /><redirect><br /><merge><br /><createconference><br /><join><br /><unjoin><br /><destroyconference><br /><disconnect><br /><redirect><br /><fetch><br /><goto><br /><send><br /><log><br />
  32. 32. CallControl<br />Adapter<br />CCXML<br />Interpreter<br />VoiceXML <br />Interpreter<br />INIT<br />connection.alerting<br />ALERTING<br /><dialogprepare><br />dialog.prepared<br /><accept><br />connection.connected<br />CONNECTED<br /><dialogstart><br />dialog.started<br />……<br />Commands & Events: CCXML in Action<br />
  33. 33. CCXML Connection Model<br />
  34. 34. CCXML Hello World<br /><?xml version="1.0" encoding="UTF-8"?><br /><ccxml version="1.0”><br /> <eventprocessor><br /> <transition event="connection.alerting"><br /> <log expr="'***** CONNECTION ALERTING *****'"/><br /> <if cond="event$.connection.remote == ’tel:+18315551234'"><br /> <reject/><br /> <else/><br /> <accept/><br /> </if><br /> </transition><br /> <transition event="connection.connected"><br /> <log expr="'***** CALL WAS ANSWERED *****'"/><br /> </transition><br /> <transition event=”connection.disconnected”><br /> <log expr=”‘*** Call was disconnected ***’”/><br /> <exit/><br /> </transition><br /> <transition event="error.*"><br /> <log expr="'an error has occured (' + event$.reason + ')'"/><br /> <exit/><br /> </transition><br /> </eventprocessor><br /></ccxml><br />
  35. 35. Session Initiation Protocol<br />Session Initiation Protocol (SIP)defines how to establish a communication session betweentwo endpoints<br />Primarily used for voice, but can for IM or virtually any other protocol<br />Almost always used in client/server configuration with "SIP proxies" in control of "SIP endpoints"<br />Work going on in P2PSIP - see<br />Text-based protocol, originally modeled on HTTP<br />
  36. 36. SIP Communication<br />INVITE<br />Alice<br />Bob<br />180 RINGING<br />200 OK<br />ACK<br />RTP (voice)<br />BYE<br />200 OK<br />
  37. 37. CCXML Sending Events<br />CCXML can send events or other information to:<br /><ul><li>another CCXML Server
  38. 38. a VoiceXML interpreter
  39. 39. other external entities using an Event I/O Processor</li></ul>External <br />Entity<br />CCXML<br />Call Control <br />Adapter<br />VoiceXML<br />Another CCXML <br />Session<br />
  40. 40. <ul><li> Application Scenarios</li></li></ul><li>Application Scenarios<br />Basic<br />Advanced<br /><ul><li>Call Screening / Routing Calls
  41. 41. CLI or other parameters can be used to filter calls or to handle them in particular ways
  42. 42. Call Transfer Variations
  43. 43. Implements traditional transfer calls easily (blind, bridge, conversation/attended)
  44. 44. Allows to program unlimited variations without requiring customization
  45. 45. Attach & Dispatch Data
  46. 46. In SIP, data can attached to call
  47. 47. CCXML can receive and manipulate data or attach to outbound calls
  48. 48. Personal Assistant
  49. 49. Very elaborate and complex Assistants can be implemented in CCXML
  50. 50. Personal Assistant can span multiple calls
  51. 51. Advanced Conferencing
  52. 52. All advanced features are available for multi-party conferencing, such as monitored, touch or vocal commands, variety of private chat profiles
  53. 53. Outbound Campaign
  54. 54. All kinds of outbound calls with voice applications can be programmed</li></li></ul><li>Examples – Taxi Reservation System<br />Check if it’s the first time <br />that she’s is requiring the service<br />(CLI info)<br />NO<br />(address info)<br />YES<br />The Voice Application is<br />started, the system asks to <br />the client if the departure is alwaysthe same.<br />If yes, the system makes the <br />reservation . <br />If not, the system redirects the call <br />to a human operator.<br />Redirect to a human operator<br />
  55. 55. Examples - Voice Chat<br />SUPERVISOR<br />nick4<br />X<br />Books<br />nick4<br />nick4<br />Private Room<br />nick3<br />nick3<br />Public Rooms<br />Music<br />All done byCCXML andmanaged byWeb App fromCCXML Events!<br />nick2<br />CHAT ROOMS arguments<br />Music<br />TV<br />Cinema<br />Books<br />Sports<br />Travel<br />Holidays<br />…<br />nick1<br />nick6<br />nick5<br />
  56. 56. Solution Profile: Ringio<br />Ringio is a CRM friendly Virtual PBX that helps smaller companies improve the quality of their customer interactions.<br />Hosted in the Voxeo Public Cloud<br />Leverages CCXML for all aspects of call control, call routing and conferencing<br />Rich Connections into the Social CRM Cloud<br />
  57. 57. Solution Profile: IfByPhone<br />Ifbyphone is a voice based marketing automation platform that helps companies drive sales, reduce collection cycles, measure marketing effectiveness and improve customer experience.<br />Hosted service running on a Voxeo Private Cloud deployment inside ifbyphones’s datacenters<br />Enables click to call, follow me find me, call routing applications<br />
  58. 58. Solution Profile: Comcast<br />Installer and Customer Service IVR Applications <br />Uses CCXML for:<br />Installer Test Calls <br />Advanced Call Transfer scenarios <br /> Reminder and Automated outbound scheduling. <br />Deployed as a Hybrid Cloud deployment on the Voxeo Prophecy platform. <br />
  59. 59. Conclusions<br />CCXML 1.0 is a real opportunity today:Standard, widely accepted by the industry, powerful and flexible<br />CCXML 1.0 complements and supplements today VoiceXML Infrastructure<br />CCXML 1.0 adds flexibility and simplicity to the management of basic call control scenarios but also allows a full new range of sophisticated applications<br /><br />
  60. 60. Resources<br />W3C Web Sites<br /> - Latest spec<br /> - Working group home <br />Voxeo<br /> - Free CCXML Development tools, documentation, tutorials and resources <br /> - Unified Customer Experience platform for deployment in public, private and hybrid clouds<br />Loquendo<br /> - Loquendo Speech and IVR platforms<br />
  61. 61.
  62. 62. Contacts<br />RJ Auburn<br /><br />tel:+1-831-239-2993<br />@zscgeek<br /><br />Paolo Baggia<br /><br />tel:+39-011-291-3425<br /><br />