Subject: [Sip] Question about ACK for None-200 Response

From: "Chen, Xin (Xin)" <[email-masked]>
Date: Tue, 30 Oct 2001 12:03:11 -0000

Bis-05 says: "The ACK request MUST NOT contain any Route headers." 

In line 2467, Bis 05 says:  For a stateless proxy receiveing CANCEL and
non-Routed ACK requests, it  MUST generate the same choice as their
associated INVITE. 

Bis-05 also says: "The ACK request MUST NOT contain any Route headers." 

I think these two pargraphes are conflicted each other. How can a stateless
proxy generate the same choice as the INVITE for a non-Routed ACK if the ACK
doesn't have a route header? A INVITE will have a route header which is used
by proxy to route the request, but without the route header, when the
stateless proxy gets that ACK, it will be very confused about where to
forward this. 

Could anyone point out what I missed here?

Thanks

Xin Chen

Lucent Technologies
Tel: +44 1793 883137
Mobile: +44 7799 034668

_______________________________________________
Sip mailing list  http://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: Vijay Gurbani <[email-masked]>
Date: Tue, 30 Oct 2001 08:39:08 -0600

> Bis-05 also says: "The ACK request MUST NOT contain any Route headers."

The section you are referring the above quote from is Section 17.1.1.3,
which talks about an ACK to a non-2xx response to an INVITE.  These ACKs are 
hop by hop, and do NOT contain Route headers.  ACKs for 2xx responses to
an INVITE are end to end and their processing is outlined elsewhere in 
-05bis (I am still getting familiar with it -- started the process of "un"-
burning -04bis sections from my brain).  These ACKs can (and indeed MUST if 
some SIP entity R-R'ed) contain a Route.

> I think these two pargraphes are conflicted each other. How can a 
> stateless proxy generate the same choice as the INVITE for a non-Routed 
> ACK if the ACK doesn't have a route header? A INVITE will have a route 
> header which is used by proxy to route the request, but without the route 
> header, when the stateless proxy gets that ACK, it will be very confused 
> about where to forward this.

An INVITE will not always have a Route header; it will only do so if one
of the SIP entities in the signaling path R-R'ed.  The question boils down
to where, in the absence of a Route, does a stateless proxy send an ACK or
CANCEL.  ACK and CANCEL are really pseudo-requests since they depend on 
another transaction, namely INVITE, to do their job.  As such, they should 
be routed to the same host that the original INVITE went to.  A stateless 
proxy can do so by using the modulo N hash of the Call-ID value as the 
uniform random number while weighing the results from a DNS SRV lookup.  See 
section 24 in -05 bis; towards the end of the section for more information.

Regards,

- vijay
-- 
Vijay K. Gurbani  vkg@{lucent.com,research.bell-labs.com,acm.org}
Internet Software and eServices Group 
Lucent Technologies/Bell Labs Innovations, 2000 Lucent Lane, Rm 6G-440
Naperville, Illinois 60566     Voice: +1 630 224 0216   Fax: +1 630 713 0184