diff options
author | Ivan Kohler <ivan@freeside.biz> | 2022-05-23 14:42:17 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2022-05-23 14:42:17 -0700 |
commit | 586d704ec2a3eb47578e977188789f706199a408 (patch) | |
tree | bce307a951ee446450f2661092a28bcd253c30e1 /FS | |
parent | 232d85061a2d1746775e7137dc75cc502eb3b31e (diff) |
add noskip_dcontext_tollfree option, RT#86028, RT#81941
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index a73683ad5..a9d8ee8f9 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -196,6 +196,10 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'skip_dcontext' => { 'name' => 'Do not charge for CDRs where dcontext is set to any of these (comma-separated) values: ', }, + 'noskip_dcontext_tollfree' => { 'name' => 'Do charge for CDRs where dcontext is set to any of the specified values, if the CDR is tollfree', + 'type' => 'checkbox', + }, + 'skip_dcontext_prefix' => { 'name' => 'Do not charge for CDRs where dcontext starts with: ', }, @@ -351,7 +355,8 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', use_cdrtypenum ignore_cdrtypenum use_calltypenum ignore_calltypenum ignore_disposition disposition_in disposition_prefix - skip_dcontext skip_dcontext_prefix skip_dcontext_suffix + skip_dcontext noskip_dcontext_tollfree + skip_dcontext_prefix skip_dcontext_suffix skip_dst_prefix skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree @@ -627,7 +632,10 @@ sub check_chargable { return "dcontext IN ( ". $self->option_cacheable('skip_dcontext'). " )" if $self->option_cacheable('skip_dcontext') =~ /\S/ - && grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext')); + && grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext')) + && ! ( $self->option_cacheable('noskip_dcontext_tollfree') + && $cdr->is_tollfree + ); my $len_dcontext_prefix = length($self->option_cacheable('skip_dcontext_prefix')); |