> From: Tamar Barzuza > > As depicted by the 'INVITE server transaction' state-machine > (Figure 7), > the invite server transaction MUST move to the 'Terminated' state upon > sending 2xx. Moreover, section 17.2.1 instructs that "once the > transaction is in the 'Terminated' state, it MUST be destroyed > immediately".
The confusion arises because the description in section 17.2.1 applies only to the "transaction state" layer of the processor. Below that layer is the "message state" layer. It is the message state layer that is responsible for retransmitting responses to duplicate requests. So when the first INVITE arrives and the 2xx is sent, the message state layer remembers that the INVITE has a response of 2xx. The transaction layer above it goes to the Terminated state immediately, but the message state layer must remember the information for the maximum retransmission interval. When the second INVITE arrives, the message state layer determines that it is a duplicate request and sends an exact copy of the 2xx response. It does not pass the INVITE to the transaction state layer, and so no new transaction is created. How else would you expect it to work? Dale
_______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
