+ # XXX weird special case stuff--can we modularize this somehow?
+ # reference RT#16271
+ if ( $conf->exists('cdr-asterisk_australia_rewrite') and
+ $cdr->disposition eq 'ANSWERED' ) {
+ my $dst = $cdr->dst;
+ my $type;
+ if ( $dst =~ /^0?(12|13|1800|1900|0055)/ ) {
+ # toll free or smart numbers, any length
+ $type = 'tollfree';
+ $cdr->charged_party($dst);
+ }
+ elsif ( $dst =~ /^(11|0011)/ ) {
+ # will be followed by country code
+ $type = 'international';
+ $dst =~ s/^$1/0011/; #standardize
+ $cdr->dst($dst);
+ }
+ elsif ( length($dst) == 10 and$dst =~ /^04/ ) {
+ $type = 'mobile';
+ }
+ elsif ( length($dst) == 10 and $dst =~ /^02|03|07|08/ ) {
+ $type = 'domestic';
+ }
+ elsif ( length($dst) == 8 ) {
+ # local call, no area code
+ $type = 'domestic';
+ }
+ else {
+ $type = 'other';
+ }
+ if ( $type and exists($cdr_type{$type}) ) {
+ $cdr->cdrtypenum($cdr_type{$type});
+ push @status, 'asterisk_australia';
+ }
+ else {
+ $warning{"no CDR type defined for $type calls"}++;
+ }
+ }
+