summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2022-05-23 14:43:42 -0700
committerIvan Kohler <ivan@freeside.biz>2022-05-23 14:43:42 -0700
commitcc7fbf9f532b64587eed1244218b6611a72d004f (patch)
tree24025973c659255e931e7627a342b75bd8af1ef2
parent18271c2a6157e26b17002c6a3c65a934e36e05c3 (diff)
obey otherPartyNamePresentationIndicator and deal with broadsoft's awful non-standard quoting, RT#86028, RT#81941
-rw-r--r--FS/FS/cdr/broadsoft.pm17
1 files changed, 16 insertions, 1 deletions
diff --git a/FS/FS/cdr/broadsoft.pm b/FS/FS/cdr/broadsoft.pm
index d9530bb..01755a8 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',