X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_cdr.pm;h=7d9a7f5c991be3337eca087c8b1eaf1ed60fd98b;hp=24c4cf041864b7c1402380791cf84241c29b286e;hb=3cbdd85a96348a287623e3b97c937c7749e99392;hpb=d22baa4e71bfa9e153c1fe1152ff4c748f1d935c diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 24c4cf041..7d9a7f5c9 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -185,7 +185,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:', @@ -333,7 +336,7 @@ tie my %accountcode_tollfree_field, 'Tie::IxHash', use_cdrtypenum ignore_cdrtypenum use_calltypenum ignore_calltypenum ignore_disposition disposition_in - skip_dcontext skip_dst_prefix + skip_dcontext skip_dcontext_suffix skip_dst_prefix skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree accountcode_tollfree_ratenum accountcode_tollfree_field @@ -588,6 +591,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