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

Reply via email to