21

Developing with VoiceXML

  • Upload
    faye

  • View
    43

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Developing with VoiceXML
Page 2: Developing with VoiceXML

Developing with VoiceXML

Building a Video Conference Application

Page 3: Developing with VoiceXML

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

Page 4: Developing with VoiceXML

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

Page 5: Developing with VoiceXML

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

Page 6: Developing with VoiceXML

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

Page 7: Developing with VoiceXML

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

Page 8: Developing with VoiceXML

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

Page 9: Developing with VoiceXML

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

Page 10: Developing with VoiceXML

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

Page 11: Developing with VoiceXML

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

Page 12: Developing with VoiceXML

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

Page 13: Developing with VoiceXML

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

Page 14: Developing with VoiceXML

www.voipdeveloper.comAugust 8-10, 2006

Santa Clara, CaliforniaHyatt Regency Santa Clara

Mobicents - Internals

Page 15: Developing with VoiceXML

www.voipdeveloper.comAugust 8-10, 2006

Santa Clara, CaliforniaHyatt Regency Santa Clara

Video Conference Application – Software Components

Page 16: Developing with VoiceXML

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)

Page 17: Developing with VoiceXML

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>

Page 18: Developing with VoiceXML

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

Page 19: Developing with VoiceXML

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

Page 20: Developing with VoiceXML

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

Page 21: Developing with VoiceXML

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