summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/conexiant.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/cdr/conexiant.pm')
-rw-r--r--FS/FS/cdr/conexiant.pm44
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;