diff --git a/lib/NGCP/Panel/Utils/DeviceBootstrap.pm b/lib/NGCP/Panel/Utils/DeviceBootstrap.pm index c706d2f6a1..2a5088d9b7 100644 --- a/lib/NGCP/Panel/Utils/DeviceBootstrap.pm +++ b/lib/NGCP/Panel/Utils/DeviceBootstrap.pm @@ -11,7 +11,7 @@ sub dispatch{ my($c, $action, $fdev, $old_identifier) = @_; my $params = { - %{$self->get_devmod_params($c, $fdev->profile->config->device)}, + %{get_devmod_params($c, $fdev->profile->config->device)}, mac => $fdev->identifier, mac_old => $old_identifier, }; @@ -25,8 +25,8 @@ sub dispatch{ sub dispatch_devmod{ my($c, $action, $devmod) = @_; - my $params = $self->get_devmod_params($c,$devmod); - my $redirect_processor = get_redirect_processor($c,$params); + my $params = get_devmod_params($c,$devmod); + my $redirect_processor = get_redirect_processor($params); my $ret; if($redirect_processor){ $ret = $redirect_processor->redirect_server_call($action); @@ -34,7 +34,7 @@ sub dispatch_devmod{ return $ret; } sub get_devmod_params{ - my($self, $devmod) = @_; + my($c, $devmod) = @_; my $credentials = $devmod->autoprov_redirect_credentials; my $vcredentials; diff --git a/lib/NGCP/Panel/Utils/DeviceBootstrap/Panasonic.pm b/lib/NGCP/Panel/Utils/DeviceBootstrap/Panasonic.pm index f982313b5f..3b983d30cd 100644 --- a/lib/NGCP/Panel/Utils/DeviceBootstrap/Panasonic.pm +++ b/lib/NGCP/Panel/Utils/DeviceBootstrap/Panasonic.pm @@ -35,12 +35,13 @@ sub rpc_server_params{ sub register_content { my $self = shift; +#<param><value><string>".URI::Escape::uri_escape($self->content_params->{uri})."</string></value></param> $self->{register_content} = "<?xml version=\"1.0\"?> <methodCall> <methodName>ipredirect.registerPhone</methodName> <params> <param><value><string>".$self->content_params->{mac}."</string></value></param> -<param><value><string>".$self->content_params->{uri}."</string></value></param> +<param><value><string><![CDATA[".$self->content_params->{uri}."]]></string></value></param> </params> </methodCall>"; return $self->{register_content}; diff --git a/lib/NGCP/Panel/Utils/DeviceBootstrap/VendorRPC.pm b/lib/NGCP/Panel/Utils/DeviceBootstrap/VendorRPC.pm index 94325f242d..6458039023 100644 --- a/lib/NGCP/Panel/Utils/DeviceBootstrap/VendorRPC.pm +++ b/lib/NGCP/Panel/Utils/DeviceBootstrap/VendorRPC.pm @@ -106,7 +106,7 @@ sub get_bootstrap_uri{ sub process_uri{ my($self,$uri) = @_; - if($uri !~/^https?:\/\//i ){ + if($uri !~/^(?:https?|t?ftp):\/\//i ){ $uri = 'http://'.$uri; } if ($uri !~/\{MAC\}$/){ @@ -115,7 +115,6 @@ sub process_uri{ } $uri .= '{MAC}' ; } - $uri = URI::Escape::uri_escape($uri); return $uri; } #separated as this logic also used in other places, so can be moved to other utils module diff --git a/lib/NGCP/Panel/Utils/DeviceBootstrap/Yealink.pm b/lib/NGCP/Panel/Utils/DeviceBootstrap/Yealink.pm index ec6745efd4..e2d072db6f 100644 --- a/lib/NGCP/Panel/Utils/DeviceBootstrap/Yealink.pm +++ b/lib/NGCP/Panel/Utils/DeviceBootstrap/Yealink.pm @@ -50,9 +50,7 @@ sub register_content { <param> <value><string><![CDATA[".$self->content_params->{server_name}."]]></string></value> </param> -<param> -<value><string>1</string></value> -</param></params> +</params> </methodCall>"; return $self->{register_content}; } @@ -72,7 +70,6 @@ sub unregister_content { } sub add_server_content { my $self = shift; - $self->uri2server_name(); $self->{add_server_content} ||= "<?xml version='1.0' encoding='UTF-8'?> <methodCall> <methodName>redirect.addServer</methodName> @@ -106,6 +103,12 @@ sub extract_response_description{ return; } } +override 'process_uri' => sub { + my($self,$uri) = @_; + $self->content_params->{uri} = super(); + $self->uri2server_name(); + return $self->content_params->{uri}; +}; sub uri2server_name{ my($self) = @_;