summaryrefslogtreecommitdiff
path: root/FS/FS/cdr
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2016-05-12 17:57:12 -0500
committerJonathan Prykop <jonathan@freeside.biz>2016-05-12 17:57:12 -0500
commit350c6073bb6cf465b02ef373bf7bfde2a8a07500 (patch)
tree6bb7be0133873191ea5455b06bccffcc39d27edb /FS/FS/cdr
parent5516013d689b79f4440732cd75eaf66737d7588f (diff)
RT#39913 Conexiant API
Diffstat (limited to 'FS/FS/cdr')
-rw-r--r--FS/FS/cdr/conexiant.pm43
1 files changed, 43 insertions, 0 deletions
diff --git a/FS/FS/cdr/conexiant.pm b/FS/FS/cdr/conexiant.pm
new file mode 100644
index 0000000..852c2f6
--- /dev/null
+++ b/FS/FS/cdr/conexiant.pm
@@ -0,0 +1,43 @@
+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) = @_;
+ if (qsearchs('cdr',{'uniqueid' => $value})) {
+ $param->{'skiprow'} = 1;
+ $param->{'empty_ok'} = 1;
+ } 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;