[freeside-commits] branch master updated. 29445ff3f69c32ba0f836f3c5bbaf946c154b360

Ivan Kohler ivan at freeside.biz
Thu Oct 4 11:47:33 PDT 2018


The branch, master has been updated
       via  29445ff3f69c32ba0f836f3c5bbaf946c154b360 (commit)
       via  e937cde6e36499260e2c37704a623091743c810f (commit)
       via  d5988a9f7a3617de33da3058f2e9f1151b24420e (commit)
       via  1ab515df162a76347d8146cae4ff34656cc4bcd3 (commit)
      from  17f5f41245b8e61765cbe7089d15cdc446391a03 (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 29445ff3f69c32ba0f836f3c5bbaf946c154b360
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Oct 4 11:47:32 2018 -0700

    CDR maximum duration, RT#81475

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index fd05231d6..057e4cff6 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -5205,6 +5205,13 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'cdr-max_duration',
+    'section'     => 'telephony',
+    'description' => 'If set, defines a global maximum billsec/duration for (prefix-based) call rating, in seconds.  Used with questionable/dirty CDR data that may contain bad records with long billsecs/durations.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'disable-cust-pkg_class',
     'section'     => 'packages',
     'description' => 'Disable the two-step dropdown for selecting package class and package, and return to the classic single dropdown.',
diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index 3de022466..5a398ceaa 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -3,7 +3,7 @@ package FS::cdr;
 use strict;
 use vars qw( @ISA @EXPORT_OK $DEBUG $me
              $conf $cdr_prerate %cdr_prerate_cdrtypenums
-             $use_lrn $support_key
+             $use_lrn $support_key $max_duration
            );
 use Exporter;
 use List::Util qw(first min);
@@ -50,6 +50,8 @@ FS::UID->install_callback( sub {
   $support_key = $conf->config('support-key');
   $use_lrn = $conf->exists('cdr-lrn_lookup');
 
+  $max_duration = $conf->config('cdr-max_duration') || 0;
+
 });
 
 =head1 NAME
@@ -648,6 +650,10 @@ sub rate_prefix {
   my $part_pkg = $opt{'part_pkg'} or return "No part_pkg specified";
   my $cust_pkg = $opt{'cust_pkg'};
 
+  ###
+  # (Directory assistance) rewriting
+  ###
+
   my $da_rewrote = 0;
   # this will result in those CDRs being marked as done... is that 
   # what we want?
@@ -663,6 +669,10 @@ sub rate_prefix {
     $da_rewrote = 1;
   }
 
+  ###
+  # Checks to see if the CDR is chargeable
+  ###
+
   my $reason = $part_pkg->check_chargable( $self,
                                            'da_rewrote'   => $da_rewrote,
                                          );
@@ -699,6 +709,17 @@ sub rate_prefix {
     }
   }
 
+  my $rated_seconds = $part_pkg->option_cacheable('use_duration')
+                        ? $self->duration
+                        : $self->billsec;
+  if ( $max_duration > 0 && $rated_seconds > $max_duration ) {
+    return $self->set_status_and_rated_price(
+      'failed',
+      '',
+      $opt{'svcnum'},
+    );
+  }
+
   ###
   # look up rate details based on called station id
   # (or calling station id for toll free calls)
@@ -871,9 +892,6 @@ sub rate_prefix {
   # We don't round _anything_ (except granularizing) 
   # until the final $charge = sprintf("%.2f"...).
 
-  my $rated_seconds = $part_pkg->option_cacheable('use_duration')
-                        ? $self->duration
-                        : $self->billsec;
   my $seconds_left = $rated_seconds;
 
   #no, do this later so it respects (group) included minutes

commit e937cde6e36499260e2c37704a623091743c810f
Merge: d5988a9f7 17f5f4124
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Oct 4 11:47:30 2018 -0700

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit d5988a9f7a3617de33da3058f2e9f1151b24420e
Merge: 1ab515df1 b6088672c
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Oct 1 12:03:01 2018 -0700

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit 1ab515df162a76347d8146cae4ff34656cc4bcd3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Oct 1 12:02:56 2018 -0700

    doc ancient functions as deprecated

diff --git a/FS/FS/UID.pm b/FS/FS/UID.pm
index 50a917895..ebda99e7b 100644
--- a/FS/FS/UID.pm
+++ b/FS/FS/UID.pm
@@ -210,7 +210,7 @@ sub install_callback {
 
 =item cgi
 
-Returns the CGI (see L<CGI>) object.
+(Deprecated) Returns the CGI (see L<CGI>) object.
 
 =cut
 
@@ -220,9 +220,9 @@ sub cgi {
   $cgi;
 }
 
-=item cgi CGI_OBJECT
+=item setcgi CGI_OBJECT
 
-Sets the CGI (see L<CGI>) object.
+(Deprecated) Sets the CGI (see L<CGI>) object.
 
 =cut
 

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

Summary of changes:
 FS/FS/Conf.pm |  7 +++++++
 FS/FS/UID.pm  |  6 +++---
 FS/FS/cdr.pm  | 26 ++++++++++++++++++++++----
 3 files changed, 32 insertions(+), 7 deletions(-)




More information about the freeside-commits mailing list