On 2/9/16 8:58 PM, Alex Balashov wrote:
Hi,

1. I set up a call between two UAs through a proxy:

    UAC A ----> Proxy P1 -----> UAS B

2. P1 inserts a Record-Route header indicating that sequential requests
should be directed through it.

3. UAS B does not follow Record-Route properly and, upon hanging up,
sends a BYE directly to UAC A's Contact URI (remote target), not to P1.

Interestingly enough, this BYE includes the Route set constructed from
the intervening Record-Route headers, but the BYE is sent to UAC A's
Contact directly on the network and transport layer.

4. Clearly, UAS B behaving improperly, but in all known cases, over a
variety of UA implementations, UAC A accepts this BYE and the endpoints
end the dialog properly -- all unbeknownst to P1.

My reading of RFC 3261 doesn't give me clarity as to whether it is
proper for a UA to accept a sequential request that otherwise matches a
known dialog but which does not originate from an intermediate proxy
known by the UA to be in the route set for the dialog.

Assuming no properties of firewall or network preclude doing an end-run
around the proxy, is this legal?

Yes, this is legal.

If you examine section 8 of 3261 you will find that UAS processing of incoming requests doesn't involve examining Route headers. They will simply be ignored.

BUT, if B has multiple roles, and might sometimes be a proxy and other times be a UA, then it gets fuzzier. As a proxy it would examine the Route headers, and probably forward the request to P1. But as a UAS it would accept the request. There is no guidance on which processing takes precedence.

The bigger question is *why* this happened. Is it possible that there is some screw up in handling strict routing vs. loose routing?

        Thanks,
        Paul

_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to