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
程序起来后,发现数据库有表有信息了,这里埋藏着一个巨大的坑!!!