MT#9177 Yealink add_server

ipeshinskaya/9177
Irina Peshinskaya 12 years ago
parent 6dc0fde8dd
commit 51336e2b18

@ -275,6 +275,7 @@ sub POST :Allow {
$item = $c->model('DB')->resultset('autoprov_devices')->create($resource);
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_credentials_store($c, $item, $credentials);
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_parameters_store($c, $item, $sync_parameters);
NGCP::Panel::Utils::DeviceBootstrap::dispatch_devmod($c, 'add_server', $item);
foreach my $range(@{ $linerange }) {
unless(ref $range eq "HASH") {

@ -185,7 +185,8 @@ sub devmod_create :Chained('base') :PathPart('model/create') :Args(0) :Does(ACL)
my $devmod = $schema->resultset('autoprov_devices')->create($form->params);
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_credentials_store($c, $devmod, $credentials);
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_parameters_store($c, $devmod, $sync_parameters);
NGCP::Panel::Utils::DeviceBootstrap::dispatch_devmod($c, 'add_server', $devmod);
foreach my $range(@{ $linerange }) {
delete $range->{id};
$range->{num_lines} = @{ $range->{keys} }; # backward compatibility
@ -368,6 +369,7 @@ sub devmod_edit :Chained('devmod_base') :PathPart('edit') :Args(0) :Does(ACL) :A
device_id => $c->stash->{devmod}->id,
})->delete;
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_parameters_store($c, $c->stash->{devmod}, $sync_parameters);
NGCP::Panel::Utils::DeviceBootstrap::dispatch_devmod($c, 'add_server', $c->stash->{devmod} );
my @existing_range = ();
my $range_rs = $c->stash->{devmod}->autoprov_device_line_ranges;

@ -166,6 +166,7 @@ sub update_item {
})->delete;
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_credentials_store($c, $item, $credentials);
NGCP::Panel::Utils::DeviceBootstrap::devmod_sync_parameters_store($c, $item, $sync_parameters);
NGCP::Panel::Utils::DeviceBootstrap::dispatch_devmod($c, 'add_server', $item);
my @existing_range = ();
my $range_rs = $item->autoprov_device_line_ranges;

@ -10,14 +10,39 @@ use NGCP::Panel::Utils::DeviceBootstrap::Yealink;
sub dispatch{
my($c, $action, $fdev, $old_identifier) = @_;
my $device = $fdev->profile->config->device;
my $credentials = $fdev->profile->config->device->autoprov_redirect_credentials;
my $params = {
%{$self->get_devmod_params($c, $fdev->profile->config->device)},
mac => $fdev->identifier,
mac_old => $old_identifier,
};
my $redirect_processor = get_redirect_processor($params);
my $ret;
if($redirect_processor){
$ret = $redirect_processor->redirect_server_call($action);
}
return $ret;
}
sub dispatch_devmod{
my($c, $action, $devmod) = @_;
my $params = $self->get_devmod_params($c,$devmod);
my $redirect_processor = get_redirect_processor($c,$params);
my $ret;
if($redirect_processor){
$ret = $redirect_processor->redirect_server_call($action);
}
return $ret;
}
sub get_devmod_params{
my($self, $devmod) = @_;
my $credentials = $devmod->autoprov_redirect_credentials;
my $vcredentials;
if($credentials){
$vcredentials = { map { $_ => $credentials->$_ } qw/user password/};
}
my $sync_params_rs = $device->autoprov_sync->search_rs({
my $sync_params_rs = $devmod->autoprov_sync->search_rs({
'autoprov_sync_parameters.parameter_name' => 'sync_params',
},{
join => 'autoprov_sync_parameters',
@ -27,19 +52,12 @@ sub dispatch{
my $params = {
c => $c,
mac => $fdev->identifier,
mac_old => $old_identifier,
bootstrap_method => $device->bootstrap_method,
redirect_uri => $device->bootstrap_uri,
bootstrap_method => $devmod->bootstrap_method,
redirect_uri => $devmod->bootstrap_uri,
redirect_uri_params => $sync_params,
credentials => $vcredentials,
};
my $redirect_processor = get_redirect_processor($params);
my $ret;
if($redirect_processor){
$ret = $redirect_processor->redirect_server_call($action);
}
return $ret;
return $params;
}
sub get_redirect_processor{
my ($params) = @_;

@ -72,13 +72,14 @@ 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>
<params>
<param>
<value>
<string><![CDATA[".$self->content_params->{uri_server_name}."]]></string>
<string><![CDATA[".$self->content_params->{server_name}."]]></string>
</value>
</param>
<param>
@ -107,11 +108,10 @@ sub extract_response_description{
}
sub uri2server_name{
my($self,$uri) = @_;
my($self) = @_;
#http://stackoverflow.com/questions/4826403/hash-algorithm-with-alphanumeric-output-of-20-characters-max
return $uri;
$self->content_params->{server_name} ||= substr(md5_hex($self->content_params->{uri}),0,20);
return $self->content_params->{server_name};
}
1;

Loading…
Cancel
Save