1. 安装依赖库

[root@localhost ~]# yum install gcc gcc-c++ bison flex zlib-devel openssl-devel mysql-devel mysql subversion pcre-devel ncurses libncurses-dev ncurses-devel
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:01

...................
..................
ncurses-base.noarch 0:5.9-14.20130511.el7_4 ncurses-libs.x86_64 0:5.9-14.20130511.el7_4 openssl.x86_64 1:1.0.2k-25.el7_9
openssl-libs.x86_64 1:1.0.2k-25.el7_9 pcre.x86_64 0:8.32-17.el7 zlib.x86_64 0:1.2.7-20.el7_9

完毕!

2. 下载源码

wget https://opensips.org/pub/opensips/2.4.8/opensips-2.4.8.tar.gz

3. 编译安装

[root@localhost ~]#tar -zxvf opensips-2.4.8.tar.gz
[root@localhost ~]#cd opensips-2.4.8
[root@localhost ~]#make menuconfig

① 选->configure compile options,按上下左右键的“右键”进入

OpenSIPS 安装配置_Linux


②选->Configure excluded modules,按上下左右键的“右键”进入

OpenSIPS 安装配置_Linux_02


③选择 db_mysql, proto_tls, tls_mgm,将光标滑到那里,按空格选择然后会出现一个*

OpenSIPS 安装配置_Linux_03

④上面第三部执行完,按按上下左右键的“左键”进入->save changes,按按上下左右键的“右键”确认

OpenSIPS 安装配置_Linux_04

⑤上面第三部执行完,按按上下左右键的“左键”进入->compile install opensips,按右键开始编译安装

OpenSIPS 安装配置_Linux_05

⑥等待安装完,然后点到那里退出就行

OpenSIPS 安装配置_Linux_06


4. 添加用户opensips

[root@localhost opensips-2.4.8]# useradd -d /usr/local/etc/opensips -s /sbin/nologin opensips


5. 修改opensipsctlrc, 配置数据库连接参数

[root@localhost ~]vi /usr/local/etc/opensips/opensipsctlrc
DBENGINE=MYSQL
DBPORT=3306
DBHOST=192.168.129.172
DBNAME=opensips
DBRWUSER=opensips
DBRWPW=”opensipsrw”
DBROOTUSER=”root”


6. 数据库权限修改,允许远程连接(如果已经可以连接,可忽略此步)

进入mysql


update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'root' and host = '%';
flush privileges;


7. 创建数据库


[root@localhost ~]opensipsdbctl create


8. 修改数据库opensips数据库远程访问权限

进入mysql


grant all privileges on opensips.* to opensips@'%' identified by 'opensipsrw';
flush privileges;


9. 配置负载均衡,插入opensips数据库

/*!

probe_mode该字段启动负载均衡服务器的保活功能,如果其中一个进行宕机,则opensips不会再向其路由呼叫

        vm:表示最大支持100路VoiceMail

        conf:表示最大支持100路会议室

        transc:表示最大支持100路转码

        pstn:表示最大支持500路普通呼叫(PSTN呼叫)

    */

use opensips;
insert into load_balancer (group_id, dst_uri, resources, probe_mode, description) values (1,'sip:192.168.129.8;transport=tcp ', 'vm=100;conf=100;transc=100;pstn=500', 2, 'FS1');
insert into load_balancer (group_id, dst_uri, resources, probe_mode, description) values (1,'sip:192.168.129.164;transport=tcp ', 'vm=100;conf=100;transc=100;pstn=500', 2, 'FS2');


10. 配置dispatcher(register)路由表


[root@localhost ~]opensipsctl start
[root@localhost ~]opensipsctl dispatcher addgw 1 sip:192.168.129.8 '' 0 50 'FS1' 'Outbound Gateway1'
[root@localhost ~]opensipsctl dispatcher addgw 1 sip:192.168.129.164 '' 0 50 'FS2' 'Outbound Gateway2'


11. 拷贝配置文件opensips.cfg到/usr/local/etc/opensips,并修改以下内容,

1) tls证书配置(对应apache证书的三个文件)


modparam("tls_mgm","certificate", "/usr/local/etc/opensips/tls/jiqiren/press_public.crt")
modparam("tls_mgm","private_key", "/usr/local/etc/opensips/tls/jiqiren/press.key")
modparam("tls_mgm","ca_list", "/usr/local/etc/opensips/tls/jiqiren/press_chain.crt")

2) 修改监听的ip地址和域名, ip地址为云服务器的本地ip, UDP端口供测试使用,生产生产环境可以注释掉。


advertised_address="jiqiren.press"
alias="jiqiren.press"
listen=udp:172.30.0.5:5060
listen=tls:172.30.0.5:5061

3) 修改数据库连接信息,分别修改以下几条

modparam("dialog", "db_url", "mysql://opensips:Opensips&123@127.0.0.1/opensips")
modparam("dispatcher", "db_url", "mysql://opensips:Opensips&123@127.0.0.1/opensips")
modparam("load_balancer", "db_url", "mysql://opensips:Opensips&123@127.0.0.1/opensips")

注意:

第一个参数:opensips 数据库用户名

第二个参数:Opensips&123 数据库密码

第三个参数:127.0.0.1 数据库地址

第四个参数:opensips数据库名

4) 其它域名都修改为对应的域名


12. 启动

opensipsctl start

修改/usr/local/etc/opensips目录下 opensipsctlrc文件,最后加上STARTOPTIONS="-m 512"

重启,查看共享内存大小, opensipsctl fifo get_statistics shmem: