Jay*_*ayG 22
7年前我经历了类似的任务,但寻找嵌入式C版本.我查看了oSIP库.它完成了将SIP数据包转换为结构并返回的所有工作.
但是,文档中的一点与我相关.作者建议您熟悉SIP规范(RFC 3261)以有效地使用该库.在多次阅读规范之后,我最终编写了自己的解析器和调用控制应用程序.
请记住,SIP仍然是一个不断发展的标准.有一个活动的SIPForum组正在开发SIPConnect 1.1,以便在SIP服务提供商(例如Vonage)和SIP-PBX之间的接口上实现标准化.还有一项名为BLISS的活动,用于定义在用户代理之间实施SIP功能的"最佳实践".
互操作性很难.有数百个与SIP相关的RFC.不同的端点使用不同的端点,并且规范的解释并不总是兼容的.有几种不同的互操作性"测试事件(如SIPit),以确保您的实现与其他人一起工作.
无论您选择什么,请确保您对正在实施的功能的规格有一个很好的理解.此外,规范和库将有助于数据包端,但您仍需要一个"呼叫控制"库(更高级别的"大脑"来决定如何处理SIP请求/响应).除非您的应用程序纯粹是SIP代理,否则您还需要媒体层来处理音频.
尽管如此,一些互联网电话服务提供商(ITSP)已经使用SIP Express路由器作为其服务的前端代理.它非常易于配置,兼容性成功率很高.
这是我遇到的一对夫妇:
http://www.independentsoft.com/sip/index.html
http://voipengine.googlepages.com/sipeksdk