背景
现阶段opensips
线上版本最新的是3.6.0-beta
, 3.5.x
已发布一段时间,3.3.x
目前处于停止维护状态。
为保持和官方版本的一致性,决定升级opensips
版本到3.5.5
。之后的模块介绍都采用3.5.5
版本。
编译修改内容
Makefile.conf.template
为了保持3.5.5
版本模块的兼容性,需要修改Makefile.conf.template
文件。
参考3.3.10
版本Makefile.conf.template
文件中的exclude_modules
(不编译的模块),
把3.5.5
中模块需要编译的去掉.
运行准备
数据表
opensips
在运行时会检查数据表version
中各个模块的版本号, 如果版本号不一致, 会报错。
为了避免影响之前的数据库opensips
, 可以新建数据库opensips_3_5
。
使用opensips-cli
工具创建数据库。
-
修改
opensips-cli.cfg
的database_name
为:opensips_3_5
完整的配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
[default] log_level: WARNING prompt_name: opensips-cli prompt_intro: Welcome to OpenSIPS Command Line Interface! prompt_emptyline_repeat_cmd: False history_file: ~/.opensips-cli.history history_file_size: 1000 output_type: pretty-print communication_type: http url:http://localhost:9998/mi fifo_file: /run/opensips/opensips_fifo # 选择模块添加数据库表结构 database_modules: ALL # 数据库脚本目录 database_schema_path: /data/scripts/ # 数据库管理员账号 database_admin_url: mysql://root:123456@localhost:3306 database_url: mysql://opensips:opensipsrw@localhost:3306 # 数据库名称 database_name: opensips_3_5 plain_text_password: tru
在此配置中,因为我把
opensips-cli
和opensips
分别制作成两个容器,所以选择的通信方式http
,opensips
要开启httpd
模块。如果你是在一个容器中运行
opensips-cli
和opensips
, 可以选择fifo
通信方式。 -
创建数据库:
1
opensips-cli -f ./opensips-cli.cfg -x database create
opensips.cfg脚本
官方的示例配置在源码/etc/opensips.cfg
,分别对比3.3.10
和3.5.5
版本的配置。
可以看到,升级到3.5.5
版本, 3.3.10
需要修改的地方有:
log_stderror
=no ->stderror_enable
=nolog_facility
=LOG_LOCAL0 ->syslog_facility
=LOG_LOCAL0- 新增
stderror_enabled=no
参数 lookup("location", "m")
->lookup("location","method-filtering")
- 数据库由
opensips
修改成opensips_3_5
如果有使用其他的模块,需要根据报错信息修改。
运行
|
|
模块变化
详细的变化可以查看官方文档: version-upgrade
主要模块变化:
PROTO_MSRP
->PROTO_IPSEC
- 新增
launch_darkly
: 不清楚用途 - 新增
http2d
: http2 server - 新增
AKA_AV_DIAMETER
: rfc 3310 使用 - 新增
AUTH_AKA
: rfc 3310 使用 - 新增
MQUEUE
: 基于配置的消息队列 AVPOPS
->SQLOPS
: 直接操作数据库- 新增
PUA_REGINFO
: 发布关于注册的信息 - 新增
PRESENCE_REGINFO
: 处理注册事件