Asterisk 11 ODBC

2012年12月17日 (月) 03:14時点におけるTakahashi (トーク | 投稿記録)による版 (CDR ODBC+MySQL)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

Asteriskでは今後(11ではまだobsolate)、MySQLの直接サポートがなくなります。このためCDRなどはODBC経由で記録する必要があります。

目次

CDR ODBC+MySQL

cdr_mysqlの置き換えとして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