At 15:58 26/02/2007, Klaus Darilion wrote:
FYI: This is the pragmatic approach how openser users handle the problem:
- drop the CANCEL if there is no corresponding INVITE transaction. The UAC must retransmit the CANCEL and meanwhile there should be the INVITE transaction. (since 1.0)
if ( is_method("CANCEL") && !t_check_trans() ) { # CANCEL without matching INVITE transaction, ignore! # May happen if the INVITE is slower than the CANCEL. # Ignore the CANCEL, as the client will retransmit it, and maybe # the INVITE transaction is already created for the next CANCEL xlog("L_WARN","$ci CANCEL without matching transaction ... ignore\n"); exit; }
which does not appear really reboot-safe to me. What it can lead to that ser reboot affects pending calls in that cancels are never forwarded and ringing phones will never stop ringing -- not very pleasant indeed, is it.
-jiri
-- Jiri Kuthan http://iptel.org/~jiri/