在构建VoIP/SIP等音视频产品时,为了快速稳定的实现产品功能,通常需要集成一些优秀的开源库来达到此目的。
1. pjsip
PJSIP是一个开放源代码的SIP协议栈,该库支持标准SIP/SDP/RTP等SIP/VoIP协议。
- 支持linux/android多平台,适用于嵌入式系统
- 由C语言编写可进行二次开发
- 常用于开发客户端SIP应用,也可开发SIP服务或代理服务
2. mediastreamer2
Mediastreamer2 是一个功能强大且小巧的流引擎,专门为音视频电话应用而开发。
- linphone使用了mediastreamer2库
- 以扩展插件的形式支持H264, ILBC, SILK, AMR, AMR-WB and G729
- 适用于嵌入式系统
3. oRTP
oRTP(Open Real-Time Transport Protocol)是一个开源的实时传输协议库,主要用于处理多媒体数据流的传输。
- RFC 3550标准,实现RTP/RTCP的核心功能
- 与mediastreamer2配合使用,负责rtp的传输
- 广泛应用于多媒体通信,视频会议等VoIP领域
- linphone产品使用了oRTP库
4. ffmpeg
FFmpeg是一个处理音视频的开源库,包含系列处理音视频的API接口,号称多媒体处理的瑞士军刀。
- 开源多媒体处理框架
- 支持音视频编解码
- 跨平台(Windows/Linux/Mac)
- 音视频开发人员必备技能
5. freeSwitch
FreeSWITCH是一款功能强大且高度灵活的开源软交换(IPPBX)平台,支持标准的SIP协议和扩展协议,广泛应用于企业通信、呼叫中心等场景。具备灵活的IVR处理能力和强大的扩展性和稳定性,还提供了ESL接口,方便企业开发者进行二次开发和功能扩展。
6. kamilio
Kamailio是一个开源的SIP服务器,可以作为SIP代理服务器,注册服务器、重定向服务器等使用。具备高性能与并发处理能力,支持多种配置和扩展,能够适应不同的应用场景,不仅支持基本的SIP功能,如注册、呼叫、转接等,还提供了许多高级功能,如负载均衡、NAT穿越、媒体代理等。
7. sofia-sip
Sofia-SIP 是一个遵循 RFC3261用户代理库。著名的freeSwitch产品中使用的SIP协议栈就是Sofia-SIP。
8. openSip
OpenSIPS(Open SIP Server)是一个成熟的开源SIP服务器实现,可以作为SIP代理/路由器。