From 160dfeba851c7f1c97e2a48baf9142fa6960cabd Mon Sep 17 00:00:00 2001 From: Kirill Solomko Date: Fri, 4 May 2018 14:18:13 +0200 Subject: [PATCH] TT#36061 CallRouting: fix peer selection * add missing 'sip:' prefix for caller_uri/callee_uri containing the domain part * caller_domain is used in callee_uri if callee_domain is not specified Change-Id: Iacf0e29f6ec5c2d97aad5918bb4afef67e4e0e45 (cherry picked from commit 92cc608a6215bee81dab06ad7be3d2f0c24b7456) --- lib/NGCP/Panel/Controller/CallRouting.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/NGCP/Panel/Controller/CallRouting.pm b/lib/NGCP/Panel/Controller/CallRouting.pm index c0590cc54a..d9d998385e 100644 --- a/lib/NGCP/Panel/Controller/CallRouting.pm +++ b/lib/NGCP/Panel/Controller/CallRouting.pm @@ -89,7 +89,7 @@ sub callroutingverify :Chained('/') :PathPart('callroutingverify') :Args(0) { $data->{caller_peer_host} = $data->{caller_peer}->voip_peer_hosts->first; } else { my $caller_uri = $data->{caller_domain} - ? $data->{caller}.'@'.$data->{caller_domain} + ? 'sip:'.$data->{caller}.'@'.$data->{caller_domain} : $data->{caller}; push @log, sprintf "no caller subscriber/peer was specified, using subscriber lookup based on caller %s", $caller_uri; @@ -101,7 +101,7 @@ sub callroutingverify :Chained('/') :PathPart('callroutingverify') :Args(0) { } if ($data->{caller_subscriber}) { $data->{caller_subscriber_id} = $data->{caller_subscriber}->id; - my $caller_uri = sprintf '%s@%s', + my $caller_uri = sprintf 'sip:%s@%s', $data->{caller_subscriber}->username, $data->{caller_subscriber}->domain->domain; $data->{caller_domain} = $data->{caller_subscriber}->domain->domain; @@ -327,9 +327,11 @@ sub callroutingverify :Chained('/') :PathPart('callroutingverify') :Args(0) { $sub, $data->{callee_subscriber_id}; } else { foreach my $type (qw(caller callee)) { - $data->{$type.'_uri'} = $data->{$type.'_in'}; + $data->{$type.'_uri'} = 'sip:'.$data->{$type.'_in'}; if ($data->{$type.'_domain'}) { $data->{$type.'_uri'} .= '@' . $data->{$type.'_domain'}; + } elsif ($type eq 'callee' && $data->{caller_domain}) { + $data->{$type.'_uri'} .= '@' . $data->{caller_domain}; } } push @log,