summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2022-05-23 12:56:02 -0700
committerIvan Kohler <ivan@freeside.biz>2022-05-23 12:56:02 -0700
commitb6d61e189e2a86382bd5d49ca85fe4cbb3be1994 (patch)
treed5cc606a18014955279919be27828d66ca23f17b
parenta0bb2bc95dae06fb7d1841fb13eaa26b196373a8 (diff)
add option to not skip N11 destinations when skipping short dst
-rw-r--r--FS/FS/part_pkg/voip_cdr.pm15
1 files changed, 10 insertions, 5 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index 3e2082b..a73683a 100644
--- a/FS/FS/part_pkg/voip_cdr.pm
+++ b/FS/FS/part_pkg/voip_cdr.pm
@@ -231,6 +231,10 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash',
'skip_dst_length_less' => { 'name' => 'Do not charge for CDRs where the destination is less than this many digits:',
},
+ 'noskip_dst_length_n11' => { 'name' => 'Do charge for CDRs where dst is less than the specified digits, when dst is N11 (i.e. 411, 611)',
+ 'type' => 'checkbox',
+ },
+
'noskip_dst_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where dst is less than the specified digits, when accountcode is toll free',
'type' => 'checkbox',
},
@@ -352,7 +356,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash',
skip_dstchannel_prefix skip_src_length_more
noskip_src_length_accountcode_tollfree
accountcode_tollfree_ratenum accountcode_tollfree_field
- skip_dst_length_less
+ skip_dst_length_less npskip_dst_length_n11
noskip_dst_length_accountcode_tollfree
skip_lastapp
skip_max_callers
@@ -447,8 +451,6 @@ sub calc_usage {
rounding => ($self->option_cacheable('rounding') || 2),
);
- my $use_duration = $self->option('use_duration');
-
my($svc_table, $svc_field, $by_ip_addr) = split('\.', $cdr_svc_method);
my @cust_svc;
@@ -646,8 +648,11 @@ sub check_chargable {
my $dst_length = $self->option_cacheable('skip_dst_length_less');
return "destination less than $dst_length digits"
if $dst_length && length($cdr->dst) < $dst_length
- && ! ( $self->option_cacheable('noskip_dst_length_accountcode_tollfree')
- && $cdr->is_tollfree('accountcode')
+ && ! ( $self->option_cacheable('noskip_dst_length_n11')
+ && $cdr->dst =~ /^\d11$/
+ )
+ && ! ( $self->option_cacheable('noskip_dst_length_accountcode_tollfree')
+ && $cdr->is_tollfree('accountcode')
);
return "lastapp is ". $self->option_cacheable('skip_lastapp')