2011/6/19 Alex Balashov abalashov@evaristesys.com:
Well, here's what 3261 12.1.1 ("UAS Behavior") says on the subject:
When a UAS responds to a request with a response that establishes a dialog (such as a 2xx to INVITE), the UAS MUST copy all Record-Route header field values from the request into the response (including the URIs, URI parameters, and any Record-Route header field parameters, whether they are known or unknown to the UAS) and MUST maintain the order of those values.
Since a 183 does not establish a dialog, I suppose that means there's no need for the UAS to copy the RR headers.
Wrong, 183 *does* establish a dialog. An early-dialog in fact, but that doesn't matter. As said above, 1XX response with require 100rel is a reliable response so it requires Contact header and mirroring Record-Route headers.
On the other hand, take a look at page 7 of RFC 3262:
http://www.ietf.org/rfc/rfc3262.txt
It seems to say that Record-Route goes into "2xx,18x", although offers no elaboration on this point. Whether this constitutes an amendment to the 3261 view I do not know.
It says:
Header field where PRACK __________________________________________ Record-Route R o Record-Route 2xx,18x o
Of course Record-Route is optional in request (INVITE) and 18X or 2XX responses, as the proxy could decide not to do record-routing.