pjsip结构

pjproject主体由pjlib、pjsip和pjmedia组成,其中又以pjsip最为核心,pjproject的媒体模块pjmedia是比较弱的,比不上webrtc,但是sip模块却是相当不错。pjsip目录又有几个子目录,其中pjsip为核心层,向上提供端点endoint、对话dialog,用户代理ua,这些API。pjsip-ua则是会话层,其中我只会分析其中最重要的invite会话。pjsip-ua是低层API,应用可以使用这些低层API进行开发,比较灵活。pjsua-lib则是高层API,里面不仅整合了sip会话,还封装了pjmedia媒体的调用。从这三层结构可以看出,pjsip层次分明,设计得很好。

下面几篇先来分析最底层最核心的pjsip层,先上两张pjsip的消息流图和类图。

 

 从图中可以看出,端点endpoint是整个pjsip的核心,它的几个功能都很重要

它有内存池工厂,负责给所有的SIP组件分配内存池。
它有定时器堆实例,为所有的SIP组件调度定时器
它有SIP传输管理实例,传输管理有SIP传输和控制消息的解析和打印
它拥有PJLIB io队列的唯一实例。Io队列是用来分发网络事件
它提供线程安全的轮询功能,这样的应用中的线程可以轮询定时器和socket事件(PJSIP本身不创建任何线程)
它管理模块,PJSIP模块是扩展除了消息解析和传输之外协议栈功能的主要方法
它负责从Transport Manager那里接收SIP消息,再分发给各个模块

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
exosippjsip都是开源的VoIP协议栈。 exosip是eXtended Osip的缩写,是一个基于oSIP库的高级SIP协议栈,用于在基于SIP(Session Initiation Protocol)的通信系统中实现VoIP功能。它提供了面向对象的API,使开发者能够轻松地编写自己的SIP应用程序。exosip支持SIP标准中的大部分功能,例如会话建立、信令传输、媒体流传输等。通过exosip,开发者可以构建自己的VoIP应用程序,如IP电话、语音会议系统等。 pjsip是一个开源的多媒体通信库,它实现了IP电话、呼叫中心、音视频会议等功能。pjsip是基于SIP协议的,但它也支持其他常用的VoIP协议,如UDP、TCP、TLS、HTTP等。它提供了完整的SIP协议栈和相关的音视频引擎,以及接口和工具,便于开发者使用。pjsip具有良好的跨平台性,可以在多种操作系统上运行,包括Windows、Linux、Android、iOS等。 exosippjsip都是基于开源的oSIP库开发的,但它们的主要区别在于功能和用途。exosip更偏向于提供高级的SIP协议栈,支持各种SIP标准功能的开发,适用于构建复杂的SIP应用程序。而pjsip则更多地提供了一个完整的VoIP通信库,包括SIP协议、音视频通信引擎等,适用于开发各种类型的VoIP应用。 总的来说,exosippjsip都是非常有用的开源VoIP协议栈,可以帮助开发者快速构建各种VoIP应用程序,提供灵活的通信解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值