summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authormark <mark>2011-05-25 23:25:19 +0000
committermark <mark>2011-05-25 23:25:19 +0000
commit3595df85a4211d9da1fd3bd8cbb0f324881491d9 (patch)
tree56748f7318cc058b53cf918b3b2e91c3b2780815 /FS
parent0827ca40a0d2d917d78d810302c0ddd6cea7706d (diff)
fix to Enswitch CDR import, #11613
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cdr/enswitch.pm19
1 files changed, 16 insertions, 3 deletions
diff --git a/FS/FS/cdr/enswitch.pm b/FS/FS/cdr/enswitch.pm
index 64518af6d..1475d8dc1 100644
--- a/FS/FS/cdr/enswitch.pm
+++ b/FS/FS/cdr/enswitch.pm
@@ -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;