SIP协议简氟氯溴碘
介(六)之结束会话(BYE)
BYE请求⽤于终结指定的会话或者尝试建⽴的会话。在这⾥,特定的会话是⼀个和与之相对的对话的对⽅UA。当在对话中接收到了⼀个BYE,任何与该对话相关的会话都应当终⽌。UA禁⽌在对话外发送BYE请求。请求⽅UA可以在已经建⽴好的对话或者早期对话中发起BYE请求;被叫⽅只能在建⽴好的对话中发起BYE请求,不能在早期对话中发起BYE请求。
不过,在⼀个建⽴好的对话中,被叫⽅的UA不能在接收到对应2xx应答的ACK请求前发送BYE请求,或者不能在服务器事务超关于诚信的诗歌
时前发送BYE请求。如果没有SIP扩展定义了和这个对话相关的其他应⽤层状态,这个BYE请求同样结束了对话。
在对话和会话中,给INVITE的⾮2xx的终结应答,使得使⽤CANCEL⽐较有吸引⼒。CANCEL是尝试强制给INVITE请求⼀个⾮2xx应答(⽐如,487应答)。因此,如果UAS希望放弃整个呼叫,它可以发送⼀个CANCEL。如果INVITE会有2xx终结应答,这个意味着UAS 四大国石
在CANCEL正在处理的时候,接收到⼀个邀请。UAC可以继续⽤这个2xx应答建⽴会话,也可以⽤甜椒的功效与作用
BYE终结这个会话。(这个意思是说,⼀般情况下,如果UAC希小学生日记二年级
望cancel 这个INVITE请求,那么就会发出CANCEL请求,如果接收到了⾮2xx的终结应答,就意味着CANCEL掉了,但是如果接收到的还是2xx应答,就说明没有CANCEL掉,没有CANCEL掉呢,就可以选择继续建⽴会话,或者说发送⼀个BYE来终结会话)
在SIP中,并没有⼀个很好的”hangin up”(挂机中)定义。它属于⼀个⽤户界⾯的普通常见的细节。通常,当⽤户挂机,它意味着结束建⽴会话的尝试,并且终⽌所有已经建⽴的会话。对于呼叫⽅的UA来说,如果没有收到初始INVITE请求的终结应答,这个可能是产⽣对初始INVITE请求的⼀个CANCEL请求,并且收到终结应答之后给每⼀个建⽴好的对话发出⼀个BYE。对于被叫沉重的心情句子
⽅的UA,就是很普通的BYE;粗略来说,当⽤户(因为响应振铃)摘机,就会产⽣⼀个2xx应答,于是挂机会在收到ACK请求之后发送⼀个BYE。这不是说在收到ACK之前⽤户不能挂机,这只是表达在⽤户的电话中的软件,需要保持⼀⼩会⼉状态,来正确释放状态。
在程序设计时,在收到BYE信令来结束整个通话的状态时,需要将本地的⾳视频等各种媒体参数以及各种标志开关状态恢复⾄会话发起前,这样就可以保证如果初次通话能够正常,后续的通话也能够更好地实现。