FreeSWITCH使用MySQL數據庫


FreeSWITH 默認使用 sqlite 作為數據庫,但是很多時候我們需要使用 MySQL 等數據庫作為服務器數據庫使用,比如集群主備的時候,可以方便從數據庫讀取信息。這里以 MySQL 為例介紹相關配置

主備的集群安裝見: FreeSwitch高可用解決方案

1. 安裝ODBC庫

yum -y install mysql-connector-odbc.x86_64 unixODBC-devel.x86_64

2. 配置ODBC

vi /etc/odbc.ini  #該文件默認沒有,直接新建保存

[freeswitch]
Description=FreeSwitch MySQL database
Driver=MySQL
SERVER =192.168.2.190
PORT =3306
DATABASE = freeswitch
OPTION  =67108864
CHARSET = UTF8
USER = root
PASSWORD = WenFei@123
Threading = 0

cat /etc/odbcinst.ini  #ODBC裝完后就已經產生

# Example driver definitions

# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description     = ODBC for PostgreSQL
Driver          = /usr/lib/psqlodbcw.so
Setup           = /usr/lib/libodbcpsqlS.so
Driver64        = /usr/lib64/psqlodbcw.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage       = 1


# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description     = ODBC for MySQL
Driver          = /usr/lib/libmyodbc5.so
Setup           = /usr/lib/libodbcmyS.so
Driver64        = /usr/lib64/libmyodbc5.so
Setup64         = /usr/lib64/libodbcmyS.so
FileUsage       = 1

3. 安裝數據庫

如果你的服務器沒有安裝 MySQL 可以按照下述方法安裝,如果已經有了數據庫,則跳過這個步驟。

初始化數據庫后創建 freeswitch 數據庫 create database freeswitch;
接下來測試 ODBC 是否正常

isql -v freeswitch

如果登陸成功,那么就說明是OK的。此時的 MySQL 數據庫里面的表還是空的。

4. 重新編譯 FreeSWITCH

回到編譯目錄,重新編譯,加入 --enable-core-odbc-support 參數。

./configure --enable-core-odbc-support
make && make install

5. 配置 FreeSWITCH xml

這里的數據庫賬號 root 假設密碼為 123456

找到相應的文件按照如下配置:

<!-- vi conf/autoload_configs/db.conf.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/switch.conf.xml -->
<param name="core-db-dsn" value="freeswitch:root:123456" />
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/voicemail.conf.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/callcenter.conf.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/external.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/internal.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/internal-ipv6.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/external-ipv6.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/fifo.conf.xml -->
<settings>
    <param name="delete-all-outbound-member-on-startup" value="false"/>
    <param name="odbc-dsn" value="freeswitch:root:123456"/>
</settings>

<!-- vi conf/vars.xml -->
<X-PRE-PROCESS cmd="set" data="json_db_handle=odbc://freeswitch:root:123456"/>

重啟 FreeSWITCH 基本流程就完成了。 

6. 驗證FreeSWITCH

程序起來后,發現數據庫有表有信息了,這里埋藏着一個巨大的坑!!!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM