SIP-移动性
个人移动性是指在多种设备上拥有恒定标识符的能力。SIP 使用 REGISTER 方法支持基本的个人移动性,该方法允许移动设备更改其 IP 地址和互联网连接点,但仍然能够接收来电。
SIP 还可以支持服务移动性——用户在移动时保持相同服务的能力
切换期间的 SIP 移动性(预呼叫)
设备通过简单的 sip 注册将其联系人 URI 与记录地址绑定。根据设备IP地址,注册授权该信息在sip网络中自动更新。
在切换期间,用户代理在不同的运营商之间进行路由,其中它必须作为另一个服务提供商的 AOR 再次向联系人注册。
例如,我们以下面的调用流程为例。UA 暂时收到新服务提供商的新 SIP URI。然后UA执行双重注册 -
第一次注册是向新服务运营商进行的,它将设备的联系人 URI 与新服务提供商的 AOR URI 绑定。
第二个 REGISTER 请求被路由回原始服务提供商,并提供新服务提供商的 AOR 作为联系 URI。
如后面的呼叫流程所示,当请求进入原始服务提供商的网络时,INVITE 会重定向到新服务提供商,然后新服务提供商将呼叫路由给用户。
对于第一次注册,包含设备 URI 的消息将是 -
REGISTER sip:visited.registrar1.com SIP/2.0 Via: SIP/2.0/UDP 172.22.1.102:5060;branch = z9hG4bK97a7ea349ce0fca Max-Forwards: 70 To: Tom <sip:UA1@registrar1.in> From: Tom <sip:UA1@registrar1.in>;tag = 72d65a24 Call-ID: 4e719d1c1fc9000803630373300@172.22.1.102 CSeq: 1 REGISTER Contact: <sip:Tom@172.22.1.102:5060> Expires: 600000 Content-Length: 0
带有漫游 URI 的第二条注册消息是 -
REGISTER sip:home.registrar2.in SIP/2.0 Via: SIP/2.0/UDP 172.22.1.102:5060;branch = z9hG4bKah4vn2u Max-Forwards: 70 To: Tom <sip:UA1@registrar2.in> From: Tom <sip:UA1@registrar2.in>;tag = 45375 Call-ID:87nr43i@172.22.1.102 CSeq: 6421 REGISTER Contact: <sip:UA1@registrar2.in> Content-Length: 0
上图中表示的第一个 INVITE 将被发送到 sip:registrar2.in;第二个 INVITE 将被发送到 sip: sip:Tom@registrar2.in ,它将被转发到sip:Tom@172.22.1.102。它到达 Tom 并允许建立会话。两个注册都需要定期刷新。
通话期间的移动性(重新邀请)
当用户代理从一个网络切换到另一个网络时,用户代理可能会在会话期间更改其 IP 地址。基本 SIP 支持此场景,因为对话中的重新邀请可用于更新联系人 URI 并更改 SDP 中的媒体信息。
看一下下图提到的调用流程。
在这里,汤姆检测到一个新网络,
使用 DHCP 获取新的 IP 地址,并且
执行重新邀请以允许信令和媒体流至新的 IP 地址。
如果 UA 可以从两个网络接收媒体,则中断可以忽略不计。如果不是这种情况,可能会丢失一些媒体数据包,从而导致呼叫轻微中断。
重新邀请将显示如下 -
INVITE sip:Jerry@TTP.com SIP/2.0 Via: SIP/2.0/UDP 172.22.1.102:5060;branch = z9hG4bK918f5a84fe6bf7a Max-Forwards: 70 To: <sip:Harry@TTP.com> From: sip:Tom@PPT.com;tag = 70133df4 Call-ID: 76d4861c19c CSeq: 1 INVITE Accept: application/sdp Accept-Language: en Allow: INVITE,ACK,CANCEL,BYE,INFO,OPTIONS,REFER,NOTIFY,SUBSCRIBE Contact: <sip:172.22.1.102:5060>; Content-Type: application/sdp Content-Length: 168 v = 0 o = PPT 40467 40468 IN IP4 192.168.2.1 s = - c = IN IP4 192.168.2.1 b = AS:49 t = 0 0 b = RR:0 b = RS:0 a = rtpmap:97 AMR/8000/1 m = audio 6000 RTP/AVP 96 a = fmtp:102 0-15 a = ptime:20 a = maxptime:240
re-INVITE 在 Via 和 Contact 标头字段中包含 Bowditch 的新 IP 地址以及 SDP 媒体信息。
Midcall 中的移动性(带替换标头)
在呼叫中移动性中,实际路由集(SIP 消息必须遍历的 SIP 代理集)必须更改。我们无法在通话中移动中使用重新邀请
例如,如果 NAT 穿越需要代理,则必须更改联系人 URI — 必须创建一个新对话框。因此,它必须发送带有 Replaces 标头的新 INVITE,该标头标识现有会话。
注意- 假设 A 和 B 都在通话中,如果 A 收到另一个带有替换标头的 INVITE(假设来自 C)(应与现有对话框匹配),则 A 必须接受 INVITE 并终止与 B 的会话并传输所有资源到新形成的对话框。
调用流程如下图所示。它与之前使用 re-INVITE 的呼叫流程类似,不同之处在于,当接受带有 Replaces 的 INVITE 时,会自动生成 BYE 以终止现有对话。
以下是这种情况下需要注意的要点 -
Tom 和 Jerry 之间的现有对话包括旧访问的代理服务器。
使用新无线网络的新对话需要包含新访问的代理服务器。
结果,Tom 发送了带有替换的 INVITE,这将创建一个新对话框,其中包括新访问的代理服务器,但不包括旧访问的代理服务器。
当 Jerry 接受 INVITE 时,会自动发送 BYE 以终止旧对话,该对话通过现在不再参与会话的旧访问代理服务器进行路由。
最终的媒体会话是使用来自 INVITE 中 SDP 的 Tom 新 IP 地址建立的。
服务移动性
SIP 中的服务可以在代理或 UA 中提供。除非用户的设备配置相同的服务,否则提供服务移动性和个人移动性可能具有挑战性。
SIP 可以轻松支持 Internet 上的服务移动性。连接到 Internet 时,配置为在印度使用一组代理的 UA 在欧洲漫游时仍然可以使用这些代理。它不会对媒体会话的质量产生任何影响,因为媒体始终直接在两个 UA 之间流动,不会穿越 SIP 代理服务器。
仅当端点连接到 Internet 时,端点驻留服务才可用。如果端点暂时失去其互联网连接,则端点中实现的诸如呼叫转接服务之类的终止服务将失败。因此,某些服务是使用 SIP 代理服务器在网络中实现的。