Ticket #38938 Deal with invalid SSL certs on CDR import
[freeside.git] / FS / FS / part_export / pbxware.pm
index 3da4c2a..467b79f 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 
 use Tie::IxHash;
 use LWP::UserAgent;
-use JSON;
+use Cpanel::JSON::XS;
 use HTTP::Request::Common;
 use Digest::MD5 qw(md5_hex);
 use FS::Record qw(dbh);
@@ -140,6 +140,11 @@ sub import_cdrs {
         uniqueid    => $uniqueid,
       );
       @hash{@names} = @$row;
+      # strip non-numeric junk that sometimes gets appended to these (it 
+      # causes problems creating Freeside detail records)
+      foreach (qw(src dst)) {
+        $hash{$_} =~ s/\D*$//;
+      }
 
       my $cdr = FS::cdr->new(\%hash);
       $error = $cdr->insert;
@@ -163,6 +168,10 @@ sub api_request {
   my $self = shift;
   my ($method, $content) = @_;
   $DEBUG ||= 1 if $self->option('debug');
+
+# kludge to curb excessive paranoia in LWP 6.0+
+local $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
+
   my $url = 'https://' . $self->machine;
   my $request = POST($url,
     [ %$content,