[OpenSER-Devel] question on t_relay on CANCEL
Juha Heinanen
jh at tutpro.com
Fri Feb 8 20:54:51 CET 2008
Dan Pascu writes:
> Not necessarily. You may have parallel forking and get multiple 180. Until
> you get a 200 OK, no dialog is really established.
from section 12.1 of rfc3261:
Within this specification, only 2xx and 101-199 responses with a To tag,
where the request was INVITE, will establish a dialog. A dialog
established by a non-final response to a request is in the ÈearlyÉ state
and it is called an early dialog.
thus, a single 180, for example, does establish a dialog, which is in
early state. looks like this creates confusion to UA implementers, who
consider cancel after 180 as an in-dialog message and accordingly, add
route header to it based on received r-r.
i don't have experience on what would happen when such an UA receives
180 from more than one destination, i.e., would it send more cancels.
> I've even seen devices
> that send a CANCEL after a 200 OK, but before the ACK, as they consider
> that the dialog is not established until confirmed by the ACK. Which
> makes sense because is cleaner to cancel a call setup with a CANCEL
> before it is confirmed, than to send an ACK and then a BYE (for example
> if I do not want to accept the session because the 200 OK contains
> something I do not agree on or is badly formatted, then I don't want to
> confirm the session with an ACK and then close it with a BYE).
many things would make sense, but they are not conforming to rfc3261.
-- juha
More information about the Devel
mailing list