`
liukl
  • 浏览: 31254 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

SIP服务器protocal stack选择

阅读更多

      由于工作,需要自己开发一个SIP软交换。严格意义上已不是什么sip proxy、sip registar、sip redirect、B2BUA的哪一个了。其实国内做这个的,大家都差不多是一个server,搞定了注册、路由、认证、计费的功能。

 

      认证、计费、路由这些都是自定义业务,每个项目的需求都不太一样,需要自己基于数据库来做。这部分的代码也比较容易搞定,就是些sql语句罢了。

 

      比较麻烦的是sip本身的一些处理,如SIP消息解析、事务状态机、会话管理等,严格参照RFC3261来实现不太可取,工作量太大。

 

      在当下开源项目这么多的情况下,选择一个开源的协议栈作为开发的基础,应该是个不错的选择。未来降低复杂性,优先选择仅支持SIP的协议栈,方便对代码的掌握。

 

      当下比较纯粹的sip协议栈,当属osip。但osip本身看上去效率不高是事实,代码看上去非常的简单,虽然没有什么文档支持,但很容易看懂。估计实际用起来会有不少地方需要优化的,搞到最后和自己写一个也差不多了。

 

      根据我个人开发softphone的经验,发现pjsip非常不错。系统设计优良、效率很高,对标准的支持也很完善。根据2年来的跟踪情况看,社区开发也一直都很活跃,但由于系统的结构化做的非常好,主设计一直都很稳定。而且pjsip社区一直都注重文档工作,相关文档和代码里的注释也是非常的多。

 

      个人倾向基于pjsip里的sip协议部分来开发sip软交换,不过在开发softphone的过程中发现,pjsip从头到尾都是为softphone而设计。担心作为服务器的协议栈,会有意想不到的限制。已经发现代码里有很多XX_MAX宏定义,定义了诸如最大transaction、最大dialog等。

 

      借此宝地发文,寄望于我辈同道中人,能有幸一起讨论分析。

1
0
分享到:
评论

相关推荐

    peers-0.1.1_sip_sipstack_

    采用SIP协议栈开发,基于SIP协议的聊天室完整工程程序,包括客户端和服务器端的完整原程序

    hci_uart.rar_HCI_Protocol Stack_bluetooth_bluetooth uart _linux

    Bluetooth protocol stack for Linux

    sipstack.io:原始sipstack的叉子

    sipstack.io Sipstack.io是一项旨在编写新型的基于JVM的SIP堆栈的计划,该堆栈对操作友好且性能出色。 它带有复杂的配置,应用程序度量标准和操作工具,使您和您的团队可以在最短的时间内构建可用于生产环境的SIP...

    Radvision SIP Stack编程手册中文版

    RADVISION的SIP解决方案由一系列的开发、测试工具组成,使用它们可以设计、开发并测试几乎所有的基于SIP的应用软件。 RADVISION的SIP解决方案符合最新的IETF(注:SIP协议设计组的直属机构)SIP 标准以及一些关键的...

    Nokia Affix is a Bluetooth Protocol Stack for Linux

    Affix is a Bluetooth Protocol Stack for Linux developed by Nokia Research Center in Helsinki and released under GPL. See CREDITS. Affix supports core Bluetooth protocols like HCI, L2CAP 1.1, L2CAP 1.2...

    LyraNET: A Zero-Copy TCP/IP Protocol Stack for Embedded Operating的翻译

    英文论文LyraNET: A Zero-Copy TCP/IP Protocol Stack for Embedded Operating Systems的中文翻译

    sipstack-example-0.1.0.zip

    jsch-nio.zip,通过ssh使用jsch和jsch扩展的java 7文件系统实现通过ssh的java nio文件系统实现

    一个SIP协议栈的实现源码

    一个SIP协议栈的实现源码,对sip协议进行了完整的封装。 Implementation of a SIP protocol stack source code, to sip protocol complete package.

    SIP - Understanding the Session Initiation Protocol, 2nd Ed - 1459

    1.4 Internet Multimedia Protocol Stack 4 1.4.1 Physical Layer 4 1.4.2 Internet Layer 4 1.4.3 Transport Layer 5 1.4.4 Application Layer 8 1.5 Utility Applications 9 1.6 DNS and IP Addresses 10 1.7 URLs...

    freemodbus-v1.4.0.rar_ modbus tcp _CAN protocol stack_modbus TCP

    在FreeMODBUS的当前版本中,提供了Modbus Application Protocol v1.1a 的实现并且支持在Modbus over serial line specification 1.0中定义的RTU/ASCII传输模式。从0.7版本开始,FreeModbus也支持在TCP defined in ...

    Delphi6/7 SIP-0.6协议栈

    The package in the ZIP file below contains the Delphi source code for a SIP stack.

    delphi sip 协议及测试程序

    稍作修改的sip 协议 stack. 可以编译通过并发送和接收呼叫信息

    java sip 协议栈实现客户端和服务

    -- sip协议栈基于java的源码实例、内含jar包,用Eclipse直接打开运行。 -- 先运行server.java的main方法,再运行client.java的main方法

    SIP协议开源库Vocal-1.5.0

    编译环境为linux-Vovida produced in RTP, RTCP, and other SIP based protocol stack and SIP UAC and UAS capabilities of IP telephony server procedures. Linux compiler environment。 已于2008年停止开发,...

    C语言头文件 STACK

    C语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 ...

    PS Trace Interfaces

    PS(protocol stack) Trace的方法,在KAL层有两种方法(提供两个Function)可以对protocol stack 进行Trace。 Trace Logging Architecture: TST Service: TST module为Protocol Stack tasks提供的functions,如: void...

    jain sip 入门

    jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档

    CC2540 BLE stack 1.3.1

    TI 最近协议栈CC2540 1.3.1

    VOIP,SIP视频软件microSIP

    Open source portable SIP softphone for Windows based on PJSIP stack

Global site tag (gtag.js) - Google Analytics