On Jun 24, 2010 at 12:06, IƱaki Baz Castillo ibc@aliax.net wrote:
2010/6/17 Andrei Pelinescu-Onciul andrei@iptel.org:
Try 3.0 (kamailio or sip-router). You can control how unreplied branches are canceled, see http://sip-router.org/docbook/sip-router/branch/master/modules/tm/tm.html#ca...
A question about case 2:
2 will send and retransmit CANCEL even on unreplied branches, stopping the request retransmissions. This has the same advantages as 1 and also avoids the extra roundtrip in the case of the provisional reply, but it's not RFC 3261 conforming (the RFC allows sending CANCELs only on pending branches).
What about if the UAS replies a 200 before the CANCEL arrives to it? Would TM route the 200 upstream to the UAC? or would TM absorb it?
It will route it to the UAC (tm does not reply anything to the orig. INV when it gets the CANCEL, it still waits for some reply, hopefiully a 487, or timeout).
There is the INV-CANCEL reordered race risk, but it's not so bad. If CANCEL arrives first => discarded and INV replied with 200 OK and 200 OK gets back to the UAC (nothing bad should happen unless the UAC is broken).
Andrei