#29903 Import accountcodes
[freeside.git] / FS / FS / cdr / cisco.pm
index db00db7..335d483 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use base qw( FS::cdr );
 use vars qw( %info );
 use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
+use Date::Parse;
 
 %info = (
   'name'          => 'Cisco Unified Call Manager',
@@ -20,11 +21,15 @@ use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
                                                        #globalCallID_callManagerId
                                              'clid',   #globalCallID_callId    
                                             skip(1),   #origLegCallIdentifier  
-                                        'calldate',    #dateTimeOrigination
+                sub { my ($cdr, $calldate) = @_;
+                        $cdr->set('startdate', $calldate);
+                        $calldate = str2time($calldate);
+                        $cdr->set('calldate', $calldate);
+                                                  },    #dateTimeOrigination
                                             skip(3),   #origNodeId     
                                                        #origSpan
                                                        #origIpAddr     
-                                              'src',   #callingPartyNumber     
+                                              'src',   #callingPartyNumber     
                                            skip(20),   #callingPartyUnicodeLoginUserID 
                                                        #origCause_location     
                                                        #origCause_value        
@@ -45,7 +50,10 @@ use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
                                                        #destNodeId     
                                                        #destSpan       
                                                        #destIpAddr     
-                                             'dst',    #originalCalledPartyNumber      
+               sub { my ($cdr, $dst) = @_;
+               $dst =~ s/\#//;
+               $cdr->set('dst', $dst);                       
+                                               },      #originalCalledPartyNumber      
                                           skip(17),    #finalCalledPartyNumber 
                                                        #finalCalledPartyUnicodeLoginUserID
                                                        #destCause_location     
@@ -65,14 +73,14 @@ use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
                                                        #destRSVPVideoStat
                                        'answerdate',   #dateTimeConnect        
                                           'enddate',   #dateTimeDisconnect
-                                       skip(6),        #lastRedirectDn 
+                                       skip(3),        #lastRedirectDn 
                                                        #pkid
                                                        #originalCalledPartyNumberPartition     
-                                                       #callingPartyNumberPartition    
-                                                       #finalCalledPartyNumberPartition
+                                  'accountcode',       #callingPartyNumberPartition    
+                                        skip(2),       #finalCalledPartyNumberPartition
                                                        #lastRedirectDnPartition
                                       'billsec',       #duration
-                                       skip(48),       #origDeviceName
+                                       skip(22),       #origDeviceName
                                                        #destDeviceName
                                                        #origCallTerminationOnBehalfOf
                                                        #destCallTerminationOnBehalfOf
@@ -94,8 +102,12 @@ use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
                                                        #origMediaCap_Bandwidth
                                                        #destMediaCap_Bandwidth 
                                                        #authorizationCodeValue
-                                                       #outpulsedCallingPartyNumber
-                                                       #outpulsedCalledPartyNumber
+                                       sub { my ($cdr, $number) = @_;
+                                               if ($number){
+                                               $cdr->set('src',$number);
+                                               }
+                                               },      #outpulsedCallingPartyNumber
+                                             skip(23), #outpulsedCalledPartyNumber
                                                        #origIpv4v6Addr 
                                                        #destIpv4v6Addr 
                                                        #origVideoCap_Codec_Channel2