El Wednesday 05 March 2008 17:28:26 Andreas Granig escribió:
Hi all,
I've a Cisco PGW interconnecting with an OpenSER server. The INVITE is
sent to OpenSER, which does some record-routing via some different hops
and then sends back the 180 from the called party.
If the calling party now cancels the call, the PGW tries to loose-route
the CANCEL by adding the Route header to the CANCEL and altering the
R-URI, which is rejected by my OpenSER since I don't allow initial
loose-routing.
RFC 3261:
9.1 Client Behavior
[...]
The following procedures are used to construct a CANCEL 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 request being cancelled contains a Route header field, the
CANCEL request MUST include that Route header field's values.
This is needed so that stateless proxies are able to route CANCEL
requests properly.
So the question is: is it valid for a CANCEL to carry
a Route header
which wasn't available in the INVITE? §9.1 of RFC3261 says it MUST
contain the Route header if it was present in the request being
cancelled. What about the other way around?
Yes, not sure about the reverse case (INVITE with no "Route" header but CANCEL
containing it). Anyway, in your case the RURI is modified my Cisco PGW so it
violates the CANCEL.
Regards.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es