X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr%2Fcx3.pm;h=07d8967c353a05938f47b2f81d0d68fe9e825452;hb=ba703eae98d1c77cfabc275c22a992b62c60548d;hp=e5b5f0350dba0510a328a2cff26e9ac3beb7a728;hpb=707368aa7db1cecdd05b74c8531249a1e1370823;p=freeside.git diff --git a/FS/FS/cdr/cx3.pm b/FS/FS/cdr/cx3.pm index e5b5f0350..07d8967c3 100644 --- a/FS/FS/cdr/cx3.pm +++ b/FS/FS/cdr/cx3.pm @@ -10,39 +10,38 @@ 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 + sub { my ($cdr, $dst, $param) = @_; + $dst =~ s/#//; + $cdr->set('dst', $dst); + }, # destination ], );