一、版本相关
1) ubuntu版本: 16.04
2) opensips版本:2.1.2
3) pjsip版本 :2.5.5
4) ffmpeg版本:3.3.4
5) sdl版本:2.0
6) vs版本:2015
7) x-lite 测试sip客户端软件
二、编译pjsip
1)、目录 pjlibincludepj,把config_site_sample.h拷贝一份,改为config_site.h
2) 、添加视频功能
config_site.h 加上
1 #define PJMEDIA_HAS_VIDEO 1
2
3 #define PJMEDIA_VIDEO_DEV_HAS_SDL 1
4
5 #define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1
6
7 #define PJMEDIA_HAS_FFMPEG 1
3)、配置sdl和ffmpeg库
下载sdl2.0 ffmpeg3.3.4
在pjproject源码lib目录copy sdl和ffmpeg的lib文件
在pjproject源码新建include目录,分别建立ffmpeg、sdl目录。
将ffmpeg的inlude头文件copy到ffmpeg目录下
将sdl的include头文件copy到sdl目录下
打开pjproject-vs14.sln的解决方案
对项目 pjmedia_videodev 添加sdl支持;
对项目 pjmedia_videodev 添加ffmpeg支持;
对项目 pjmedia_codec 添加ffmpeg支持;
4)ffmpeg注意事项
pjsua在链接的时候会报错avcodec.lib “模块对于SAFESEH映像是不安全的”。需要关闭pjsua项目的SAFESEH。
在编译器的属性框链接器|高级的‘映像具有安全异常处理程序’,设置为否。
5) vs2015编译完成后本地测试pjsip
在 pjsip-appsin 目录,创建两个批处理文件
1 sample-debug-i386-Win32-vc14-Debug.exe --local-port=5060 --auto-answer=200 --video
2 sample-debug-i386-Win32-vc14-Debug.exe --local-port=5061 --auto-answer=200 --video
启动这两个客户端,在5061端口的客户端命令行输入
m
sip:127.0.0.1:5060
呼叫5060sip客户端,测试语音视频通话
三、ubuntu opensips部署
1)安装环境,配置mysql编译选项,编译:
依赖库
1 apt-get install gcc bison flex make openssl
2 libmysqlclient-dev perl libdbi-perl libdbd-mysql-perl
3 libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl
4 libberkeleydb-perl mysql-server ssh libxml2 libxml2-dev
5 libxmlrpc-core-c3-dev libpcre3 libpcre3-dev subversion
6 libncurses5-dev git ngrep libssl-dev
1 tar xcf opensips-2.1.2_src.tar.gz
2 cd opensips-2.1.2-tls/
3 sudo make menuconfig
选中 [*]db_sql
配置 Configure Install Prefix,输入安装路径 /usr/local/opensips_proxy
编译安装 Compile And Install OpenSIPS
2)配置opensip script,配置mysql
进入安装目录下的sbin目录,执行osipsconfig生成有以下依赖的脚本
[*] ENABLE_TCP
[*] USE_ALIASES
[*] USE_AUTH
[*] USE_DBACC
[*] USE_DBUSRLOC
[*] USE_DIALOG
[*] USE_NAT
vi /etc/opensips.cfg 更改服务器ip
vi opensipsctlrc配置mysql数据库
3 )创建数据库,添加账号
添加两个数据
添加1000 和1001,以供后面pjsip和x-lite sip客户端通讯测试
3)开启opensips服务
四、pjsip 和 x-lite sip客户端通过opensips服务器进行语音视频通话测试
pjsip注册opensips mysql配置的账号1000
x-lite注册opensips mysql配置的账号1001
x-lite 1001 呼叫 1000