From: Jeremy Davis Date: Tue, 10 Jun 2014 14:33:50 +0000 (-0400) Subject: #29047 Avaya CDR format X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=895152b70a5b827fd43b28724ae1c50943d7f83e #29047 Avaya CDR format --- diff --git a/FS/FS/cdr/avaya_ipo.pm b/FS/FS/cdr/avaya_ipo.pm new file mode 100644 index 000000000..c680af86a --- /dev/null +++ b/FS/FS/cdr/avaya_ipo.pm @@ -0,0 +1,66 @@ +package FS::cdr::avaya_ipo; + +use strict; +use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year ); +use Time::Local; +use FS::cdr; +use Date::Parse; + +@ISA = qw(FS::cdr); + +%info = ( + 'name' => 'Avaya IPO', + 'weight' => 124, + 'header' => 0, + 'import_fields' => [ + + + sub { my ($cdr, $info) = @_; + my @data = split(/\s+/, $info); + my $calldate = $data[4]. " ". $data[5]; + + $cdr->set('calldate', $calldate); + $calldate =~ /^(\d{4})\/(\d{2})\/(\d{2})\s*(\d{2}):(\d{2}):(\d{2})$/ + or die "unparseable date: $calldate"; + my $tmp_date = "$2/$3/$1 $4:$5:$6"; + $tmp_date = str2time($tmp_date); + $cdr->set('startdate', $tmp_date); + + }, #DateTime + + sub { my ($cdr, $duration) = @_; + my ($hours,$min,$sec) = split(/:/, $duration); + my $seconds += ($min * 60)+ ($hours * 60*60) + $sec; + $cdr->set('billsec',$seconds); + } , # Duration 00:00:00 + skip(1), # Ring time + sub { my ($cdr, $info) = @_; + my ($src,$ip) = split(/@/,$info); + $cdr->set('src',$src); + + }, # Callers number + skip(2), # direction + # Called number + 'dst', # Dialed number + 'accountcode', # Accountcode + 'uniqueid', # call ID + skip(5), # continuation + 'dstchannel', # Party2Device + skip(9) # AuthValid + # User Charged + # call Charge + # Currency + # Amount at Last User Change + # Call Units + # Units at Last User Change + # Cost per Unit + # Markup + + +], +); + +sub skip { map {''} (1..$_[0]) } + +1; +