前言
根據官方更新說明(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
步驟
- 安裝依賴
apt install -y libmariadb-dev mariadb-client
# centos7下相關依賴應該是:yum install -y mariadb mariadb-devel
- 編譯FreeSWITCH的時候編輯module.conf.xml,取消
mod_mariadb
的注釋,然后再進行編譯 - 編譯安裝完成后,編輯
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>
- 准備數據庫。在MySQL建庫,庫名如
freeswitch
,可以找一個已有FreeSWITCH庫拷過去,也可以是空庫,讓FreeSWITCH啟動時自行創建。這里只建了一個空庫。 - 編輯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)編輯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>
- 編輯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>
- 因為是空庫,所以先啟動一下讓FreeSWITCH自己建表
/usr/local/freeswitch/bin/freeswitch -nonat
# 啟動完成后,打開數據庫看看有沒有自行建表
# 用軟電話注冊,查看registration表有沒有新注冊的用戶,有的話說明FreeSWITCH連接數據庫成功
- 重啟FreeSWITCH。正式啟動
/usr/local/freeswitch/bin/freeswitch -nonat -nosql -nc
- 驗證
/usr/local/freeswitch/bin/fs_cli -x "sofia status"