> 
> 
> > If anyone is really into solving this rare scenario, one possible
> > solution is to wait a bit longer after the CANCEL, for example 64*T1
+
> > T4.
> >
> 
>       Unfortunately, this does not really solve the problem. Suppose
we
> have more than one proxy in a chain, each with this timer of 64T1+T4.
> We end up having a problem still (since the first proxy's timer pops,
> then the second, etc). It seems to me that we should set a timer for
> 64T1 that causes a 408 to be forwarded back, and tear down the
> transaction later (maybe another 64T1 later). This way, we can ACK
> the responses that might come in as a result of timers popping
> downstream.
> 


What I meant was that if the retransmission timer is 64*T1 and the
cancel timer is a bit larger (e.g., 64*T1 + T4) then this case would be
resolved because the retransmission would occur before the cancel,
giving enough time for a 408 to propagate. It's possible I missed
something, but I think the difference between the 2 suggestions is the
cancel timer 64*T1+T4 vs 2*64*T1.

> Alternately, we could just ACK all stray responses.

ACKing stray responses is something that could have some issues:
* Not all error responses have contact headers and in that case it's
impossible to know the destination.
* Contact headers may be different than the original request URI which
may cause the ACK of an error response to go through a different path.
* A source of possible DoS attack (?)

Gilad.

_______________________________________________
Sip-implementors mailing list
Sip-implementors@cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to