[OpenSER-Devel] question on t_relay on CANCEL
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Fri Feb 8 10:46:32 CET 2008
Hi Juha,
In stateful mode, having Route header in cancel make no sense (as the
transaction takes care to route it as the invite).
But we need to take into consideration that not all proxies on the way
are stateful, and we might have also stateless server which cannot map
the CANCEL over INVITE in order to send it to the same destination.
In this case, the routing logic of a stateless server MUST route CANCELs
exactly the same as INVITEs (even if they do it independent, with no
relation between). So, in order to do so, the CANCEL needs to care all
the routing information tht were also available for INVITE - if the
INVITE had ROUTE, CANCEL must also have.
Regards,
Bogdan
Juha Heinanen wrote:
> Bogdan-Andrei Iancu writes:
>
> > CANCEL is only hop by hop (according to RFC 3261), so Route has no
> > sense. If present, it will be ignore as the RFC clearly states that
> > CANCEL must be sent to the same destination, with same VIA and RURI, as
> > the INVITE it cancels.
>
> this is what i think too, but i didn't find rfc 3261 very explicit about
> route header(s) in CANCEL. 9.1 says:
>
> If the request being cancelled contains a Route header field, the CANCEL
> request MUST include that Route header field's values.
>
> it does not say what should happen if invite doesn't include (pre-loaded)
> route header, but, for example, 180 received by UAC had Record-Route
> headers.
>
> also, i haven't found in rfc 3261 a clear statement if CANCEL sent after
> 180, for example, is considered an in-dialog request or an initial
> request. at that point the dialog has been established already.
>
> anyway, this question resulted when i saw that a Cisco UA to included in
> CANCEL a Route header based on R-R header it received in 180. it is
> good if openser ignores such Route headers when it processes a CANCEL
> that cancels an existing transaction.
>
> -- juha
>
>
>
>
More information about the Devel
mailing list