fix to Enswitch CDR import, #11613
authormark <mark>
Wed, 25 May 2011 23:25:19 +0000 (23:25 +0000)
committermark <mark>
Wed, 25 May 2011 23:25:19 +0000 (23:25 +0000)
FS/FS/cdr/enswitch.pm

index 64518af..1475d8d 100644 (file)
@@ -23,11 +23,14 @@ use FS::cdr qw(_cdr_min_parser_maker);
     'clid',         #Calling name
     skip(1),        #Called type
     'dst',          #Called number
-    skip(23),       #Destination customer, Destination type
+    skip(5),        #Destination customer, Destination type
                     #Destination number
                     #Destination group ID, Destination group name,
-                    #Inbound calling type, Inbound calling number,
-                    #Inbound called type, Inbound called number,
+    'in_calling_type',  #Inbound calling type,
+    \&in_calling_num,   #Inbound calling number,
+    '',                 #Inbound called type,
+    \&in_called_num,    #Inbound called number,
+    skip(14),
                     #Inbound destination type, Inbound destination number,
                     #Outbound calling type, Outbound calling number,
                     #Outbound called type, Outbound called number,
@@ -46,4 +49,14 @@ use FS::cdr qw(_cdr_min_parser_maker);
 
 sub skip { map {''} (1..$_[0]) }
 
+sub in_calling_num {
+  my ($record, $data) = @_;
+  $record->src($data) if ( ($record->in_calling_type || '') eq 'external' );
+}
+
+sub in_called_num {
+  my ($record, $data) = @_;
+  $record->dst($data) if ( ($record->in_calling_type || '') eq 'external' );
+}
+
 1;