几种开源SIP协议栈对比 [开始学习VoIP] 『转』 _go sip协议栈推荐-程序员宅基地

技术标签: tcp  cvs  server  c++  linux  VoIP  cisco  

几种开源SIP协议栈对比 [开始学习VoIP] 『转』

几种开源SIP协议栈对比

 

 

 

随着VoIPNGN技术的发展,H.323时代即将过渡到SIP时代,在H.323的开源协议栈中,Openh323占统治地位,它把一个复杂而又先进的H.323协议栈展现在普通程序员的眼前,为H.323普及立下了汗马功劳。而然当在SIP时代,则出现了群雄割据的状况,SIP相对于H.323简单,灵活,于是各种协议栈层出不穷,下面将详细对比最具有代表性的5个开源项目:OPAL, VOCAL, sipX, ReSIProcate, oSIP

  

OPALOpen Phone Abstraction Library,是Openh323的下一个版本,它仍然使用了Openh323的体系结构,并在其基础上进行扩展,同时实现了SIP,H.323,但在音频和视频的编码和传输部分有较大改动。OPAL初衷设计是包含任何电话通信协议,所以其底层进行了高度的抽象化,所以也能够很容易的支持MGCP,PSTN和将来会出现的协议。不过由于Openh323的最后一个版本还在开发中,所以原本6月发布的OPAL也被推迟,现有的OPAL还非常不完善,BUG也非常多,不过相信以Openh323的开发班底,一定能让OPAL十分优秀。
  CVS : :pserver:[email protected]:/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

 

VOCALvovida.org开发的SIP系统,VOCAL应该是目前功能最完善,使用者最多的开源SIP协议栈了.它不只包括了协议栈,还包括了h323sip转换网关,对SIP的各种Server的功能支持也非常完善.不过很可惜,不支持windows平台,而且自从vovidaCISCO收购以后就停止了开发,最后的版本是20034月的1.5.0
  CVS : :pserver:[email protected]:/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的开发开始于20007月,第一个版本在20015月发布,到现在已经发展到2.0.9了。它采用ANSI C编写,而且结构简单小巧,所以速度特别快,它并不提供高层的SIP会话控制API,它主要提供一些解析SIP/SDP消息的API和事务处理的状态机,oSIP的作者还开发了基于oSIPUA lib:exosipproxy server lib:partysip.
  CVS : :ext:[email protected]:/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

  

综合上述评测,可以看出5SIP协议栈各有千秋,OPAL有发展潜力,VOCAL比较完善,sipX兼容性好,ReSIProcate教稳定,oSIP小巧而快速。所以要根据应用的不同选择恰当的协议栈进行研究开发。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/da5le/article/details/208884

智能推荐

容斥原理_msk&1==0-程序员宅基地

文章浏览阅读634次。转自于:http://www.cppblog.com/vici/archive/2011/09/05/155103.html这篇文章发表于http://e-maxx.ru/algo/inclusion_exclusion_principle,原文是俄语的。由于文章确实很实用,而且鉴于国内俄文资料翻译的匮乏,我下决心将其翻译之。由于俄语对我来说如同乱码,而用Google直接翻译中文的话又变得面目_msk&1==0

linux dev/shm,巧用linux服务器下的/dev/shm/,避开磁盘IO不给力!-程序员宅基地

文章浏览阅读280次。巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度。首先让我们认识一下,什么是tmpfs和/dev/shm/?tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储暂存的文件。它有如下2个优势 : 1. 动态文件系统的大小。2. tmpfs 的另一个主要的好处是它..._linux 把缓存目录放入 /dev/shm

直播回顾|大规模点云显示技术-程序员宅基地

文章浏览阅读70次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间(bilibili号:3D视觉工坊:https://space.bili..._点云显示技术

【phpBB 】style button dose not show on Admin control panel-程序员宅基地

文章浏览阅读484次。Could not get style shows in Administrator Control panel , 登陆到PHPBB的管理员后台之后, 无法安装和检测到任何的style, 但是事实上已经上传style包。

yum install dockers 20 依赖_docker 20依赖-程序员宅基地

文章浏览阅读436次。执行:执行yum install docker-ce docker-ce-cli containerd.io报错解决报错container-selinux 」= 2:2.74 ; slirp4netns >= 0.4 ; fuse-overlayfs >= 0.7错误:软件包:3:docker-ce-19.03.12-3.el7.x86_64 (docker-ce-stable) 需要:container-selinux >= 2:2.74错误:软件包:dock_docker 20依赖

GDB调试:教你简单了解并使用GDB调试程序-程序员宅基地

文章浏览阅读3.1k次。(GNU symbolic debugger) 是由 GNU 软件系统社区提供的。当下的 GDB 支持调试多种编程语言编写的程序,包括 C、C++、Go、Objective-C、OpenCL、Ada 等。实际场景中,GDB 更常用来调试 C 和 C++ 程序,同 GCC 配套组成了一套完整的开发环境。何谓调试?就是让代码一步一步慢慢执行,跟踪程序的运行过程。比如,可以让程序停在某个地方,查看当前所有变量的值,或者内存中的数据;也可以让程序一次只执行一条或者几条语句,看看程序到底执行了哪些代码。_gdb调试程序

随便推点

通过dba_hist_*来进行诊断-程序员宅基地

文章浏览阅读94次。在Oracle10g中增加了dba_his_*类统计信息表,在瓶颈时间过时了的时候,可以参考这些表来诊断瓶颈来源。 1、确定时间段:select * fromdba_hist_snapshot ..._dba_hist_proc

(续)linux SD卡初始化---mmc_sd_init_card函数-程序员宅基地

文章浏览阅读168次。mmc_sd_init_card剩下的关于UHS-I的分支结构。uhs-I的初始化流程图如图:红线标出的部分是已经做了的事,与上一篇那个流程图是一致的,之后就是if分支中做的事。if分支中的函数mmc_sd_init_uhs_card:/* * UHS-I specific initialization procedure */static int mmc_sd..._mmc/sd controller initialization. mmc/sd card: mid: 0x70 read block: 512 byt

CodeForces - 998D - Roman Digits(打表 找规律)(本来应该是推公式的题吧)_let's introduce a number system which is based on -程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏2次。题目链接:http://codeforces.com/problemset/problem/998/D题目:Let's introduce a number system which is based on a roman digits. There are digits I, V, X, L which correspond to the numbers 1, 5, 10 and 5..._let's introduce a number system which is based on a roman digits. there are

Android应用程序自适应屏幕大小的解决办法_<application android:screenorientation="landscape-程序员宅基地

文章浏览阅读1.4k次。android应用自适应多分辨率的解决方法 1. 首先是建立多个layout文件夹(drawable也一样)。在res目录下建立多个layout文件夹,文件夹名称为layout-800x480等。需要适应那种分辨率就写成什么。注意: a. 较大的数字要写在前面:比如layout-854x480而不能写layout-480x854._

XPATH如何选择不包含某一个属性的节点?_xpath筛选不包含的节点-程序员宅基地

文章浏览阅读3.3w次,点赞4次,收藏12次。XPATH如何选择不包含某一个属性的节点?今天博主在写一个xpath的时候就碰到了这个问题。我们知道选择包含某一特定属性的节点,可以使用例如//tbody/tr[@class]来选择。那么不含某属性的节点如何用xpath取得呢?这里可以用到not。例如排除一个属性的节点可以使用//tbody/tr[not(@class)]来写,排除一个或者两个属性可以使用//tbody/tr[no_xpath筛选不包含的节点

IP端口扫描工具(Tenable Nessus)的简介-程序员宅基地

文章浏览阅读2.2k次。Tenable Nessus是一款使用方便的 IP、端口扫描工具。 利用它可以获得被扫描计算机的 ping 响应时间、主机名称、计算机名称、工作组、登录用户名、MAC地址、TTL、NetBios 信息等;您也可以指定扫描端口,查看目标计算机开放端口的情况。Nessus是一个顶级的漏洞扫描程序,它由Tenable Network SecurityNessus 被认为是目前全世界最..._tenable nessus