背景
现阶段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通信方式。 -
创建数据库:
1opensips-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: 处理注册事件