option to rewrite certain "international" calls into domestic calls, #71004
[freeside.git] / FS / bin / freeside-cdrrewrited
index 16f931f..0087590 100644 (file)
@@ -198,6 +198,12 @@ while (1) {
 
     }
 
+    if ( $conf->exists('cdr-intl_to_domestic_rewrite') and
+         $cdr->dst =~ /^(011)(\d{0,7})$/ ) {
+      $cdr->dst($2);
+      push @status, 'intl_to_domestic';
+    }
+
     $cdr->freesiderewritestatus(
       scalar(@status) ? join('/', @status) : 'skipped'
     );
@@ -233,6 +239,7 @@ sub _shouldrun {
   || $conf->exists('cdr-charged_party_rewrite')
   || $conf->exists('cdr-taqua-accountcode_rewrite')
   || $conf->exists('cdr-taqua-callerid_rewrite')
+  || $conf->exists('cdr-intl_to_domestic_rewrite')
   || 0
   ;
 }
@@ -252,8 +259,44 @@ freeside-cdrrewrited - Real-time daemon for CDR rewriting
 =head1 DESCRIPTION
 
 Runs continuously, searches for CDRs and does forwarded-call rewriting if any
-of the "cdr-asterisk_forward_rewrite", "cdr-charged_party_rewrite" or
-"cdr-taqua-accountcode_rewrite" config options are enabled.
+of the following config options are enabled:
+
+=over 4
+
+=item cdr-asterisk_australia_rewrite
+
+Classifies Australian numbers as domestic, mobile, tollfree, international, or
+"other", and tries to assign a cdrtypenum based on that.
+
+=item cdr-asterisk_forward_rewrite
+
+Identifies Asterisk forwarded calls using the 'dstchannel' field. If the
+dstchannel is "Local/" followed by a number, but the number doesn't match the
+dst field, the dst field will be rewritten to match.
+
+=item cdr-charged_party_rewrite
+
+Calls set_charged_party on all calls.
+
+=item cdr-taqua-accountcode_rewrite
+
+=item cdr-taqua-callerid_rewrite
+
+These actually have the same effect. Taqua uses cdrtypenum = 1 to tag accessory
+records. They will have "sessionnum" = that of the primary record, and
+"lastapp" indicating their function:
+
+- "acctcode": "lastdata" contains the dialed account code. Insert this into the
+accountcode field of the primary record.
+
+- "CallerId": "lastdata" contains "allowed" or "restricted". If "restricted"
+then the clid field of the primary record is set to "PRIVATE".
+
+=item cdr-intl_to_domestic_rewrite
+
+Finds records where the destination number has the "011" international prefix,
+but with seven or fewer digits in the rest of the number, and strips the "011"
+prefix so that they will be treated as domestic calls. This is very uncommon.
 
 =head1 SEE ALSO