fix TeleAPI import (what kind of crack was Christopher smoking that he couldn't fix...
[freeside.git] / FS / FS / cdr / zintel.pm
index 0e44844..eb08038 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year );
 use Time::Local;
 use FS::cdr qw(_cdr_date_parser_maker);
+use Date::Parse;
 
 @ISA = qw(FS::cdr);
 
@@ -15,15 +16,28 @@ use FS::cdr qw(_cdr_date_parser_maker);
 
        'accountcode',  #customer
        'src',          #anumber
-       'dst',          #bnumber
-       sub { # OriginatingDate and OriginatingTime, two fields in the spec
-               my ($cdr, $date) = @_;
-               $date =~ /^(\d{2})\/(\d{2})\/(\d{4})\s*(\d{2}):(\d{2}):(\d{2})$/
-               or die "unparseable date: $date";
-               my $tmp_date = "$2/$1/$3 $4:$5:$6";                     
-               $cdr->calldate($tmp_date);
-            },#datetime
+                sub { my ($cdr, $dst) = @_; # Handling cosolidated local calls in the CDR formats
 
+                       my $src = $cdr->src;
+
+                       if ($dst =~ /^64\/U$/) {
+                       $cdr->set('dst', $src);
+                       } else {
+                       $cdr->set('dst', $dst);
+                       }
+                       }, #bnumber
+
+                 sub { my ($cdr, $calldate) = @_;
+                        $cdr->set('calldate', $calldate);
+
+                        $calldate =~ /^(\d{2})\/(\d{2})\/(\d{4})\s*(\d{2}):(\d{2}):(\d{2})$/
+                                or die "unparseable date: $calldate";
+                        my $tmp_date = "$2/$1/$3 $4:$5:$6";
+
+                        $tmp_date = str2time($tmp_date);
+                        $cdr->set('startdate', $tmp_date);
+
+                  },    #DateTime
        'billsec',      #duration
        skip(3),        #calltype
                        #status