关于Dialog:
Dialog是对话的双方(END)关联起来的层次,Dialog-ID一般由From+Call-ID+To组成。Dialog的建立是在Request和对应的non-failure Response生成之后完成建立的(Dialogs are created through the generation of non-failure responses to requests with specific methods),BYE请求可以终结一个Dialog。
注意:
Dialog并不一定非得是INVITE请求发起(specific methods)
Dialog并不一定是2xx响应确认创建(non-failure responses)
Dialog也并不一定是BYE请求关闭(与什么请求创建相关)
Request的From头的tag参数和Response的To头的tag参数唯一标识了Dialog
场景2:Invite--183--Cancel--200 (Cancel)--487--ACK
Cancel的处理方式是Hop By Hop,Via头的branch参数必须与每一跳的Invite报文的Via头的branch参数保持一致,用以标识所要取消的Invite事务。
ACK请求的处理方式也是Hop By Hop,Via头的branch参数必须与每一跳的Invite报文的Via头的branch参数保持一致,用以标识所要确认的Invite事务。