opensips 及 rtpengine 在centos7下的安装小记
因为在网上我一直找不到完整的在centos7下安装opensips和rtpenginer的文档,因为它们一般都是的Debian 下进行安装的,而centos的安装依赖与Debian 有所不同,经过一段时间的折腾,我好不容易完成,故而小记一下:
需提醒一下,opensips的3和2在管理工具上有很大不同,下面安装的是2.4.8版本
1 初始化安装
yum install gcc gcc-c++ git flex bison ncurses ncurses-devel openssl-devel
yum provides ‘*/applydeltarpm’
yum install deltarpm wget unzip
在直接centos7默认带的mariadb版本下,opensips会找不到libmysqlclient!(编译时报错,ld找不到mariadb),鉴于默认带的版本也太老,干脆换新版本:
使用mariadb10.5:
vi /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.5 CentOS repository list # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
yum -y install MariaDB MariaDB-server MariaDB-devel MariaDB-shared
systemctl start mariadb
systemctl enable mariadb.service
使用mysql5.7:
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server mysql mysql-server mysql-libs mysql-devel
systemctl start mysqld
systemctl enable mysqld
mysql_secure_installation
添加新用户:mysql -u root -p
create user ‘limx’@’%’ identified by ‘11223344’;
grant all privileges on . to ‘limx’@’%’ WITH GRANT OPTION ;
flush privileges;
设置一下防火墙
firewall-cmd --zone=public --query-port=3306/tcp
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=5060/tcp --permanent
firewall-cmd --zone=public --add-port=5060/udp --permanent
firewall-cmd --permanent --zone=public --add-port=16384-32768/udp
firewall-cmd --permanent --zone=public --add-port=50000-61000/udp
firewall-cmd --reload
2 安装opensips
cd /usr/local/src
wget https://opensips.org/pub/opensips/2.4.8/opensips-2.4.8.tar.gz
tar -zxvf opensips-2.4.8.tar.gz
cd opensips-2.4.8
make menuconfig
进入到菜单选取模块(右左键进入返回,空格键选中,回车键确定),选择步骤:
Configure Compile Options => Configure Excluded Modules => db_mysql,然后 save。
最后选择Compile And Install Opensips等待安装完毕。
make install
完成安装后:
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 选中
[*] USE_AUTH [*] USE_DBACC [*] USE_DBUSERLOC [*] USE_DIALOG
返回后选择 Generate Residential Script 回车,生成新的配置文件(路径:/usr/local/etc/opensips)。
拷贝和替换原有配置文件:
cd /usr/local/etc/opensips/
mv opensips.cfg opensips.cfg.backup
mv opensips_residential_2020-8-4_19:23:5.cfg opensips.cfg
注意:上面这个文件是按照生成配置时的时间动态命名的,可以手工输入命令,按下tab键去自动填充文件名!
修改opensips.cfg:
vi opensips.cfg
// 修改配置项
listen=udp:192.168.25.130:5060
修改完相关配置后使用opensipsdbctl新建数据库:
cd /usr/local/sbin
opensipsdbctl create
启动 opensips
/usr/local/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
查看注册查看在线:
opensipsctl ul show
opensipsctl online
3 rtpengine 安装:
rtpengine没有找到相关的说明,我是一步步安装而后一步步根据错误信息补充安装相应环境完成的(基于Centos7最小安装,完成opensips编译后安装rtpengine):
需要 epel 支持:
yum install epel-release
需要ffmpeg开发库里面的av模块:
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install -y ffmpeg-devel
需要libtiff开发库:
yum install libtiff-devel
需要spandsp 支持:
cd /usr/local/src
wget https://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar -zxvf spandsp-0.0.6.tar.gz
cd spandsp-0.0.6
./configure
make
make install
cp /usr/local/lib/pkgconfig/spandsp.pc /usr/lib64/pkgconfig
echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig
需要libpcap、glib、json、event、zlib、pcre、perl、hiredis等:
yum install perl-IPC-Cmd.noarch gperf libpcap-devel glib2-devel pkgconfig hiredis-devel libcurl-devel openssl-devel pcre-devel xmlrpc-c-devel zlib-devel libevent-devel json-glib-devel psmisc
安装(代码其实包含3个部分,有内核的模块、iptables的模块、服务端程序,因为内核模块编译是基于linux内核的,对云服务器而言内核都是定制过的,用这个编译会导致服务器无法开机,仅适用于自己的物理服务器!iptables模块是基于iptables的,centos7一般不使用iptables,所以我仅编译服务端程序,当然一般也都是用这个服务模式):
cd /usr/local/src
wget https://github.com/sipwise/rtpengine/archive/master.zip
unzip master.zip
cd rtpengine-master/daemon
TPENGINE_VERSION="\“9.0.0.0\”"
make
监听2个ip进行rtp转发:
/usr/local/src/rtpengine-master/daemon/rtpengine -p /var/run/rtpengine.pid -i priv/192.168.1.197 -i pub/121.52.224.150 -n 192.168.1.197:60000 -c 192.168.1.197:60001 -m 16000 -M 40000 -f -E -L 3
命令参数:-p 写pid文件 -i 命名名称/监听网络界面 -n ng监听地址 -c 客户端监听地址 -m 最小端口 -M 最大端口 -f 前端输出,不进入后台运行 -E 错误信息直接打印不写日志 -L log等级
- centos7下oracle11g详细的安装与建表操作(重复实现多次均没问题)
- centos下安装opensips
- Centos7下在线安装、离线安装docker
- win8 U盘安装 centos6.4双系统小记
- centos7下安装hudson
- CentOS7下Docker的安装和基本使用
- centos7下安装mariadb
- centos7下使用yum安装mysql
- CentOS7下安装MySQL5.7安装与配置(YUM)
- PostgreSQL 在centos 7下的安装配置
- Centos7下安装eclipse进行C/C++开发
- Centos7下Hadoop集群中Hbase的安装和配置
- centos7下openstack安装的部分问题
- Win7下硬盘安装Centos5.3
- CentOS7下安装MySQL
- centos7下安装openstack(newton版)
- centos7下安装redis
- centos7下swoole1.9的安装与HttpServer的使用
- centos7下快速安装mysql
- centos7下svn的安装与配置