Subject: [Sipping] Bug in FSM (Finite State Machine) in RFC 4235 "An INVITE-Initiated Dialog Event Package for SIP"

From: "Iñaki Baz Castillo" <[email-masked]>
Date: Tue, 16 Sep 2008 17:32:37 +0200

Hi, there is a bug in RFC 4235 "An INVITE-Initiated Dialog Event
Package for SIP".

Section 3.7.1 (The Dialog State Machine) and the Figure 3 forget the
case in which a UAC sends a BYE during an early-dialog as RFC3261
allows:

  RFC 3261:
  ----------------
  15 Terminating a Session
  When a BYE is received on a dialog, any session
  associated with that dialog SHOULD terminate. A UA MUST NOT send a
  BYE outside of a dialog. The caller's UA MAY send a BYE for either
  confirmed or early dialogs, and the callee's UA MAY send a BYE on
  confirmed dialogs, but MUST NOT send a BYE on early dialogs.
  ----------------

So it should be a new row in Figure 3 from "Early" to "Terminate"
labeled "local-bye/remote-bye". It would be "local-bye" in case of UAC
and "remote-bye" in case of UAS.

Section 3.7.1 says:
 ----------------------------
 [...]
 non-2xx response for any other reason, all FSMs spawned from that
 INVITE transition to the Terminated state with the event "rejected".
 [...]
 If the UAS receives a CANCEL
 request and then generates a 487 response to the INVITE (which can
 occur in the Proceeding and Early states), the FSM transitions to the
 Terminated state with the event "cancelled".
 ----------------------------

It should say:
 ----------------------------
 [...]
 non-2xx response for any other reason, all FSMs spawned from that
 INVITE transition to the Terminated state with the event "rejected".
 During Early state the FSM transitions to the Terminate state if the
 UAC sends a BYE (corresponding to "local-bye" event).
 [...]
 If the UAS receives a CANCEL
 request and then generates a 487 response to the INVITE (which can
 occur in the Proceeding and Early states), the FSM transitions to the
 Terminated state with the event "cancelled".
 If the UAS receives a BYE request during the Early state the FSM
 transitions to the Terminated state with the event "remote-bye".
 ----------------------------

The potential problem could occur, for example, if a UA receives a BYE
during Early State, and generates an internal event "remote-bye". The
FSM, according to current section 3.76.1, wouldn't transit to
Terminate state and could leave in an unknown state.

--
Iñaki Baz Castillo
<[email-masked]>
_______________________________________________
Sipping mailing list  https://www.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP