Title: Developing with VoiceXML
1(No Transcript)
2Developing with VoiceXML
- Building a Video Conference Application
3Agenda
- 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
4VoiceXML 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
5Developing 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
6Video 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
7Video 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) _at_ 15 frames/second
8Video Conference System Architecture
RTP
SIP
SIP, NETANN, VoiceXML
SIP
Video Conference Application
Video-Enabled Media Server
SIP
RTP
RTP
9Major 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
10Basic Call Flow SIP VoiceXML
Video Conference Application
1. SIP INVITE
validate.cgi?phone5551212pin1234
11. SIP 200 OK
Refer-To sipconf-1_at_MS
11Video 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
12Video-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 _at_ 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
13Mobicents 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
14Mobicents - Internals
15Video Conference Application Software
Components
16IVR 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)
17IVR Service - API
- Simple API hides IVR complexity
- Instantiate and send an event to IvrSBB
- Events supported
- CreateConnection
- Play
- PlayCollect
- Release
18VoiceXML Using video extensions
- Playing video clips using VoiceXML 2.0
- ltaudio srchttp//as/welcome_h263.movgt
- ltaudio srchttp//as/welcome_h264.mov /gt
- lt/audiogt
- 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
19Muting 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 asendonly to
the media server - v0
- oCaller 10 20 IP4 10.1.2.3
- sParticipant
- cIN IP4 10.1.2.3
- t0 0
- maudio 5004 RTP/AVP 0
- artpmap0 PCMU/8000
- asendonly
20Manual 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 asendonly
applied to video - v0
- oCaller 10 20 IP4 10.1.2.3
- sParticipant
- cIN IP4 10.1.2.3
- t0 0
- maudio 5004 RTP/AVP 0
- artpmap0 PCMU/8000
- asendrecv
- mvideo 5006 RTP/AVP 98
- artpmap98 H264/90000
- asendonly
21Putting 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