diff options
author | ivan <ivan> | 2010-09-17 17:28:47 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-09-17 17:28:47 +0000 |
commit | 853fca259ec006d4a5f3ce046e5334210412baac (patch) | |
tree | fae6d85349c2359314e9c2267c375dba95567c37 /FS | |
parent | 9bddb219a4ea74d65a5cf43359f2bb0471c98807 (diff) |
when using src_dst_length_less, add option to charge for CDRs where accountcode is toll free anyway, RT#9683
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/part_pkg/voip_cdr.pm | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm index 5fc1fb8cd..c66a3fd5b 100644 --- a/FS/FS/part_pkg/voip_cdr.pm +++ b/FS/FS/part_pkg/voip_cdr.pm @@ -161,7 +161,7 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); 'skip_src_length_more' => { 'name' => 'Do not charge for CDRs where the source is more than this many digits:', }, - 'noskip_src_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where source is equal or greater than the specified digits and accountcode is toll free', + 'noskip_src_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where source is equal or greater than the specified digits, when accountcode is toll free', 'type' => 'checkbox', }, @@ -178,6 +178,10 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); 'skip_dst_length_less' => { 'name' => 'Do not charge for CDRs where the destination is less than this many digits:', }, + 'noskip_dst_length_accountcode_tollfree' => { 'name' => 'Do charge for CDRs where dst is less than the specified digits, when accountcode is toll free', + 'type' => 'checkbox', + }, + 'skip_lastapp' => { 'name' => 'Do not charge for CDRs where the lastapp matches this value', }, @@ -255,7 +259,9 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities(); skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree accountcode_tollfree_ratenum - skip_dst_length_less skip_lastapp + skip_dst_length_less + noskip_dst_length_accountcode_tollfree + skip_lastapp use_duration 411_rewrite output_format usage_mandate summarize_usage usage_section @@ -827,7 +833,7 @@ sub check_chargable { skip_dcontext skip_dstchannel_prefix skip_src_length_more noskip_src_length_accountcode_tollfree - skip_dst_length_less + skip_dst_length_less noskip_dst_length_accountcode_tollfree skip_lastapp ); foreach my $opt (grep !exists($flags{option_cache}->{$_}), @opt ) { @@ -869,7 +875,10 @@ sub check_chargable { my $dst_length = $opt{'skip_dst_length_less'}; return "destination less than $dst_length digits" - if $dst_length && length($cdr->dst) < $dst_length; + if $dst_length && length($cdr->dst) < $dst_length + && ! ( $opt{'noskip_dst_length_accountcode_tollfree'} + && $cdr->is_tollfree + ); return "lastapp is $opt{'skip_lastapp'}" if length($opt{'skip_lastapp'}) && $cdr->lastapp eq $opt{'skip_lastapp'}; |