一、版本相关

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)、目录 pjlib\include\pj,把config_site_sample.h拷贝一份,改为config_site.h

2) 、添加视频功能

config_site.h 加上

 #define PJMEDIA_HAS_VIDEO         1

 #define PJMEDIA_VIDEO_DEV_HAS_SDL       1

 #define PJMEDIA_VIDEO_DEV_HAS_DSHOW     1

 #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-apps\bin 目录,创建两个批处理文件

 sample-debug-i386-Win32-vc14-Debug.exe --local-port= --auto-answer= --video
sample-debug-i386-Win32-vc14-Debug.exe --local-port= --auto-answer= --video

启动这两个客户端,在5061端口的客户端命令行输入

m

sip:127.0.0.1:5060

呼叫5060sip客户端,测试语音视频通话

三、ubuntu opensips部署

1)安装环境,配置mysql编译选项,编译:

依赖库

 apt-get install gcc bison flex make openssl
libmysqlclient-dev perl libdbi-perl libdbd-mysql-perl
libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl
libberkeleydb-perl mysql-server ssh libxml2 libxml2-dev
libxmlrpc-core-c3-dev libpcre3 libpcre3-dev subversion
libncurses5-dev git ngrep libssl-dev
 tar xcf opensips-2.1.2_src.tar.gz
cd opensips-2.1.-tls/
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

参考:https://www.xdty.org/1709

ubuntu16.04 配置opensips服务器并编译pjsip测试的更多相关文章

  1. Ubuntu16.04配置Django服务器环境

    本环境是使用Ubuntu16.04+Django2.1.0+python3.6+uwsgi+nginx进行配置 1. 安装python3.6 Ubuntu16.04中原本安装的是python3.5,但 ...

  2. Ubuntu16.04配置apache+php+mysql

    命令行配置apache input sudo apt-get install apache2 done! 命令行配置mysql 参见: MySQL install and setting 命令行配置p ...

  3. Ubuntu16.04配置TOMCAT8

    基于虚拟机Ubuntu16.04配置Tomcat过程 一.安装JDK 首先要确定好要安装的jdk和tomcat版本能对的上,具体如图所示: 版本选择是Jdk1.8,首先上官网http://www.or ...

  4. ubuntu16.04配置java环境(重启后不会失效)

    ubuntu16.04配置java环境(重启后不会失效) 1.jdk的安装包(.tar.gz)拷贝到/opt目录下 mv jdk-8u144-linux-x64.tar.gz /opt 2.解压文件 ...

  5. ubuntu16.04配置记录

    新开一篇随笔记录ubuntu16.04配置中遇到的坑 1.安装Bumblebee(大黄蜂) Bumblebee是一款双显卡驱动,可以关闭独显,有效控制笔记本发热 第一步:安装我们的主角Bumblebe ...

  6. ubuntu16.04下ftp服务器的安装与配置

    由于要将本地程序上传至云服务器中,所以需要给云服务器端安装ftp服务器.记录一下ftp的安装过程,以便以后使用.服务器端所用系统为Ubuntu16.04. 1. 安装ftp服务器, apt-get i ...

  7. Ubuntu16.04配置Android5.0编译环境

    1.安装jdk7 Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下: $ sudo add-apt-repository ppa:openjdk-r/ppa ...

  8. py-faster-rcnn + opencv3.0.0 + ubuntu16.04配置(CPU模式)

    最近开始做行人检测,因此开始接触faster-rcnn,这里贴上配置教程(亲测可行),不过是基于cpu的,蓝瘦... 参考博客:http://www.tuicool.com/articles/nYJr ...

  9. ubuntu16.04配置py-faster-rcnn

    在ubuntu16.04下编译安装了py-faster-rcnn. 主要步骤包括:安装cuda/cudnn,换apt源,装开源显卡驱动,装caffe依赖的apt包和python包,下载py-faste ...

随机推荐

  1. java购物车系统 团队博客

    1. 团队名称.团队成员介绍(需要有照片) 团队名称:一颗LFL 团队成员:廖余俊 计算机工程学院网络工程1512 学号201521123053 方旭 计算机工程学院网络工程1512 学号201521 ...

  2. 201521123012 《Java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1.本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  3. MySQL集群(一)之主从复制

    前面学完了JDBC,接下来带大家感受一下MySQL集群!其实什么是MySQL集群?简单的说就是一群机器(服务器)的集合,它们连在一起来工作. 其实各种数据库都有自己的集群,常常的多: 我们要学习的就是 ...

  4. SpringMVC第三篇【收集参数、字符串转日期、结果重定向、返回JSON】

    业务方法收集参数 我们在Struts2中收集web端带过来的参数是在控制器中定义成员变量,该成员变量的名字与web端带过来的名称是要一致的-并且,给出该成员变量的set方法,那么Struts2的拦截器 ...

  5. jmeter通过BeanShell 脚本,实现对http请求参数的加密

    jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的 ...

  6. 【轉】使用jQuery播放/暂停 HTML5视频

    jQuery不可以使用play()方法,但js是可以的: document.getElementById('movie1').play();   解决方法:play并不是jQuery的函数,而是DOM ...

  7. 关于Visio Studio 2012使用Nuget获取Sqlite驱动包报错:“System.Data.SQLite.EF6”的架构版本与 NuGet 的版本 2.0.30625.9003 不兼容

    背景 笔者的VS2012版本比较老旧,是几年以前下载的.平时添加三方包和驱动包都是手动添加.后来了解到有Nuget这个工具,如获至宝.可是在使用过程中却出了不少问题. 最初,笔者尝试使用Nuget添加 ...

  8. 微服务~Eureka实现的服务注册与发现及服务之间的调用

    微服务里一个重要的概念就是服务注册与发现技术,当你有一个新的服务运行后,我们的服务中心可以感知你,然后把加添加到服务列表里,然后当你死掉后,会从服务中心把你移除,而你作为一个服务,对其它服务公开的只是 ...

  9. 使用http -server 搭建本地简易文件服务器

    安装 npm install http-server -g 使用 1. cd project . 2. hs [pwd] -o, 默认是当前路径 ./ 3. 其他选项 -p Port to use ( ...

  10. Musical Theme poj1743(后缀数组)

    Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16757   Accepted: 5739 De ...