当前位置:  软件>C/C++软件

开源的SIP协议栈 PJSIP

    来源:    发布时间:2015-02-15

    本文导语:  PJSIP是一个开放源代码的SIP协议栈。它支持多种SIP的扩展功能,目前可说算是最流行的sip协议栈之一了。 下面列出其重要的几种优点: 1)代码层次非常清晰,从低级到高级都提供了很方便的接口供开发; 2)提供相当多的测试...

PJSIP是一个开放源代码的SIP协议栈。它支持多种SIP的扩展功能,目前可说算是最流行的sip协议栈之一了。

下面列出其重要的几种优点:

1)代码层次非常清晰,从低级到高级都提供了很方便的接口供开发;

2)提供相当多的测试用例和一个基于pjsip开发的命令行UA程序供开发人员参考;
3).高度的可移殖性
只需简单的编译一次,它能够在多种平台上运行(所有Windows 系统列, Windows Mobile, Linux, 所有Unix 系列, MacOS X, RTEMS, Symbian OS, 等等)。
4).极小的内存需求

官方宣称编译后的库,完全实现SIP的功能只需要150K的内存空间,这使得PJISPi不仅仅是嵌入开发的理想平台,并且实用于那些内存运行于极小内存平台的应用,这也意味着极小的用户下载时间。

5).高效的性能
这意味着极小的CPU运算需求下能同时实现更多的通话。
6).支持多种SIP功能及扩展功能
多种SIP功能和扩展功能,例如多人会话,事件驱动框架,会话控制(presence),即时信息,电话传输,等等在库文件里得以实现。
7).丰富的文档资料
对于软件开发人员来说,文档资料从来都是多多益善,因此我们要求PJSIP开发人员提供了大量的极有价值的文档资料供大家使用

其实说是PJSIP不是特别贴切,这个库实际上是几个部分组成的.
 1).PJSIP - Open Source SIP Stack[开源的SIP协议栈]
 
 2).PJMEDIA - Open Source Media Stack[开源的媒体栈]
 
 3).PJNATH - Open Source NAT Traversal Helper Library[开源的NAT-T辅助库]
 
 4).PJLIB-UTIL - Auxiliary Library[辅助工具库]
 
 5).PJLIB - Ultra Portable Base Framework Library[基础框架库]

PJLIB简介

 要理解好PJSIP,就不得不先说说PJLIB,PJLIB算的上是这个库中最基础的库,正是这个
库的优美实现,才让PJSIP变得如此优越。
 
 PJLIB提供了一系列特征,这是我们下面分析的重点,涉及到:
 1).非动态内存分配[No Dynamic Memory Allocations]
  实现了内存池,获取内存是从与分配的内存池中获取,高性能程序多会自己构造内存池
,后面我们会解释该内存池的使用以及基本的原理。根据作者的比较,是常规的 malloc(
)/free()函数的30倍。
  
 2).OS抽象[Operating System Abstraction]
  实现OS抽象的根本原因在与可移植性,毋庸置疑:).
  涉及到:
  a).线程[Threads.]
  b).线程本地存储[Thread Local Storage.]
  c).互斥[Mutexes.]
  d).信号灯[Semaphores.]
  e).原子变量[Atomic Variables.]
  f).临届区[Critical sections.]
  g).锁对象[Lock Objects.]
  h).事件对象[Event Object.]
  i).时间管理[Time Data Type and Manipulation.]
  j).高解析的时间戳[High Resolution Timestamp.]
  等等,这些我们后面分析代码时一一看来:)
  
 3).低层的网络相关IO[Low-Level Network I/O]
     这涉及到:
     a).Socket抽象[Socket Abstraction.]
     b).网络地址解析[Network Address Resolution.]
     c).实现针对Socket的select API[Socket select() API.]
    
 4).时间管理[Timer Management]
  这主要涉及到两个部分,一个时定时器的管理,还有就是时间解析的精度(举例说来,就是能精确到哪个时间等级,比如 POSIX sleep(),就只能以秒为单位,而使用select()则可以实现毫秒级别的计时) 


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 新手如何加入开源项目 有什么好的c++,java 开源适合新手 请指点!
  • apache的开源小组怎么生存的?比如struts的开源小组,他们的成果被商用也没人付钱
  • 建议建立一个面向开源软件组织和准备参与开源组织者的交流通道
  • 飞思卡尔I.MX53处理器硬件开源 联永羲和开源硬件系统
  • 开源软件和不开源软件哪个质量更高?
  • 开源爱好者进来
  • 开源专家:企业级开源软件大盘点
  • 企业不用开源产品的原因??
  • [讨论]自由软件之于开源软件
  • linux开源软件
  • 参与开源项目
  • 开源力量ConcourseConnect
  • 开源门户平台 GateIn
  • 开源CRM软件 Daffodil CRM
  • linux下的软件都必须是开源的么
  • 开源VPN软件 Freelan
  • 开源潜水设备 OpenROV
  • 开源串口通信程序 linucom
  • 免费开源图形API Mesa3D
  • 开源Flash播放器 Lightspark


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3