Subject: RE: [SIP] ACK handling at Stateful Proxies

From: "McMurry, Kathleen" <[email-masked]>
Date: Thu, 10 Aug 2000 13:24:27 +0000

I have some follow up questions about the 487 message handling at a Proxy
that was discussed on this thread.  

You mentioned that upon expiration of the Expires timer, a Proxy should not
send a 408 to the OUA until after the TUA responds with a 487.  This seems
to have a backwards computability problem.  If the TUA does not yet support
the 487, the Proxy will never receive the 487.  What timer should the Proxy
use for waiting for the 487 - a T1 Timer on the INVITE?  Upon expiration of
that timer, does the Proxy resend the INVITE?  If it resent the INVITE to a
TUA that didn't support the 487, the TUA would think this was a new call
request (at least prior to the bis draft).

Is there a new kind of timer to use for this case?   Upon expiration of that
timer, the Proxy would then send the 408.  There is no discussion of this in
the bis draft.

Also, in the case of a parallel proxy does the Proxy wait for all branches
to return the 487, or just the first one?

Thanks,
Kathleen

-----Original Message-----
From: Jo Hornsby [mailto:[email-masked]]
Sent: 28 July, 2000 9:33 AM
To: Jonathan Rosenberg
Cc: Henning Schulzrinne; [email-masked]
Subject: RE: [SIP] ACK handling at Stateful Proxies

> Thats the problem. What I'm arguing is that upon sending cancel, P1
> should NOT at that point return a 408, but rather wait for the
> 487. If everyone implemented bis, it would get this 487 right away
> (modulo packet losses), or get a different final response if that
> response and the CANCEL pass on the wire.

Ah right, I see.  I guess we'll have to kick of another timer,
in case the next downstream stateful-proxy/UA doesn't return a
487.  But that's no biggie.

> > > In the interim, it can happen. In this case, I would recommend
> > > forwarding ACKs that match a 200 OK you've sent upstream.
> > 
> > Even though the UA might not have seen the 200, and is even
> > less likely to as a result of forwarding the ACK?  Also, should
> > this ACK halt the 487 (or whatever) retransmissions?
> 
> Hmm. Actually, there is a way to distinguish these two ACKs. If the UAS
> is
> acking the non-200, the ACK won't contain any Route headers. If the ACK
> is for the 200, it will. So, if the proxy receives an ACK without route
> headers, it knows the ACK is for it. Works so long as UAS inserts
> Contact.

Very sweet.

> Sound right?

Yup -- works for me.

Cheers,

 - Jo.

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

---

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 11 Aug 2000 12:32:18 -0400

"McMurry, Kathleen" wrote:
> use for waiting for the 487 - a T1 Timer on the INVITE? 

I think its value is an implementation decision. There are only two
cases where the 487 won't be received almost immediately:

1. the UAS doesn't send it, and it won't send anything since it got the
CANCEL
2. the UAS sent a different final response already, which passed the
CANCEL on the wire

So, either a final response (487 or otherwise) will come nearly right
away, or nothing at all. It won't come right away because of possible
network packet loss. So, its reasonable to assume something anywhere
between 10 and 32 seconds, which represents a window of reasonable
packet loss.

We should clarify this in the spec, as this timer is needed for
backwards compatibility, as you indicate.

 Upon expiration of
> that timer, does the Proxy resend the INVITE? 

No. What good would that server?

 If it resent the INVITE to a
> request (at least prior to the bis draft).

Upon expiration, it would generate its own 487 or 408 response to the
INVITE.

> to return the 487, or just the first one?

All. Standard forking behavior.

-Jonathan R.
-- 
Jonathan D. Rosenberg                       72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.cs.columbia.edu/~jdrosen         PHONE: (732) 741-7244
http://www.dynamicsoft.com