Voicamil整合資料庫

    版本為 12:04, 15 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    此篇將說明 Voicemail如何整合進資料庫,這個整合主要目的有兩項:

    1. 透過資料庫管理 Voicemail 的設定,例如分機號,語音留言密碼,留言通知信箱等等。
    2. 透過資料庫管理 Voicemail 錄音檔,以 BLOB 資料類型存入資料庫。

    系統環境

    • PIAF 1.7.5.5
    • Asterisk 1.6.2.17

    系統需求

     檢查需要的模組

    root@pbx:/usr/src/asterisk $ asterisk -rx "module show like odbc"
    Module                         Description                              Use Count
    res_odbc.so                    ODBC resource                            0
    func_odbc.so                   ODBC lookups                             0
    cdr_odbc.so                    ODBC CDR Backend                         0
    res_config_odbc.so             Realtime ODBC configuration              0
    cdr_adaptive_odbc.so           Adaptive ODBC CDR backend                0
    5 modules loaded
    

    如果缺少這些模組,必須重編安裝 Asterisk。

    重編 Asterisk
    cd /usr/src
    cd asterisk
    ./configure
    make menuselect 
    

    Voicemail Build Options > [*] ODBC_STORAGE

    Notes:

    * 如果此項出現 XXXX,請確定 Linux 已經安裝 unixODBC-devel, libtool。
    * 預設是 FILE_STORAGE,編譯時兩者只能選擇其一。

    make clean
    make
    amportal stop
    make install 
    amportal start
    

    設定 Voicemail 的錄音檔存入資料庫

    編輯 vm_general.inc(如果是 vanilla asterisk 改成 voicemail.conf)

    format=wav49
    odbcstorage=asterisk
    odbctable=voicemessages
    
    設定 Linux ODBC for MySQL

    安裝 ODBC driver for MySQL

    root@pbx:/usr/src/asterisk $ rpm -q mysql-connector-odbc
    mysql-connector-odbc-3.51.26r1127-1.el5
    

    編輯 /etc/odbcinst.ini

    # Example driver definitinions
    #
    #
    #
    # Included in the unixODBC package
    #[PostgreSQL]
    #Description    = ODBC for PostgreSQL
    #Driver        = /usr/lib/libodbcpsql.so
    #Setup        = /usr/lib/libodbcpsqlS.so
    #FileUsage    = 1
    #
    #
    # Driver from the MyODBC package
    # Setup from the unixODBC package
    [MySQL]
    Description    = ODBC for MySQL
    Driver        = /usr/lib/libmyodbc.so
    Setup        = /usr/lib/libodbcmyS.so
    FileUsage    = 1
    

    重要:在 CentOS 5.5,找不到檔案 /usr/lib/libmyodbc.so,但有 /usr/lib/libmyodbc3.so,所以必須修改如下:

    # Driver from the MyODBC package
    # Setup from the unixODBC package
    [MySQL]
    Description    = ODBC for MySQL
    Driver        = /usr/lib/libmyodbc3.so   <----- 改這裡
    Setup        = /usr/lib/libodbcmyS.so
    FileUsage    = 1

    選擇:如果有需要連接到 MS-SQL,可以再加上

    [ms-sql]
    Description = TDS connection
    Driver = /usr/lib/libtdsodbc.so
    Setup = /usr/lib/libtdsS.so
    UsageCount = 1
    FileUsage = 1
    

    編輯 /etc/odbc.ini

    [asterisk-connector]
    Driver = MySQL
    Database = asterisk_vm_recording
    Server = localhost
    Socket = /var/lib/mysql/mysql.sock
    User = db_user
    Password = db_pass
    

    Notes:

    * Driver 必須與 odbcinst.ini 內容相同。
    * Database 要儲存錄音檔的資料庫名稱

    設定 Asterisk for ODBC

    編輯 res_odbc.conf

     [asterisk]
    enabled => yes
    dsn => asterisk-connector
    pre-connect => yes
    

    編輯 func_odbc.conf

     

    建立資料庫 asterisk_vm_recording

    mysql>create database asterisk_vm_recording;
    mysql>exit 
    
    Powered by MindTouch Core