foreach my $cdr (
qsearch( {
'table' => 'cdr',
- 'extra_sql' => 'FOR UPDATE', #XXX overwritten by opt below...would fixing this break anything?
'hashref' => {},
'extra_sql' => 'WHERE freesidestatus IS NULL '.
' AND freesiderewritestatus IS NULL '.
$extra_sql.
- ' LIMIT 1024', #arbitrary, but don't eat too much memory
+ ' LIMIT 1024 FOR UPDATE', #arbitrary, but don't eat too much memory
} )
) {
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
+ $cdr->freesidestatus('skipped'); #prevent it from being billed
push(@status,'duplicate');
}
}
}
+ if ( $conf->exists('cdr-userfield_dnis_rewrite') and
+ $cdr->userfield =~ /DNIS=(\d+)/ ) {
+ $cdr->dst($1);
+ push @status, 'userfield_dnis';
+ }
+
if ( $conf->exists('cdr-intl_to_domestic_rewrite') and
$cdr->dst =~ /^(011)(\d{0,7})$/ ) {
$cdr->dst($2);
|| $conf->exists('cdr-taqua-accountcode_rewrite')
|| $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
;
=item cdr-skip_duplicate_rewrite
-Marks as 'done' (prevents billing for) any CDRs with
+Marks as 'skipped' (prevents billing for) any CDRs with
a src, dst and calldate identical to an existing CDR
=item cdr-asterisk_australia_rewrite