[reSIProcate] dum problem: CANCEL crosses 200 to INVITE
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