Jan Janak writes:
Actually I think that you should apply exactly
the same logic as when
processing the INVITE. CANCEL can be also sent end-to-end and in this
case the user location lookup would be necessary to route it to the
callee.
jan,
under what circumstances cancel is sent end-to-end? my understanding
from rfc3261 is that if a proxy has STATEFULLY forwarded an invite, the
corresponding cancel is always a hop-by-hop request. if invite was
forwarded statelessly, then also cancel must be forwarded statelessly in
the same way as invite, because there is no response context for it.
so, if ser.cfg forwards all invites statefully, t_relay can be called on
cancels without any request uri rewriting.
SER does hop-by-hop CANCEL propagation. If the corresponding INVITE was
forwarded statefully, TM will forward the CANCEL to exactly the same
RURI as the INVITE disregarding completely the original CANCEL RURI - so
in this case you have just to relay the CANCEL and TM will take care to
send it to the right location.
if you have stateless INVITEs, you have to apply to CANCEL the same set
of modifications as for INVITE.
bogdan