首先我们要知道,User Agent必须维护它所发起或参与的呼叫的状态(state).
我们可以用一些头域(header fields)的组合来表示呼叫的状态。
这个头域组合的最小子集必须包括 local/remote tags, Call-ID,Cseq. (另外可以有route set等等状态信息。)
其中Cseq用于区分一个invite请求是新的请求(re-Invite)还是仅仅老invite的重传(Invite Retransmission)。
re-Invite和re-transmitted Invite的区别:
-
re-Invite消息用于改变会话参数,因此,虽然消息还是带同样的call-id和tag,但是CSeq一定要增一,因为这是一个新的请求。
-
而retransmitted invite则用相同的Cseq,因为只是在重传的是原来的old Invite
笔者在公众号“协议工程师笔记”定期发布5G/LTE/IMS...学习笔记, 敬请关注、订阅和分享,谢谢!
一起努力,蒸蒸日上