[freeside-commits] branch FREESIDE_4_BRANCH updated. 8d4cfd8831dacb502d5035ac2f4007abca34b0f0
Mark Wells
mark at 420.am
Mon Aug 8 13:29:56 PDT 2016
The branch, FREESIDE_4_BRANCH has been updated
via 8d4cfd8831dacb502d5035ac2f4007abca34b0f0 (commit)
from 247b5106adf262ec8e6a21c2afa493d38808b8c9 (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 8d4cfd8831dacb502d5035ac2f4007abca34b0f0
Author: Mark Wells <mark at freeside.biz>
Date: Mon Aug 8 13:29:21 2016 -0700
Revert "RT#38278: Removing duplicate CDR entries prior to billing"
Prematurely merged from master.
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index d4c03b4..358aa53 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4995,13 +4995,6 @@ and customer address. Include units.',
# },
{
- 'key' => 'cdr-skip_duplicate_rewrite',
- 'section' => 'telephony',
- 'description' => 'Use the freeside-cdrrewrited daemon to prevent billing CDRs with a src, dst and calldate identical to an existing CDR',
- 'type' => 'checkbox',
- },
-
- {
'key' => 'cdr-charged_party_rewrite',
'section' => 'telephony',
'description' => 'Do charged party rewriting in the freeside-cdrrewrited daemon; useful if CDRs are being dropped off directly in the database and require special charged_party processing such as cdr-charged_party-accountcode or cdr-charged_party-truncate*.',
diff --git a/FS/bin/freeside-cdrrewrited b/FS/bin/freeside-cdrrewrited
index 34a2068..f9d97af 100644
--- a/FS/bin/freeside-cdrrewrited
+++ b/FS/bin/freeside-cdrrewrited
@@ -4,7 +4,7 @@ use strict;
use vars qw( $conf );
use FS::Daemon ':all'; #daemonize1 drop_root daemonize2 myexit logfile sig*
use FS::UID qw( adminsuidsetup );
-use FS::Record qw( qsearch qsearchs dbh );
+use FS::Record qw( qsearch qsearchs );
#use FS::cdr;
#use FS::cust_pkg;
#use FS::queue;
@@ -24,12 +24,12 @@ daemonize2();
$conf = new FS::Conf;
-die "not running; relevant conf options are all off\n"
+die "not running; cdr-asterisk_forward_rewrite, cdr-charged_party_rewrite ".
+ " and cdr-taqua-accountcode_rewrite conf options are all off\n"
unless _shouldrun();
#--
-#used for taqua
my %sessionnum_unmatch = ();
my $sessionnum_retry = 4 * 60 * 60; # 4 hours
my $sessionnum_giveup = 4 * 24 * 60 * 60; # 4 days
@@ -45,25 +45,20 @@ while (1) {
# instead of just doing this search like normal CDRs
#hmm :/
- #used only by taqua, should have no effect otherwise
my @recent = grep { ($sessionnum_unmatch{$_} + $sessionnum_retry) > time }
keys %sessionnum_unmatch;
my $extra_sql = scalar(@recent)
? ' AND acctid NOT IN ('. join(',', @recent). ') '
: '';
- #order matters for removing dupes--only the first is preserved
- $extra_sql .= ' ORDER BY acctid '
- if $conf->exists('cdr-skip_duplicate_rewrite');
-
my $found = 0;
- my %skip = (); #used only by taqua
+ my %skip = ();
my %warning = ();
foreach my $cdr (
qsearch( {
'table' => 'cdr',
- 'extra_sql' => 'FOR UPDATE', #XXX overwritten by opt below...would fixing this break anything?
+ 'extra_sql' => 'FOR UPDATE',
'hashref' => {},
'extra_sql' => 'WHERE freesidestatus IS NULL '.
' AND freesiderewritestatus IS NULL '.
@@ -72,27 +67,11 @@ while (1) {
} )
) {
- next if $skip{$cdr->acctid}; #used only by taqua
+ next if $skip{$cdr->acctid};
$found = 1;
my @status = ();
- if ($conf->exists('cdr-skip_duplicate_rewrite')) {
- #qsearch can't handle timestamp type of calldate
- my $sth = dbh->prepare(
- 'SELECT 1 FROM cdr WHERE src=? AND dst=? AND calldate=? AND acctid < ? LIMIT 1'
- ) or die dbh->errstr;
- $sth->execute($cdr->src,$cdr->dst,$cdr->calldate,$cdr->acctid) or die $sth->errstr;
- my $isdup = $sth->fetchrow_hashref;
- $sth->finish;
- if ($isdup) {
- #we only act on this cdr, not touching previous dupes
- #if a dupe somehow creeped in previously, too late to fix it
- $cdr->freesidestatus('done'); #prevent it from being billed
- push(@status,'duplicate');
- }
- }
-
if ( $conf->exists('cdr-asterisk_forward_rewrite')
&& $cdr->dstchannel =~ /^Local\/(\d+)/i && $1 ne $cdr->dst
)
@@ -268,7 +247,6 @@ sub _shouldrun {
|| $conf->exists('cdr-taqua-callerid_rewrite')
|| $conf->exists('cdr-intl_to_domestic_rewrite')
|| $conf->exists('cdr-userfield_dnis_rewrite')
- || $conf->exists('cdr-skip_duplicate_rewrite')
|| 0
;
}
@@ -292,11 +270,6 @@ of the following config options are enabled:
=over 4
-=item cdr-skip_duplicate_rewrite
-
-Marks as 'done' (prevents billing for) any CDRs with
-a src, dst and calldate identical to an existing CDR
-
=item cdr-asterisk_australia_rewrite
Classifies Australian numbers as domestic, mobile, tollfree, international, or
-----------------------------------------------------------------------
Summary of changes:
FS/FS/Conf.pm | 7 -------
FS/bin/freeside-cdrrewrited | 39 ++++++---------------------------------
2 files changed, 6 insertions(+), 40 deletions(-)
More information about the freeside-commits
mailing list