(相关资料图)
本文更新于2022-04-10,使用Debian 10、FreeSWITCH 1.10.7、MySQL 5.7.35。
- 安装ODBC:
sudo apt install unixodbc unixodbc-dev
- 安装ODBC的MySQL驱动程序:
wget https://downloads.mysql.com/archives/get/p/10/file/mysql-connector-odbc-8.0.19-linux-debian10-x86-64bit.tar.gztar -xv -f mysql-connector-odbc-8.0.19-linux-debian10-x86-64bit.tar.gzsudo mkdir /usr/local/mysql-connector-odbcsudo cp -r mysql-connector-odbc-8.0.19-linux-debian10-x86-64bit/* /usr/local/mysql-connector-odbc
- 修改ODBC的配置,配置文件为/etc/odbc.ini,配置内容示例如下:
说明如下,需根据实际情况填写:[freeswitch]Description = Test FreeSWITCHDriver = /usr/local/mysql-connector-odbc/lib/libmyodbc8a.soSERVER = localhostPORT = 3306DATABASE = testUSER = rootPASSWORD = 1234OPTION = 67108864SocketBufferSize = 4096FetchBufferSize = 100CHARSET = UTF8
- []:DSN名字,用于在其它地方引用
- Description:描述,不影响使用。
- Driver:数据库驱动,位于上一步安装的路径中。
- SERVER:数据库服务器主机。
- PORT:数据库服务器端口。
- DATABASE:数据库服务器的数据库名。
- USER:数据库服务器用户名。
- PASSWORD:数据库服务器密码。
- OPTION:67108864表示将多条SQL语句放到一起执行以提高效率,如果没有这一项会出错。
- 测试ODBC连接:
需使用上一步配置中实际的DSN名字。需先创建上一步配置中指定数据库名的数据库,否则会连接失败。如连接成功则会提示:isql freeswitch -v
+---------------------------------------+| Connected! || || sql-statement || help [tablename] || quit || |+---------------------------------------+SQL>
- 重新编译安装FreeSWITCH(笔者的源代码目录为/usr/src/freeswitch,根据实际情况修改):
执行cd /usr/src/freeswitch./bootstrap.sh -j./configuremakemake install
make install
前需将freeswitch进程停止。 - 修改FreeSWITCH配置,使用ODBC连接数据库。各模块的配置有所不同(笔者的安装目录为/usr/local/freeswitch,根据实际情况修改),如:
将core.db替换为ODBC:
配置/usr/local/freeswitch/conf/autoload_configs/switch.conf.xml:
需使用/etc/odbc.ini配置中实际的DSN名字,并需先创建/etc/odbc.ini配置中指定数据库名的数据库。
将internal Profile替换为ODBC:
配置/usr/local/freeswitch/conf/sip_profiles/internal.xml:
需使用/etc/odbc.ini配置中实际的DSN名字,且/etc/odbc.ini中的数据库名DATABASE必需为internal,并需先创建internal数据库。
- 重启freeswitch进程。