- 1 -
基于 SIP(会话初始协议)的语音浏览器的研究与实现
王福荔 1,杨玉玲 2,叶季旺 3
中国矿业大学(北京)机电与信息工程学院,北京(100083)
摘 要:SIP(Session Initiation Protocol)协议是用来建立、改变和终止基于 IP网络的用户间的
呼叫,以其简单、灵活、高效等特点成为各方关注地焦点,其良好地可扩展性和兼容性为
VoIP(Voice over Internet Protocol)技术应用打开了新的空间。本文从语音浏览器系统整个环
境出发,首先通过对 SIP协议栈的研究,采用开源 VOCAL协议栈实现了会话的建立、调整
和终止。同时采用 VoiceXML技术,在 OpenVXI基础上进行开发实现了语音识别、语音合
成等接口。既而使得 SIP电话客户能够通过语音浏览平台选择自己所需要的服务。
关键词:语音浏览器,VoiceXML, SIP,自动语音识别,语音合成
中图分类号:TP393
1. 引 言
语音浏览器是通过语音的方式让用户可以“浏览”网页的内容。用户可以通过电话“听”
网站的内容,同时还可以通过电话按键和语音命令,实现类似于普通浏览器的点击和字符输
入,来完成用户和 Internet 的信息交互,获取自己需要的信息。SIP(Session Initiation Protocol)
协议[1]建立、改变和终止基于 IP 网络的用户间的呼叫,以其简单、灵活、高效等特点成为
各方关注地焦点,其良好地可扩展性和兼容性为 VoIP(Voice over Internet Protocol)技术应用
打开了新的空间。VoiceXML[2](Voice eXtensible Markup Language)是为语音应用制定的基于
XML 的语音可扩展标记语言,是语音浏览技术的核心。
2. 语音浏览器系统设计
语音浏览器应用模式如图 1 所示:用户在一端拨打电话,可以直接通过普通话机或 SIP
话机通过 SIP 信令和语音浏览器系统建立链接;语音浏览器系统根据用户的请求,通过
Internet 与相应的网络服务器建立链接,并使用 HTTP 协议传输所需的信息;然后由语音浏
览器对这些信息进行处理、解释形成语音;在通过 Internet 与用户实现语音交互,让用户获
取想要的信息。
普通话机
PC机
SIP话机
SIP-PSTN网关
SIP-VoiceXML
浏览器
多媒体服务器
Web服务器
图1 语音浏览器的应用模式
3. 语音浏览平台及其各模块功能说明
语音浏览平台结构如图 2 所示:
- 2 -
S e r v i c e D i s p a t c h
S e r v i c e
R T P / C O M M
R T P / C O M M R T P / C O M M
S I P U A
S I P
P h o n e
S I P
t e r m
S w i t c h C e n t e r
S e r v i c e N o d e S e r v i c e N o d e
S e r v i c e N o d e
图 2 基于 SIP 的语音浏览平台结构
各模块功能说明:
(1)SIP Switch Center
实现 SIP 协议栈功能,接收来自 SIP UA(User Agent)[3]发起的呼叫,完成呼叫接续部分
的功能。并将呼叫信息报告给 Service Dispatch 模块。
SIP Switch Center 模块需要做以下功能:
1) 完成 SIP 协议栈的呼叫接续,对 SIP 的呼叫做出响应。
2) 将呼叫的信息反馈到业务节点,如 SIP UA 的地址和 RTP 端口号。
3) 接收来自业务节点的消息,如响铃,摘机,挂机等。
(2)Service Dispatch
业务分发模块主要处理来自 SIP Switch Center 的消息,并分析该呼叫的业务类型,在分
发表中查询到处理此类业务的业务节点组号,让后向处理此类业务的节点发送业务启动消
息。
主要需实现的功能:
1) 当业务节点启动的时候向 Service Dispatch 登记,将业务组号告诉该模块。在 Service
Node 退出的时候,将此分发表项删除。
2) 业务类型分析功能,分析业务类型,将业务类型和业务组号的 Service Node 对应起
来。
3)Service Node
接收来自 Service Dispatch 的消息,启动业务流程,控制具体的呼叫接续。完成具体
的业务逻辑。基本呼叫控制功能,通过向 SIP Switch Center 发送消息,控制呼叫的震铃,摘
机,和挂机事件等。
主要需实现的功能:
1) 流程业务控制功能,Service Node 分为两层,第一层描述通信和 RTP 媒体流的功
能。上层是一个业务解释器即 VoiceXML 解析器,通过执行动作完成具体的业务
逻辑。
2) 媒体功能,通过向 SIP UA 的 RTP 连接,向 SIP UA 提供媒体服务。
4. 软件设计
根据语音浏览平台结构,主要完成了以下软件设计工作:
- 3 -
(1) SIP Switch Center 模块的实现
在开源 VOCAL 基础上对 SIP 协议栈[4]进行二次开发,实现了一个能够接收 SIP 消息的
服务器,实现了会话的建立、调整和终止。
(2) ServiceNode 模块实现
Service Node Module 从 RTCS_Client(实时通信客户端)继承,其内部原子动作的实现
采用了静态状态机原理。Service Node 中除了每个具体的原子动作的实现外还包括
VoiceXML 解析器的实现,与文本转语音 TTS、语音识别 ASR 部分接口的互通,及其媒体
流传送的实现。媒体流传送过程中 Service Node 与 SIP UA 通过 RTP 协议直接传送,中间不
在经过 SIP Switch Center 模块。具体的 VoiceXML 解析部分的实现实在 OpenVXI 基础上进
行接口扩展,文本转语音的实现采用了捷通的服务器,文本转语音部分不需要再由自己实现,
只要实现与捷通 TTS 服务器接口的互通部分就可以。语音识别 ASR 部分,为支持多厂商家
的语音识别服务器自己写了 MRCP(媒体资源控制协议)部分,这样可以采用现成的语音识别
技术,本平台采用了 Nuance 的服务器,其支持中文、英文,且识别率较高。
(3) Sevice Dispatch 的实现
Service Dispatch 业务分发模块,主要处理 Sip Switch Center 收到的 SIP 消息,同时对每
个消息进行判断查找到对应的消息需求,然后将此消息发送给 Service Node 模块的对应业务
节点组号。Service Dispatch 模块是嵌在 SIP Switch Center 中实现的
(4) Service Node 与 SIP Switch Center 交互接口实现。
二者之间的通信采用实时通信系统(RTCS)中间件,采用 PDU 包的形式进行通信。一个
SIP Switch Center 可以同时与多个 Service Node 建立连接通信,内部由 Service Node Table
对每个 Service Node 模块的上、下线信息进行保存,每个 Service Node 之间以不同的模块名
进行区分。
(5)SIP UA 与 ServiceNode 模块间通信的实现
SIP UA 采用 Xten 公司出产的 X-Lite 软件, SIP UA 与 Service Node 模块间的通信主
要是实现媒体流的传送部分,二者之间采用 RTP、RTCP 协议实现音频流的传送。
5. 总结
基于 SIP 的语音浏览器可以作为系统平台提供各种灵活的业务,为中小企业提供了易于
维护和开发的语音门户。基于 SIP 的应用(如 VOIP、多媒体会议、push-to-talk(按键通话)、
定位服务、在线信息和智能管理(IM))即使单独使用,也会为服务提供商、独立软件开发商
ISV、网络设备供应商和开发商提供许多新的商机。不过,SIP 的根本价值在于它能够将这
些功能组合起来,形成各种更大规模的无缝通信服务。 使用 SIP,服务提供商及其合作伙
伴可以定制和提供基于 SIP 的组合服务,使用户可以在单个通信会话中使用会议、Web 控
制、在线信息、IM 等服务。实际上,服务提供商可以创建一个满足多个最终用户需求的灵
活应用程序组合,而不是安装和支持依赖于终端设备有限特定功能或类型的单一分散的应用
程序。 通过在单一、开放的标准 SIP 应用架构下合并基于 IP 的通信服务,服务提供商可
以大大降低为用户设计和部署基于 IP 的新的创新性托管服务的成本。它是 SIP 可扩展性促
进本行业和市场发展的强大动力。
参考文献
[1] 纪莜斐,黄德才等.基于 SIP 协议的服务器设计与实现[J].应用技术,2003,2(1):63-66.
- 4 -
[2] 基于 VoiceXML 的应用系统规范提纲.北京:中国移动互连应用协议特别组-中文&汉语专家组,2001.
[3] 李青,杨放春,苏森.SIP 与 ISUP 互通的研究[J].微型机与应用,2003,2(2):29-34.
[4] 戴建华,吴产乐.基于 SIP 的 Internet 电话[J].微电子学与计算机,2000,1(1):53-55.
The Voice browser's research and implementation based on
Session Initiation Protocol (SIP)
Wang Fuli, Yang Yuling, YeJiwang
China University of Mining & Technology (BeiJing), (100083)
Abstract
The Session Initiation Protocol (SIP) is an application-layer control (signaling) protocol for creating,
modifying, and terminating IP-based communications among internet users. It has become the focus
with its simplicity, flexibility, and high efficiency. Its great extendibility and the compatibility have
opened the new space for the implementation of VoIP (Voice over Internet Protocol) technology. This
article starts with voice browser system's entire environment, through researching SIP protocol, uses
open source VOCAL protocol for creating, modifying, and terminating IP-based communications. It
also uses the VoiceXML technology, based on the OpenVXI to implement voice identification, voice
synthesis and other connections, and then enables the SIP telephone users to choice the service through
the voice browser platform
Keywords: voice browser, VoiceXML, SIP, automatic voice recognition, voice synthesis
Text3:
Text4:
Text5: