package FS::cdr::taqua;
-use vars qw(@ISA %info);
+use strict;
+use vars qw(@ISA %info $da_rewrite);
use FS::cdr qw(_cdr_date_parser_maker);
@ISA = qw(FS::cdr);
'weight' => 130,
'header' => 1,
'import_fields' => [ #some of these are kind arbitrary...
- sub { my($cdr, $field) = @_; }, #XXX interesting RecordType
- # easy to fix: Can't find cdr.cdrtypenum 1 in cdr_type.cdrtypenum
+ #0
+ 'cdrtypenum', #RecordType
sub { my($cdr, $field) = @_; }, #all10#RecordVersion
sub { my($cdr, $field) = @_; }, #OrigShelfNumber
sub { my($cdr, $field) = @_; }, #OrigCardNumber
'accountcode', #SessionNumber
'src', #CallingPartyNumber
'dst', #CalledPartyNumber
+
+ #10
_cdr_date_parser_maker('startdate'), #CallArrivalTime
_cdr_date_parser_maker('enddate'), #CallCompletionTime
sub { my($cdr, $field) = @_; }, #TermShelfNumber
sub { my($cdr, $field) = @_; }, #TermCardNumber
+
+ #20
sub { my($cdr, $field) = @_; }, #TermCircuit
sub { my($cdr, $field) = @_; }, #TermCircuitType
- sub { my($cdr, $field) = @_; }, #OutboundCarrierId
- 'charged_party', #BillingNumber
+ 'carrierid', #OutboundCarrierId
+
+ #BillingNumber
+ #'charged_party',
+ sub {
+ my( $cdr, $field, $conf ) = @_;
+
+ #could be more efficient for the no config case, if anyone ever needs that
+ $da_rewrite ||= $conf->config('cdr-taqua-da_rewrite');
+
+ if ( $da_rewrite && $field =~ /\d/ ) {
+ my $rewrite = $da_rewrite;
+ $rewrite =~ s/\s//g;
+ my @rewrite = split(',', $conf->config('cdr-taqua-da_rewrite') );
+ if ( grep { $field eq $_ } @rewrite ) {
+ $cdr->charged_party( $cdr->src() );
+ $cdr->calltypenum(12);
+ return;
+ }
+ }
+ $cdr->charged_party($field);
+ },
+
sub { my($cdr, $field) = @_; }, #SubscriberNumber
'lastapp', #ServiceName
sub { my($cdr, $field) = @_; }, #some weirdness #ChargeTime
'lastdata', #ServiceInformation
sub { my($cdr, $field) = @_; }, #FacilityInfo
sub { my($cdr, $field) = @_; }, #all 1900-01-01 0#CallTraceTime
+
+ #30
sub { my($cdr, $field) = @_; }, #all-1#UniqueIndicator
sub { my($cdr, $field) = @_; }, #all-1#PresentationIndicator
sub { my($cdr, $field) = @_; }, #empty#Pin
- sub { my($cdr, $field) = @_; }, #CallType
+ 'calltypenum', #CallType
+
+ #nothing below is used by QIS...
+
sub { my($cdr, $field) = @_; }, #Balt/empty #OrigRateCenter
sub { my($cdr, $field) = @_; }, #Balt/empty #TermRateCenter
'userfield', #empty#UserDefined
sub { my($cdr, $field) = @_; }, #empty#PseudoDestinationNumber
sub { my($cdr, $field) = @_; }, #all-1#PseudoCarrierCode
+
+ #40
sub { my($cdr, $field) = @_; }, #empty#PseudoANI
sub { my($cdr, $field) = @_; }, #all-1#PseudoFacilityInfo
sub { my($cdr, $field) = @_; }, #OrigDialedDigits
sub { my($cdr, $field) = @_; }, #huh?#InsertTime
sub { my($cdr, $field) = @_; }, #key
sub { my($cdr, $field) = @_; }, #empty#AMALineNumber
+
+ #50
sub { my($cdr, $field) = @_; }, #empty#AMAslpID
sub { my($cdr, $field) = @_; }, #empty#AMADigitsDialedWC
sub { my($cdr, $field) = @_; }, #OpxOffHook