diff options
author | Ivan Kohler <ivan@freeside.biz> | 2016-06-29 14:29:48 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2016-06-29 14:29:48 -0700 |
commit | 146c2e9563b8afc05fe283791b998723ca585742 (patch) | |
tree | 7e4eb76cdaf6752b48f679a3935d44e3c6c11964 | |
parent | 21b66c72a2442c50461fe9b23e09677d42988596 (diff) |
add skip_dcontext_suffix to skip CDRs with dcontext ending in a definable string, RT#71529
-rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 2d53aced9..98df5612d 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -188,7 +188,10 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', 'skip_dst_prefix' => { 'name' => 'Do not charge for CDRs where the destination number starts with any of these values: ', }, - 'skip_dcontext' => { 'name' => 'Do not charge for CDRs where the dcontext is set to any of these (comma-separated) values: ', + 'skip_dcontext' => { 'name' => 'Do not charge for CDRs where dcontext is set to any of these (comma-separated) values: ', + }, + + 'skip_dcontext_suffix' => { 'name' => 'Do not charge for CDRs where dcontext ends with: ', }, 'skip_dstchannel_prefix' => { 'name' => 'Do not charge for CDRs where the dstchannel starts with:', @@ -591,6 +594,11 @@ sub check_chargable { if $self->option_cacheable('skip_dcontext') =~ /\S/ && grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext')); + my $len_suffix = length($self->option_cacheable('skip_dcontext_suffix')); + return "dcontext ends with ". $self->option_cacheable('skip_dcontext_suffix') + if $len_suffix + && substr($cdr->dcontext,-$len_suffix,$len_suffix) eq $self->option_cacheable('skip_dcontext_suffix'); + my $len_prefix = length($self->option_cacheable('skip_dstchannel_prefix')); return "dstchannel starts with ". $self->option_cacheable('skip_dstchannel_prefix') if $len_prefix |