rfc3261-10REGISTER翻译2

设置自身内部时钟

如果注册响应中包含Data头域,客户端可以按此设置自身时间

 

发现注册服务(器)(Request-URI的设置)

三种方案:直接设置 ,To头域的主机部分(For example, the UA for the user"sip:carol@chicago.com" addresses the REGISTER request to"sip:chicago.com".)广播"sip.mcast.net" (224.0.1.75 for IPv4,IpV6自己决定),注意广播注册是不一定响应的,而且有时候不恰当

 

发送注册消息

(如Section 8.1.2发送给事务层(直译交易层))

如果事务层发生超时错误,UAC不能马上重试(等等再试)!

 

错误响应(423)

若收到423(间隔太短 Interval Too Brief),需将超时设为大于等于423响应中的Min-Expires 头域内容

 

处理REGISTER请求

Registrar是个特殊UAS(行为如Section8.2 and Section 17.2),仅处理REGISTER requests.,不会发送6xx responses.

注册请求可被重定向

注册请求包中Record-Routeheader必须忽略,返回中也不能含Record-Route header

注册要么彻底成功,要么彻底失败

具体步骤

1)       检查Request-URI能否注册。不能但UAS是转发代理,则按照Section16转发。

2)       检查是否包含Section 8.2.2的头域和值

3)       按Session22验证UAC,不需验证的则假设From为请求发生者

4)       验证请求发生者有无更改权限,无回403(Forbidden),跳过接下步骤

5)       从To中取address-of-record,如果它不符合Request-URI中的域,必须发送404 (Not Found) response andskip the remaining steps。取出的URI转为标准URI(去除转义字符和参数),然后作为绑定列表的索引

6)       检查Contact header field ,没有则跳最后步。检查是否有’*’和Expires头域,如果Contact header field有其他内容或者Expires!=0,必须返回400 (Invalid Request),然后结束。然后比较绑定的Call-ID和包中Call-ID是否一致。不一致则更新绑定,否则再检查CSeq,只有它高于储存的值才更新。其他情况都必须放弃并返回错误。

7)       处理Contact header field中contact address,按照规则(见rfc33261-10.3)。注意这些地址要么全部绑定成功,要么全部失败(删除,然后返回500(Server Error))

8)       返回200(OK),必须包含Contact header field values enumerating all current         bindings.  Each Contact value MUST feature an"expires"parameter indicating its expiration interval chosen by theregistrar.  The response SHOULD include aDate header field.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值