本文 来自 csdn ucser http://blog.csdn.net/perfectpdl, 转载注明出处,谢谢。
Asterisk社区还真够活跃,刚刚在Asterisk 增加了 webrtc, ICE等新技术的支持,这不,又要在Asterik 12中替换其原有的SIP
协议栈,对Asterisk 内部了解的人都知道,其现有SIP协议栈有诸多弊端,导致其已经很难维护,以下是其现有SIP协议栈的缺点:
1. 整个SIP协议的实现代码不是一个以协议栈方式组织的,全部代码在一个文件 chan_sip.c中,没有SIP协议分层的概念,导致添加一个传输层的支持
要在整个源码里面各种找。
2. 改一个bug往往导致新的bug出现,原因是其代码抽象很差,一个标志位可能用在多个地方来标识某个特性,稍有疏忽,就会导致一个新的BUG。
终于 asterisk向第三方SIP协议栈招手,在流行的SIP协议栈 pjsip, reprocate, sofia-sip中选择了 pjsip. asterisk-scf也是用的这个协议栈,但遗憾的是asterisk-scf项目
中途夭折了。。
采用新SIP协议栈将实现如下功能: