- http://192.168.1.x/phpmyadmin
- phpadmin のsql欄に下記をペーストして実行
CREATE DATABASE asteriskcdrdb;
GRANT INSERT
ON asteriskcdrdb.*
TO asterisk@localhost
IDENTIFIED BY 'yorifuji';
USE asteriskcdrdb;
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 '',
`uniqueid` VARCHAR(32) NOT NULL default '',
`linkedid` VARCHAR(32) NOT NULL default '',
`sequence` VARCHAR(32) NOT NULL default '',
`peeraccount` VARCHAR(32) NOT NULL default ''
);
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
- cp /var/log/asterisk/cdr-csv/Master.csv /home/ckenko25
- importcdr.php
- cd /home/ckenko25
- cp /var/log/asterisk/cdr-csv/Master.csv /home/ckenko25
- php importcdr.php Master.csv
- エラーが出なければこれでインポート完了
- 発信先番号検索 SELECT * FROM `cdr` WHERE dst =0789259370
- 発信先番号検索 SELECT * FROM `src` WHERE dst =0789259370
- 発信日時検索 SELECT * FROM `cdr` WHERE `calldate` BETWEEN ‘2014-06-01 00:00:00’ AND ‘2014-06-31 23:59:59’
- 当日の発信を検索 SELECT * FROM `cdr` WHERE DATE(`calldate`) = DATE( NOW())
- 通話しなかった発信を検索 SELECT * FROM `cdr` WHERE `disposition` = ‘NO ANSWER’
- 通話したものを検索 SELECT * FROM `cdr` WHERE `disposition` = ‘ANSWERED’
- 通話したもので期間を限定して検索 SELECT * FROM `cdr` WHERE `calldate` BETWEEN ‘2014-06-01 00:00:00’ AND ‘2014-06-31 23:59:59’ AND `disposition` = ‘ANSWERED’
- SELECT calldate,src,dst,duration,billsec,amaflags FROM `cdr` WHERE `calldate` BETWEEN ‘2014-06-01 00:00:00’ AND ‘2014-06-31 23:59:59’
- billsec:通話時間 duration:呼び出し時間
MySQLでコマンドから直接クエリを実行し、CSVファイルに保存する
- mysql -root -ppassword asteriskcdrdb -e “select * from cdr;” > users.tsv
- mysql -u root -ppassword asteriskcdrdb -e “select * from cdr into outfile ‘/tmp/cdr8.csv’ fields terminated by ‘,’ enclosed by ‘\”‘”
- 参考
- CREATE TABLE tmp SELECT `calldate`,`src`,`dst`,`duration`,`billsec` FROM `cdr` WHERE `calldate` BETWEEN ‘2014-06-01 00:00:00’ AND ‘2014-06-31 23:59:59’ ORDER BY calldate DESC;
- テーブルを削除 DROP TABLE tmp
- 今日から1週間前を計算する CREATE TABLE tmp SELECT `calldate`,`src`,`dst`,`duration`,`billsec` FROM `cdr` WHERE `calldate` > ( NOW( ) – INTERVAL 7 DAY ) ORDER BY calldate DESC
- uuencode <添付するファイル名> <添付ファイル名(送ったときに見えるファイル名)> | mail -s ‘サブジェクト’ メールアドレス
- uuencode /tmp/cdr.csv cdr.csv | mail -s “asterisk cdr” ckenko25@gmail.com
- SELECT * FROM `cdr` WHERE `calldate` > ( NOW( ) – INTERVAL 7 DAY )
一週間前のデータをメールで送る
#!/bin/sh
#
rm /tmp/cdr.csv
mysql -u root -pパスワード asteriskcdrdb -e "DROP TABLE tmp"
mysql -u root -pパスワード asteriskcdrdb -e "CREATE TABLE tmp SELECT calldate,src,dst,duration,billsec FROM cdr WHERE calldate > ( NOW( ) - INTERVAL 7 DAY ) ORDER BY calldate DESC"
mysql -u root -pパスワード asteriskcdrdb -e "select * from tmp into outfile '/tmp/cdr.csv' fields terminated by ',' enclosed by '\"'"
uuencode /tmp/cdr.csv cdr.csv | mail -s "asterisk cdr" ckenko25@gmail.com
コメント