From 562a3c85e49cd3ea8fb80e5c2fd7f4c5f60333e9 Mon Sep 17 00:00:00 2001 From: Christopher Burger Date: Thu, 23 May 2019 11:48:15 -0400 Subject: [PATCH] RT# 75680 - fixed telapi_voip cdr csv import --- FS/FS/cdr/telapi_voip.pm | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/FS/FS/cdr/telapi_voip.pm b/FS/FS/cdr/telapi_voip.pm index abc7d5bd2..687c431a8 100644 --- a/FS/FS/cdr/telapi_voip.pm +++ b/FS/FS/cdr/telapi_voip.pm @@ -7,46 +7,22 @@ use FS::Record qw( qsearch ); use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker ); %info = ( - 'name' => 'telapi_voip', + 'name' => 'telapi_voip (csv file)', 'weight' => 601, 'header' => 1, 'type' => 'csv', 'import_fields' => [ - _cdr_date_parser_maker('startdate'), #'date gmt' + 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 - '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 -- 2.11.0