mirror of https://github.com/sipwise/www_csc.git
parent
3349162e16
commit
9de6e1212a
@ -0,0 +1,86 @@
|
||||
package Sipwise::JitsiProvisioning;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Apache2::Request;
|
||||
use Apache2::RequestRec;
|
||||
use Apache2::RequestIO;
|
||||
use Apache2::Const;
|
||||
use XML::Simple;
|
||||
|
||||
my $config = '/etc/ngcp-www-csc/csc.conf';
|
||||
|
||||
my $cfg = XML::Simple->new()->XMLin($config)
|
||||
or die "Failed to read config file '$config'";
|
||||
|
||||
sub handler {
|
||||
my $r = shift;
|
||||
my $req = Apache2::Request->new($r);
|
||||
$r->content_type('text/plain');
|
||||
|
||||
my $uri = $req->param("user") || '';
|
||||
my ($user, $domain) = split /\@/, $uri;
|
||||
my $pass = $req->param("pass");
|
||||
my $uuid = $req->param("uuid");
|
||||
|
||||
unless(defined $user && defined $domain && defined $pass && defined $uuid) {
|
||||
$r->custom_response(Apache2::Const::NOT_FOUND, "invalid credentials");
|
||||
return Apache2::Const::NOT_FOUND;
|
||||
}
|
||||
|
||||
my $acc = 'accngcp'.$uuid.$user.$domain;
|
||||
$acc =~ s/[^a-zA-Z0-9]//g;
|
||||
my $server_ip = $domain;
|
||||
my $server_port = 5061;
|
||||
my $server_proto = 'TLS';
|
||||
my $xcap_proto = $config->{uaprovisioning}->{xcap}->{proto};
|
||||
my $xcap_ip = $config->{uaprovisioning}->{xcap}->{host};
|
||||
my $xcap_port = $config->{uaprovisioning}->{xcap}->{port};
|
||||
|
||||
my $config = <<"EOF";
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc=$acc
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.ACCOUNT_UID=SIP\:$user\@$domain
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.PROTOCOL_NAME=SIP
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.IS_ACCOUNT_DISABLED=false
|
||||
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.USER_ID=$user\@$domain
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.PASSWORD=$pass
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.DISPLAY_NAME=
|
||||
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.PROXY_AUTO_CONFIG=false
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.PROXY_PORT=$server_port
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.PROXY_ADDRESS=$server_ip
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.SERVER_ADDRESS=$server_ip
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.PREFERRED_TRANSPORT=$server_proto
|
||||
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.VOICEMAIL_CHECK_URI=sip\:voicebox\@$domain
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.VOICEMAIL_URI=
|
||||
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.FORCE_P2P_MODE=false
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.IS_PRESENCE_ENABLED=true
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.XCAP_ENABLE=true
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.XCAP_SERVER_URI=$xcap_proto\://$xcap_ip\:$xcap_port/xcap
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.XCAP_USE_SIP_CREDETIALS=true
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.SUBSCRIPTION_EXPIRATION=3600
|
||||
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.KEEP_ALIVE_INTERVAL=25
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.KEEP_ALIVE_METHOD=OPTIONS
|
||||
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.DTMF_METHOD=AUTO_DTMF
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.DEFAULT_ENCRYPTION=true
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.DEFAULT_SIPZRTP_ATTRIBUTE=true
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.POLLING_PERIOD=30
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.SAVP_OPTION=0
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.SDES_ENABLED=false
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.ACCOUNT_ICON_PATH=resources/images/protocol/sip/sip32x32.png
|
||||
net.java.sip.communicator.impl.protocol.sip.$acc.XIVO_ENABLE=false
|
||||
|
||||
EOF
|
||||
|
||||
$r->print($config);
|
||||
return Apache2::Const::OK;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
Loading…
Reference in new issue