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

程序起来后,发现数据库有表有信息了,这里埋藏着一个巨大的坑!!!

 

 

posted @ 2020-07-17 17:26  飛言緋語  阅读(5917)  评论(4编辑  收藏  举报