[reSIProcate] dum problem: CANCEL crosses 200 to INVITE

Jason Fischl jason at purplecomm.com
Sun Nov 7 15:22:37 CST 2004


I have a test case that is not behaving correctly:

A INVITE B
B sends 180  (creates a usage U)
A CANCEL B  crosses B sends 200
As soon as A sends the CANCEL, dum removes U and calls onTerminated 
immediately.
When A receives the 200 OK to the CANCEL, it throws it away as a stray 
response. As a consequence it never sends the ACK or a subsequent BYE


I don't think this is how we originally intended this to be implemented.

My proposal:

U should not be terminated and the UAC not notified until the 487 is 
received. It could be a different failure response such as a 408. If A 
sends a CANCEL and subsequently receives a 200 to the INVITE, U should 
know to send a BYE automatically.

In general, I think it is usually a bad idea to call handler functions 
when the usage sends a request.

Jason





More information about the resiprocate-devel mailing list