fix TeleAPI import (what kind of crack was Christopher smoking that he couldn't fix...
[freeside.git] / FS / FS / cdr / telapi_voip.pm
index abc7d5b..c238d2a 100644 (file)
@@ -2,51 +2,31 @@ 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 );
+use vars qw( %info );
+use FS::cdr qw( _cdr_date_parser_maker );
 
 %info = (
-  'name'          => 'telapi_voip',
+  'name'          => 'TeleAPI VoIP (CSV file)',
   '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
+    _cdr_date_parser_maker('startdate', 'gmt'=>1 ),  # date gmt
+    'src',                                           # source
+    'dst',                                           # destination
+    'clid',                                          # callerid
+    'disposition',                                   # hangup code
+    'userfield',                                     # sip account
+    'src_ip_addr',                                   # orig ip
+    'billsec',                                       # duration
+    skip(1),                                  # per minute (add "upstream_rate"?
+    'upstream_price',                                # call cost
+    'dcontext',                                      # type
+    'uniqueid',                                      # uuid
+    'lastapp',                                       # direction
   ],
 );
 
 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
+1;