几种开源 SIP 协议栈对比
2007-04-17 22:22
随着 VoIP 和 NGN 技术的发展,H.323 时代即将过渡到 SIP 时代,在 H.323 的开
源协议栈中,Openh323 占统治地位,它把一个复杂而又先进的 H.323 协议栈展
现在普通程序员的眼前,为 H.323 普及立下了汗马功劳。而然当在 SIP 时代,则
出现了群雄割据的状况,SIP 相对于 H.323 简单,灵活,于是各种协议栈层出不
穷,下面将详细对比最具有代表性的 5 个开源项目:
OPAL,VOCAL,sipX,ReSIProcate,oSIP
OPAL 是 Open Phone Abstraction Library,是 Openh323 的下一个版本,它
仍然使用了 Openh323 的体系结构,并在其基础上进行扩展,同时实现了
SIP,H.323,但在音频和视频的编码和传输部分有较大改动。OPAL 初衷设计是包
含任何电话通信协议,所以其底层进行了高度的抽象化,所以也能够很容易的支
持 MGCP, PSTN 和将来会出现的协议。不过由于 Openh323 的最后一个版本还在开
发中,所以原本 6 月发布的 OPAL 也被推迟,现有的 OPAL 还非常不完善, BUG
也非常多,不过相信以 Openh323 的开发班底,一定能让 OPAL 十分优秀。
CVS : :pserver:anonymous@cvs.sourceforge.net:/cvsroot/openh323/opal
Language : C++
VxWorks port : Yes
Win32 port : Yes
Linux port : Yes
Supports RFC 3261 : Yes
Supports RFC 2327 : Yes
Supports RFC 3264 : Yes
Supports RFC 3263 : No
Supports RFC 3515 : Yes
Supports RFC 3262 : No
Supports RFC 3311 : No
TCP : Yes
UDP : Yes
SIZE : 8MB
License : MPL
Document : None
Samples : UA,GK
VOCAL 是 vovida.org 开发的 SIP 系统,VOCAL 应该是目前功能最完善,使用
者最多的开源 SIP 协议栈了.它不只包括了协议栈,还包括了 h323 与 sip 转换
网关,对 SIP 的各种 Server 的功能支持也非常完善.不过很可惜,不支持 windows
平台,而且自从 vovida 被 CISCO 收购以后就停止了开发,最后的版本是 2003
年 4 月的 1.5.0。
CVS : :pserver:anonymous@cvs.vovida.org:/cvsroot/vocal
Language : C++
VxWorks port : No
Win32 port : Partial
Linux port : Yes
Supports RFC 3261 : Partial
Supports RFC 2327 : Yes
Supports RFC 3264 :
Supports RFC 3263 :
Supports RFC 3515 : Yes
Supports RFC 3262 :
Supports RFC 3311 :
TCP : Yes
UDP : Yes
SIZE : 6MB
License: Vovida software licencse
Document : Few
Samples : UA,GK,GW
sipX 是一个 SIP 系统,由 SIPFoundry 开发。sipX 是从 reSIProcate 分离出
来的,sipX 除了包括 SIP stack 外,还包括了
sipXphone,sipXproxy,sipXregistry 等等...,由它们构成了完整的 SIP 系统,
而且 sipx 还支持嵌入式系统,各个模块可以按需取舍。不过可惜是几乎没有任
何开发文档。
SVN : http://scm.sipfoundry.org/viewsvn/
Language : C++
VxWorks port : Yes
Win32 port : Yes
Linux port : Yes
Supports RFC 3261 : Yes
Supports RFC 2327 : Yes
Supports RFC 3264 : Yes
Supports RFC 3263 : Yes
Supports RFC 3515 : Yes
Supports RFC 3262 : No
Supports RFC 3311 : No
TCP : Yes
UDP : Yes
SIZE : <4 Mb
License : LGPL
Document : None
Samples : UA,GK,GW
ReSIProcate 同样也是由 SIPFoundry 开发,ReSIProcate 最开始起源于
Vocal,由于 Vocal 开始只支持 rfc3254,为了支持最新的 rfc3261,ReSIProcate
诞生了,但现在,ReSIProcate 已经成为一个独立 SIP 协议栈了,它十分稳定,
并且很多商业程序都在使用。
SVN : http://scm.sipfoundry.org/viewsvn/resiprocate/main/sip/
Language : C++
VxWorks port : No
Win32 port : Yes
Linux port : Yes
Supports RFC 3261 : Yes
Supports RFC 2327 : Yes
Supports RFC 3264 : Yes
Supports RFC 3263 : Partial
Supports RFC 3515 : Yes
Supports RFC 3262 : No
Supports RFC 3311 : No
TCP : Yes
UDP : Yes
SIZE : < 2.5 Mb
License : Vovida
Document : Few
Samples : None
oSIP 的开发开始于 2000 年 7 月,第一个版本在 2001 年 5 月发布,到现在
已经发展到 2.0.9 了。它采用 ANSI C 编写,而且结构简单小巧,所以速度特别
快,它并不提供高层的 SIP 会话控制 API,它主要提供一些解析 SIP/SDP 消息的
API 和事务处理的状态机, oSIP 的作者还开发了基于 oSIP 的 UA lib:exosip
和 proxy server lib:partysip.
CVS : :ext:anoncvs@savannah.gnu.org:/cvsroot/osip
Language : C
VxWorks port : Yes
Win32 port : Yes
Linux port : Yes
Supports RFC 3261 : Yes
Supports RFC 2327 : Yes
Supports RFC 3264 : Yes
Supports RFC 3263 : Yes
Supports RFC 3515 : No
Supports RFC 3262 : No
Supports RFC 3311 : Yes
TCP : Yes
UDP : Yes
SIZE : 400kb
License : LGPL
Samples : UA,GK
综合上述评测,可以看出 5 种 SIP 协议栈各有千秋,OPAL 有发展潜力,VOCAL
比较完善,sipX 兼容性好,ReSIProcate 教稳定,oSIP 小巧而快速。所以要根
据应用的不同选择恰当的协议栈进行研究开发。