1 / 21

Developing with VoiceXML

Developing with VoiceXML. Building a Video Conference Application. Agenda. VoiceXML Video using VoiceXML Components of a Video Conference Server System Architecture SIP & RTP flows JSLEE & Mobicents Software Architecture Controlling Participants Putting it all together.

faye
Télécharger la présentation

Developing with VoiceXML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Developing with VoiceXML Building a Video Conference Application

  2. Agenda • VoiceXML • Video using VoiceXML • Components of a Video Conference Server • System Architecture • SIP & RTP flows • JSLEE & Mobicents • Software Architecture • Controlling Participants • Putting it all together

  3. VoiceXML – What is it? • VoiceXML is an IVR scripting language • Used to develop complex IVR applications, such as • Phone-based self-help services (i.e., labyrinths ) • Multi-level auto-attendants • Calling card services • Standardized by W3C • http://www.w3.org/Voice/ • Also used as a control protocol between VoIP application servers and media servers • Supported by most media server vendors

  4. Developing an Application with VoiceXML • This presentation shows how to develop a video conferencing application using VoiceXML and off-the-shelf components • We will use the Voxpilot/HP video extensions to VoiceXML • Provides playing and recording video prompt • Supports multiple video codecs • Proposed by Burke (Voxpilot) & McGlashan (HP) • Extensions may get integrated into VoiceXML 3.0 • We will cover the system architecture, components, protocols, and support for multiple audio and video codecs

  5. Video Conferencing Application • Components for building a video conferencing solution are now much cheaper • Good web cam • Good headset • Video softclient • Open source telecom framework • Video-enabled media server • Small & Medium Enterprises can now use it • Can even be deployed in home offices

  6. Video Conference Application - Goals • Low Cost • Must use standard components & protocols • Easy to Use & Minimal Learning Curve • Same interface as existing meet-me conference bridges • Advanced interface accessible through web • Provide Common Conferencing Features • PIN number validation • Mute one or more participants • Prime Speaker • Manual or Automated Video Source Control • Good Video Quality • At least CIF (352x288) @ 15 frames/second

  7. Video Conference – System Architecture RTP SIP SIP, NETANN, VoiceXML SIP Video Conference Application Video-Enabled Media Server SIP RTP RTP

  8. Major Component Responsibilities • Video Conferencing Application • Back-to-back SIP user agent (B2BUA) • Controls conference participants when conference is up • e.g., muting a participant, giving priority to a participant • Delegates to VoiceXML script the task of PIN validation • VoiceXML script • Validates PIN (uses CGI script to access a database) • Transfers the call to conference bridge • Media Server • Executes VoiceXML script • Performs audio mixing • Performs video processing

  9. 2. SIP INVITE voicexml=http://as/askpin.vxml 7. SIP REFER 8. SIP INVITE sip:conf-1@MS 10. SIP reINVITE 6. HTTP POST 4. SIP 200 OK 5. SIP 200 OK 9. SIP 200 OK 3. HTTP GET Basic Call Flow – SIP & VoiceXML Video Conference Application 1. SIP INVITE validate.cgi?phone=5551212&pin=1234 11. SIP 200 OK Refer-To: sip:conf-1@MS

  10. Video Conference Application Software • Video application is built on top of JSLEE, a Java real-time framework • Database contains a list of active conferences, phone numbers, and PINs • Apache provides • Web pages • Access to VoiceXML scripts • Access to media files • Execution of CGI scripts

  11. Video-enabled Media Server • Video-enabled Media Servers are available from many vendors • Select a media server that supports Video IVR and Video Conferencing • Video Codec: H.263 and H.264 @ CIF resolution (352x288) • Video Conferencing mode should have at least: • Manual Control • Automated control (e.g., follow-me) • Audio mixing should provide: • Audio Codec: G.711 ulaw/A-Law, G.729, AMR • Audio mixing without introducing echo • Noise reduction • Packet Loss Concealment algorithm

  12. Mobicents – a Telecom Framework • Mobicents is an open source JSLEE container • JSLEE is a Java-based framework for real-time apps • JSLEE is to telecom what J2EE is to business apps • Mobicents is written by some JBoss developers • Mobicents provides: • Soft real-time event routing • SIP stack • Traces, logs, alarms • See http://www.mobicents.org

  13. Mobicents - Internals

  14. Video Conference Application – Software Components

  15. IVR Service • IVR service provides a high-level API to playback and digit collection functions • Hides details of SIP and media server protocols • Isolates applications from Media Server protocol • e.g., if MS protocol changes from VoiceXML to MSCML, only IVR service must change • IVR service implemented as a JSLEE Service Building Block (SBB)

  16. IVR Service - API • Simple API hides IVR complexity • Instantiate and send an event to IvrSBB • Events supported: • CreateConnection • Play • PlayCollect • Release

  17. VoiceXML – Using video extensions • Playing video clips using VoiceXML 2.0 <audio src=“http://as/welcome_h263.mov”> <audio src=“http://as/welcome_h264.mov” /> </audio> • Two video clips are provided: one for H.263 video clients, the other for H.264 video clients • The example is using the VoiceXML fallback audio feature for supporting both codecs • The VoiceXML interpreter will try to play each video clip in the list until it finds one that is compatible with the video codec of the remote device

  18. Muting a participant using RFC3264 • The conference leader can mute a participant • This is achieved by the Video Conf App sending a SIP reINVITE with SDP containing “a=sendonly” to the media server: v=0 o=Caller 10 20 IP4 10.1.2.3 s=Participant c=IN IP4 10.1.2.3 t=0 0 m=audio 5004 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly

  19. Manual Control of the Video Feed • The conference leader can manually control the video feed displayed to all participants • This is achieved by turning-off the video source of all participants except one • Send a reINVITE with SDP containing “a=sendonly” applied to video: v=0 o=Caller 10 20 IP4 10.1.2.3 s=Participant c=IN IP4 10.1.2.3 t=0 0 m=audio 5004 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendrecv m=video 5006 RTP/AVP 98 a=rtpmap:98 H264/90000 a=sendonly

  20. Putting it all Together • VoiceXML provides the user interface to the video conference • Mobicents provides an easy to use real-time framework for telecom applications • Mobicents hides SIP complexity • Building the business logic for a video conferencing application is no longer difficult • Low-cost video phones and softclients make this solution possible • Entire solution can be deployed in small and medium businesses

More Related