[SIPForum-techwg] Route header in ACK to a negative response
Dale Worley
dworley at pingtel.com
Thu Dec 13 12:06:07 EST 2007
On Thu, 2007-12-13 at 10:58 -0500, S S wrote:
> I have a question regarding the inclusion of a Route header in the ACK
> sent after receiving a negative response.
>
> This is the scenario:
>
> Alice Proxy 1 Proxy 2 Bob
> | | | |
>
> | INVITE F1 | | |
> |--------------->| INVITE F2 | |
> | 100 F3 |--------------->| INVITE F4 |
> |<---------------| 100 F5 |--------------->|
>
> | |<---------------| |
> | | | 486 F6 |
> | | |<---------------|
> | | | ACK F7 |
>
> | | 486 F8 |--------------->|
> | |<---------------| |
> | | ACK F9 | |
> | 486 F10 |--------------->| |
>
> |<---------------| | |
> | ACK F11 | | |
> |--------------->| | |
> | | | |
>
>
> The above call flow is from RFC 3665 Section 3.9. Here, the original
> Invite (F1) is sent with a Route header. After the '486 Busy Here'
> response is returned to Alice, the corresponding ACK (F11) does not
> contain the Route header.
>
> This behavior is in conflict with RFC 3262 Section 17.1.1.3
> (Construction of ACK) which specifies that:
> If the INVITE request whose response is being acknowledged had Route
>
> header fields, those header fields MUST appear in the ACK. This is
> to ensure that the ACK can be routed properly through any downstream
> stateless proxies.
>
> What should be the expected behavior of the SIP client, Alice, in such
> a scenario? Should the ACK contain the Route header or should it be
> left out. What is the reasoning behind either course of action?
As you've pointed out, the ACK is incorrect -- Alice should have
included the Route header in the ACK. It appears to be an error in RFC
3665.
As for the reasoning, the rule that ACKs of failure responses must
duplicate the headers of the corresponding INVITE is that the ACK will
be routed by the same "out of dialog" methods that routed the INVITE.
E.g., in this case, the reason that INVITE F1 is sent to Proxy 1 (rather
than to Proxy 2, which is what the RFC 3263 process would have selected
for the request-URI sip:bob at biloxi.example.com) is the Route header. So
to make the ACK follow the same path, it must have the same Route
header.
Dale
More information about the techwg
mailing list