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