Hello Liviu,
I want file report on it. I have wireshark screenshot which shows
exact issue.
Initial INVITE lookup is forked to all registered destinations, but
ACK no.
On ACK in dialog applied snippet like this
route[WITHINDLG] {
if(has_totag()) {
if(topology_hiding_match()) {
if(is_method("ACK") && $DLG_did!=NULL &&
$DLG_did!="<null") {
xlog("[IN_DIALOG] [$rm] in dialog ACK with
dialog ID => [$DLG_did]\n");
setflag("FLAG_ACK_IN_DIALOG");
}
route(RELAY);
exit;
} else {
...
}
}
route[RELAY] {
} else if(isflagset("FLAG_ACK_IN_DIALOG")) {
$ru = $tu;
route(CONTACT_LOOKUP);
}
if(is_method("ACK") &&
$avp(ua_orig_trns)==NULL) {
# TCP applied
$var(src_socket) = "tcp" + ":" +
$avp(req_ip) + ":" + "5084";
}
$socket_out = $var(src_socket);
xlog("[RELAY] [$rm] sending call ~> $ru over $socket_out
for $ci\n");
if(!t_relay()) {
send_reply(500, "Internal Error");
exit;
}
exit;
}
volga629
On 3/24/21 1:14 PM, volga629 via Users
wrote:
Hello Liviu,
May I send few screen shot of sip flow for this call ?
volga629.
On 3/24/21 8:57 AM, volga629 via
Users wrote:
Hello Liviu,
We use topology hiding edge proxy for end point.
Here are example
of contact header
Contact: <sip:112%40domain.com@10.30.100.61:5060>
that call is inbound from PBX to opensips and opensips forward
to end point.
if(is_method("INVITE|UPDATE|ACK|BYE|CANCEL|NOTIFY|INFO|OPTIONS")
&& $rU=~"%40") {
xlog("[RELAY] [$rm] testing original
[$ru]\n");
route(CONTACT_LOOKUP);
# We want exclude ACK rewrite toward Bria Push
Server
} else if(!isflagset("FLAG_BRIA_PUSH")) {
xlog("[RELAY] [$rm] didn't match R-URI
schema [$ru] correcting\n");
$ru = "sip:" + $tU + "%40" + $td + "@" +
$td;
route(CONTACT_LOOKUP);
}
volga629
On 3/24/21 5:04 AM, Liviu Chircu
wrote:
On 24.03.2021 05:04, volga629 via
Users wrote:
But then arrive the ACK
and that where start the problems lookup only find
first contact and not second.
Hi Volga,
So you're doing a lookup() on the
ACK Request-URI? Typically, the ACK R-URI will contain a
contact header, which is not meant to be searchable. I'm
surprised you even get 1 result, I would expect such a
lookup() to return -1.
Can you explain what you are trying
to achieve? Why not just route the ACK using
loose_route(), just like all other mid-dialog requests,
and be done with it?
--
Liviu Chircu
www.twitter.com/liviuchircu | www.opensips-solutions.com
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
|
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users