3. CDR (呼情報) の移行

前回、作成した 呼情報テーブル (cdr) へ Asterisk の呼情報が格納されるように設定をします。

modules.conf の変更

ステップ1の asterisk-addons をインストールすると cdr_addon_mysql.so という設定ファイルが /usr/lib/asterisk/modules にあります。

Asterisk が MySQL へ CDR を格納するために必要なモジュールをロードするように /etc/asterisk/modules.conf を変更します。

[modules]
autoload=yes ; autoload が yes は自動的にロード
;
; Any modules that need to be loaded before the Asterisk core has been
; initialized (just after the logger has been initialized) can be loaded
; using 'preload'. This will frequently be needed if you wish to map all
; module configuration files into Realtime storage, since the Realtime
; driver will need to be loaded before the modules using those configuration
; files are initialized.
;
; An example of loading ODBC support would be:
;preload => res_odbc.so
;preload => res_config_odbc.so
preload => cdr_addon_mysql.so ; もしくは、明示的にCDRをMySQLへ格納するモジュールをロード指示

cdr_mysql.conf の変更

次に、cdr_mysql.conf という設定ファイルが /etc/asterisk にあります。

作成したデータベースとテーブル情報を、/etc/asterisk/cdr_mysql.conf に以下のように変更を加えます。

[global]
hostname=127.0.0.1 ; ホスト名はローカルIPアドレス、または localhost
dbname=Asterisk ; データベース名
table=cdr ; 呼情報テーブル名
password=Asterisk ; データベースのパスワード
user=Asterisk ; データベースのユーザー名
;port=3306 ; ポートはデフォルト
;sock=/var/run/mysqld/mysqld.sock ; ソケットファイルはデフォルト
userfield=1 ; ?
;charset=latin1 ; charset はデフォルト

Asterisk の再起動

Asterisk を再起動して、設定を有効にします。

# service asterisk restart

呼情報の確認

X-Lite を起動して、1000 へダイアルしてみます。
“Hellow world.” が聞こえて呼が切断されたら、MySQL の cdr テーブルを見てみましょう。

# mysql -u Asterisk -p
Enter password:
mysql> use Asterisk;
mysql> select * from cdr;

このように呼情報が出力されると思います。

+---------------------+---------------+------+------+----------+-------------------+------------+---------+----------+----------+---------+-------------+----------+-------------+-----------+----------+
| calldate | clid | src | dst | dcontext | channel | dstchannel | lastapp | lastdata | duration | billsec | disposition | amaflags | accountcode | userfield | uniqueid |
+---------------------+---------------+------+------+----------+-------------------+------------+---------+----------+----------+---------+-------------+----------+-------------+-----------+----------+
| 2011-10-05 17:57:54 | "2001" <2001> | 2001 | 1000 | internal | SIP/2001-00000000 | | Hangup | | 2 | 2 | ANSWERED | 3 | | | |
| 2011-10-05 17:58:17 | "2001" <2001> | 2001 | 1000 | internal | SIP/2001-00000000 | | Hangup | | 2 | 2 | ANSWERED | 3 | | | |
| 2011-10-05 17:58:25 | "2001" <2001> | 2001 | 1000 | internal | SIP/2001-00000001 | | Hangup | | 1 | 1 | ANSWERED | 3 | | | |
+---------------------+---------------+------+------+----------+-------------------+------------+---------+----------+----------+---------+-------------+----------+-------------+-----------+----------+
3 rows in set (0.02 sec)

以上です。