Leo, There is a subtle difference, which makes a difference when the INVITE is forked: BYE would terminate only a specific branch, while CANCEL would abort all branches (and stop the forking proxy from trying other alternatives).
Furthermore, a CANCEL may fail when it looses the RACE (i.e. UAS sends 2xx before CANCEL arrives), a BYE will typically succeed. Consider a concrete scenario with a proxy that forks to an endpoint (which sends 180 ringing) and a voicemail server (which may also send a provisional response). CANCEL would abort the call, BYE (in response to the 180 ringing) would give you voicemail Regards, Jeroen ----- Original Message ----- From: "Bu, Wen Fei (Leo)" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, May 24, 2006 10:30 AM Subject: [Sip-implementors] How could a caller's UA send a BYE for earlydialogs? > Per RFC 3261, 15 Termination a Session: > 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. > > How could a caller's UA send a BYE for early dialogs? > The caller's dialog is transmitted to confirmed state only > after receiving a 2xx for INVITE. If the caller's UA wants > to terminate the session before the final response, a CANCEL > should be sent out instead of a BYE. > > Then in which case will the caller's UA send a BYE for early > dialogs? > > Thanks, > > Leo, Bu > > Plexus Signaling > Lucent Technologies Qingdao R&D > -------------------------------- > Office: +86 532 8861 5376 > email/MSN: [EMAIL PROTECTED] > -------------------------------- > > > _______________________________________________ > Sip-implementors mailing list > [email protected] > https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
