From: "Jack W. Lix" <[EMAIL PROTECTED]> Assume ua0 calls ua1 (dialog1) and then calls ua2 (dialog2). Then ua0 puts both calls on hold. Finally ua0 sends a REFER to ua2 on dialog 2. It refers to ua1 and includes a valid replaces tag indicating dialog1.
After completion of the transfer, ua0 receives a BYE on dialog1. ua0 then sends BYE on dialog2 to ua2 but gets a 481 response. My understanding is that dialog2 was not terminated by the REFER even if it has a REPLACES in it. That is correct, and if ua0 waited indefinitely, it must eventually see a BYE from ua2. But ua0 did not wait indefinitely, it sent a BYE. But there is no guarantee that ua2 has not already sent a BYE which has been delayed or lost in the network, or the BYE is still working its way down ua2's stack. So ua2 should not be surprised to see a 481. And in any case, if a UA attempts to destroy a dialog and discovers that the other UA doesn't think the dialog exists, it should consider that a success, because the post-condition for BYE is "the dialog no longer exists". Dale _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
