summaryrefslogtreecommitdiff
path: root/FS/bin/freeside-cdrrewrited
diff options
context:
space:
mode:
Diffstat (limited to 'FS/bin/freeside-cdrrewrited')
-rw-r--r--FS/bin/freeside-cdrrewrited129
1 files changed, 0 insertions, 129 deletions
diff --git a/FS/bin/freeside-cdrrewrited b/FS/bin/freeside-cdrrewrited
deleted file mode 100644
index 0b7f6883f..000000000
--- a/FS/bin/freeside-cdrrewrited
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/perl -w
-
-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);
-#use FS::cdr;
-#use FS::cust_pkg;
-#use FS::queue;
-
-my $user = shift or die &usage;
-
-#daemonize1('freeside-sprepaidd', $user); #keep unique pid files w/multi installs
-daemonize1('freeside-cdrrewrited');
-
-drop_root();
-
-adminsuidsetup($user);
-
-logfile( "%%%FREESIDE_LOG%%%/cdrrewrited-log.". $FS::UID::datasrc );
-
-daemonize2();
-
-$conf = new FS::Conf;
-
-die "not running; cdr-asterisk_forward_rewrite and cdr-charged_party_rewrite ".
- " conf options are both off\n"
- unless _shouldrun();
-
-#--
-
-while (1) {
-
- #hmm... don't want to do an expensive search with an ever-growing bunch
- # of unprocessed CDRs during the month... better to mark them all as
- # rewritten "skipped", i.e. why we're a daemon in the first place
- # instead of just doing this search like normal CDRs
-
- my $found = 0;
- foreach my $cdr (
- qsearch( {
- 'table' => 'cdr',
- 'extra_sql' => 'FOR UPDATE',
- 'hashref' => {},
- 'extra_sql' => 'WHERE freesidestatus IS NULL'.
- ' AND freesiderewritestatus IS NULL'.
- ' LIMIT 1024', #arbitrary, but don't eat too much memory
- } )
- ) {
-
- $found = 1;
- my @status = ();
-
- if ( $conf->exists('cdr-asterisk_forward_rewrite')
- && $cdr->dstchannel =~ /^Local\/(\d+)/i && $1 ne $cdr->dst
- )
- {
-
- my $dst = $1;
-
- warn "dst ". $cdr->dst. " does not match dstchannel $dst ".
- "(". $cdr->dstchannel. "); rewriting CDR as a forwarded call";
-
- $cdr->charged_party($cdr->dst);
- $cdr->dst($dst);
- $cdr->amaflags(2);
-
- push @status, 'asterisk_forward';
-
- }
-
- if ( $conf->exists('cdr-charged_party_rewrite') && ! $cdr->charged_party ) {
-
- $cdr->set_charged_party;
- push @status, 'charged_party';
-
- }
-
- $cdr->freesiderewritestatus(
- scalar(@status) ? join('/', @status) : 'skipped'
- );
-
- my $error = $cdr->replace;
-
- if ( $error ) {
- warn "WARNING: error rewriting CDR (will retry in 30 seconds):".
- " $error\n";
- sleep 30; #i dunno, wait and see if the database comes back?
- }
-
- }
-
- myexit() if sigterm() || sigint();
- #sleep 1 unless $found;
- sleep 5 unless $found;
-
-}
-
-#--
-
-sub _shouldrun {
- $conf->exists('cdr-asterisk_forward_rewrite')
- || $conf->exists('cdr-charged_party_rewrite');
-}
-
-sub usage {
- die "Usage:\n\n freeside-cdrrewrited user\n";
-}
-
-=head1 NAME
-
-freeside-cdrrewrited - Real-time daemon for CDR rewriting
-
-=head1 SYNOPSIS
-
- freeside-cdrrewrited
-
-=head1 DESCRIPTION
-
-Runs continuously, searches for CDRs and does forwarded-call rewriting if the
-"cdr-asterisk_forward_rewrite" or "cdr-charged_party_rewrite" config option is
-enabled.
-
-=head1 SEE ALSO
-
-=cut
-
-1;