【opensips(一)】ubuntu16.04安装opensips

因为之前接触过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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章