diff --git a/debian/control b/debian/control index f861f9b8ef..5622419a9f 100644 --- a/debian/control +++ b/debian/control @@ -118,11 +118,13 @@ Depends: gettext, libmoosex-singleton-perl, libnamespace-sweep-perl, libnet-http-perl, + libnet-https-any-perl, libnet-telnet-perl, libnumber-phone-perl, libpath-tiny-perl, libperl5i-perl, libplack-middleware-deflater-perl, + librpc-xml-perl, librsvg2-bin, libsereal-decoder-perl, libsereal-encoder-perl, diff --git a/lib/NGCP/Panel/Utils/DeviceBootstrap.pm b/lib/NGCP/Panel/Utils/DeviceBootstrap.pm index 3f1df582f0..fa11d941e8 100644 --- a/lib/NGCP/Panel/Utils/DeviceBootstrap.pm +++ b/lib/NGCP/Panel/Utils/DeviceBootstrap.pm @@ -4,7 +4,10 @@ use strict; use URI::Escape; use MIME::Base64 qw/encode_base64/; use Net::HTTPS::Any qw/https_post/; -use RPC::XML::Parser::LibXML; +#use RPC::XML::Parser::LibXML; +#use RPC::XML::Parser::XMLLibXML; +use RPC::XML::ParserFactory 'XML::LibXML'; + use Data::Dumper; sub bootstrap{ @@ -19,7 +22,7 @@ sub bootstrap{ }elsif('redirect_linksys' == $bootstrap_method){ linksys_bootstrap_register($params); }elsif('http' == $bootstrap_method){ - panasonic_bootstrap_register($params); + #panasonic_bootstrap_register($params); } } @@ -75,16 +78,23 @@ sub panasonic_bootstrap_register{ 'Content-Type' => 'text/xml', 'content' => $content, },); + my $response_value; $c->log->info( "response=$response_code; page=$page;" ); - my $rpc_response = parse_rpc_xml($page); - my $response_value = $rpc_response->value->value; - $c->log->info( "response_value=".Dumper($response_value).";" ); + if($page){ + #my $parser = RPC::XML::ParserFactory->new(); + my $parser = RPC::XML::ParserFactory->new(); + my $rpc_response = $parser->parse($page); + my $response_value = $rpc_response->value->value; + $c->log->info( "response_value=".Dumper($response_value).";" ); + } my $response; if('1' eq $response_value){ $response = { 'response' => 1 }; }elsif(('HASH' eq ref $response_value) && $response_value->{faultCode}){ $response = $response_value; $response->{response} = 0; + }else{ + $response = { 'response' => 0 }; } $c->log->debug( "response=".Dumper($response).";" ); return $response; @@ -127,6 +137,7 @@ sub bootstrap_config{ my $credentials = $contract->vendor_credentials->search_rs({ 'me.vendor' => lc($device->vendor), })->first; + $c->log->debug("credentials=$credentials; vendor=".$device->vendor.";"); if($credentials){ my $vendor_credentials = { map { $_ => $credentials->$_ } qw/user password/};