On 11/24/2010 10:36 AM, IƱaki Baz Castillo wrote:
It works as I expected:
The CANCEL arrives to Kamailio (1.5) with Totag (bug in UAC).
Kamailio does t_relay() for the CANCEL without checking
loose-routing or Totag (CANCEL threatment is now above loose-routing section).
- Kamailio replies 200 to the CANCEL and generates its own CANCEL (of
course with no Totag).
It seems to me that this should not work here if Kamailio were being properly strict.
As per RFC 3261 Section 9.1, "Client Behavior" in "Canceling a Request:
The Request-URI, Call-ID, To, the numeric part of CSeq, and From header fields in the CANCEL request MUST be identical to those in the request being cancelled, including tags.
If the initial INVITE did not have a To tag (which, it of course, doesn't), neither should the CANCEL. Otherwise, this CANCEL should not be matched.