Asteriskで通話記録するためにAsterisk-addonsを導入した。

参考にしたのは以下のサイト
http://voip-info.jp/index.php/Asterisk%2BMySQL

例えば、Asterisk1.4系であれば1.4系の最新版を以下のサイトから入手する。
http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.7.tar.gz

コンパイルの手順は、

./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)で環境を構築する。

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を使えば綺麗に可視化できる。
Asterisk-statは以下のサイトから入手できる。
http://www.areski.net/asterisk-stat-v2/asterisk-stat-v2_0_1.tar.gz

展開して、PHPでアクセスできる箇所にコピーする。
以下のサイトを参考に、設定ファイルに修正を行う。
http://www.syon.co.jp/syontech/tech020.html

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するなりして設定ファイルを読み込めば動作確認できる。


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-04-22 (水) 09:56:38 (503d)