Revert "RT# 75680 - telapi_voip cdr csv import"
authorChristopher Burger <burgerc@freeside.biz>
Thu, 23 May 2019 15:35:25 +0000 (11:35 -0400)
committerChristopher Burger <burgerc@freeside.biz>
Thu, 23 May 2019 15:35:25 +0000 (11:35 -0400)
This reverts commit 606acab48f55da2b8846e5539839d591b63ae18c.

FS/FS/cdr/telapi_voip.pm [new file with mode: 0644]
FS/FS/cdr/telapi_voip_csv.pm [deleted file]

diff --git a/FS/FS/cdr/telapi_voip.pm b/FS/FS/cdr/telapi_voip.pm
new file mode 100644 (file)
index 0000000..abc7d5b
--- /dev/null
@@ -0,0 +1,52 @@
+package FS::cdr::telapi_voip;
+use base qw( FS::cdr );
+
+use strict;
+use vars qw( @ISA %info $CDR_TYPES );
+use FS::Record qw( qsearch );
+use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
+
+%info = (
+  'name'          => 'telapi_voip',
+  'weight'        => 601,
+  'header'        => 1,
+  'type'          => 'csv',
+  'import_fields' => [
+    _cdr_date_parser_maker('startdate'),  #'date gmt'
+    'src',                                # source
+    'dst',                                # destination
+    'clid',                               # callerid
+    skip(1),                              # hangup code
+    skip(1),                              # sip account
+    'src_ip_addr',                        # orig ip
+    'duration',                           # duration
+    skip(1),                              # per minute
+    'upstream_price',                     # callcost
+    sub {
+      my($cdr, $cdrtypename, $conf, $param) = @_;
+      return unless length($cdrtypename);
+      _init_cdr_types();
+      unless (defined $CDR_TYPES->{$cdrtypename}) {
+        warn "Skipping Record: CDR type name $cdrtypename does not exist!";
+        $param->{skiprow} = 1;
+      }
+      $cdr->cdrtypenum($CDR_TYPES->{$cdrtypename});
+    },                                   # type 
+    _cdr_min_parser_maker('billsec'),     #PriceDurationMins
+  ],
+);
+
+sub skip { map {''} (1..$_[0]) }
+
+sub _init_cdr_types {
+  unless ($CDR_TYPES) {
+    $CDR_TYPES = {};
+    foreach my $cdr_type ( qsearch('cdr_type') ) {
+      die "multiple cdr_types with same cdrtypename".$cdr_type->cdrtypename
+        if defined $CDR_TYPES->{$cdr_type->cdrtypename};
+      $CDR_TYPES->{$cdr_type->cdrtypename} = $cdr_type->cdrtypenum;
+    }
+  }
+}
+
+1;
\ No newline at end of file
diff --git a/FS/FS/cdr/telapi_voip_csv.pm b/FS/FS/cdr/telapi_voip_csv.pm
deleted file mode 100644 (file)
index ee38edb..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-package FS::cdr::telapi_voip_csv;
-use base qw( FS::cdr );
-
-use strict;
-use vars qw( @ISA %info $CDR_TYPES );
-use FS::Record qw( qsearch );
-use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
-
-%info = (
-  'name'          => 'telapi_voip (csv file)',
-  'weight'        => 601,
-  'header'        => 1,
-  'type'          => 'csv',
-  'import_fields' => [
-    skip(1),                              # Inbound/Outbound
-    _cdr_date_parser_maker('startdate'),  # date
-    skip(1),                              # cost per minute
-    'upstream_price',                     # call cost
-    'billsec',                            # duration
-    'src',                                # source
-    'dst',                                # destination
-    skip(1),                              # hangup code
-  ],
-);
-
-sub skip { map {''} (1..$_[0]) }
-
-1;