From: Christopher Burger Date: Thu, 23 May 2019 15:07:47 +0000 (-0400) Subject: RT# 75680 - telapi_voip cdr csv import X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=606acab48f55da2b8846e5539839d591b63ae18c RT# 75680 - telapi_voip cdr csv import --- diff --git a/FS/FS/cdr/telapi_voip.pm b/FS/FS/cdr/telapi_voip.pm deleted file mode 100644 index abc7d5bd2..000000000 --- a/FS/FS/cdr/telapi_voip.pm +++ /dev/null @@ -1,52 +0,0 @@ -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 new file mode 100644 index 000000000..ee38edbcf --- /dev/null +++ b/FS/FS/cdr/telapi_voip_csv.pm @@ -0,0 +1,28 @@ +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;