[freeside-commits] branch master updated. c27f80ec10180391d00286bf50dfbf09a96c1b00

Ivan ivan at 420.am
Tue Dec 10 14:52:09 PST 2013


The branch, master has been updated
       via  c27f80ec10180391d00286bf50dfbf09a96c1b00 (commit)
      from  697ce57e2b1f31adb3b938dead83e160e8d115c0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c27f80ec10180391d00286bf50dfbf09a96c1b00
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue Dec 10 14:52:08 2013 -0800

    add option to rate CDRs with toll-free accountcodes on src, RT#24031

diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index bf508dd..5658be9 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -680,8 +680,19 @@ sub rate_prefix {
   # (or calling station id for toll free calls)
   ###
 
+  my $eff_ratenum = $self->is_tollfree('accountcode')
+    ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum')
+    : '';
+
   my( $to_or_from, $column );
-  if ( $self->is_tollfree && ! $part_pkg->option_cacheable('disable_tollfree') )
+  if(
+        ( $self->is_tollfree
+           && ! $part_pkg->option_cacheable('disable_tollfree')
+        )
+     or ( $eff_ratenum
+           && $part_pkg->option_cacheable('accountcode_tollfree_field') eq 'src'
+        )
+    )
   { #tollfree call
     $to_or_from = 'from';
     $column = 'src';
@@ -702,10 +713,6 @@ sub rate_prefix {
   #asterisks here causes inserting the detail to barf, so:
   $pretty_dst =~ s/\*//g;
 
-  my $eff_ratenum = $self->is_tollfree('accountcode')
-    ? $part_pkg->option_cacheable('accountcode_tollfree_ratenum')
-    : '';
-
   my $ratename = '';
   my $intrastate_ratenum = $part_pkg->option_cacheable('intrastate_ratenum');
   if ( $intrastate_ratenum && !$self->is_tollfree ) {
diff --git a/FS/FS/part_pkg/voip_cdr.pm b/FS/FS/part_pkg/voip_cdr.pm
index f23b7a7..1a99bd7 100644
--- a/FS/FS/part_pkg/voip_cdr.pm
+++ b/FS/FS/part_pkg/voip_cdr.pm
@@ -61,6 +61,11 @@ tie my %detail_formats, 'Tie::IxHash',
   FS::cdr::invoice_formats()
 ;
 
+tie my %accountcode_tollfree_field, 'Tie::IxHash',
+  'dst' => 'Destination (dst)',
+  'src' => 'Source (src)',
+;
+
 %info = (
   'name' => 'VoIP rating by plan of CDR records in an internal (or external) SQL table',
   'shortname' => 'VoIP/telco CDR rating (standard)',
@@ -211,6 +216,12 @@ tie my %detail_formats, 'Tie::IxHash',
       'empty_label'   => '',
     },
 
+    'accountcode_tollfree_field' => {
+      'name'           => 'When using an alternate rate plan for toll-free accountcodes, the CDR field to use in rating calculations',
+      'type'           => 'select',
+      'select_options' => \%accountcode_tollfree_field,
+    },
+
     'skip_dst_length_less' => { 'name' => 'Do not charge for CDRs where the destination is less than this many digits:',
                               },
 
@@ -330,7 +341,7 @@ tie my %detail_formats, 'Tie::IxHash',
                        skip_dcontext skip_dst_prefix 
                        skip_dstchannel_prefix skip_src_length_more 
                        noskip_src_length_accountcode_tollfree
-                       accountcode_tollfree_ratenum
+                       accountcode_tollfree_ratenum accountcode_tollfree_field
                        skip_dst_length_less
                        noskip_dst_length_accountcode_tollfree
                        skip_lastapp

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cdr.pm               |   17 ++++++++++++-----
 FS/FS/part_pkg/voip_cdr.pm |   13 ++++++++++++-
 2 files changed, 24 insertions(+), 6 deletions(-)




More information about the freeside-commits mailing list