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 $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 $t = Template->new;
my $conf = { my $conf = {
client => { client => {
@ -1243,7 +1247,7 @@ sub pbx_device_sync :Chained('pbx_device_base') :PathPart('sync') :Args(0) {
}, },
server => { 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) = ("", ""); my ($sync_uri, $real_sync_uri) = ("", "");

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

@ -16,10 +16,22 @@ sub auto :Private {
return 1; 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 ($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 = ''; my $data = '';
$data = <<EOF; $data = <<EOF;
@ -42,7 +54,7 @@ EOF
return; 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) = @_; my ($self, $c, $id) = @_;
unless($id) { unless($id) {
@ -73,7 +85,11 @@ sub spa_directory_list :Chained('/') :PathPart('pbx/directory/spa') :Args(1) {
return; 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 $data = '';
my $delim = '?'; 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 $nexturi = $baseuri . $delim . 'page='.($nextpage//0);
my $prevuri = $baseuri . $delim . 'page='.($prevpage//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 = "<CiscoIPPhoneDirectory><Title>PBX Address Book$dirsuffix</Title><Prompt>Select the User</Prompt>";
$data .= join '', map {"<DirectoryEntry><Name>$$_{name}</Name><Telephone>$$_{ext}</Telephone></DirectoryEntry>"} @entries; $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 rest_api_certfile /etc/ngcp-panel/api_ssl/api_ca.crt
server_certfile /etc/ngcp-panel/api_ssl/api_ca.crt server_certfile /etc/ngcp-panel/api_ssl/api_ca.crt
</ssl> </ssl>
<deviceprovisioning>
secure 0
host agranig-office.sipwise.com
port 1444
</deviceprovisioning>

Loading…
Cancel
Save