2010/6/21 Alex Balashov abalashov@evaristesys.com:
Thank you for the clarification.
This is what I thought, but I wondered because philosophically it seems to slightly conflict with the requirement that the proxy - even a stateful proxy - forward what it receives more or less straightforwardly
Well, the proxy did already forward the INVITE request, but such action implies an outgoing transaction generated by the proxy, with same rules as any client transaction, including the CANCEL processing (no CANCEL can be sent if no 1xx has been received for the outgoing transaction).
Also note that CANCEL is hop-by-hop (in stateful mode), this is: a CANCEL is not relayed/forwarded by a proxy, but consumed/accepted by the proxy (so it immediately replies 200) and then the proxy must terminate *its* pending outgoing transactions (which would involve *generating* CANCEL requests for those transactions which already replied a 1xx).