1 package FS::cdr::telapi_voip;
2 use base qw( FS::cdr );
5 use vars qw( @ISA %info $CDR_TYPES );
6 use FS::Record qw( qsearch );
7 use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
10 'name' => 'telapi_voip',
15 _cdr_date_parser_maker('startdate'), #'date gmt'
19 skip(1), # hangup code
20 skip(1), # sip account
21 'src_ip_addr', # orig ip
22 'duration', # duration
24 'upstream_price', # callcost
26 my($cdr, $cdrtypename, $conf, $param) = @_;
27 return unless length($cdrtypename);
29 unless (defined $CDR_TYPES->{$cdrtypename}) {
30 warn "Skipping Record: CDR type name $cdrtypename does not exist!";
31 $param->{skiprow} = 1;
33 $cdr->cdrtypenum($CDR_TYPES->{$cdrtypename});
35 _cdr_min_parser_maker('billsec'), #PriceDurationMins
39 sub skip { map {''} (1..$_[0]) }
44 foreach my $cdr_type ( qsearch('cdr_type') ) {
45 die "multiple cdr_types with same cdrtypename".$cdr_type->cdrtypename
46 if defined $CDR_TYPES->{$cdr_type->cdrtypename};
47 $CDR_TYPES->{$cdr_type->cdrtypename} = $cdr_type->cdrtypenum;