X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcdr%2Fbroadsoft.pm;fp=FS%2FFS%2Fcdr%2Fbroadsoft.pm;h=01755a8bf3f7741c19c22a1349520d9326c7662b;hp=d9530bb1311f5eff217eeec48c67d4d506a64ca1;hb=876a95ece211ff6478a609f5e99109957f66e477;hpb=586d704ec2a3eb47578e977188789f706199a408 diff --git a/FS/FS/cdr/broadsoft.pm b/FS/FS/cdr/broadsoft.pm index d9530bb13..01755a8bf 100644 --- a/FS/FS/cdr/broadsoft.pm +++ b/FS/FS/cdr/broadsoft.pm @@ -23,6 +23,15 @@ use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker ); sep_char => ',', disabled => 0, + row_callback => sub { + my $line = shift; + #try to deal with broadsoft's awful non-standard CSV escaping :/ + $line =~ s/\\,/ /g; # \, becomes just a space... not entirely accurate, + # but better than skewing data into the wrong fields + $line =~ s/\\\\/\\/g; # undo double backslashes? none in my test data + $line; + }, + import_fields => [ # 1: recordId @@ -119,7 +128,13 @@ use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker ); #122: otherPartyName 'clid', - skip(23), #123-145 inclusive + #123: otherPartyNamePresentationIndicator + sub { + my( $cdr, $data ) = @_; + $cdr->clid( $data ) unless $data =~ /^Public$/i; + }, + + skip(22), #124-145 inclusive # 146: chargedNumber 'charged_party',