On Mon, 2008-12-29 at 15:22 -0600, Greg Burrow wrote: > RFC 5407 appendix A makes it clear that sending a BYE in the early media > state is allowed but not recommended. However, what about sending BYE in > the Confirmed/Moratorium state? > We are seeing a UAC reject the answer SDP from a received 200 message by > sending a BYE before sending an ACK to the 200.
As a general rule, every transaction must be completed independently of every other transaction. In this case there are 3 transactions: INVITE -- 200, ACK (one-way, and paired with the INVITE transaction), and BYE -- 200. The UAC is not completing the ACK transaction, so it is in error there. Receipt of BYE (or any other request) can never have any effect on the requirement to complete the INVITE and ACK transactions. Looking at RFC 5407, "Figure 1: DSM for INVITE dialog usage (caller)", we see that when the UAC receives the 2xx, it should transition into Confirmed/Moratorium, and then immediately send ACK and transition into Confirmed/Established. Upon receiving the BYE, it should then transition to Terminated/Mortal (and send 2xx for the BYE, which is not shown in the figure). In Terminated/Mortal, if it receives 2xx for the INVITE, it must send ACK. But in your case, the UAC is not sending an ACK when it receives 2xx for INVITE. Looking at the figure, it appears that Confirmed/Moratorium is allowed to receive and act on BYE. This seems to be an error to me, but even if this action was permitted, the UAC would be then be in state Terminated/Mortal, and be required to respond ACK to 2xx for the INVITE. Dale _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
