Asterisk 11 ODBC
提供: VoIP-Info.jp
Asteriskでは今後(11ではまだobsolate)、MySQLの直接サポートがなくなります。このためCDRなどはODBC経由で記録する必要があります。
CDR ODBC+MySQL
必要なパッケージの追加
RH系でyumの場合には以下のパッケージを追加しておきます。
mysql-connector-odbc unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
パッケージを追加してから再度./configureとmakeを実行してAsteriskを再コンパイル/インストールします。make menuselect時にres_odbcとcdr_odbcが使用可能になっていることを確認してください。
MySQLとデータベースの準備
MySQLで使用していたデータベースをそのまま使用するか、あるいは新規のデータベースを使用することになるかと思いますが、これは従来通りMySQL上でデータベースを使うだけですので準備しておきます。
ここでは以下のパラメータを使用するものとして例を示します。
MySQLのユーザ名 : asterisk MySQLのパスワード : password MySQL上のデータベース名 : asterisk MySQL上のテーブル名 : cdr
ODBC設定ファイルとインストール
ODBCのDSNはASTERISK_CDRとします。
- /etc/odbc.ini (注意:他のDSNの使用している場合には追記してください)
[ASTERISK_CDR] Driver = /usr/lib64/libmyodbc5.so Description = ASTERISK_CDR SERVER = 127.0.0.1 PORT = USER = asterisk Password = password Database = asterisk OPTION = 3 SOCKET =
上記の例はCentOS 64bitの場合です。32bitの場合にはDriverが/usr/libにあるものを使用します。
ファイルを用意したならば以下を実行した後、isqlでデータベースに正常にアクセスできることを確認しておきましょう。
# odbcinst -i -s -f /etc/odbc.ini # isql ASTERISK_CDR SQL> select * from cdr
Asteriskの設定ファイル
- /etc/asterisk/res_odbc.conf
[mysql-odbc] enabled => yes dsn => ASTERISK_CDR username => asterisk password => password pre-connect => yes
- /etc/asterisk/cdr_odbc.conf
[global] dsn=mysql-odbc table=cdr usegmtime=no