Featured image of post opensips 3.3.10 版本升级到 3.5.5

opensips 3.3.10 版本升级到 3.5.5

背景

现阶段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工具创建数据库。

  1. 修改opensips-cli.cfgdatabase_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-cliopensips分别制作成两个容器,所以选择的通信方式http, opensips要开启httpd模块。

    如果你是在一个容器中运行opensips-cliopensips, 可以选择fifo通信方式。

  2. 创建数据库:

    1
    
    opensips-cli -f ./opensips-cli.cfg -x database create
    

opensips.cfg脚本

官方的示例配置在源码/etc/opensips.cfg,分别对比3.3.103.5.5版本的配置。

可以看到,升级到3.5.5版本, 3.3.10需要修改的地方有:

  • log_stderror=no -> stderror_enable=no
  • log_facility=LOG_LOCAL0 -> syslog_facility=LOG_LOCAL0
  • 新增stderror_enabled=no参数
  • lookup("location", "m") -> lookup("location","method-filtering")
  • 数据库由opensips修改成opensips_3_5

如果有使用其他的模块,需要根据报错信息修改。

运行

1
./opensips -f ./opensips.cfg -m 512 -M 1024 -F

模块变化

详细的变化可以查看官方文档: 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: 处理注册事件
本博客已稳定运行
发表了37篇文章 · 总计67.06k字
本站总访问量 次 · 您是本站第 位访问者
粤ICP备2025368587号-1| 使用 Hugo 构建
主题 StackJimmy 设计