[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sip-implementors
Subject:    Re: [Sip-implementors] CANCEL - 200 IINVITE crossover.
From:       "Rockson Li (zhengyli)" <zhengyli () cisco ! com>
Date:       2008-12-23 3:36:38
Message-ID: F86B91A10B14744E88408E80B8A30EF303FEC610 () xmb-hkg-412 ! apac ! cisco ! com
[Download RAW message or body]

I agree with Paul here, 
Actually the 200(CANCEL) just means the proxy got the CANCEL,
It does not mean the request is cancelled or proxy would be ensure the req being \
cancelled. Normally, Proxy would send the CANCEL downstream, however, since there's \
no provisional resp, Proxy has no means to complete the task.
UAC should be prepared to get the 200(INVITE) and reacts accordingly.

Thanks
-Rockson 

-----Original Message-----
From: sip-implementors-bounces@lists.cs.columbia.edu \
[mailto:sip-implementors-bounces@lists.cs.columbia.edu] On Behalf Of Paul Kyzivat \
                (pkyzivat)
Sent: Tuesday, December 23, 2008 9:24 AM
To: Iņaki Baz Castillo
Cc: sip-implementors@lists.cs.columbia.edu
Subject: Re: [Sip-implementors] CANCEL - 200 IINVITE crossover.

I don't understand why stateless forwarding has been mentioned in the context of this \
question. AFAIK it has no relevance.

If we assume that the pcscf in the question is a transaction stateful proxy (and I'm \
pretty certain that any IMS implementation would be), then when the 200 INVITE is \
received, there *will* be a matching transaction for it.

The original responder is correct - there is no problem here at all. The UAC must be \
prepared to receive a 200 even though it sent a CANCEL, and it then may do whatever \
it wants (after sending the ACK) - it can keep the call, send a  BYE to the call, ...

	Thanks,
	Paul

Iņaki Baz Castillo wrote:
> 2008/12/22 Maxim Sobolev <sobomax@sippysoft.com>:
> 
> > > Alto consider the following draft:
> > > http://tools.ietf.org/html/draft-sparks-sip-invfix-02
> > > 
> > > It states that a transaction statefull proxy mustn't forward a 200 
> > > stateless, so in your case the 200 OK wouldn't arrive to the UAC (if 
> > > the proxy honors the above draft).
> > No, I believe your reading is incorrect. If proxy somehow absorbs 200 
> > OK so that it won't arrive to UAC in such situation then the dialog 
> > would remain in half-connected state - with UAS retransmitting 200 OK 
> > waiting for E2E ACK (proxy can't generate E2E ACK) and UAC still 
> > waiting for the final negative or positive response to its INVITE 
> > transaction. Eventually UAS would timeout and probably generate BYE 
> > in a desperate attempt to tear down the dialog, but since UAC has not 
> > received final response to INVITE it would reject BYE as out-of-order 
> > and continue waiting indefinitely (probably until transaction 
> > expiration timer hits). This would make things even more broken than they were in \
> > the example above.
> 
> Ok, so a proxy implementing draft-sparks-sip-invfix-02 just can drop a 
> stateless 200 OK for an INVITE in case it knows nothing about that 
> transaction. In the case above the proxy does know about the INVITE 
> transaction since it still has no final reply for it (even if the 
> proxy has received a CANCEL from upstream).
> 
> Thanks for pointing it.
> 
> 
> 
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic