X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr.pm;h=5658be94bede972a1b9cf22f05528fc94485f9b0;hb=c27f80ec10180391d00286bf50dfbf09a96c1b00;hp=9d72c39e4aa777ca7acc5e1f3d788e70bb079119;hpb=36ad5e538cb56de33c779e34baf9abdf63c4312e;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index 9d72c39e4..5658be94b 100644 --- a/FS/FS/cdr.pm +++ b/FS/FS/cdr.pm @@ -92,6 +92,8 @@ following fields are currently supported: =item dst_ip_addr - Destination IP address (same) +=item dst_term - Terminating destination number (if different from dst) + =item startdate - Start of call (UNIX-style integer timestamp) =item answerdate - Answer time of call (UNIX-style integer timestamp) @@ -194,6 +196,7 @@ sub table_info { #'lastdata' => '', 'src_ip_addr' => 'Source IP', 'dst_ip_addr' => 'Dest. IP', + 'dst_term' => 'Termination dest.', 'startdate' => 'Start date', 'answerdate' => 'Answer date', 'enddate' => 'End date', @@ -677,8 +680,19 @@ sub rate_prefix { # (or calling station id for toll free calls) ### + my $eff_ratenum = $self->is_tollfree('accountcode') + ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum') + : ''; + my( $to_or_from, $column ); - if ( $self->is_tollfree && ! $part_pkg->option_cacheable('disable_tollfree') ) + if( + ( $self->is_tollfree + && ! $part_pkg->option_cacheable('disable_tollfree') + ) + or ( $eff_ratenum + && $part_pkg->option_cacheable('accountcode_tollfree_field') eq 'src' + ) + ) { #tollfree call $to_or_from = 'from'; $column = 'src'; @@ -699,10 +713,6 @@ sub rate_prefix { #asterisks here causes inserting the detail to barf, so: $pretty_dst =~ s/\*//g; - my $eff_ratenum = $self->is_tollfree('accountcode') - ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum') - : ''; - my $ratename = ''; my $intrastate_ratenum = $part_pkg->option_cacheable('intrastate_ratenum'); if ( $intrastate_ratenum && !$self->is_tollfree ) { @@ -901,7 +911,7 @@ sub rate_prefix { #${$opt{region_group_included_min}} -= $minutes # if $region_group && $rate_detail->region_group; - if ( $included_min->{$regionnum}{$ratetimenum} > $minutes ) { + if ( $included_min->{$regionnum}{$ratetimenum} >= $minutes ) { $charge_sec = 0; $included_min->{$regionnum}{$ratetimenum} -= $minutes; } else {