因为之前接触过kamailio,毕竟和opensips是同源的,很多使用方法、模块都相似,安装过程感到很熟悉,另外opensips有一个图形控制界面menuconfig,能够很方便的进行安装、脚本生成及配置。
一、下载源码
我下载的是当前稳定版本2.4.5:http://download.opensips.org/
解压缩放进了目录/usr/local/src/中。
二、安装依赖
见源码中的install以及Readme文件里有相关说明。
可以看到如果想使用menuconfig就的安装libncurses5-dev
切换root
1.安装gcc
sudo apt-get install build-essential
3.安装mysql
sudo apt-get install mysql-server mysql-client
sudo apt-get install libmysqlclient-dev
4.安装其他:
sudo apt-get install perl libdbi-perl libdbd-mysql-perl libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl libberkeleydb-perl
sudo apt-get install bison flex libncurses5 libncurses5-dev
三、安装
使用menuconfig(推荐):
在/usr/local/src/opensips-2.4.5执行:
make menuconfig
进入控制台界面:
箭头上下,空格/回车选择,q返回上一级。
依次选择:Configure Compile Options—> Configure Excluded Modules,按空格选中[*] db_mysql
这步是配置安装的模块
按q返回上一级,选择→ Configure Install Prefix,我是安装在默认的/usr/local/下,可以自己输入想安装的位置。
选择 —> Save Changes 保存修改。
按q返回,选择 —> Compile And Install OpenSIPS,回车安装。
如果出现依赖错误,先通过apt-get安装依赖。
安装完opensips的目录结构是:
/usr/local/sbin/
里面有可执行命令 opensips、opensipsctl (用来启动/停止opensips)、 opensipsdbctl (用来创建数据库)、opensipsunix等等
/usr/local/etc/opensips/
里面有配置文件: opensips.cfg、opensipsctlrc、osipsconsolerc
/usr/local/lib64/opensips/
里面是库文件,其中/usr/local/lib64/opensips/里面是当前opensips所支持的模块, /usr/local/lib64/opensips/opensipsctl/ 是 /usr/local/sbin/中启动命令要用到的文件。
四、配置
刚刚我们完成了opensips的编译和安装(除数据库模块),现在进行数据库的安装及配置以及opensips自身的配置。
1、数据库安装及配置
进入配置文件目录:
cd /usr/local/etc/opensips
打开数据库配置文件opensipsctlrc并修改
vim opensipsctlrc
把与mysql有关的注释去掉(DB_PATH和USERCOL保留注释)
创建数据库(提示的两个问题都选no)
opensipsdbctl create
2、opensips配置
进入/usr/local/etc/opensips/,运行osipsconfig命令。
osipsconfig
依次选择—> Generate OpenSIPS Script —> Residential Script —> Configure Residential Script
选中如下几项
[*] ENABLE_TCP
[*] USE_AUTH
[*] USE_DBACC
[*] USE_DBUSRLOC
[*] USE_DIALOG
USE_NAT如果需要使用rtpproxy的话就选择,本次opensips是实现最基本的分机注册和分机相互呼叫功能,故不用选择。
按q返回,选择 —> Generate Residential Script 回车,生成新的配置文件。按q(三次)退出命令
用生成的opensips_residential_xxx.cfg替换原先的opensips.cfg:
mv opensips_residential_2019-4-18_21:15:42.cfg opensips.cfg
vim opensips.cfg
修改opensips.cfg
监听端口:
以下为非必须项,出现相应问题再配置
如果日志中报错找不到数据库地址之类的,尝试增加这一行:
modparam("uri", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")
我的SIP软电话注册不上,将这个位置改动一下:
不使用menuconfig(简述):
(参考https://blog.csdn.net/okhelp/article/details/82319290,和kamailio的安装过程相同,可以参考我的kamailio安装过程,当然配置文件的修改不能完全一样)
1、在/usr/local/src/opensips-2.4.5下执行
make all
make install
2、具体模块使用,单独加载相应的模块库和配置模块参数。
如加载MYSQL模块:
#### USeR LOCation module
loadmodule "usrloc.so"
modparam("usrloc", "nat_bflag", 10)
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME
opensips默认安装完成后,会生成标准配置文件,该配置文件不需要数据库即可以完成分机注册和分机相互呼叫功能。
3、拷贝数据库脚本
cp /usr/local/src/opensips-2.4.5/scripts/opensipsdbctl.mysql /usr/local/lib64/opensips/opensipsctl/
cp /usr/local/src/opensips-2.4.5/scripts/mysql /usr/local/lib64/opensips/opensipsctl/ -a
4、修改数据库配置文件
vim /usr/local/etc/opensips/opensipsctlrc
将下面几项修改或者去掉注释
5、创建数据库(参考上面的)
opensipsdbctl create
五、使用独立的log文件
opensips使用syslog服务,所以缺省情况下日志会进入/var/log/message这个文件,如果希望使用独立的log文件,将opensips的日志保存在/var/log/opensips.log,可以这样设置:
touch /var/log/opensips.log
chmod 777 /var/log/opensips.log
vi /etc/rsyslog.d/opensips.conf
增加如下内容
local0.* /var/log/opensips.log
重启syslog服务,启动opensips,增加用户和域名
service rsyslog restart
opensipsctl start
opensipsctl domain add xdty.org
opensipsctl add 1000 123456
opensipsctl add 1001 123456
服务启动后,防火墙开启tcp及udp的端口(我是直接关掉防火墙了=-= :service iptables stop )
iptables -I INPUT -p tcp --dport 5060-j ACCEPT
iptables -I INPUT -p udp --dport 5060 -j ACCEPT
六、一些相关命令
查看进程命令:
ps aux | grep opensips
查看UDP链接状态;
netstat -ulpn | grep opensips
查看TCP链接状态:
netstat -tlpn | grep opensips
查看实时日志:
tail -f /var/log/opensips.log
七.拨打电话(MicroSIP软电话)
SIP电话配置:
拨打电话(这个是两个电话都在本机):
抓包(马赛克打的很是清奇QAQ):
我的CSipsimple不知为何还是注册不上,解决了再说,嗯。
参考:https://blog.csdn.net/chengzhangbiji/article/details/39693015
http://www.cnblogs.com/bjzhanghao/archive/2013/02/13/2910903.html