SIP - 移动性


个人移动性是指在多个设备上拥有恒定标识符的能力。 SIP 使用 REGISTER 方法支持基本的个人移动性,该方法允许移动设备更改其 IP 地址和互联网连接点,但仍然能够接收来电。

SIP 还可以支持服务移动性 – 用户在移动时保持相同服务的能力

切换期间的 SIP 移动性(预呼叫)

设备通过简单的 sip 注册将其联系 URI 与记录地址绑定。 根据设备IP地址,注册授权该信息在sip网络中自动更新。

在切换期间,用户代理在不同的运营商之间进行路由,它必须在联系人中再次注册为另一个服务提供商的 AOR。

例如,我们以下面的调用流程为例。 UA 暂时收到新服务提供商的新 SIP URI。 然后UA执行双重注册 −

  • 首次注册是向新服务运营商进行的,它将设备的联系人 URI 与新服务提供商的 AOR URI 绑定。

  • 第二个 REGISTER 请求被路由回原始服务提供商,并提供新服务提供商的 AOR 作为联系 URI。

如后面的呼叫流程所示,当请求进入原始服务提供商的网络时,INVITE 会重定向到新服务提供商,然后新服务提供商将呼叫路由给用户。

SIP 移动

对于第一次注册,包含设备 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 支持这种情况,因为对话中的 re-INVITE 可用于更新联系人 URI 并更改 SDP 中的媒体信息。

看一下下图提到的调用流程。

  • 在这里,Tom 检测到一个新网络,

  • 使用 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 媒体信息。

呼叫中的移动性(带替换标头)

在呼叫中移动性中,实际路由集(SIP 消息必须遍历的 SIP 代理集)必须更改。 我们无法在通话中移动中使用重新邀请

例如,如果 NAT 穿越需要代理,则必须更改联系人 URI — 必须创建一个新对话框。 因此,它必须发送一个带有 Replaces 标头的新 INVITE,该标头标识现有会话。

注意 − 假设 A 和 B 都在通话中,并且如果 A 收到另一个带有替换标头的 INVITE(假设来自 C)(应与现有对话框匹配),那么A必须接受INVITE并终止与B的会话,并将所有资源转移到新形成的对话中。

调用流程如下图所示。 它与之前使用 re-INVITE 的调用流程类似,不同之处在于,当接受带有 Replaces 的 INVITE 时,会自动生成 BYE 来终止现有对话。

呼叫中的移动性

以下是该场景中需要注意的事项 −

  • 汤姆和杰瑞之间的现有对话包括旧访问的代理服务器。

  • 使用新无线网络的新对话框需要包含新访问的代理服务器。

  • 结果,Tom 发送了带有 Replaces 的 INVITE,这会创建一个新对话框,其中包含新访问的代理服务器,但不包含旧访问的代理服务器。

  • 当 Jerry 接受 INVITE 时,会自动发送 BYE 来终止通过旧访问代理服务器路由的旧对话,该代理服务器现在不再参与会话。

  • 最终的媒体会话是使用 INVITE 中 SDP 中 Tom 的新 IP 地址建立的。

服务移动性

SIP 中的服务可以在代理或 UA 中提供。 除非用户的设备配置相同的服务,否则提供服务移动性和个人移动性可能具有挑战性。

SIP 可以轻松支持 Internet 上的服务移动性。 连接到 Internet 时,配置为在印度使用一组代理的 UA 在欧洲漫游时仍然可以使用这些代理。 它不会对媒体会话的质量产生任何影响,因为媒体始终直接在两个 UA 之间流动,不会穿越 SIP 代理服务器。

仅当端点连接到 Internet 时,端点驻留服务才可用。 如果端点暂时失去其互联网连接,则端点中实现的诸如呼叫转接服务之类的终止服务将失败。 因此,某些服务是使用 SIP 代理服务器在网络中实现的。