【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-perlsudo 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 allmake 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
【opensips(一)】ubuntu16.04安装opensips相关推荐
- ubuntu16.04安装opencv3.4.1教程
最近opencv3.4.1发布了,想换个新的试试鲜,于是把配置的过程通过博文的方式记录下来,方便查阅. 本教程原为3.3.0,但经过博主亲测,3.4.0.3.4.1皆适用 1.去官网下载opencv ...
- Ubuntu16.04 安装ftp
2019独角兽企业重金招聘Python工程师标准>>> Ubuntu16.04 安装ftp,根据依赖安装. 安装vsftpd. sudo apt-get install vsftpd ...
- ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决
ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决 通过deepin-wine 安装 cajviewer 之前装过deepin-wine 所以 ...
- ubuntu16.04 安装微信和qq
ubuntu16.04 安装微信和qq Ubuntu系统没有qq和微信很难受,所以前几天装了一下qq和微信,在此记录下来,以防忘记. 通过 https://github.com/wszqkzqk/de ...
- Ubuntu16.04安装Chrome浏览器及解决root不能打开的问题
Ubuntu16.04安装Chrome浏览器及解决root不能打开的问题 参考文章: (1)Ubuntu16.04安装Chrome浏览器及解决root不能打开的问题 (2)https://www.cn ...
- Linux入门(7)——Ubuntu16.04安装wps并解决系统缺失字体问题
Linux入门(7)--Ubuntu16.04安装wps并解决系统缺失字体问题 参考文章: (1)Linux入门(7)--Ubuntu16.04安装wps并解决系统缺失字体问题 (2)https:// ...
- ubuntu16.04安装CUDA 8.0(很详尽,包括一些坑的解决方法)
ubuntu16.04安装CUDA 8.0(很详尽,包括一些坑的解决方法) 参考文章: (1)ubuntu16.04安装CUDA 8.0(很详尽,包括一些坑的解决方法) (2)https://www. ...
- ubuntu16.04安装英伟达(NVIDIA)驱动——run文件安装
ubuntu16.04安装英伟达(NVIDIA)驱动--run文件安装 去官网http://www.nvidia.com/Download/index.aspx?lang=en-us选择显卡驱动 中文 ...
- ubuntu16.04安装torch
ubuntu16.04安装torch 第一步:从git上获取安装LuaJIT(C语言编写的Lua的解释器)和Torch所必需的依赖包: 在终端执行:git clone https://github.c ...
最新文章
- Python矩阵的创建(不使用numpy)
- Kafka学习(一)-------- Quickstart
- Google Research新成果,让表格理解和检索更上一层楼!
- Flink读取Kafka报错:KafkaException ByteArrayDeserializer is not an instance Deserializer
- Fragment Transactions和Activity状态丢失
- Safari浏览器(有时没有图片时,提交会出现问题)。
- 图像处理之全景拼接---基于sift的全景图像拼接
- svn怎么删除已提交的文件
- 使用FFmpeg工具进行推流、拉流、截图、变速、转换,及常见问题处理
- 把视频转换成图片帧的代码
- 用计算机排列姓氏顺序,电脑excel文档中如何根据姓氏笔画来排序
- 查询linux服务器有哪些IP在连接
- 短信发送失败之短信中心号码异常
- 硅谷钢铁侠--Elon Musk
- 怎么把c盘恢复出厂设置电脑语言,教你把电脑恢复出厂设置
- 北航计算机学院本科优秀毕业论文,我校荣获32项北京市普通高等学校优秀本科生毕业设计(论文)...
- 泛微协同OA制造业解决方案
- 昆仑通态MCGS与3台力士乐VFC-x610变频器通讯程序 实现昆仑通态触摸屏与3台力士乐VFC-x610变频器通讯
- GCC编译、链接、运行时库查找顺序(最真实可信)
- com2引脚 proface_PRO-FACE串口编程
热门文章
- 清北毕业生5年来去向大数据:北大偏爱银行,清华更倾向国网,华为堪称最大黑洞...
- SIFT(1)——尺度空间极值检测
- 别在折腾开发环境了,一劳永逸的 Python 环境搭建方法
- python中函数返回值是函数的函数的用法 func()()
- 3_JDBC 的脏读是什么?哪种数据库隔离级别能防止脏读?
- java实现迪杰斯特拉(Dijkstra)算法求解最短路问题
- Debian Jessie 安装 迅雷(Xware)
- 数据管理技术的发展经历了哪三个阶段
- C++ 双冒号::符号详解
- 如何把各种API文档放到任务栏的右下角