最近要用到sip协议,因此寻找了两个开源项目作对比,分别是linphone和pjsip,经过对比,最终选择pjsip这套开源协议栈进行开发。
主要原因有如下(仅个人参考):
1、linphone的代码结构不如pjsip分明,pjsip在windows下更方便调试;
2、linphone更新后不使用osip作为协议栈,改用自行编写的belle_sip,pjsip协议栈还在维护,且一直稳定;
3、pjsip作为协议栈开发的示例很多,belle_sip来开发还是linphone头一回。
linphone和pjsip都是很优秀的开源项目,我都支持,都值得学习,只是选择pjsip更适合我的项目。
pjsip的代码结构:
基础库: pjsip
基础辅助库:pjutil
(最底层接口)
基础协议栈:pjsiip、pjsip-simple
基础媒体库:pjmedia、pjmedia-codec(pjmedia_audiodev/pjmedia_videodev)、pjnath(nat穿透)
(中间层接口,依赖pjsip和pjutil)
整体封装接口:pjsip-ua
应用层接口:pjsua-lib/pjsua2_lib
(依赖中间层接口)
应用:pjsua
示例:sample_pjsua
.c 带注册,可拨打和接听
sampleua.c 不带注册,可拨打和接听
siprtp.c 发送和接收rtp包
httpdemo.c 一个简易的http client
其中,一层接口都带了test,对学习它的api很有帮助
有兴趣可以一起研究:Q群(437295987)
时间: 2024-11-14 23:05:07