Sorry for noize from my side
I just cant fully understand dependency:

I understand that actually route header shoud not be ingnored because it is shows way for the in-dialog packet
That is fine.

Just regarding behaivor of the FreeSwitch and other UACs

For now I have a next picture

When my provider sends me 200 - it contains as Record-Route: 1.1.1.1:5060 which contains last interface i sent INVITE to
Also it contains Contact: 1.1.1.1:5061

So when UAC receives this call without my proxy between provider and UAC it sends ACK to Contact URI (Ignoring Route header that actually also exists in the Contact field) sent at the 200 according rfc3261 -12.1.2 (that I shared above)

But when it sends via my proxy:

UAC receives ACK with 2 Route headers (that is right) and sends it to the topmost Route (myProxy) then my proxy as normal proxy resends it to the provider using second Route (that topmost for now after myProxy removes itself from Route set)

But here provider says me - you should use Contact field to reach target even from myProxy.

So in this case - At the behaivor of UAC -> Provider  it looks matched 12.1.2 but I still cant understand why in this case it ignores Route header at the ACK that actually exists



2018-07-02 9:02 GMT+03:00 Alex Balashov <abalashov@evaristesys.com>:
On Mon, Jul 02, 2018 at 09:00:02AM +0300, Yuriy Gorlichenko wrote:

> yep I understand that.
> I just see that in fact ACK soudl ignore Route header if it... Single?

What? No.

There are two kinds of ACKs: hop-by-hop ACKs, which acknowledge negative
final replies on every branch, and end-to-end ACKs, which are handled
according to the rules for in-dialog requests. An ACK for a 2xx reply to
an INVITE is going to be an in-dialog request, and under no
circumstances should any Route headers be ignored unless they refer to
the very proxy through which they are traversing. In that case, they
should be stripped off before continuing with the next-hop Route. This
is the standard loose-routing procedure labouriously articulated in the
RFC, and implemented by loose_route().

--
Alex Balashov | Principal | Evariste Systems LLC

Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users