1. 下载opensips

2. 安装opensips
解压tar包,然后运行make menuconfig。进入配置菜单。

配置菜单的操作是方向键左或者q键退出,方向键右进入子菜单。空格勾选。
配置安装菜单
Configure Compile Options
是配置编译选项的,子菜单比较多。

-
Configure Compile Flags
是配置编译参数的,可以不做修改 -
Configure Excluded Modules
是配置编译排除模块的。 (字面上是这个意思,但是看很多教程上说要把db_mysql勾选上,这不就是表示不编译吗?) -
Configure Install Prefix
安装位置,默认CentOs下就是/usr/local/,如果要改就给个位置在这里。
所有变动记得选最后一个Save Changes保存一下。
Compile And Install OpenSIPS
选它就直接开始编译。 没有确认的,这个要注意一下。
Clearup OpenSIPS sources
实际上效果等同于make clean
Generate OpenSIPS Script
生成配置和脚本。子菜单有三个选项

-
Configure Residential Script
这个就是${INSTALL_PATH}/opensips/opensips.cfg
opensips.cfg
这些参数都是SIP相关的,先按这个来吧 - Trunking Script (这个不配置)
- Load-Balancer Script (默认配置)
如上都配置完成就开始编译安装吧。
PS: 安装完成后也可以打开这个菜单。可以重新执行make menuconfig
或者通过命令[install_path]/sbin/osipsconfig
3. 创建opensips的数据库
opensips的所有数据都保存在数据库中
对应的数据库配置项在
${INSTALL_PATH}/opensips/opensipsctlrc下

如下是按照Mysql配置
DBENGINE=mysql
DBHOST=localhost#如果是本机,填localhost;如果不是本机,填写mysql所在的地址
DBPORT=3306
DBNAME=XXX #opensips使用的数据库名称,一定是没有创建的,已经存在的会报错
DBRWUSER=XXX#用于读写数据的mysql账户名
DBRWPW=xxx#用于读写数据的mysql账户密码
DBROOTUSER=xxx#用于创建表的mysql账户
配置完后可以执行
opensipsdbctl create
// opensipsdbctl create (database)
// 如果后面跟了database则新建的database不为配置文件里的值,按这里的值去创建。
字符集选gbk
完成后检查一下数据库是否已经成功创建了表。
4.配置日志
默认的日志是在/var/log/message里,我们需要单独讲opensips日志拿出来。
首先,新建一个opensips.log文件
其次,修改系统日志配置. (默认值)
主要是log_stderror=no如果是yes,日志文件是不输出的。

最后,修改rsyslog配置。
vi /etc/rsyslog.conf --> 增加一行:local0.* /var/log/opensips.log
修改完重启rsyslog
5.配置脚本
文件opensips.cfg
内容主要分为三大块
-
全局参数
这里主要包含了网络监听IP和端口,传输协议,日志打印等
例如:
disable_tcp = yes
listen = udp:192.168.2.40:5060
listen = udp:192.168.2.40:5070
fork = yes
children = 4
log_stderror = no
-
模块配置
如果这一块什么也不配置,默认是什么也不加载。
如果需要加载模块,需要使用loadmodule来写。
loadmodule后面跟的是so动态库文件。如果不指明路径,默认路径为/usr/lib/opensips/modules。
当某个模块加载后,模块的参数可以使用modparam指定。
例如
loadmodule "modules/mi_datagram/mi_datagram.so"
modparam("mi_datagram", "socket_name", "udp:127.0.0.1:4343")
modparam("mi_datagram", "children_count", 3)
3.路由逻辑
每一个条路由内容我们称之为route,它具体定义了路由规则。所有的route定义了OpenSIPS的SIP路由行为。
有两种route:
a. top route:
通过事件触发的route
b. sub-route 通过其他route调用间接触发
网友评论