相続、親が弱ってきたら銀行の預金は親の面倒を見ているものが全て解約して管理すべきである、銀行は解約させない!!

asterisk cdr cvs mysql

Asterisk
  • 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 )

一週間前のデータをメールで送る

  • vi /usr/local/bin/cdr.sh
#!/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
Asterisk
スポンサーリンク
シェアする
ふじやんをフォローする
スポンサーリンク

コメント