VoLTE注册流程详解 - 图文 下载本文

手机认为必须经过初始注册流程(不兼容401认证挑战消息或终端BUG问题导致) 作为注册消息的发起方---用户终端,UE根据USIM信息,推导得出注册用的私有身份标识IMPI和临时IMS公用身份标识IMPU(即T-IMPU,为SIP格式,仅作注册之用,不能用作呼叫):

其中私有身份标识是归属网络运营商提供的用户唯一全球标识,类似IMSI,用于对IMS用户进行鉴权认证,该标识对用户不可见,简明初始注册示意图如下: 初始注册的过程在信令平台的抓包如下:

空口中的register消息通过逻辑上的Gm口直到P-CSCF,该过程是通过该消息中Route头域的P-CSCF地址来实现的,该地址被用来作为Request消息的路由。 关于Route头域含义如下:当一个Proxy Server收到一个Request消息时,会检查Route字段的第一个地址是否等于自己,如果是,它可以从Route字段中删去自己的地址信息,然后叠加下一段地址,并将消息转发到Route字段中指定的下个地址;如果Route字段为空,则转发到Request URI指定的地址。如果没有就根据Contact头域发送,如果连Contact都没有,就根据From头域发送。

关于Via头域含义如下:当发起一个SIP Request消息时,消息经过的每一跳(包含发起方)都会在SIP消息中增加一个Via字段,内容为自己的地址信息,表示通过此地址发往下一跳,为什么要增加Via字段来记录Request消息经过的地址呢?用以保存请求历经的路径,实际上这个地址信息将被作为Request消息的Response消息的路由,Response消息逐段设置Via头域地址,实现逐级返回,直到回到Request的发起方,因此Via头域是一种给响应消息返回留路径的方式,是响应消息的本路由段的目的地址。

另外Record-Route头域为某一段路由的目的地、源头传递信息(构建路由集),从而发送消息时可构建Route头域。Path头域为注册时才特有的,用于S-CSCF设置用户的P-CSCF,作为反向请求直通路由至P-CSCF网元。Contact头域为UE的IPV6地址和端口号。

初始注册详述如下文:

UE发起初始注册时,Register消息中Authorization头域中相关认证授权信息为空(比如随机数为空、认证响应为空、无完整性保护),如下图: 经Gm接口,P-CSCF收到Register消息后:

删除Proxy-Require头域,将Security-Client头域保存到本地,调整Require头域为path,并在Authorization头域中添加“integrity-protected=no”标签,表示初始注册消息未受保护,增加以下头域:

增加P-Access-Network-Info头域为接入位置包含网络类型、SBC域名、UE IPV6地址和端口号共四项。

增加Path头域为本P-CSCF地址(也即P-CSCF的主机名),而在I-CSCF转发Register请求给S-CSCF时同样要插入P-CSCF地址的path头域,S-CSCF通过Path字段保存一个UE所使用的P-CSCF地址,这样当S-CSCF需要主动向UE发送消息时(例如网络端发起的De-register),S-CSCF就知道实际应该发往的P-CSCF地址了,这是一种直达路由消息。

增加P-Visited-Network-ID头域为P-CSCF的域名(也即P-CSCF的本地网络标识)。 增加P-Charging-Vector头域为P-CSCF收到注册消息后产生的ICID计费标识。

增加Feature-Caps头域包含STN-SR号码。

P-CSCF向I-CSCF进行进一步转发Register消息,为了获得入口I-CSCF网元IP地址,P-CSCF根据请求行中的Request-URI域名向DNS服务器发起查询,由于目前UE基本注册时的Request-URI字段统一设置为只有运营商信息而不带省份信息的域名,鉴于P-CSCF只有DNS查询而没有被叫号码分析功能,故查询结果不能定位出是哪个省的用户,也就不能路由到归属网络的I-CSCF,结果只能为拜访网络的I-CSCF功能实体的IP地址(而在呼叫流程中,由于S-CSCF和MGCF具备被叫号码分析功能和查询ENUM/DNS功能,可得知IMS被叫用户的归属网络入口I-CSCF地址)。

作为拜访网络的I-CSCF为了判断该用户是否具备漫游的权限,根据From头域中的T-IMPU标识和拜访网络标识P-Visited-Network-ID头域,通过Cx接口向归属HSS发起USER-AUTHORIZATION-REQUEST查询消息(该消息用于注册流程,与呼叫流程中LIR不同),Diameter协议类型为注册,根据信令网架构,中间必须经过LDRA或HDRA网元,DRA基于IMSI/主机名路由至归属HSS。HSS将该UAR相关头域内容与用户开户数据中漫游模板内容进行比对,若匹配,则回复给I-CSCF网元UAA消息,包含下面内容。

由于HSS不存在该用户的P-CSCF Network ID或S-CSCF名称信息,故HSS判断该用户为first register(初始注册),设置相关AVP属性值对---实验性结果代码为2001(DIAMETER_FIRST_REGISTRATION),下发S-CSCF服务器能力集(分为强制能力和可选能力),I-CSCF收到UAA消息后,根据其中的S-CSCF的能力集进行某种选择算法,选择一个合适的S-CSCF。

在拜访网络的I-CSCF选定某个归属S-CSCF后, I-CSCF转发Register消息至归属网络S-CSCF,该消息的Request-URI头域为S-CSCF域名。

S-CSCF收到无认证数据的初始注册消息后,通过Cx接口发送MULTIMEDIA-AUTH-REQUEST消息给HSS,请求认证向量集,同时也指示HSS实体:本S-CSCF即为该用户归属服务器,MAR和MAA字面上为多媒体认证请求和多媒体认证回应,实为提供IMS认证向量消息,认证算法指定为Digest-AKAv1-MD5(消息摘要算法5),认证过程与EPC认证流程相类似,也是双向认证,但认证过程采用了五元组:XRES/RAND/AUTH/IK/CK,而非四元组,涉及S-CSCF、P-CSCF、UE三个实体。 在HSS的成功响应消息中属性值对---SIP-Auth-Data-Item,包含5套完整的认证数据(S-CSCF对用户认证时任选一套即可,有点类似于EPS附着时MME对用户认证,总的来说不同类型的原始认证数据均出自于HSS,而根据具体认证内容不同,涉及不同实体,关于附着认证见EPS认证和NAS解码方面文档)。

S-CSCF截留某一套的XRES后,将这套剩余认证数据包括Digest认证方式算法、随机数RAND/认证令牌AUTH(RAND/AUTH合成“nonce”)、完整性保护密钥IK、加密密钥CK打包在register401消息(即鉴权认证挑战)里并传递至I-CSCF,继而I-CSCF将401消息传递给P-CSCF:

P-CSCF截留CK/IK后,将剩余的鉴权认证元素RAND/AUTH(”Nonce”)、认证算法通过401消息传递给UE,以上IMS认证的五元组传递如下图: 关于认证过程描述见本文的二次注册章节。 三、后续注册---重注册

初始注册成功后,用户的签约网络会登记用户的注册时长T1。当用户的已注册时长接近T1时,一般为50分钟,UE需要向网络侧发起新的注册请求,即重注册。