FreeSWITCH通过mod_mariadb原生连接MySQL

前言

根据官方更新说明(https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH+1.10.x+Release+notes),从1.10.0版本开始,FreeSWITCH可以通过模块mod_mariadb原生连接MySQL,而不用再倒腾ODBC驱动。之前有写过相关笔记,这次单独放出来方便搜索。以下内容为配置步骤,系统环境为Debian 11,FreeSWITCH版本为1.10.6。编译安装步骤参考本人另一篇笔记:debian11编译安装freeswitch

  • FreeSWITCH服务器IP:192.168.0.10
  • MySQL服务器IP:192.168.0.11,端口:3307

步骤

  1. 安装依赖
apt install -y libmariadb-dev mariadb-client
  1. 编译FreeSWITCH的时候编辑module.conf.xml,取消mod_mariadb的注释,然后再进行编译
  2. 编译安装完成后,编辑autoload_configs/pre_load_modules.conf配置文件。默认启用的是mod_pgsql,需要注释掉,并取消对mod_mariadb的注释。
<configuration name="pre_load_modules.conf" description="Modules">
  <modules>
    <!-- Databases -->
    <load module="mod_mariadb"/>
    <!-- <load module="mod_pgsql"/> -->
  </modules>
</configuration>
  1. 准备数据库。在MySQL建库,库名如freeswitch,可以找一个已有FreeSWITCH库拷过去,也可以是空库,让FreeSWITCH启动时自行创建。这里只建了一个空库。
  2. 编辑FreeSWITCH配置文件:autoload_configs/switch.conf.xml,找到core-db-dsn相关配置。取消mariadb数据库连接的注释,且注释掉postgresql相关的配置。
<param name="core-db-dsn" value="mariadb://Server=192.168.0.11;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />

FreeSWITCH通过mod_mariadb原生连接MySQL

  1. (可做可不做)编辑FreeSWITCH配置文件:autoload_configs/db.conf.xml
<configuration name="db.conf" description="LIMIT DB Configuration">
  <settings>
    <param name="core-db-dsn" value="mariadb://Server=192.168.0.11;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />
  </settings>
</configuration>
  1. 编辑FreeSWITCH的sip_profile配置文件,将同样的数据库配置信息添加到sip_profile文件中。
<profile name="external">
    ......
    <settings>
        ......
        <param name="core-db-dsn" value="mariadb://Server=192.168.0.11;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />
        ......
    </settings>
</profile>
  1. 因为是空库,所以先启动一下让FreeSWITCH自己建表
/usr/local/freeswitch/bin/freeswitch -nonat
# 启动完成后,打开数据库看看有没有自行建表
# 用软电话注册,查看registration表有没有新注册的用户,有的话说明FreeSWITCH连接数据库成功
  1. 重启FreeSWITCH。正式启动
/usr/local/freeswitch/bin/freeswitch -nonat -nosql -nc
上一篇:Docker部署freeswitch


下一篇:freeswitch的docker构建过程