diff options
author | Ivan Kohler <ivan@freeside.biz> | 2022-05-23 14:42:20 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2022-05-23 14:42:20 -0700 |
commit | 18271c2a6157e26b17002c6a3c65a934e36e05c3 (patch) | |
tree | d52feb101e8da9db2f6bcab3f13d7a922aef54b1 | |
parent | e5683945ae51a6f14ad62facfd60357aff196f13 (diff) |
add noskip_dcontext_tollfree option, RT#86028, RT#81941
-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 a73683a..a9d8ee8 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')); |