关闭

SIP笔记

标签: transactions扩展
689人阅读 评论(0) 收藏 举报
分类:
UPDATE(RFC3311)消息是SIP扩展的一种机制,用以在通话尚未建立的时候更新媒体流状态的一种机制。那么Update的应用前提是early media,也就是说在应答之前通过临时响应(101-199)实现了SDP的第一次Offer/Answer,并建立了媒体流。在此之后并在应答前的后续媒体流变更,通过UPDATE实现。在应答之后的后续媒体流变更,是通过Re-invite实现。
       对于Update来说,它是SIP消息中和Invite Transaction不同的一个新的和呼叫相关的Transactions,它需要和响应(通常是200 OK)完成一次新的SDP Offer/Answer,从而改变媒体流属性。

CSeq: 在Call-ID范围内是唯一确定的,Respone的CSeq和Request是一样的,后续的Request CSeq会不断增加,但ACK和CANCEL的CSeq和Invite是一样的

VIA:呼叫发起方将其自己的地址加入的via的第一条,每经过一个proxy server就把自身的地址加入进去,如果不是5060端口还要加入端口。这样做的好处有两个:1)防止回路,如果proxy server发现自己的地址已经在via中,那就发生回路了,则发送回路检测响应;2)可以让response消息沿着原路发回。
    但是当请求消息是通过防火墙发送的,那么请求的源地址和端口将会被改变,所以不能成为选路的依据。为了防止这种情况,proxy server必须检测顶端的via是不是和前站的发送地址一致(可以从消息里面得到),如果不一致,则在via的末尾加上reveive字段,其值为前站地址,然后将自己的地址加入到顶端

Contact:指示请求发出的位置,给其后的消息提供发送地址,但是CANCEL消息不能直接发送给该地址,必须原路返回

Allow:给出支持的消息类型

supported: 给出支持的一些扩展能力,如100rel,表示支持prack;require则表示必须支持

route,contact,from,via的区别:如果有Route,request就应该根据Route发送,如果没有就根据Contact头域发送,如果连Contact都没有,就根据From头域发送;而via是给response消息用的
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1670950次
    • 积分:12970
    • 等级:
    • 排名:第1019名
    • 原创:171篇
    • 转载:203篇
    • 译文:0篇
    • 评论:90条
    最新评论