diff options
Diffstat (limited to 'FS/FS/cdr/conexiant.pm')
-rw-r--r-- | FS/FS/cdr/conexiant.pm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/FS/FS/cdr/conexiant.pm b/FS/FS/cdr/conexiant.pm new file mode 100644 index 000000000..4ee3f149d --- /dev/null +++ b/FS/FS/cdr/conexiant.pm @@ -0,0 +1,44 @@ +package FS::cdr::conexiant; +use base qw( FS::cdr ); + +use strict; +use vars qw( %info ); +use FS::Record qw( qsearchs ); +use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker ); + +%info = ( + 'name' => 'Conexiant', + 'weight' => 600, + 'header' => 1, + 'type' => 'csv', + 'import_fields' => [ + skip(3), #LookupError,Direction,LegType + sub { #CallId + my($cdr,$value,$conf,$param) = @_; + #filter out already-imported cdrs here + if (qsearchs('cdr',{'uniqueid' => $value})) { + $param->{'skiprow'} = 1; + $param->{'unique_skip'} = 1; #tell batch_import why we're skipping + } else { + $cdr->uniqueid($value); + } + }, + 'upstream_rateplanid', #ClientRateSheetId + skip(1), #ClientRouteId + 'src', #SourceNumber + skip(1), #RawNumber + 'dst', #DestNumber + skip(1), #DestLRN + _cdr_date_parser_maker('startdate'), #CreatedOn + _cdr_date_parser_maker('answerdate'), #AnsweredOn + _cdr_date_parser_maker('enddate'), #HangupOn + skip(4), #CallCause,SipCode,Price,USFCharge + 'upstream_price', #TotalPrice + _cdr_min_parser_maker('billsec'), #PriceDurationMins + skip(2), #SipEndpointId, SipEndpointName + ], +); + +sub skip { map {''} (1..$_[0]) } + +1; |