SIP 常用开源库 SIPp、PJSIP 和 Belle-sip 简介

SIP是什么

SIP(会话发起协议)属于IP应用层协议,用于在IP网上为用户提供会话应用。会话(Session)指两方或多方用户之间的语音、视频、及其他媒体形式的通信,具体可能是IP电话、会议、即时消息等等。

  • SIP是IETF(互联网工程任务组)标准定义的应用层协议。它在RFC 3261中定义。
  • SIP 体现了客户端-服务器体系结构以及来自HTTP 的URL 和 URI 以及来自SMTP 的文本编码方案和标头样式的使用。
  • SIP 借助描述会话的 SDP(会话描述协议)和用于通过 IP 网络传输语音和视频的 RTP(实时传输协议)。
  • SIP 可用于两方(单播)或多方(多播)会话。
  • 其他 SIP 应用包括文件传输、即时消息、视频会议、在线游戏和流式多媒体分发。

SIP 常用开源库

1. SIPp

SIPp 是一个免费的 SIP 协议开源测试工具/流量生成器。它包括一些基本的SipStone 用户代理场景(UAC 和 UAS),并使用 INVITE 和 BYE 方法建立和释放多个呼叫。它还可以读取 描述从非常简单到复杂的调用流程的自定义 XML场景文件。它具有动态显示有关运行测试的统计数据(呼叫速率、往返延迟和消息统计)、定期 CSV统计转储、多个套接字上的 TCP 和 UDP 或多路复用的重传管理以及动态可调的呼叫速率。

其他高级功能包括支持IPv6、 TLS、SCTP、SIP身份验证、 条件场景、UDP 重传、 错误鲁棒性(调用超时、协议防御)、调用特定变量、 用于提取和重新注入任何协议字段的Posix正则表达式、自定义操作 (日志、系统命令执行、呼叫停止)消息接收、从外部 CSV文件进行字段注入以模拟实时用户。

SIPp 还可以通过RTP 回显和 RTP/pcap重播发送媒体 (RTP) 流量。媒体可以是音频或视频。

https://github.com/SIPp/sipp/releases

2. PJSIP

PJSIP 是一个用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。它将信令协议 (SIP) 与丰富的多媒体框架和 NAT 穿越功能结合到高级 API 中,该 API 是可移植的,适用于从台式机、嵌入式系统到移动手机的几乎任何类型的系统。

PJSIP 既紧凑又功能丰富,PJSIP支持音频、视频、状态和即时消息传递,并拥有大量文档。PJSIP非常便携。在移动设备上,PJSIP抽象了系统相关的功能,并且在许多情况下能够利用设备的本机多媒体功能。

PJSIP 自2005 年以来一直由一个专门为该项目工作的小团队开发,来自世界各地的数百名开发人员参与其中,并自 2007 年以来在 SIP 互操作性活动 ( SIPit ) 上进行例行测试

https://github.com/pjsip/pjproject

3. Belle-sip

Belle-sip 是一个实现 SIP 传输、事务和对话层的现代库。它是用 C 语言编写的,具有面向对象的 API。它还包含一个简单的 HTTP/HTTPS 客户端实现。

特征

  • SIP 解析器、编写器、事务和对话层的符合 RFC3261 的实现。
  • 具有最新更新的 SIP 事务状态机 (RFC6026)。
  • 完全异步传输层(UDP、TCP、TLS),包括 DNS 解析器(SRV、A、AAAA)。
  • 完整的双栈 IPv6 支持。
  • 由于“刷新”对象,可以自动管理请求刷新,并具有网络断开弹性。
  • 支持的平台:Linux、Mac OSX、Windows XP+、iOS、Android、Blackberry 10。
  • HTTP/HTTPS 客户端实现。

https://gitlab.linphone.org/BC/public/belle-sip

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/43974.html

(0)

相关推荐

发表回复

登录后才能评论