developing with voicexml
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Developing with VoiceXML
Building a Video Conference Application
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
Video Conference – System Architecture
Video ConferenceApplication Video-Enabled
Media Server
SIP
SIP
SIP
SIP, NETANN, VoiceXML
RTP
RTP
RTP
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
Basic Call Flow – SIP & VoiceXML
1. SIP INVITE 3. HTTP GET
4. SIP 200 OK5. SIP 200 OK
2. SIP INVITE
voicexml=http://as/askpin.vxml
6. HTTP POST
validate.cgi?phone=5551212&pin=1234
10. SIP reINVITE
Video ConferenceApplication
7. SIP REFERRefer-To: sip:conf-1@MS
8. SIP INVITE sip:conf-1@MS
9. SIP 200 OK
11. SIP 200 OK
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
Java Virtual Machine
Mobicents (JSLEE)
Business Logic
Operating System
DB
Apache
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
Mobicents - Internals
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
Video Conference Application – Software Components
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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)
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
IVR Service - API
• Simple API hides IVR complexity
• Instantiate and send an event to IvrSBB
• Events supported:– CreateConnection– Play– PlayCollect– Release
IVR SBBClient SBB
IvrCreateConnection( SDP )
IvrConnectionResponse( SDP MS )
IvrPlayCollect( mediafile, mask )
IvrRelease
IvrPlaycollectResponse( digits )
<caller enters digits>
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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.3s=Participantc=IN IP4 10.1.2.3t=0 0m=audio 5004 RTP/AVP 0a=rtpmap:0 PCMU/8000a=sendonly
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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.3s=Participantc=IN IP4 10.1.2.3t=0 0m=audio 5004 RTP/AVP 0a=rtpmap:0 PCMU/8000a=sendrecvm=video 5006 RTP/AVP 98a=rtpmap:98 H264/90000a=sendonly
www.voipdeveloper.comAugust 8-10, 2006
Santa Clara, CaliforniaHyatt Regency Santa Clara
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