幾類SIP協議棧大比拼
網絡通訊的發展是讓人吃驚的。那么各種技術的產生,也給固有通訊帶來了沖擊,這里我們就介紹一下其中的SIP協議棧內容。隨著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小巧而快速。所以要根據應用的不同選擇恰當的協議棧進行研究開發。