X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-cdrrewrited;h=0b7f6883fbcd1b47eef43a56ea0a53a6c1c018ba;hb=b6e36782e425e116b976523e18825f9d6e4d18cb;hp=d827ef7610d0ba5eea7eb7760d92d59f0f3ec30f;hpb=ec95e1dca6b6c7869314b47e440df0ca6e56c046;p=freeside.git diff --git a/FS/bin/freeside-cdrrewrited b/FS/bin/freeside-cdrrewrited index d827ef761..0b7f6883f 100644 --- a/FS/bin/freeside-cdrrewrited +++ b/FS/bin/freeside-cdrrewrited @@ -24,13 +24,12 @@ daemonize2(); $conf = new FS::Conf; -die "not running; cdr-asterisk_forward_rewrite conf is off\n" +die "not running; cdr-asterisk_forward_rewrite and cdr-charged_party_rewrite ". + " conf options are both off\n" unless _shouldrun(); #-- -my $domestic_prefix = 1; #hmm, global config? - while (1) { #hmm... don't want to do an expensive search with an ever-growing bunch @@ -51,13 +50,14 @@ while (1) { ) { $found = 1; + my @status = (); - if ( $cdr->dstchannel =~ /^Local\/($domestic_prefix)?(\d+)/i - && $2 ne $cdr->dst + if ( $conf->exists('cdr-asterisk_forward_rewrite') + && $cdr->dstchannel =~ /^Local\/(\d+)/i && $1 ne $cdr->dst ) { - my $dst = $2; + my $dst = $1; warn "dst ". $cdr->dst. " does not match dstchannel $dst ". "(". $cdr->dstchannel. "); rewriting CDR as a forwarded call"; @@ -66,12 +66,21 @@ while (1) { $cdr->dst($dst); $cdr->amaflags(2); - $cdr->freesiderewritestatus('asterisk_forward'); + push @status, 'asterisk_forward'; + + } + + if ( $conf->exists('cdr-charged_party_rewrite') && ! $cdr->charged_party ) { + + $cdr->set_charged_party; + push @status, 'charged_party'; - } else { - $cdr->freesiderewritestatus('skipped') } + $cdr->freesiderewritestatus( + scalar(@status) ? join('/', @status) : 'skipped' + ); + my $error = $cdr->replace; if ( $error ) { @@ -91,7 +100,8 @@ while (1) { #-- sub _shouldrun { - $conf->exists('cdr-asterisk_forward_rewrite'); + $conf->exists('cdr-asterisk_forward_rewrite') + || $conf->exists('cdr-charged_party_rewrite'); } sub usage { @@ -108,8 +118,9 @@ freeside-cdrrewrited - Real-time daemon for CDR rewriting =head1 DESCRIPTION -Runs continuously, searches for CDRs and does forwarded-call rewriting if -the "cdr-asterisk_forward_rewrite" option is enabled. +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