下载源码地址:
https://www.pjsip.org/
解压源码包,双击pjproject-vs8.sln(因为本人用的是vs2015,会提示工程升级,直接升级即可,在升级中本人没有选择wp8,uwp等相关属性)
把D:\pjproject-2.8\pjlib\include\pj\config_site_sample.h文件复制一份并命名为config_site.h
然后右键pjproject-vs14选择生成解决方案进行编译
在编译中的错误自行解决(我的一般都是文件的编码不对,直接双击在vs中打开并保存即可)
添加视频支持:
下载文件
http://www.libsdl.org/
SDL2-devel-2.0.9-VC.zip
https://ffmpeg.zeranoe.com/builds/win64/shared/
ffmpeg-3.2.4-win64-shared.zip
ffmpeg-3.2.4-win64-dev.zip
1.pjmedia\include\pjmedia\config.h文件中修改PJMEDIA_HAS_VIDEO的值为1,修改PJMEDIA_HAS_FFMPEG的值为1
2.pjmedia\include\pjmedia-videodev\config.h文件中修改PJMEDIA_VIDEO_DEV_HAS_SDL的值为1,修改PJMEDIA_VIDEO_DEV_HAS_DSHOW的值为1
3.pjmedia,pjmedia_codec增加ffmpeg支持,加入头文件和库目录
例如:选中pjmedia工程右键属性-> C/C++ -> 常规 -> 附加包含目录 ->选择ffmpeg的include文件路径
选中pjmedia工程右键属性-> 库管理器 -> 常规 -> 附加库目录 -> 选择ffmpeg的lib文件目录 -> 附加依赖项 -> 手动写入avcodec.lib,avdevice.lib,avfilter.lib,avformat.lib,avutil.lib
4.pjmedia_videodev增加SDL支持,加入头文件和库目录
5.pjsua增加ffmpeg,SDL支持,加入头文件和库目录
注:在有些test等工程文件没有配置ffmpeg和sdl会编译不过,但是不会影响编译正常的使用程序
6.把相关的ffmpeg和sdl的dll放到最后整合的pjsip运行目录下
(
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
swscale.lib
SDL2.lib
SDL2main.lib
)
相关命令行命令:
双击pjsua-x86_64-x64-vc14-Release.exe后输入的命令行内容,如下:
拨打电话:m 回车 sip:172.16.40.53
接听: answer 回车 200
挂断: h
退出: q
启用视频:vid enable 回车 vid acc autotx on 回车 vid acc autorx on
注:vid help 可以显示出视频相关的命令设置 命令展示文件pjsua_app_legacy.c
修改分辨率:vid codec H264 1280 720
注册:
+a回车
sip:[email protected]回车
sip:172.16.40.68回车
172.16.40.68回车
1003回车
1234回车
D:\pjproject-2.8\pjmedia\src\pjmedia\stream.c音频编解码
D:\pjproject-2.8\pjmedia\src\pjmedia\vid_stream.c视频编解码
D:\pjproject-2.8\pjmedia\src\pjmedia-videodev\dshow_dev.c 查找本机摄像头设备
pjsip(2.4.5)增加视频功能
https://blog.csdn.net/liang12360640/article/details/51158724
PJSIP 2.7.2 增加视频支持
https://blog.csdn.net/yongkai0214/article/details/81298965
PJSUA2开发文档--第七章 呼叫 Calls类
https://www.cnblogs.com/mobilecard/p/6723742.html
PJSIP开源库详解
https://www.cnblogs.com/rayfloyd/p/7206815.html
https://www.cnblogs.com/MikeZhang/archive/2012/02/08/pjsuaChineseManual.html
代码分析
https://blog.csdn.net/twd_1991/article/list/3?
pjsua-x86_64-x64-vc14-Release.exe --config-file=pjsipconfig.ini
pjsua-x86_64-x64-vc14-Debug.exe --config-file=pjsipconfig.ini
pjsipconfig.ini文件内容:
--log-file=cyc_pjsip.log
--log-level=6
--no-tcp
--local-port=5160
--id=sip:[email protected]
--registrar=sip:172.16.40.15
--realm=*
--username=1008
--password=1234
--ec-tail=MSEC 设置回波抵消尾长度(默认值256
--ec-opt=OPT 选择回波抵消算法(0 =默认,1 = SPEEX,2 =抑制)
./pjsua --ec-opt=3 --ec-tail=30
--play-file=file 在会议桥中注册WAV文件
--auto-play 自动播放文件(仅来电
--auto-loop 自动循环传入RTP到传出RTP
--auto-conf 自动加入会议
--auto-answer=code 自动接听来电的应答代码(如200)
--thread-cnt=N 工作线程数目(默认:1)
--duration=SEC 设置最大通话时间(默认是:没有限制)