一. 安装mysql

opensips需要用到mysql来保存数据。


 安装完mysql之后还要执行如下命令,不然后面安装opensips会报错。

sudo yum install mysql-devel

 二.安装rtpproxy

如果是局域网环境,不需要安装rtpproxy,rtpproxy的作用是公网环境传递语音与视频流。

1.下载rtpproxy安装文件

github下载地址:https://github.com/miconda/rtpproxy

百度网盘地址:链接:https://pan.baidu.com/s/1RsyPLexfZxHPdtul5mgPrA 
                        提取码:4onw

2.安装rtpproxy

下载后解压好放到服务器某个位置即可,然后进入rtpproxy目录内,执行命令:

./configure

make

make  install

 make和make   install命令执行过程中,日志可能有点奇怪,不用在意,后面可以正常启动就行。

本人运行时,日志如下:

make时:

centos7 安装 opencl centos安装openmp_centos

 make install时:

make[1]: 进入目录“/usr/local/rtpproxy”
test -z "/usr/local/bin" || /usr/bin/mkdir -p "/usr/local/bin"
/usr/bin/install -c rtpproxy makeann '/usr/local/bin'
test -z "/usr/local/share/man/man8" || /usr/bin/mkdir -p "/usr/local/share/man/man8"
/usr/bin/install -c -m 644 rtpproxy.8 '/usr/local/share/man/man8'
make[1]: 离开目录“/usr/local/rtpproxy”

3.运行rtpproxy

./rtpproxy -A 10.0.0.2 -l 192.168.1.2 -s unix:/var/run/rtpproxy.sock -m 13000 -M 13010 -F

选项参数含义:
-A  本机外网IP
-l  本地内网IP
-s  与opensips通讯的socket,与opensips.cfg配置文件保持一致
-F  不检查是否为超级用户模式
-m  RTP最小端口
-M  RTP最大端口

如果rtpproxy启动成功但公网环境下不起作用,可以将rtpproxy.sock换个位置再尝试。

三.安装opensips

1.安装opensips运行环境

yum -y install gcc gcc-c++ glibc bison flex zlib-devel ncurses ncurses-devel

2.下载opensips

官网下载地址:http://www.opensips.org/Resources/Downloads

3.解压opensips安装包(我下载的版本是2.4.3)

tar xf opensips-2.4.3.tar.gz

4.编译opensips

进入opensips-2.4.3解压目录,执行命令

make menuconfig

然后一直按左键退出图形界面。

make menuconfig 执行后会在opensips-2.4.3解压目录下生成Makefile.conf文件。

5.修改Makefile.conf文件(也可以使用图形界面修改,这里我直接手动修改)

最重要的就是把db_mysql模块编译进去。

在exclude_modules中删掉db_mysql,

在include_modules中添加db_mysql,

修改安装目录为PREFIX=/usr/local/opensips/

6.安装opensips

make all

make install

7.配置opensips

cd /usr/local/opensips/

目录结构如下

这里有两个文件需要修改,opensipsctlrc和oepnsips.cfg

修改opensipsctlrc文件

将对应字段的注释打开,部分需要手动修改

centos7 安装 opencl centos安装openmp_opensips_02

修改opensips.cfg文件

使用make menuconfig菜单工具生成一个opensips.cfg文件(用来替换opensips中的opensips.cfg,之所以需要替换,是因为原生的opensips.cfg文件少了很多引入)

步骤如下:

 进入opensips-2.4.3解压目录,执行命令

make menuconfig

centos7 安装 opencl centos安装openmp_rtpproxy_03

 

centos7 安装 opencl centos安装openmp_opensips_04

 

centos7 安装 opencl centos安装openmp_opensips_05

 

centos7 安装 opencl centos安装openmp_opensips_06

 如果搭建的opensips服务器用在局域网,USE_NAT可以去掉。

centos7 安装 opencl centos安装openmp_mysql_07

这一步记住自己菜单中生成的 .cfg文件名

退出菜单后执行如下命令:

cd etc/

mv opensips_residential_2018-2-7_3\:59\:1.cfg   opensips.cfg

cp opensips.cfg /usr/local/opensips/etc/opensips/opensips.cfg

这里之后开始真正地修改opensips.cfg文件

centos7 安装 opencl centos安装openmp_mysql_08

 然后所有带 # CUSTOMIZE ME的地方根据自己的实际情况修改,重点修改为数据库账号密码,主机ip等。

8.创建opensips数据库

cd /usr/local/opensips/sbin

#检测配置文件语法

./opensips -C

#创建数据库

./opensipsdbctl create

#输入安装mysql时的(root)密码,开始创建数据库和表

9.开启opensips服务

./opensipsctl start      #开启opensips服务

./opensipsctl stop       #关闭opensips服务

./opensipsctl restart    #重启opensips服务

10.添加sip用户

./opensipsctl add username password       #添加用户

./opensipsctl rm username                 #删除用户

11.查看sip用户

可以使用mysql -u opensips -p而后输入你的密码,就能够通过show databases;查看数据库,再使用use opensips;并且show tables;就可以查看opensips数据库里的表格,最后使用select * from subscriber;便能够查看添加的sip用户情况,也可以直接使用navicat查看。

默认的opensips的数据库密码为opensipsrw

12.配置rtpproxy

安装和配置rtpproxy才能让opensips在公网下互通,如果只用于局域网,可以忽略该步骤。

13.  测试opensips服务器是否搭建成功

可以分别在收到和电脑上安装一个linphone,测试创建的账号是否可以互通。

四.安装中遇到的错误

1.ERROR: PID file /var/run/opensips.pid does not exist -- OpenSIPS start failed

错误日志:tail -1000f /var/log/messages

Apr  7 23:26:14 VM-0-3-centos ./opensips[13382]: ERROR:core:udp_init_listener: bind(1c, 0x7fc524500744, 16) on 182.254.242.219: Cannot assign requested address
 Apr  7 23:26:14 VM-0-3-centos ./opensips[13382]: ERROR:core:trans_init_all_listeners: failed to init listener [182.254.242.219], proto udp
 Apr  7 23:26:14 VM-0-3-centos ./opensips[13382]: ERROR:core:main: failed to init all SIP listeners, aborting

解决方法:


2.创建数据库时错误

创建opensips数据库时如有错误,可以从账号权限是否足够入手。