SIP 请求方法(2)-REGISTER

        UA用REGISTER方法通知SIP网络它当前的联系 URI (IP address)和路由到这个联系地址对应的URI。SIP注册与手机初始化时的注册过程有点类似。UA通过代理服务器外呼时并不要求注册。但是,除非使用其它非SIP的定位手段告知终端当前的联系URI,否则,UA想通过代理服务器接收来电,就必须先注册。

        虽然在标准规范中没有具体定义,但是REGISTER请求可以包含消息体的。根据注册请求中的Contact和Expires头域使用情况,注册服务器将采取不同的操作。如果没有expires参数或Expires头域,那么注册的SIP URI将在1小时后失效。如果Contacts没有expires参数,可以用Expires头域来设置联系地址的有效期限。如果Contacts携带expires参数,那么它只对当前Contact有效。非SIP URI没有默认的超时时间。下表是一些Contact URI实例:

注册 Contact URI实例

请求头域

注册服务器响应动作

Contact: *

注销所有注册记录

Expires: 0

 

Contact: sip:galvani@bologna.example.com ;expires=1800

注册当前地址为联系地址,有效期限30分钟

Contact: sip:sgalvani@192.34.3.1

注册当前地址为联系地址

Expires: 1800

注册有效期限30分钟

Contact: mailto:galvani@bologna.example.com ;q=0.1

注册 e-mail URL,没有超时限定

No Contact header present

返回当前所有注册记录

 

        对REGISTER请求来说,CSeq是递增的。REGISTER请求的Request-URI, To, From, 和 Call-ID 头域使用,与其它方法稍微有些不同。Request-URI只有注册域,而没有用户部分。REGISTER请求可以被转发或代理,直到抵达它指定域的负责当局。To头域包含描述注册UA 的地址记录(AOR) SIP URI。From头域包信请求发送方的SIP URI,通常和To头域是一致的。建议同一UA所发的注册消息使用同一Call-ID。

        UA发出REGISTER请求后,可能收到3xx重定向应答或4xx错误应答,这时应答消息中的Contact头域应当携带注册服务器的真实地址。

        如果注册请求的发送方与待注册资源不同,这称为第三方注册。这时,From头域携带的是发送方的URI,To头域还是指向待注册资源。这里给一个第三方注册的消息实例,secretary为Euclid注册:

REGISTER sip:registrar.athens.example.com SIP/2.0
Via: SIP/2.0/UDP 201.202.203.204:5060;branch=z9hG4bK313
Max-Forwards:70
To: sip:euclid@athens.example.com
From: <sip:secretary@academy.athens.example.com>;tag=543131
Call-ID: 48erl8132409wqer
CSeq: 1 REGISTER
Contact: sip:euclid@parthenon.athens.example.com
Contact: mailto:euclid@geometry.example.org
Content-Length: 0

        有时候,UA注册时提供的URI可能是不可路由的。比如说,如果UA在NAT之后,或者防火墙阻止外部请求访问内部主机。如果在SIP dialog外使用这类Contact URI(比如发REFER或执行咨询转移),那么呼叫控制操作可能会失败。对此有一种扩展机制,UA可以向注册服务器请求一个全局可路由的用户代理URI(Globally Routable User Agent URI (GRUU) )。可以在Contact头域或其它设备想要直接访问的地方使用这个URI。UA在request请求中包含一个Supported:gruu头域和一个sip. Instance功能标签,如果注册服务器支持这个机制,在200 OK应答中将返回GRUU,信息在Contact头域中的pub-gruu和temp-gruu参数中描述。temp-gruu参数值每次注册刷新时都会变更,只要注册刷新,pub-gruu就一直有效。下面给出一个包含GRUU的Contact头域实例:

Contact: <sip:euclid@201.202.203.204>
;pub-gruu=”sip:euclid@athens.example.com;gr=urn:uuid:00a0dc91e6bdf6”
;temp-gruu=”sip:k20flasdf2da@athens.example.com;gr”
;+sip.instance=”<urn:uuid:00a0dc91e6bdf6>”
;expires=1800

 

        最后,给出REGISTER请求的必要头域列表:

REGISTER请求的必要头域
Via
To
From
Call-ID
CSeq
Max-Forwards

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值