zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    莫队模板
    CF600E Lomsat gelral
    JZOJ 捕老鼠
    JZOJ 4896. 【NOIP2016提高A组集训第16场11.15】兔子
    JZOJ 4895【NOIP2016提高A组集训第16场11.15】三部曲
    双端队列xLIS问题
    最大K段和
    你真的了解ES6的promise吗?
    JS对象和数组深浅拷贝总结②
    当前页码删除唯一数据后加载前一页内容
  • 原文地址:https://www.cnblogs.com/cash/p/13331299.html
Copyright © 2011-2022 走看看