opensips基于centos7环境搭建

​ 最近有项目需要用到sit服务,经过调研就选用成熟的开源SIP服务器实现opensips,然后基于os centos7搭建,把搭建过程记录记录下来,供大家参考……

1、前期check

查看本机是否安装mysql

rpm -qa|grep -i mysql

yum list installed | grep mysql

卸载:

yum -y remove mysql名字

确定centos版本

cat redhat-release

https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

资源下载链接

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

查看当前mysql的版本

yum info mysql-community-server

yum -y install mysql-community-server


2、mysql安装

http://www.zzvips.com/article/128837.html

安装步骤

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

Yum install mysql-server

安装报错:

1
2
3
4
5
The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

Failing package is: mysql-community-server-5.7.37-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

解决

rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

启动:

Service mysql start

安装完毕后,运行mysql,然后在 /var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:

grep “password” /var/log/mysqld.log

最后内容:包含临时生成密码

A temporary password is generated for root@localhost: dDhpiezo.05k

登录更改密码:

mysql -uroot -p

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
由于mysql5.7采用强密码策略,此时如果想修改
vi /etc/my.cnf
添加
validate_password_policy=0
重启:
service mysqld restart

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

设置root用户可以在任意ip下被访问
grant all privileges on *.* to root@"%" identified by "new password";

设置root用户可以在本地被访问
grant all privileges on *.* to root@"localhost" identified by "new password";

flush privileges;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
设置 MySQL 的字符集为 UTF-8:
打开 /etc 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件):

vim /etc/my.cnf

在 [mysqld] 前添加如下代码:

[client] default-character-set=utf8

在 [mysqld] 后添加如下代码:

character_set_server=utf8

再登录mysql,看看字符集,6个utf8就算OK

show variables like '%character%';

忘记密码如下重置:

1
2
https://blog.csdn.net/victo_chao/article/details/105522427?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-8.pc_relevant_aa&spm=1001.2101.3001.4242.5&utm_relevant_index=11

一些配置文件存放地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
配置文件

vim /etc/my.cnf

存放数据库文件的目录

cd /var/lib/mysql

日志记录文件

vim /var/log/ mysqld.log

服务启动脚本

/usr/lib/systemd/system/mysqld.service

socket文件

/var/run/mysqld/mysqld.pid

查看端口命令:

netstat -anp


3、Cengtos7安装opensips

本人云服务器内网ip

172.18.74.92

参考:

https://blog.csdn.net/weixin_44205009/article/details/106519809

opensips安装版本2.4

安装依赖库

1
2
3
4
5
6
yum install gcc gcc-c++
yum install make
yum install flex bison ncurses ncurses-devel
yum install mysql mysql-server mysql-libs mysql-devel
yum install openssl-devel

下载源码并安装模块

1
2
3
4
5
6
7
8
9
10
cd /usr/local/src 
git clone https://github.com/OpenSIPS/opensips.git -b 2.4 opensips-2.4
注:这里也可以直接基于想要安装版本直接下载zip文件
https://github.com/OpenSIPS/opensips/tree/2.4 github地址
直接进入到源码的主目录
cd opensips-2.4
make all
//如果这里报错,根据报错的内容,再安装相关依赖。
[root@localhost opensips-2.4]# make menuconfig

进入到菜单选取模块(右左键进入返回,空格键选中,回车键确定),选择步骤:Configure Compile Options => Configure Excluded Modules => db_mysql,然后 save。

最后选择Compile And Install Opensips等待安装完毕。
完成安装后:

1
2
3
cd /usr/local/etc/opensips/
vi opensipsctlrc

然后编辑数据库配置信息,把数据库的配置注释都打开

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SIP_DOMAIN=172.18.74.92 //centos7本机ip
DBENGINE=MYSQL
## database port (PostgreSQL=5432 default; MYSQL=3306 default)
DBPORT=3306
## database host
DBHOST=localhost
## database name (for ORACLE this is TNS name)
DBNAME=opensips
# database path used by dbtext, db_berkeley, or sqlite
DB_PATH="/usr/local/etc/opensips/dbtext"
## database read/write user
DBRWUSER=opensips
## password for database read/write user
DBRWPW="opensipsrw"
## engine type for the MySQL/MariaDB tabels (default InnoDB)
MYSQL_ENGINE="MyISAM"
## database super user (for ORACLE this is 'scheme-creator' user)
DBROOTUSER="root"

配置 opensips:

1
2
cd /usr/local/sbin/
osipsconfig

依次选择 => Generate OpenSIPS Script => Residential Script => Configure Residential Script 选中

1
2
3
4
[*] USE_AUTH
[*] USE_DBACC
[*] USE_DBUSERLOC
[*] USE_DIALOG

返回后选择 Generate Residential Script 回车,生成新的配置文件(路径:/usr/local/etc/opensips)。
拷贝和替换原有配置文件:

1
2
3
cd /usr/local/etc/opensips/
mv opensips.cfg opensips.cfg.backup
mv opensips_residential_2022-4-24_19\:23\:5.cfg opensips.cfg

修改opensips.cfg:

1
2
3
vi opensips.cfg
// 修改配置项
listen=udp:172.18.74.92:5060

修改完相关配置后使用opensipsdbctl新建数据库:

1
2
cd /usr/local/sbin
opensipsdbctl create

注意:这里在创建的时候,可能跟安装数据库的编码类型,会提示选择编码

我这里选择latin1

  • 启动 opensips
1
opensipsctl start
  • 测试添加用户
1
opensipsctl add 1001 1001

执行命令不报错,然后进入数据库opensips,然后查询subscriber表

select * from subscriber;

能够查询出来对应添加的用户1001,则证明安装成功!