安装opensips
准备工作
由于opensips实现通话,需要存储用户信息,所以要下载并安装 MySQL。
安装 mysql 数据库
下载并安装 mysql
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-community-server
启动 mysql 服务
systemctl start mysqld
获取安装好后,生成的临时默认密码;
登录进入数据库修改密码,设置远程访问权限
grep "password" /var/log/mysqld.log //获取临时默认密码
mysql -u root -p
alter user 'root'@'localhost' identified by '密码'; //修改密码
grant all privileges on *.* to root@'%'identified by '密码'; //设置远程访问权限
flush privileges; //更新权限
mysql初始化时,使用临时密码,修改成自定义密码时,由于自定义密码比较简单,遇到密码策略问题:Your password does not satisfy the current policy requirements
set global validate_password_policy=LOW;// 设置 validate_password_policy 的全局参数为 LOW
set global validate_password_length=6;// 设置 validate_password_length 的全局参数为 6
SHOW VARIABLES LIKE 'validate_password%';// 显示 mysql 的密码策略
安装opensips
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
下载源码并选择模块
[root@localhost /]# cd /usr/local/src
[root@localhost src]# git clone https://github.com/OpenSIPS/opensips.git -b 2.4 opensips-2.4
[root@localhost src]# cd opensips-2.4
[root@localhost 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等待安装完毕。
完成安装后:
cd /usr/local/etc/opensips/
vi opensipsctlrc
编辑配置数据库信息:
SIP_DOMAIN=192.168.25.130 //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:
cd /usr/local/sbin/
osipsconfig
依次选择 => Generate OpenSIPS Script
=> Residential Script
=> Configure Residential Script
选中
[*] ENABLE_TCP
[*] USE_ALIASES
[*] USE_AUTH
[*] USE_DBACC
[*] USE_DBUSRLOC
[*] USE_DIALOG
[*] USE_NAT
返回后选择 Generate Residential Script
回车,生成新的配置文件(路径:/usr/local/etc/opensips
)。
拷贝和替换原有配置文件:
cd /usr/local/etc/opensips/
mv opensips.cfg opensips.cfg.backup
mv opensips_residential_2020-5-24_19\:23\:5.cfg opensips.cfg
修改opensips.cfg
:
vi opensips.cfg
// 修改配置项
listen=udp:192.168.25.130:5060
修改完相关配置后使用opensipsdbctl
新建数据库:
cd /usr/local/sbin
opensipsdbctl create
- 启动 opensips
[root@localhost sbin]# opensipsctl start
- 添加用户
[root@localhost sbin]# opensipsctl add 1001 1001
new user '1001' added
[root@localhost sbin]# opensipsctl add 1002 1002
new user '1002' added
注意:测试通话的时候查看是否需要开启防火墙的5060/udp端口号,类似上面开启3306端口或者直接关闭防火墙,这样就不用关注端口是否开启。
opensips 安装 rtpproxy 教程
安装rtpproxy
git clone -b master https://github.com/sippy/rtpproxy.git
cd rtpproxy
git -C rtpproxy submodule update --init --recursive
./configure
make
可能会出现的问题
cc1: error: unrecognized command line option “-Werror=implicit-function-declaration”
解决办法:
修改/rtpproxy/src下的Makefile文件,去掉 “-Werror=implicit-function-declaration”所在的句子
make无问题后继续。
make install
即可完成安装。
启动:
rtpproxy -F -l 1xx.xx.xx.xx4 -s udp:1xx.xx.xx.xx4:12221 -d DBUG:LOG_LOCAL5
说明:
1. ip地址为本机的外网地址;
2. 选择一个未被占用的端口,这里选择12221端口。
将rtpproxy与opensips整合
1.修改/usr/local/etc/opensips/ 下的 opensips.cfg文件。
在#### NAT modules"整块完成后增加如下内容
loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "udp:1xx.xx.xx.xx4:12221") # CUSTOMIZE ME
2.重启opensips即可。
4.注意
- 需要先启动rtpproxy,再启动opensips
- 出现问题可查看日志文件:
/var/log/messages
5.参考文献
https://github.com/sippy/rtpproxy
http://www.cnblogs.com/bjzhanghao/archive/2013/02/13/2910903.html
https://github.com/Izib/opensips-mediaproxy/blob/master/Install/package/opensip_rtpproxy.rm
https://blog.csdn.net/hzh_csdn/category_6669689.html?spm=1001.2014.3001.5482