X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr%2Fcx3.pm;h=7f1222e9ad3c9e57b7e4cbf2bfd202a193cb8ccc;hb=225cb914aa74111bb9b539075b7e065d41eb9aec;hp=8c848078a10e6db9eb541fedb2d72cb651835568;hpb=b35987f47a04e2875949ac95dcbb19ff49026e33;p=freeside.git diff --git a/FS/FS/cdr/cx3.pm b/FS/FS/cdr/cx3.pm index 8c848078a..7f1222e9a 100644 --- a/FS/FS/cdr/cx3.pm +++ b/FS/FS/cdr/cx3.pm @@ -10,40 +10,35 @@ use Date::Parse; %info = ( 'name' => '3CX', 'weight' => 120, - 'header' => 1, 'import_fields' => [ -sub { - my ($cdr, $data, $conf, $param) = @_; - $param->{skiprow} = 1 unless $data =~ 'CallDetail'; # skip non-detail records + sub { + my ($cdr, $data, $conf, $param) = @_; + $param->{skiprow} = 1 unless $data =~ /Call\s/ ; # skip non-detail records }, # record type - skip(2), # unknown, callid ( not unique ) + skip(1), # unknown, callid ( not unique ) + sub { my ($cdr, $duration) = @_; + + my ($hour,$min,$sec) = split(/:/,$duration); + $sec = sprintf ("%.0f", $sec); + $sec += $min * 60; + $sec += $hour * 60 * 60; + $cdr->set('billsec', $sec); + + }, # duration + skip(1), + sub { my ($cdr, $calldate, $param) = @_; + + my $date = str2time($calldate); + $cdr->set('startdate', $date); + + }, #date + skip(4), + 'accountcode', # AccountCode + skip(6), 'src', # source 'dst', # destination -sub { my ($cdr, $calldate, $param) = @_; - - if ($calldate =~ /^(\d{2})\/(\d{2})\/(\d{4})\s*(\d{2}):(\d{2}):(\d{2})$/){ - - $cdr->set('calldate', $calldate); - my $tmp_date = "$2/$1/$3 $4:$5:$6"; - - $tmp_date = str2time($tmp_date); - $cdr->set('startdate', $tmp_date); - } - }, #date -sub { my ($cdr, $duration) = @_; - - my ($hour,$min,$sec) = split(/:/,$duration); - $sec += $min * 60; - $sec += $hour * 60 * 60; - $sec = sprintf ("%.0f", $sec); - $cdr->set('billsec', $sec); - -}, #duration - skip(1), # unknown - 'disposition', # call status - 'accountcode', # AccountCode ], );