summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-12-14 11:17:59 -0800
committerIvan Kohler <ivan@freeside.biz>2016-12-14 11:17:59 -0800
commita889c7e41bb3bd9ccebbf4f956c36377f328400e (patch)
tree90e54c9da59b8858a4c9aee7ec0dc33015c92f08
parentc2de745afd1ecd0cbbebbc6bcfe63a1ab0601679 (diff)
skip dcontext prefix, RT#73753
-rw-r--r--FS/FS/part_pkg/voip_cdr.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index df97286..d96c472 100644
--- a/FS/FS/part_pkg/voip_cdr.pm
+++ b/FS/FS/part_pkg/voip_cdr.pm
@@ -191,6 +191,9 @@ 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: ',
},
+ 'skip_dcontext_prefix' => { 'name' => 'Do not charge for CDRs where dcontext starts with: ',
+ },
+
'skip_dcontext_suffix' => { 'name' => 'Do not charge for CDRs where dcontext ends with: ',
},
@@ -336,7 +339,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_suffix skip_dst_prefix
+ skip_dcontext skip_dcontext_prefix skip_dcontext_suffix
+ skip_dst_prefix
skip_dstchannel_prefix skip_src_length_more
noskip_src_length_accountcode_tollfree
accountcode_tollfree_ratenum accountcode_tollfree_field
@@ -608,6 +612,12 @@ sub check_chargable {
if $self->option_cacheable('skip_dcontext') =~ /\S/
&& grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext'));
+ my $len_dcontext_prefix =
+ length($self->option_cacheable('skip_dcontext_prefix'));
+ return "dcontext starts with ". $self->option_cacheable('skip_dcontext_prefix')
+ if $len_dcontext_prefix
+ && substr($cdr->dcontext,0,$len_dcontext_prefix) eq $self->option_cacheable('skip_dcontext_prefix');
+
my $len_suffix = length($self->option_cacheable('skip_dcontext_suffix'));
return "dcontext ends with ". $self->option_cacheable('skip_dcontext_suffix')
if $len_suffix