当UE收到来自网络401(Unauthorized)的响应的时候,说明网络需要对UE进行鉴权。其中最重要的一点,UE需要校验Security-Server标头域所含的内容,如果该项内容未出现的在响应消息里或者没有包含安全协商所需要的相关参数,UE可以丢弃这次的鉴权过程,另起炉灶的以新的call-ID发送新的注册请求。当校验通过后,UE需要根据P-CSCF要求和本身能力支持的鉴权算法同时结合IK和CK加密算法建立临时的安全协商机制,并规定该临时安全机制的有效时长。接下来,UE使用临时安全协商机制再次发送注册请求到P-CSCF受保护端口(通过401 chanllenge获取)。
除了初始未鉴权保护的注册请求中的相关参数,本次注册请求中还应包括如下参数: realm:设为从401消息中收到的realm值; username:设为私有用户标识; response:包含RES参数;
uri:设置为归属地网络域名的SIP URI;
algorithm:设为从401消息中收到的对应值; nonce:设置为从401消息中收到的对应值;
P-Access-Network-Info标头域说明了IMS承载的接入网络类型,这里就是TD-LTE网络(3GPP-E-UTRAN-TDD),同时还说明了接入小区信息,
utran-cell-id-3gpp=4600018DA1A64B02;Security-Client header标头域说明了UE所支持的媒体面加密机制情况。
1、当P-CSCF收到注册信息流的时候,P-CSCF需要通过归属地域名称去确认归属地的接入点( I-CSCF)。然后,P-CSCF需要将包含P-CSCF地址/名称,公共用户标识,私有用户标识,P-CSCF网络标识,UE IP地址等信息在注册信息流利转发到I-CSCF。名称-地址解决机制被用来通过归属地域名解析出归属地的地址。P-CSCF网络标识是用来被归属地网络确认P-CSCF所在网络的字符串。
2、I-CSCF需要将收到的信息发送给HSS进行校验是否该用户已经注册。同时HSS需要确认用户是否允许注册。
3、如果校验通过,HSS将S-CSCF的名称或S-CSCF的能力反馈给I-CSCF,以供I-CSCF进行合适的S-CSCF选择。如果校验不通过,这里将反馈注册请求拒绝(reject)
4、I-CSCF从HSS获取的S-CSCF名称,通过名称-地址解决机制获取对应的S-CSCF地址,将注册请求发送给S-CSCF(含P-CSCF名称/地址,公共用户标识,私有用户标识,归属地网络域名称,P-CSCF网络标识,UE分配的IP地址)。如果对同一个公告标识的注册联系地址超过S-CSCF预设的门限,S-CSCF可以拒绝该注册请求。S-CSCF需要存贮拜访地网络P-CSCF的地址/名称,一旦有被叫呼叫,则可将信令请求进行转发,同时S-CSCF还需要记录P-CSCF的网络ID。
5、S-CSCF需要将公共用户标识,私有用户标识,S-CSCF名称通过Cx接口发送HSS。 6、HSS存贮S-CSCF名称,并将一些包含用户名/地址或者安全的用户信息发送给S-CSCF,以便用来进行一些基于平台的服务管控。
7、S-CSCF将存贮的用户信息发送给服务平台,并进行适合的服务管控。
8、S-CSCF将返回200 ok消息(包含归属地接入信息,GRUU组合)给I-CSCF。 9、如同上述,I-CSCF需要将200 ok消息(包含归属地接入信息,GRUU组合)转发给P-CSCF,在转发之后,I-CSCF需要释放存贮的相应用户注册信息。
10、P-CSCF需要存贮归属地网络接入信息,并将200 ok消息转发给UE(含GRUU组)。
UE在收到200 ok响应之后,存贮此时的超时定时器,将P-Associated-URI header里面包含的第一个URI存储为默认的公共用户标识,这里为,并且将之进行相应的安全关联。如果
该标头域中不含该公共用户标识,则认为该标识注册被禁止。另外,UE需要变更前期的临时安全协商机制固化为新建立的安全协商机制.
当收到200 ok响应后,UE需要向S-CSCF订阅注册事件包。该消息中所含的参数意义如下:
Sip Message =SUBSCRIBE sip:+8618421195023@sh.ims.mnc000.mcc460.3gppnetwork.org SIP/2.0,说明需要订阅的公共用户标识的SIP URI
f:需要包含公共用户标识,这里+8618421195023其实就是电话号码 t:内容与f一致
o:事件标头域,应设置为需要订阅的“reg”事件包
重新注册
UE需要在适当的时候发起重选注册流程,例如以周期形式刷新已有的注册信息或者响应UE注册信息的变动。另外,当承载IMS会话的IP-CAN发生了变化,UE也需要发起重新注册流程。UE重新注册流程与上述UE注册流程类似。UE需要与网络侧依据上次注册时间同步更新周期注册的定时器,只不过该定时器比网络侧的定时器略小。
1、UE需要在网络侧的周期注册定时器超时前发起重新注册流程。UE将注册信息发送给P-CSCF,其中需要含公共用户标识、私有用户标识、归属地域名、UE的IP地址、能力信息、IMEI标识、是否支持GRUU的标识。
2、当收到注册请求后,P-CSCF并不用之前缓存的归属地网络接入点信息,而是重新通过归属地网络名称去发现归属地的接入点信息(I-CSCF)。P-CSCF会将注册请求转发给I-CSCF。
后续注册流程与前述一致。
注册取消
注册取消可以有两个层面来发起,一个是UE层面,另外一个是网络层面。UE层面的注册取消流程与注册发起流程是一致的,只不过注册消息里面的超时时间设置为0秒,值得注意的注册流程里的超时时间设置为600000秒。