> Suppose UAC receives multiple provisional responses
> before confirmation of the dialog (2xx), and each
> provisional response has a different set of Record-Route
> headers. (Each provisional response is within the same
> early dialog. i.e. same From-tag and To-tag.)
> In this scenario:
> 1. Should UAC update its route set according to latest
> Record-Route headers received?
> 2. Or should UAC retain the route set formed from first
> provisional response?
> It is noted that "final" route set will be built from
> Record-Routes in 2xx response.
In my opinion, the answer to the question should be irrelevant since the
UAS should be providing the same Record-Route within the 101-299 responses
to INVITE (excluding 199 situation mentioned within RFC 6228). However,
the answer is relevant since there are vendors not including the
Record-Route because they ignore the fact that the sent 1xx might create a
dialog because of dropped/reordered responses or UAC forgot dialog (e.g.
because of race condition or unwillingness to maintain an infinite number
of early dialogs).
More specifically for interoperability reasons, I think that the UAS
should interpret RFC 3261 section 12.1.1's MUST statement to include
Record-Route as applying to every 101-198 response to INVITE during call
setup since they don't truly know that it won't create an early dialog.
With that said, RFC 6141 updated some of the rules mentioned within RFC
3261 (although I think just associated within Contact instead of also
Record-Route). I don't recall either RFC having any normative statements
indicating/precluding UAC to allow reliable 1xx's present/missing
Record-Route to update the route set during call setup; however from a
compliance perspective, it is easier to defend not updating the route set.
Sip-implementors mailing list