Frank Bonnet wrote:

Hello

I'm searching for scripts that are able to parse the radacct/xxx.xxx.xxx.xxx/detail-xxxxxxx file to perform
some simple statistics ?

Thanks

- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

what do you mean with parsing?, i got this, i call it summarize.pl, just change the attributes that you want to extract, the result is a csv file, the output is to your screen, so you have to redirecte it to a file, etc, with that csv file you can dump it to a db, or wharever. ej:

for standar output: # ./summarize.pl name_of_detail_file

for csv file: # ./summarize.pl name_of_detail_file > name_of_csv_file


### BEGIN ###

#!/usr/bin/perl
#


# define caracter de separacion para lineas
$/ = "\n\n";

open(SUM,$ARGV[0]) or die "No se encontro archivo detalle";

print "h323-call-origin,h323-call-type,out-intrfc-desc,h323-connect-time,";
print "Acct-Session-Time,h323-disconnect-time,h323-disconnect-cause,";
print "Cisco-NAS-Port,Calling-Station-Id,Called-Station-Id\n";

while (<SUM>){
   s/\t+//g;
   @campos = split(/\n/);
foreach $c (@campos) {
       ($cpo, $vlr) = split(/ = /, $c);
       $vlr =~ s/^ |\"//g;
       #print $cpo,$vlr,"\n";
       if ($cpo eq "h323-call-origin") {$h323_call_origin = $vlr;}
       if ($cpo eq "h323-call-type")   {$h323_call_type = $vlr;}
       if ($cpo eq "Cisco-AVPair") {
           if ($vlr =~ /out-intrfc-desc/) {
               $out_intrfc_desc = (split("=",$vlr))[1];
           }
       }
       if ($cpo eq "h323-connect-time")     {$h323_connect_time = $vlr;}
       if ($cpo eq "Acct-Session-Time")     {$Acct_Session_Time = $vlr;}
       if ($cpo eq "h323-disconnect-time")  {$h323_disconnect_time = $vlr;}
if ($cpo eq "h323-disconnect-cause") {$h323_disconnect_cause = $vlr;}
       if ($cpo eq "Cisco-NAS-Port")        {$Cisco_NAS_Port = $vlr;}
       if ($cpo eq "Calling-Station-Id")    {$Calling_Station_Id = $vlr;}
if ($cpo eq "Called-Station-Id") {$Called_Station_Id = $vlr;} } print "$h323_call_origin,$h323_call_type,$out_intrfc_desc,$h323_connect_time,"; print "$Acct_Session_Time,$h323_disconnect_time,$h323_disconnect_cause,";
   print "$Cisco_NAS_Port,$Calling_Station_Id,$Called_Station_Id\n";
}
close SUM;

### END ###
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to