[freeside-commits] branch master updated. 7e2f43f75eeaa14a92b4eac6d435875eff63618c

Mark Wells mark at 420.am
Wed Sep 19 12:14:10 PDT 2012


The branch, master has been updated
       via  7e2f43f75eeaa14a92b4eac6d435875eff63618c (commit)
      from  df845c7ef328e81b4f305152253ac9ca0de7626d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7e2f43f75eeaa14a92b4eac6d435875eff63618c
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Sep 19 12:13:59 2012 -0700

    taqua 6.2 CDR format, #19307

diff --git a/FS/FS/cdr/taqua62.pm b/FS/FS/cdr/taqua62.pm
new file mode 100644
index 0000000..862018e
--- /dev/null
+++ b/FS/FS/cdr/taqua62.pm
@@ -0,0 +1,178 @@
+package FS::cdr::taqua62;
+
+use strict;
+use vars qw(@ISA %info $da_rewrite);
+use FS::cdr qw(_cdr_date_parser_maker);
+
+ at ISA = qw(FS::cdr);
+
+%info = (
+  'name'          => 'Taqua v6.2',
+  'weight'        => 131,
+  'header'        => 1,
+  'import_fields' => [
+
+    #0
+    '', #Key 
+    '', #InsertTime, irrelevant
+    #RecordType
+    sub {
+      my($cdr, $field, $conf, $hashref) = @_;
+      $hashref->{skiprow} = 1
+        unless ($field == 0 && $cdr->disposition == 100       )  #regular CDR
+            || ($field == 1 && $cdr->lastapp     eq 'acctcode'); #accountcode
+      $cdr->cdrtypenum($field);
+    },
+
+    '',       #RecordVersion
+    '',       #OrigShelfNumber
+    '',       #OrigCardNumber
+    '',       #OrigCircuit
+    '',       #OrigCircuitType
+    'uniqueid',                           #SequenceNumber
+    'sessionnum',                         #SessionNumber
+    #10
+    'src',                                #CallingPartyNumber
+    #CalledPartyNumber
+    sub {
+      my( $cdr, $field, $conf ) = @_;
+      if ( $cdr->calltypenum == 6 && $cdr->cdrtypenum == 0 ) {
+        $cdr->dst("+$field");
+      } else {
+        $cdr->dst($field);
+      }
+    },
+
+    _cdr_date_parser_maker('startdate', 'gmt' => 1),  #CallArrivalTime
+    _cdr_date_parser_maker('enddate', 'gmt' => 1),    #CallCompletionTime
+
+    #Disposition
+    #sub { my($cdr, $d ) = @_; $cdr->disposition( $disposition{$d}): },
+    'disposition',
+                                          #  -1 => '',
+                                          #   0 => '',
+                                          # 100 => '', #regular cdr
+                                          # 101 => '',
+                                          # 102 => '',
+                                          # 103 => '',
+                                          # 104 => '',
+                                          # 105 => '',
+                                          # 201 => '',
+                                          # 203 => '',
+                                          # 204 => '',
+
+    _cdr_date_parser_maker('answerdate', 'gmt' => 1), #DispositionTime
+    '',       #TCAP
+    '',       #OutboundCarrierConnectTime
+    '',       #OutboundCarrierDisconnectTime
+
+    #TermTrunkGroup
+    #it appears channels are actually part of trunk groups, but this data
+    #is interesting and we need a source and destination place to put it
+    'dstchannel',                         #TermTrunkGroup
+
+    #20
+
+    '',       #TermShelfNumber
+    '',       #TermCardNumber
+    '',       #TermCircuit
+    '',       #TermCircuitType
+    '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;
+        }
+      }
+      if ( $cdr->is_tollfree ) {        # thankfully this is already available
+        $cdr->charged_party($cdr->dst); # and this
+      } else {
+        $cdr->charged_party($field);
+      }
+    },
+
+    'subscriber',                         #SubscriberName
+    'lastapp',                            #ServiceName
+    '',       #some weirdness #ChargeTime
+    'lastdata',                           #ServiceInformation
+
+    #30
+
+    '',       #FacilityInfo
+    '',             #all 1900-01-01 0#CallTraceTime
+    '',             #all-1#UniqueIndicator
+    '',             #all-1#PresentationIndicator
+    '',             #empty#Pin
+    'calltypenum',                        #CallType
+
+    #nothing below is used by QIS...
+
+    '',           #Balt/empty #OrigRateCenter
+    '',           #Balt/empty #TermRateCenter
+
+    #OrigTrunkGroup
+    #it appears channels are actually part of trunk groups, but this data
+    #is interesting and we need a source and destination place to put it
+    'channel',                            #OrigTrunkGroup
+    'userfield',                                #empty#UserDefined
+
+    #40
+
+    '',             #empty#PseudoDestinationNumber
+    '',             #all-1#PseudoCarrierCode
+    '',             #empty#PseudoANI
+    '',             #all-1#PseudoFacilityInfo
+    '',       #OrigDialedDigits
+    '',             #all-1#OrigOutboundCarrier
+    '',       #IncomingCarrierID
+    'dcontext',                           #JurisdictionInfo
+    '',       #OrigDestDigits
+    '',             #empty#AMALineNumber
+
+    #50
+
+    '',             #empty#AMAslpID
+    '',             #empty#AMADigitsDialedWC
+    '',       #OpxOffHook
+    '',       #OpxOnHook
+    '',       #OrigCalledNumber
+    '',       #RedirectingNumber
+    '',       #RouteAttempts
+    '',       #OrigMGCPTerm
+    '',       #TermMGCPTerm
+    '',       #ReasonCode
+
+    #60
+    
+    '',       #OrigIPCallID
+    '',       #ESAIPTrunkGroup
+    '',       #ESAReason
+    '',       #BearerlessCall
+    '',       #oCodec
+    '',       #tCodec
+    '',       #OrigTrunkGroupNumber
+    '',       #TermTrunkGroupNumber
+    '',       #TermRecord
+    '',       #OrigRoutingIndicator
+
+    #70
+
+    '',       #TermRoutingIndicator
+
+  ],
+);
+
+1;

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cdr/taqua62.pm |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 178 insertions(+), 0 deletions(-)
 create mode 100644 FS/FS/cdr/taqua62.pm




More information about the freeside-commits mailing list