Voxeo平台构建VoiceXML驱动的SIP会议系统
2008/12/02
一、概述图1. 方法一:在盲目转移模式中加入会议
注意:用户认证、会议查询和转移实际上由会议服务器CGI脚本调用,而浏览器只是解释脚本生成的VoiceXML页面来完成实际的转移或提示主叫方。例如,业务脚本可能在第(9)步为呼叫转移生成以下转移标签:
please wait.</prompt></block>
<transfer dest="sip:staffmeet@conference.com"
bridge="false" />
图2. 方法二:使用桥接模式加入会议
图2显示了桥接转移情形,其中浏览器作为一个“背靠背用户代理”在用户电话和会议服务器之间桥接音频路径。步骤1~7与盲目转移情形相同,所不同的是,浏览器并非发送REFER,而是向会议服务器发送一个新的呼叫请求,在SIP
INVITE消息的Request-URI中标识会议sip:staffmeet@conference.com。浏览器为双向RTP/RTCP媒体流量充当了应用级包转发器。
桥接转移的优点在于,浏览器逗留在媒体路径中,可以接受随后来自用户电话(使用DTMF)的控制命令。对于会议来说,这一点可能是有用的,例如将DTMF
6-6-#解释为关闭你的音频或者6-8-#表示加入另一个虚拟聊天或会议室。其次,浏览器也需要给会议服务器转发其它的信令消息,例如来自主叫方的re-INVITE。而且,维持会议期间的数据包转发状态在可以同时处理的主叫数目方面限制了浏览器的可扩展性。浏览器可以向主叫方和会议服务器发布带更新的RTP/RTCP传输地址的re-INVITE,以便媒体路径是直接的。但是,这依然需要维持呼叫期间的信令状态。另一方面,盲目转移在会议期间无须浏览器的任何呼叫状态,不过它期望主叫IP电话支持REFER方法。
三、安全性
每一个因特网应用都应该处理安全性。我们的体系结构有三个方面需要考虑安全性:电话网关、SIP信令与RTP媒体传输和对后台服务器的HTTP/RTSP访问。
在桥接转移情形,VoiceXML浏览器使用PIN认证主叫方,并在SIP认证中提供自己的机密信息给会议服务器。而在盲目转移情形,如果主叫方使用通过网关连接的传统电话,那么SIP认证将包含网关的机密信息。为了防止恶意用户连接到受限会议,我们在REFER消息中把机密信息从浏览器传递给主叫方网关,随即用于主叫方网关呼叫会议服务器。机密信息可以是浏览器或主叫方的。例如,Refer-To头可能包含sip:staffmeet-
浏览器应该使用HTTP POST方法,而不是GET方法,以避免在Web服务器日志中保存CGI输入。
四、功能扩充
除了安全性,我们还可以对会议系统进行功能扩充,比如控制会议音量和增强系统鲁棒性。
不同声音设备的异构客户机之间的多方音频会议常常导致恼人的音频失真,一些参与者听起来太大声,而另一些可能根本听不见。理想状态下,会议服务器应该在混音前平衡来自所有参与者的输入音量,但是这将在服务器上为每一个音频数据包带来额外处理要求。另一个办法是告诉参与者调整他的麦克风和扬声器的音量。参与者在加入会议之前连接到一个“音量反馈”的系统,并且对它说话。该系统宣布用户的麦克风音量是可接受、太高或太低。它也播放一个预先录制好的音频文件,允许用户调整其扬声器音量。这个处理过程由一个服务器侧脚本建立,VoiceXML浏览器可以访问它。
在过去几年,开发人员已经日益使用CCXML给他们的电话系统增加强健的呼叫控制特性。图3展示了如何在VoiceXML与SIP环境中运用CCXML平台进行高级会议控制[4]。在这里CCXML作为SIP的“背靠背用户代理”,面向呼叫者和网络资源(比如VoiceXML浏览器和会议混合器)执行基于SIP的呼叫控制职能,可以基于开放式的行业标准方式创建健壮可靠的多方会议系统。Voxeo
Prophecy 8.0是一个强大的完全基于标准的IVR和SIP VoIP应用平台,它捆绑了业界第一个(也是目前唯一的)
100% 通过VoiceXML官方规定的全部兼容性测试(全部强制性和可选功能)的VoiceXML浏览器和世界上目前最完整CCXML实现,同时它还与任意网络开发语言(包括ASP,
CGI, C#, Java,PERL, PHP, Python 和 Ruby)或服务器兼容,给VoIP语音应用开发与部署人员提供了有力的工具和平台。
图3. CCXML SIP体系结构
五、小结
本文讲述了SIP会议系统的两种转移模式,以及体系安全性的一些考虑,最后简单介绍了可以采用VoiceXML服务器侧编程逻辑和CCXML脚本来扩充会议服务器的功能,并推荐了一款完全基于标准的开发工具和平台――Voxeo
Prophecy 8.0。
参考资料:
[1] VoiceXML 2.1: http://www.w3.org/TR/voicexml21/
[2] SIP: Session Initiation Protocol: http://www.ietf.org/rfc/rfc3261.txt
[3] CCXML 1.0: http://www.w3.org/TR/ccxml/
[4] Using Call Control XML (CCXML) as a SIP Softswitch:
http://www.voicexml
.org/Review/Apr2005/features/softswitch.html
CTI论坛编辑
Voxeo VoiceObjects 统一自服务提高满意度 2009-09-23 |
Voxeo携Prophecy10高度亮相SpeechTEK2009 2009-09-03 |
拥有中文TTS的Prophecy IVR语音平台 2009-08-17 |
Voxeo发布开源的电话“云计算”服务平台 2009-08-12 |
自助式语音平台开发利器Prophecy Platform 2009-08-03 |