|
Asteriskで通話記録するためにAsterisk-addonsを導入した。 参考にしたのは以下のサイト 例えば、Asterisk1.4系であれば1.4系の最新版を以下のサイトから入手する。 コンパイルの手順は、 ./configure make menuselect で、必要なモジュールを選択する。 ****************************************
Asterisk-addons Module Selection
****************************************
Press 'h' for help.
1. Applications
---> 2. Call Detail Recording
3. Channel Drivers
4. Format Interpreters
5. Resource Modules
****************************************
Asterisk-addons Module Selection
****************************************
Press 'h' for help.
[*] 1. cdr_addon_mysql
あとは、 make make install make samples を行う。 次に、通話記録を格納するデータベースを作成する。 mysqlのフロントエンド等から、以下のSQLを実行しテーブルを作成する。
ちなみに今回テーブルを格納するデータベース名は asterisk とし、必要に応じて事前に作成しておく。 DROP TABLE `cdr`; CREATE TABLE `cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '', `src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `channel` varchar(80) NOT NULL default '', `dstchannel` varchar(80) NOT NULL default '', `lastapp` varchar(80) NOT NULL default '', `lastdata` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0' , `billsec` int(11) NOT NULL default '0' , `disposition` varchar(45) NOT NULL default '', `amaflags` int(11) NOT NULL default '0' , `accountcode` varchar(20) NOT NULL default '', `userfield` varchar(255) NOT NULL default '' ); ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` ); ALTER TABLE `cdr` ADD INDEX ( `accountcode` ); 次に、設定ファイル /etc/asterisk/cdr_mysql.conf を編集する。 [global] hostname=127.0.0.1 dbname=asterisk password=cdrpass user=cdruser ユーザ名とパスワードは、データベース asterisk にアクセスできるユーザにしておく。 正しく設定されていれば、テーブル cdr に通話記録が記録されています。phpmyadmin等のツールを使って、中身が確認できます。 通話記録は、Asterisk-statを使えば綺麗に可視化できる。 展開して、PHPでアクセスできる箇所にコピーする。 httpd.conf は DirectoryIndex? にcdr.php を追加。 DirectoryIndex cdr.php, index.php, index.htm Asterisk-statをコピーしてディレクトリの下の lib/defines.php は以下のようにデータベースとの接続部分を編集。 <?php
define ("WEBROOT", "http://192.168.0.100/asterisk-stat/");
define ("FSROOT", "/var/www/html/asterisk-stat/");
define ("LIBDIR", FSROOT."lib/");
define ("HOST", "localhost");
define ("PORT", "3306");
define ("USER", "cdruser");
define ("PASS", "cdrpass");
define ("DBNAME", "asterisk");
define ("DB_TYPE", "mysql"); // mysql or postgres
define ("DB_TABLENAME", "cdr");
httpd.conf を編集したので、reloadするなりして設定ファイルを読み込めば動作確認できる。 |