sep_char => ',',
disabled => 0,
+ #deal with broadsoft's awful non-standard CSV escaping :/
+ row_callback => sub {
+ my $line = shift;
+ $line = qq("$line"); # put " at the beginning and end
+ $line =~ s/(?<!\\),/","/g; # all commas not after a \ become ","
+ $line =~ s/\\,/,/g; # and now we can turn \, into ,
+ #XXX embedded \r and \n ? none in my test data, and might be better to
+ # leave escaped and deal with it from there?
+ $line =~ s/\\\\/\\/g; # undo double backslashes? none in my test data
+
+ #and now we have a properly formed CSV line
+ $line;
+ },
+
import_fields => [
# 1: recordId
skip(8),
# 34: accountCode
- sub {
- my( $cdr, $data ) = @_;
- $cdr->set(
- 'accountcode',
- $cdr->is_tollfree ? substr( $cdr->dst, 0, 32 ) : $data
- );
- },
+ 'accountcode',
# 35: authorizationCode
# 36: originalCalledNumber
#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',