X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr%2Fenswitch.pm;h=8026293e278713b90f5ba51ffa06133dbeb49b09;hb=562a3c85e49cd3ea8fb80e5c2fd7f4c5f60333e9;hp=a19b16641f8232ae5e04dc09519f022093236674;hpb=f6e9a27928d6ce1c86c20eee31d2577505019756;p=freeside.git diff --git a/FS/FS/cdr/enswitch.pm b/FS/FS/cdr/enswitch.pm index a19b16641..8026293e2 100644 --- a/FS/FS/cdr/enswitch.pm +++ b/FS/FS/cdr/enswitch.pm @@ -12,26 +12,36 @@ use FS::cdr_type; 'header' => 2, 'type' => 'csv', 'import_fields' => [ - 'disposition', #Status + 'dcontext', #Status 'startdate', #Start, already a unix timestamp skip(2), #Start date, Start time 'enddate', #End skip(4), #End date, End time #Calling customer, Calling type - 'src', #Calling number - 'clid', #Calling name + 'src', #Calling number skip(1), #Called type - 'dst', #Called number - skip(5), #Destination customer, Destination type + + sub { my ($cdr, $dst) = @_; + $dst =~ s/\*//g; + $cdr->set('dst', $dst); + }, #Called number + + skip(14), #Destination customer, Destination type #Destination number #Destination group ID, Destination group name, - \&in_calling_type, #Inbound calling type, - \&in_calling_num, #Inbound calling number, - '', #Inbound called type, - \&in_called_num, #Inbound called number, - skip(14), + #Inbound calling type, + #Inbound calling number, + #Inbound called type, + #Inbound called number, #Inbound destination type, Inbound destination number, - #Outbound calling type, Outbound calling number, + sub { my ($cdr, $data) = @_; + $data ||= 'none'; + + my $cdr_type = qsearchs('cdr_type', { 'cdrtypename' => $data } ); + $cdr->set('cdrtypenum', $cdr_type->cdrtypenum) if $cdr_type; + } , #Outbound calling type, + + skip(11), #Outbound calling number, #Outbound called type, Outbound called number, #Outbound destination type, Outbound destination number, #Internal calling type, Internal calling number, @@ -40,7 +50,8 @@ use FS::cdr_type; 'duration', #Total seconds skip(1), #Ring seconds 'billsec', #Billable seconds - 'upstream_price', #Cost + skip(2), #Cost + #Cost including taxes 'accountcode', #Billing customer skip(3), #Billing customer name, Billing type, Billing reference ], @@ -48,33 +59,4 @@ use FS::cdr_type; sub skip { map {''} (1..$_[0]) } -#create CDR types with names matching in_calling_type valuesj - 'none' -# (without the quotes) for blank -our %cdr_type = (); -sub in_calling_type { - my ($record, $data) = @_; - - $data ||= 'none'; - - my $cdr_type = exists($cdr_type{$data}) - ? $cdr_type{$data} - : qsearchs('cdr_type', { 'cdrtypename' => $data } ); - - $cdr_type{$data} = $cdr_type; - - $record->set('in_calling_type', $data); #for below - $record->set('cdrtypenum', $cdr_type->cdrtypenum) if $cdr_type; - -} - -sub in_calling_num { - my ($record, $data) = @_; - $record->src($data) if ( ($record->in_calling_type || '') eq 'external' ); -} - -sub in_called_num { - my ($record, $data) = @_; - $record->dst($data) if ( ($record->in_calling_type || '') eq 'external' ); -} - 1;