MT#7469 Cleanup url handling for dev provisioning.

mr3.3.1
Andreas Granig 11 years ago
parent c4413fb183
commit 5957189fcc

@ -1236,6 +1236,10 @@ sub pbx_device_sync :Chained('pbx_device_base') :PathPart('sync') :Args(0) {
}
my $dev = $c->stash->{pbx_device};
my $schema = $c->config->{deviceprovisioning}->{secure} ? 'https' : 'http';
my $host = $c->config->{deviceprovisioning}->{host} // $c->req->uri->host;
my $port = $c->config->{deviceprovisioning}->{port} // 1444;
my $t = Template->new;
my $conf = {
client => {
@ -1243,7 +1247,7 @@ sub pbx_device_sync :Chained('pbx_device_base') :PathPart('sync') :Args(0) {
},
server => {
uri => 'http://' . $c->req->uri->host . ':' . ($c->config->{web}->{autoprov_plain_port} // '1444') . '/device/autoprov/config',
uri => "$schema://$host:$port/device/autoprov/config",
},
};
my ($sync_uri, $real_sync_uri) = ("", "");

@ -946,6 +946,10 @@ sub dev_field_config :Chained('/') :PathPart('device/autoprov/config') :Args() {
return;
}
my $schema = $c->config->{deviceprovisioning}->{secure} ? 'https' : 'http';
my $host = $c->config->{deviceprovisioning}->{host} // $c->req->uri->host;
my $port = $c->config->{deviceprovisioning}->{port} // 1444;
if($id =~ /^[a-fA-F0-9]{12}\.cfg$/
&& $c->req->user_agent =~ /PolycomVVX/
) {
@ -985,7 +989,7 @@ sub dev_field_config :Chained('/') :PathPart('device/autoprov/config') :Args() {
my $vars = {
config => {
url => 'http://' . $c->req->uri->host . ':' . ($c->config->{web}->{autoprov_plain_port} // '1444') . '/device/autoprov/config/' . $id,
url => "$schema://$host:$port/device/autoprov/config/$id",
},
firmware => {
},
@ -994,14 +998,12 @@ sub dev_field_config :Chained('/') :PathPart('device/autoprov/config') :Args() {
lineranges => [],
},
directory => {
spaurl => 'http://' . $c->req->uri->host . ':' . ($c->config->{web}->{autoprov_plain_port} // '1444') . '/pbx/directory/spa/' . $id,
spaurl => "$schema://$host:$port/pbx/directory/spa/$id",
name => 'PBX Address Book',
}
};
$vars->{firmware}->{baseurl} = 'http://' . $c->req->uri->host . ':' .
($c->config->{web}->{autoprov_plain_port} // '1444') .
'/device/autoprov/firmware';
$vars->{firmware}->{baseurl} = "$schema://$host:$port/device/autoprov/firmware";
my $latest_fw = $c->model('DB')->resultset('autoprov_firmwares')->search({
device_id => $model->id,
}, {

@ -16,10 +16,22 @@ sub auto :Private {
return 1;
}
sub spa_directory_getsearch :Chained('/') :PathPart('pbx/directory/spasearch') :Args(1) {
sub base :Chained('/') :PathPart('') :CaptureArgs(0) {
my ($self, $c) = @_;
$c->stash->{schema} = $c->config->{deviceprovisioning}->{secure} ? 'https' : 'http';
$c->stash->{host} = $c->config->{deviceprovisioning}->{host} // $c->req->uri->host;
$c->stash->{port} = $c->config->{deviceprovisioning}->{port} // 1444;
}
sub spa_directory_getsearch :Chained('base') :PathPart('pbx/directory/spasearch') :Args(1) {
my ($self, $c, $id) = @_;
my $baseuri = 'http://' . $c->req->uri->host . ':' . ($c->config->{web}->{autoprov_plain_port} // '1444') . '/pbx/directory/spa/' . $id;
my $schema = $c->stash->{schema};
my $host = $c->stash->{host};
my $port = $c->stash->{port};
my $baseuri = "$schema://$host:$port/pbx/directory/spa/$id";
my $data = '';
$data = <<EOF;
@ -42,7 +54,7 @@ EOF
return;
}
sub spa_directory_list :Chained('/') :PathPart('pbx/directory/spa') :Args(1) {
sub spa_directory_list :Chained('base') :PathPart('pbx/directory/spa') :Args(1) {
my ($self, $c, $id) = @_;
unless($id) {
@ -73,7 +85,11 @@ sub spa_directory_list :Chained('/') :PathPart('pbx/directory/spa') :Args(1) {
return;
}
my $baseuri = 'http://' . $c->req->uri->host . ':' . ($c->config->{web}->{autoprov_plain_port} // '1444') . '/pbx/directory/spa/' . $id;
my $schema = $c->stash->{schema};
my $host = $c->stash->{host};
my $port = $c->stash->{port};
my $baseuri = "$schema://$host:$port/pbx/directory/spa/$id";
my $data = '';
my $delim = '?';
@ -124,7 +140,8 @@ sub spa_directory_list :Chained('/') :PathPart('pbx/directory/spa') :Args(1) {
my $nexturi = $baseuri . $delim . 'page='.($nextpage//0);
my $prevuri = $baseuri . $delim . 'page='.($prevpage//0);
my $searchuri = 'http://' . $c->req->uri->host . ':' . ($c->config->{web}->{autoprov_plain_port} // '1444') . '/pbx/directory/spasearch/' . $id;
my $searchuri = "$schema://$host:$port/pbx/directory/spasearch/$id";
$data = "<CiscoIPPhoneDirectory><Title>PBX Address Book$dirsuffix</Title><Prompt>Select the User</Prompt>";
$data .= join '', map {"<DirectoryEntry><Name>$$_{name}</Name><Telephone>$$_{ext}</Telephone></DirectoryEntry>"} @entries;

@ -100,3 +100,9 @@ log4perl.appender.Default.layout.ConversionPattern=%d{ISO8601} [%p] [%F +%L] %m{
rest_api_certfile /etc/ngcp-panel/api_ssl/api_ca.crt
server_certfile /etc/ngcp-panel/api_ssl/api_ca.crt
</ssl>
<deviceprovisioning>
secure 0
host agranig-office.sipwise.com
port 1444
</deviceprovisioning>

Loading…
Cancel
Save