Asterisk CDR SQLite
CDRをSQLite3で保存する方法
前提となるパッケージ
CentOSの場合、以下のパッケージが必要です。
sqlite sqlite-devel
Asteriskの./configureを実行しなおしmake menuselectでCall Detailed Recordingのcdr_sqlite3_customが有効になっていることを確認し、モジュールのインストールを行ってください。
設定
ソースの./configsにcdr_sqlite3_costom.conf.sampleがあるので、それを参考に
cdr_sqlite3_custom.conf
[master] ; currently, only file "master.db" is supported, with only one table at a time. table => cdr columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, test values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}','${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}'
現在のところDB名はmaster.dbです。テーブルは上のように設定しているのでcdrになります。
確認
sqlite3 /var/log/asterisk/master.db SQLite version 3.3.6 Enter ".help" for instructions sqlite> select * from cdr; 1|2012-02-05 17:16:16|"201" <201>|default|SIP/201-00000000||MeetMe|300,M|1|1|ANSWERED|DOCUMENTATION||1328429776.0|| 2|2012-02-05 17:19:47|"201" <201>|default|SIP/201-00000000||MeetMe|300,M|7|7|ANSWERED|DOCUMENTATION||1328429987.0||
こんな感じで記録されます。項目はmaster.csvなどと同じなので必要に応じて調整してください。