织梦CMS - 轻松建站从此开始!

罗索

SIP: From ,Contact, Via 和 Record-Route/Route head

jackyhwei 发布于 2016-05-11 15:59 点击:次 
SIP: From ,Contact, Via 和 Record-Route/Route head From: 如果一个SIP消息中没有Contact或者Record-Route头域,那么callee就会根据From头域产生后续的Request。比如:如果 Alice打一个电话给Bob,From头域的内容是 From:Alicesip:alice@example.org
TAG: SIP  

 SIP: From ,Contact, Via 和 Record-Route/Route head

 
From: 如果一个SIP消息中没有Contact或者Record-Route头域,那么callee就会根据From头域产生后续的Request。比如:如果 Alice打一个电话给Bob,From头域的内容是 From:Alice<sip:alice@example.org>。那么Bob打给Alice时就会使用 sip:alice@example.org作为To头域和Request-URI头域的内容。 
 
Contact: 后续Request将根据Contact头域的内容决定目的地的地址,同时将Contact头域的内容放到Request-URI中。它还可以用来指示没 有在Record-Route头域中记录的Proxies的地址。同时它还可以被用在Redirect servers和REGISTER requests 和responses。 
 
Record-Route/Route: Record-Route头域一般是被proxies插入到request中的,这样后续的Request如何有着和前面一样的call-id就会被路由 到这些proxies。它也会被User Agent作为发送后续request的依据。这套机制很像source-route,Record-Route头域的信息被复制到Route头域中。并 且Request-URI头域会被设置为第一个Route头域的内容。 
 
Via: Via头域是被服务器插入request中,用来检查路由环的,并且可以使response根据via找到返回的路。它不会对未来的request 或者是response造成影响。 
 
总的来说,如果有Route,request就应该根据Route发送,如果没有就根据Contact头域发送,如果连Contact都没有,就根据From头域发送。 
 
dialog, transaction, session之我见
SIP中3个很重要的概念,就是dialog, session和transaction。 
 
以下是我学习中对这三个概念的心得,贴出来和大家探讨。 
 
 
dialog的建立是收到UAS的响应(To tag)时开始建立的。收到180响应时建立的 
dialog叫做早期对话(early dialog),收到2XX的应答开始才是真正的dialog建立。 
 
session 是媒体交换之后才建立的。具体而言就是通过offer/answer方式交换sdp的媒体。 
session的建立可以使INVITE-200 也可以是200-ACK。这要看媒体的交换发生的时间。 
具体来说,INVITE 中的消息体用sdp语言来描述自己可处理的媒体类型,200OK中带回UAS端可处理的媒体类型。这个时候媒体交换就算是完成了。也就是session建立起来了。 
 
dialog是end-point对end-point的关系。而transaction 是hop by hop的关系。dialog通过From tag, To tag(应该说local tag, remote tag--这两个tag随着UAC和UAS而不同。)以及Call-ID 来判别。而transaction是一个SIP entity和下一个SIP entity之间请求和应答关系,(无状态代理服务器不再此列)是通过对Via里的branch来判别的。 
 
Transaction:维护hop to hop状态,包括一个请求和其触发的所有响应,包括若干暂时响应和一个最终响应。生命周期从请求产生到收到最终响应。 
Dialog:维护peer to peer状态,目前只有invite和subscribe请求会触发dialog。其生命周期贯穿一个端到端会话的始终。 
 
SIP应答头
1xx = 通知性应答 
 
100 正在尝试 
180 正在拨打 
181 正被转接 
182 正在排队 
183 通话进展 
2xx = 成功应答 
 
200 OK 
202 被接受:用于转介 
3xx = 转接应答 
 
300 多项选择 
301 被永久迁移 
302 被暂时迁移 
305 使用代理服务器 
380 替代服务 
4xx = 呼叫失败 
 
400 呼叫不当 
401 未经授权:只供注册机构使用,代理服务器应使用代理服务器授权407 
402 要求付费(预订为将来使用) 
403 被禁止的 
404 未发现:未发现用户 
405 不允许的方法 
406 不可接受 
407 需要代理服务器授权 
408 呼叫超时:在预定时间内无法找到用户 
410 已消失:用户曾经存在,但已从此处消失 
413 呼叫实体过大 
414 呼叫URI过长 
415 不支持的媒体类型 
416 不支持的URI方案 
420 不当扩展:使用了不当SIP协议扩展,服务器无法理解该扩展 
421 需要扩展 
423 时间间隔过短 
480 暂时不可使用 
481 通话/事务不存在 
482 检测到循环 
483 跳数过多 
484 地址不全 
485 模糊不清 
486 此处太忙 
487 呼叫被终止 
488 此处不可接受 
491 呼叫待批 
493 无法解读:无法解读 S/MIME文体部分 
5xx = 服务器失败 
 
500 服务器内部错误 
501 无法实施:SIP呼叫方法在此处无法实施 
502 不当网关 
503 服务不可使用 
504 服务器超时 
505 不支持该版本:服务器不支持SIP协议的这个版本 
513 消息过长 
6xx = 全局失败 
 
600 各处均忙 
603 拒绝 
604 无处存在 
606 不可使用
(blade2001)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201605/17446.html]
本文出处:CSDN博客 作者:blade2001 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容