Juha Heinanen wrote:
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