TT#2370 add internal interface for incoming sms

Change-Id: I8e994e9bde930e2756b7492afcb7760181fac858
changes/15/9715/2
Gerhard Jungwirth 9 years ago committed by Andreas Granig
parent d984d92db0
commit 6a23a76f8d

@ -0,0 +1,80 @@
package NGCP::Panel::Controller::InternalSms;
use NGCP::Panel::Utils::Generic qw(:all);
use Sipwise::Base;
use parent 'Catalyst::Controller';
#sub auto :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) {
sub auto {
my ($self, $c) = @_;
$c->log->debug(__PACKAGE__ . '::auto');
#NGCP::Panel::Utils::Navigation::check_redirect_chain(c => $c);
return 1;
}
sub list :Chained('/') :PathPart('internalsms') :CaptureArgs(0) {
# my ($self, $c) = @_;
return;
}
sub receive :Chained('list') :PathPart('receive') :Args(0) {
my ($self, $c) = @_;
my $from = $c->req->params->{from} // "";
my $to = $c->req->params->{to} // "";
my $text = $c->req->params->{text} // "";
my $token = $c->req->params->{auth_token} // "";
unless ($from && $to && $text && $token) {
$c->log->error("Missing one param of: from ($from), to ($to), text ($text), auth_token ($token).");
$c->detach('/denied_page');
}
unless ($c->config->{sms}{api_token} && $c->config->{sms}{api_token} eq $token) {
$c->log->error("Token mismatch (sent: $token).");
$c->detach('/denied_page');
}
$to =~ s/^\+//;
$from =~ s/^\+//;
try {
my $schema = $c->model('DB');
$schema->txn_do(sub {
my $prov_dbalias = $c->model('DB')->resultset('voip_dbaliases')
->search_rs({
'me.username' => $to,
},{
join => { subscriber => 'voip_subscriber' }
})->first;
unless ($prov_dbalias) {
$c->log->warn("No corresponding subscriber for incoming number ($to) found.");
$c->log->debug("from: $from, to: $to, text: $text");
die "no_subscriber_found";
}
my $created_item = $c->model('DB')->resultset('sms_journal')->create({
subscriber_id => $prov_dbalias->subscriber_id,
direction => "in",
caller => $from,
callee => $to,
text => $text,
});
});
} catch($e) {
$c->log->error("Failed to store received SMS message.");
$c->log->debug($e);
}
$c->response->code(200);
$c->response->body("");
return;
}
__PACKAGE__->meta->make_immutable;
1;
# vim: set tabstop=4 expandtab:

@ -57,6 +57,7 @@ sub auto :Private {
or $c->req->uri->path =~ m|^/pbx/directory/.+|
or $c->req->uri->path =~ m|^/recoverwebpassword/?$|
or $c->req->uri->path =~ m|^/resetwebpassword/?$|
or $c->req->uri->path =~ m|^/internalsms/receive/?$|
) {
$c->log->debug("*** Root::auto skip authn, grant access to " . $c->request->path);
return 1;

@ -394,4 +394,5 @@ log4perl.appender.Default.layout.ConversionPattern=%d{ISO8601} [%p] [%F +%L] %m{
path /cgi-bin/sendsms
user unset
pass unset
api_token abc123
</sms>

Loading…
Cancel
Save