[Asterisk-Users] Webalizer for CDR logs....
Brian West
brian at bkw.org
Sat Aug 2 16:29:51 MST 2003
I'm currently working on a perl script convert csv logs to a http log
equiv:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
Right now I have output something similar to this:
111 - - [02/Aug/2003:16:39:15 -0500] "GET /300 HTTP/1.0" 200 6144 "sipext" "ANSWERED"
INCOMING - - [02/Aug/2003:17:30:27 -0500] "GET /9999 HTTP/1.0" 200 40960 "autoattend" "ANSWERED"
111 - - [02/Aug/2003:17:33:31 -0500] "GET /800 HTTP/1.0" 200 1024 "sipext" "ANSWERED"
INCOMING - - [02/Aug/2003:17:33:31 -0500] "GET /9999 HTTP/1.0" 200 36864 "autoattend" "ANSWERED"
It produces basically what I want but maybe someone out there will refine
this!!
bkw
PS: I can't take full credit for this someone on #asterisk mentioned doing
this.
-------------- next part --------------
#!/usr/bin/perl
#
# Asterisk PBX to weblog converter
# This is just a test to see if we can get usable data from such a script.
#
# timeoffset ie -0500
$timeoffset = "-0500";
open(LOGS,"</home/sites/www.bkw.org/users/brian/Master.csv");
@data = <LOGS>;
close(LOG);
%MONTHS = (
"01" => "Jan",
"02" => "Feb",
"03" => "Mar",
"04" => "Apr",
"05" => "May",
"06" => "Jun",
"07" => "Jul",
"08" => "Aug",
"09" => "Sep",
"10" => "Oct",
"11" => "Nov",
"12" => "Dec"
);
foreach $line (@data) {
chomp($line);
my($acctcode, $src, $dest, $destcontext, $callerid, $chan, $destchan, $lastapp, $lastapparg, $start, $answer, $end, $duration, $billable, $disposition, $amaflags, $uniqueid) = split(",",$line);
# lets clean this up a bit
$dest =~ s/\"//g;
$src =~ s/\"//g;
$start =~ s/\"//g;
$disposition =~ s/\"//g;
$destcontext =~ s/\"//g;
# not sure but we will convert seconds to kilobytes
$billable = $billable * 1024;
# I'm sure we can do this better
my($date, $time) = split(' ',$start);
my($year, $month, $day) = split('-',$date);
# this is for my own needs because we dump calls into asterisk via h323
if($src eq "") {
if($dest = 9999) {
$src = "INCOMING";
}
}
print "$src - - [$day\/$MONTHS{$month}\/$year:$time -0500] \"GET /$dest HTTP/1.0\" 200 $billable \"$destcontext\" \"$disposition\"\n";
$subtotal = $subtotal + $billable;
}
More information about the asterisk-users
mailing list