Hi,
I have a query regarding CANCEL request without branch parameter.
For matching the requests to the existing server transactions RFC 3261
section 17.2.3 says:
If the branch parameter in the top Via header field is not present, or does
not contain the magic cookie, the
following procedures are used. These exist to handle backwards compatibility
with RFC 2543 compliant
implementations.
The INVITE request matches a transaction if the Request-URI, To tag, From
tag, Call-ID, CSeq, and top
Via header field match those of the INVITE request which created the
transaction. In this case, the INVITE
is a retransmission of the original one that created the transaction. The ACK
request matches a transaction
if the Request-URI, From tag, Call-ID, CSeq number (not the method), and top
Via header field match
those of the INVITE request which created the transaction, and the To tag of
the ACK matches the To
tag of the response sent by the server transaction. Matching is done based on
the matching rules defined
for each of those header fields. Inclusion of the tag in the To header field
in the ACK matching process
helps disambiguate ACK for 2xx from ACK for other responses at a proxy, which
may have forwarded
both responses (This can occur in unusual conditions. Specifically, when a
proxy forked a request, and then
crashes, the responses may be delivered to another proxy, which might end up
forwarding multiple responses
upstream). An ACK request that matches an INVITE transaction matched by a
previous ACK is considered
a retransmission of that previous ACK.
For all other request methods, a request is matched to a transaction if the
Request-URI, To tag, From tag,
Call-ID, CSeq (including the method), and top Via header field match those of
the request that created the
transaction. Matching is done based on the matching rules defined for each of
those header fields. When a
non-INVITE request matches an existing transaction, it is a retransmission of
the request that created that
transaction
Also RFC 3261 says that the CANCEL will contain the same branch parameter as
the request it is trying to cancel.
Now my query is:
1) Above description says that the CANCEL request (if no branch parameter is
present) is matched to a transaction (say INVITE txn) if top Via header field
match that of the request. Does this mean branch parameter in both the requests
are not matched (as the description is for requests without branch param)??
2) Is it valid to match a CANCEL request without branch parameter to an
INVITE request with branch parameter when rest of the above headers (RFC3261
section 17.2.3 description) are identical??
Thanks,
Praveen Dandin
---------------------------------
Bring your gang together. Do your thing. Find your favourite Yahoo! Group.
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors