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
程序起來后,發現數據庫有表有信息了,這里埋藏着一個巨大的坑!!!