一种呼叫IP多媒体子系统的用户终端的方法转让专利

申请号 : CN200510118254.4

文献号 : CN1881975B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李昌林赵建国朱奋勤

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种呼叫IP多媒体子系统的用户终端的方法,包括:查询-呼叫会话控制功能模块(I-CSCF)向归属用户服务器(HSS)查询被叫用户的注册位置;I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块(S-CSCF)发送会话发起协议(SIP)请求;当S-CSCF对I-CSCF发送的SIP请求的响应超时时,I-CSCF重新选择S-CSCF,并向S-CSCF发送SIP请求。根据本发明,如果HSS返回的处理IMS用户未注册业务的S-CSCF因为设备故障或通信中断等原因,没有返回响应,I-CSCF可重选其它的S-CSCF处理该IMS用户的未注册业务,从而可提高服务质量,增加用户的满意度。

权利要求 :

1.一种呼叫IP多媒体子系统的用户终端的方法,其特征在于,包括:查询-呼叫会话控制功能模块I-CSCF收到一个对于被叫用户的初始请求,向归属用户服务器HSS查询被叫用户的注册位置;当HSS的响应包含部分身份标识处于未注册状态并且所有身份标识都不处于注册状态DIAMETER_SOME_ID_UNREGISTERED,或等待处理未注册业务DIAMETER_UNREGISTERED_SERVICE的指示时,I-CSCF表现为有状态的代理,I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求;并在S-CSCF没有响应时重新选择另一个S-CSCF,然后向选择的S-CSCF发送SIP请求。

2.根据权利要求1所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:当HSS的响应中包含S-CSCF的统一资源标志符URI时,I-CSCF将SIP请求发送给该S-CSCF,以便由该S-CSCF处理SIP请求。

3.根据权利要求2所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,重新选择S-CSCF的步骤包括:I-CSCF获得该用户终端所要求的S-CSCF能力集,并根据S-CSCF能力集选择一个S-CSCF。

4.根据权利要求3所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,所述的I-CSCF获得该用户终端所要求的S-CSCF能力集包括:通过修改命令Cx-Location-Query或Cx-Select-Pull获得该用户终端所要求的S-CSCF能力集;

所述的修改Cx-Location-Query命令是指在该命令中增加用户位置查询类型AVP(User-Location-Type AVP)参数;

所述的修改Cx-Select-Pull是指将该命令的互联网协议多媒体专有标识IMPI修改为有条件的。

5.根据权利要求1所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:当HSS的响应中包含该用户终端所要求的S-CSCF能力集时,I-CSCF根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF,然后将SIP请求发给选择的S-CSCF,以便由该S-CSCF处理SIP请求。

6.根据权利要求5所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求还包括:I-CSCF保存HSS返回的该用户终端所要求的S-CSCF能力集。

7.根据权利要求5或6所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,重新选择S-CSCF的步骤包括:I-CSCF根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF。

8.根据权利要求3或4所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:当HSS的响应中即不包含S-CSCF的URI,也不包含用户终端所要求的S-CSCF能力集时,I-CSCF任选一个S-CSCF以便将SIP请求发给该S-CSCF。

9.根据权利要求8所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,重新选择S-CSCF的步骤包括:I-CSCF任选一个S-CSCF以便将SIP请求发给该S-CSCF。

10.根据权利要求2所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:在HSS向I-CSCF返回的响应中还包含用户终端所要求的S-CSCF能力集。

11.根据权利要求10所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,重新选择S-CSCF的步骤包括:I-CSCF根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF,然后将SIP请求发给选择的S-CSCF,以便由该S-CSCF处理SIP请求。

12.根据权利要求3或4或5或6或11所述的呼叫IP多媒体子系统的用户终端的方法,其特征在于,当I-CSCF不能根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF时,I-CSCF向用户终端返回600响应,此后,若I-CSCF收到S-CSCF返回的SIP响应,不再转发该SIP响应。

说明书 :

技术领域

本发明涉及一种通信技术,尤其涉及一种呼叫IP多媒体子系统的用户终端的方法。

背景技术

在IMS(IP多媒体子系统)网络中,当一个IMS用户的UE(用户终端)做被叫时,被叫网络的I-CSCF(查询CSCF(呼叫会话控制功能模块))将通过Cx-Location-Query命令向HSS(归属用户服务器)查询该IMS用户的注册位置。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED(未注册)状态或者相关的ID(身份标识)(如与该IMS用户共用同一号码的用户终端)已注册或者相关的ID(如与该IMS用户共用同一号码的用户终端)处于UNREGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回处理该IMS用户未注册业务的S-CSCF,I-CSCF将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED(非注册)状态并且相关的ID(如与该IMS用户共用同一号码的用户终端)也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回该IMS用户要求的S-CSCF能力集,I-CSCF根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
在现有技术中,由于I-CSCF可以作为没有状态的代理,即I-CSCF发出SIP消息时,不会等待该消息的响应,因此会导致如下缺点:
当S-CSCF转发SIP请求或处理IMS用户的已注册业务或未注册业务时,如果该S-CSCF因为设备故障或通信中断等原因没有响应,将会导致会话超时,使主叫侧的SIP请求将因超时而失败(可能造成呼损)。
当被叫IMS用户处于UNREGISTERED状态或者相关的ID已注册或者相关的ID处于UNREGISTERED状态时,被叫IMS用户的未注册业务也将无法执行,从而导致IMS网络可能很长时间都不能为该IMS用户提供正确的业务(直到该S-CSCF恢复服务或被叫IMS用户开机以后成功注册到其它正常的S-CSCF,IMS网络才能为该IMS用户提供正确的业务,该过程可能持续很长时间如几小时、几天甚至更长时间)。
当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOTREGISTERED状态时,被叫IMS用户的未注册业务也将无法执行。

发明内容

本发明的目标是提供一种呼叫IMS的用户终端的方法。当所选择的S-CSCF因为设备故障或通信中断等原因没有响应时,可选择其它S-CSCF,从而提高了会话成功率,或类似“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
本发明公开了一种呼叫IP多媒体子系统的用户终端的方法,包括:查询-呼叫会话控制功能模块I-CSCF收到一个对于被叫用户的初始请求,向归属用户服务器HSS查询被叫用户的注册位置;当HSS的响应包含部分身份标识处于未注册状态并且所有身份标识都不处于注册状态DIAMETER_SOME_ID_UNREGISTERED,或等待处理未注册业务DIAMETER_UNREGISTERED_SERVICE的指示时,I-CSCF必须表现为有状态的代理,I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求;并在S-CSCF没有响应时重新选择另一个S-CSCF,然后向选择的S-CSCF发送SIP请求。
所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:当HSS的响应中包含S-CSCF的统一资源标志符URI时,I-CSCF将SIP请求发送给该S-CSCF,以便由该S-CSCF处理SIP请求。
重新选择S-CSCF的步骤包括:I-CSCF获得该用户终端所要求的S-CSCF能力集,并根据S-CSCF能力集选择一个S-CSCF。
所述的I-CSCF获得该用户终端所要求的S-CSCF能力集包括:通过修改命令Cx-Location-Query或Cx-Select-Pull获得该用户终端所要求的S-CSCF能力集;
所述的修改Cx-Location-Query命令是指在该命令中增加用户位置查询类型AVP(User-Location-Type AVP)参数;
所述的修改Cx-Select-Pull是指将该命令的互联网协议多媒体专有标识IMPI修改为有条件的。
所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:当HSS的响应中包含该用户终端所要求的S-CSCF能力集时,I-CSCF根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF,然后将SIP请求发给选择的S-CSCF,以便由该S-CSCF处理SIP请求。
所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求还包括:I-CSCF保存HSS返回的该用户终端所要求的S-CSCF能力集。
重新选择S-CSCF的步骤包括:I-CSCF根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF。
所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:当HSS的响应中即不包含S-CSCF的URI,也不包含用户终端所要求的S-CSCF能力集时,I-CSCF任选一个S-CSCF以便将SIP请求发给该S-CSCF。
重新选择S-CSCF的步骤包括:I-CSCF任选一个S-CSCF以便将SIP请求发给该S-CSCF。
所述的步骤I-CSCF根据HSS的响应向服务-呼叫会话控制功能模块S-CSCF发送会话发起协议SIP请求进一步包括:在HSS向I-CSCF返回的响应中还包含用户终端所要求的S-CSCF能力集。
重新选择S-CSCF的步骤包括:I-CSCF根据该用户终端所要求的S-CSCF能力集选择一个S-CSCF,然后将SIP请求发给选择的S-CSCF,以便由该S-CSCF处理SIP请求。
当I-CSCF不能根据该用户终端所要求的能力集选择一个S-CSCF时,I-CSCF向用户终端返回600响应,此后,若I-CSCF收到S-CSCF返回的SIP响应,不再转发该SIP响应。
因此,根据本发明,如果HSS返回的处理IMS用户未注册业务的S-CSCF因为设备故障或通信中断等原因,没有返回响应,I-CSCF根据IMS用户要求的S-CSCF能力集重选其它的S-CSCF处理该IMS用户的未注册业务,重选的S-CSCF如果成功处理该IMS用户的未注册业务,可以避免主叫侧的SIP请求将因超时而失败,被叫IMS用户的未注册业务也将正确执行,避免可能发生的长时间不能为该IMS用户提供正确业务的严重缺陷。

附图说明

图1示出了本发明的呼叫IMS用户的流程图;
图2示出了本发明实施例1的呼叫IMS用户的信令图;
图3示出了本发明替代方案3实施例的呼叫IMS用户的信令图;
图4示出了本发明替代方案6的呼叫IMS用户的信令图。

具体实施方式

为了便于本领域一般技术人员理解和实现本发明,现结合附图描绘本发明的实施例。
本发明的基本思想是,如图1所示,在步骤11中,I-CSCF向HSS查询被叫用户的注册位置;在步骤12中,I-CSCF保存HSS的响应,并根据HSS的响应选择S-CSCF,在步骤13中,I-CSCF向选择的S-CSCF发送SIP请求;
在步骤14中,I-CSCF判断S-CSCF是否响应超时,
若是,在步骤15中,I-CSCF重新选择S-CSCF,在步骤17中,I-CSCF并向S-CSCF发送SIP请求,然后返回步骤14;
否则,执行步骤16:I-CSCF等待S-CSCF的响应。
实施例1
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,该I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态,或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过如Cx-Location-QueryResp命令向I-CSCF返回部分身份标识处于未注册状态并且所有身份标识都不处于注册状态DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过如Cx-Location-QueryResp命令向I-CSCF返回等待处理未注册业务DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
综上所述,HSS可通过Diameter响应消息返回响应包括已注册业务或未注册业务的S-CSCF、被叫用户要求的S-CSCF能力集或者为空。
当I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,S-CSCF返回100临时响应(对于非会话SIP请求可选),由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应不包含S-CSCF的URI,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集:
a)如果包含,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
b)如果不包含,I-CSCF应该保存DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF任选一个S-CSCF。
c)I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,S-CSCF返回100临时响应(对于非会话SIP请求可选),由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因在规定的时间没有返回响应,这时因I-CSCF作为有状态的代理,则进行故障处理。下面描述故障处理过程,即I-CSCF首先检查是否保存过IMS用户要求的S-CSCF能力集:
1、如果保存过,I-CSCF根据保存的IMS用户要求的S-CSCF能力集选择一个S-CSCF。
2、如果没有保存过,I-CSCF检查是否保存了DIAMETER_UNREGISTERED_SERVICE的的指示:
(1)如果保存过,I-CSCF任选一个S-CSCF。
(2)如果没有保存,I-CSCF通过Cx-Location-Query查询IMS用户要求的S-CSCF能力集(但是因为Cx-Location-Query命令不包含User-Location-Type AVP,I-CSCF无法指示HSS返回能力集,因此要求在Cx-Location-Query命令中增加User-Location-Type AVP,当User-Location-Type为查询能力集时HSS设置重选标志和定时器,返回IMS用户要求的S-CSCF能力集),根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
当I-CSCF选择了S-CSCF后,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的注册业务和/或未注册业务,或提供类似“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF用用户终端返回600响应。此后,如果I-CSCF收到S-CSCF返回的SIP响应,I-CSCF忽略该SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,当发现用户没有注册时,则S-CSCF通过Cx-Put命令向HSS告知IMS用户的注册状态和S-CSCF的URI,通过Cx-Pull命令获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,清除重选标志,检查S-CSCF URI,如果与已有的S-CSCFURI不同,HSS通过Cx-Deregister命令通知发送Cx-Put命令的S-CSCF注销IMS用户。发送Cx-Put命令的S-CSCF收到HSS发送的Cx-Deregister命令,注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不再转发BYE请求。
下面结合附图描述本发明的呼叫流程。如图2所示。
步骤1、I-CSCF收到初始请求(邀请)。
步骤2、I-CSCF通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置。
步骤3、HSS将查询结果(如S-CSCF)返回给I-CSCF。
步骤4、I-CSCF将SIP请求发送给HSS返回的S-CSCF#1。
步骤5、I-CSCF没有收到S-CSCF#1的响应。
步骤6、S-CSCF#1通过Cx-Put命令将S-CSCF URI告知HSS。
步骤7、HSS将Cx-Put命令执行结果返回给S-CSCF#1。
步骤8、S-CSCF#1通过Cx-Pull命令向HSS取用户数据。
步骤9、HSS将Cx-Pull命令执行结果返回给S-CSCF#1。
步骤10、I-CSCF通过Cx-Location-Query命令向HSS查询该IMS用户要求的S-CSCF能力集。
步骤11、HSS将Cx-Location-Query执行结果返回给I-CSCF。
步骤12、I-CSCF根据IMS用户要求的S-CSCF能力集选择另一个满足要求的S-CSCF,将SIP请求发送给这个选择的S-CSCF#2。
步骤13、S-CSCF#2向I-CSCF返回100Trying响应。
步骤14、S-CSCF#1返回响应,I-CSCF不得转发该响应。
步骤15、S-CSCF#2通过Cx-Put命令将S-CSCF URI告知HSS。
步骤16、HSS将Cx-Put命令执行结果返回给S-CSCF#2。
步骤17、S-CSCF#2通过Cx-Pull命令向HSS取用户数据。
步骤18、HSS将Cx-Pull命令执行结果返回给S-CSCF#2。
步骤19、HSS通过Cx-Deregister命令通知S-CSCF#1注销该IMS用户。
步骤20、S-CSCF#1将Cx-Deregister命令执行结果返回给S-CSCF#1。
步骤21、S-CSCF#2向I-CSCF返回183 Session Progress响应。
步骤22、I-CSCF转发183 Session Progress响应。
步骤23、S-CSCF#1发起BYE请求,I-CSCF不得转发该请求。
替代方案1
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应包含DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集:
a)如果包含,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
b)如果不包含,I-CSCF应该保存DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF任选一个S-CSCF。
c)I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF检查是否保存DIAMETER_UNREGISTERED_SERVICE的指示:
1)如果保存过,I-CSCF任选一个S-CSCF。
2)如果没有保存,I-CSCF通过Cx-Location-Query查询IMS用户要求的S-CSCF能力集(但是因为Cx-Location-Query命令不包含User-Location-Type AVP,I-CSCF无法指示HSS返回能力集,因此要求在Cx-Location-Query命令中增加User-Location-TypeAVP,当User-Location-Type为查询能力集时HSS设置重选标志和定时器,返回IMS用户要求的S-CSCF能力集),根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,清除重选标志,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
替代方案2
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应包含IMS用户要求的S-CSCF能力集,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
III-如果响应既不包含S-CSCF的URI,又不包含IMS用户要求的S-CSCF能力集,I-CSCF应该保存DIAMETER_UNREGISTERED_SERVICE的指示,任选一个S-CSCF。I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF检查是否保存DIAMETER_UNREGISTERED_SERVICE的指示:
1)如果保存过,I-CSCF任选一个S-CSCF。
2)如果没有保存,I-CSCF通过Cx-Location-Query查询IMS用户要求的S-CSCF能力集(但是因为Cx-Location-Query命令不包含User-Location-Type AVP,I-CSCF无法指示HSS返回能力集,因此要求在Cx-Location-Query命令中增加User-Location-Type AVP,当User-Location-Type为查询能力集时HSS设置重选标志和定时器,返回IMS用户要求的S-CSCF能力集),根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,清除重选标志,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
替代方案3
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应不包含S-CSCF的URI,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集:
a)如果包含,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
b)如果不包含,I-CSCF应该保存DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF任选一个S-CSCF。
c)I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF检查是否保存了DIAMETER_UNREGISTERED_SERVICE的指示:
1)如果保存过,I-CSCF任选一个S-CSCF。
2)如果没有保存,I-CSCF通过Cx-Select-Pull查询IMS用户要求的S-CSCF能力集(但是因为Cx-Select-Pull命令必选包含IMPI,而I-CSCF无法获得IMPI,因此要求将Cx-Select-Pull命令中IMPI改为有条件的,当User Authorization Type为查询能力集时可以没有IMPI),根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
下面结合附图描述本发明的呼叫流程。如图3所示。
步骤301、I-CSCF收到初始请求(邀请)。
步骤302、I-CSCF通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置。
步骤303、HSS将查询结果(如S-CSCF)返回给I-CSCF。
步骤304、I-CSCF将SIP请求发送给HSS返回的S-CSCF#1。
步骤305、I-CSCF没有收到S-CSCF#1的响应。
步骤306、S-CSCF#1通过Cx-Put命令将S-CSCF URI告知HSS。
步骤307、HSS将Cx-Put命令执行结果返回给S-CSCF#1。
步骤308、S-CSCF#1通过Cx-Pull命令向HSS取用户数据。
步骤309、HSS将Cx-Pull命令执行结果返回给S-CSCF#1。
步骤310、I-CSCF通过Cx-Select-Pull命令向HSS查询该IMS用户要求的S-CSCF能力集。
步骤311、HSS将Cx-Select-Pull执行结果返回给I-CSCF。
步骤312、I-CSCF根据IMS用户要求的S-CSCF能力集选择另一个满足要求的S-CSCF,将SIP请求发送给这个选择的S-CSCF#2。
步骤313、S-CSCF#2向I-CSCF返回100Trying响应。
步骤314、S-CSCF#1返回响应,I-CSCF不得转发该响应。
步骤315、S-CSCF#2通过Cx-Put命令将S-CSCF URI告知HSS。
步骤316、HSS将Cx-Put命令执行结果返回给S-CSCF#2。
步骤317、S-CSCF#2通过Cx-Pull命令向HSS取用户数据。
步骤318、HSS将Cx-Pull命令执行结果返回给S-CSCF#2。
步骤319、HSS通过Cx-Deregister命令通知S-CSCF#1注销该IMS用户。
步骤320、S-CSCF#1将Cx-Deregister命令执行结果返回给S-CSCF#1。
步骤321、S-CSCF#2向I-CSCF返回183 Session Progress响应。
步骤322、I-CSCF转发183Session Progress响应。
步骤323、S-CSCF#1发起BYE请求,I-CSCF不得转发该请求。
替代方案4
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应包含DIAMETER UNREGISTERED SERVICE的指示,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集:
a)如果包含,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
b)如果不包含,I-CSCF应该保存DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF任选一个S-CSCF。
c)I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF检查是否保存DIAMETER_UNREGISTERED_SERVICE的指示:
1)如果保存过,I-CSCF任选一个S-CSCF。
2)如果没有保存,I-CSCF通过Cx-Select-Pull查询IMS用户要求的S-CSCF能力集(但是因为Cx-Select-Pull命令必选包含IMPI,而I-CSCF无法获得IMPI,因此要求将Cx-Select-Pull命令中IMPI改为有条件的,当User Authorization Type为查询能力集时可以没有IMPI),根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
替代方案5
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应包含IMS用户要求的S-CSCF能力集,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
III-如果响应既不包含S-CSCF的URI,又不包含IMS用户要求的S-CSCF能力集,I-CSCF应该保存DIAMETER_UNREGISTERED_SERVICE的指示,任选一个S-CSCF。I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF检查是否保存DIAMETER_UNREGISTERED_SERVICE的指示:
1)如果保存过,I-CSCF任选一个S-CSCF。
2)如果没有保存,I-CSCF通过Cx-Select-Pull查询IMS用户要求的S-CSCF能力集(但是因为Cx-Select-Pull命令必选包含IMPI,而I-CSCF无法获得IMPI,因此要求将Cx-Select-Pull命令中IMPI改为有条件的,当UserAuthorization Type为查询能力集时可以没有IMPI),根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
替代方案6
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF,同时返回IMS用户要求的S-CSCF能力集。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集,如果存在,I-CSCF应该保存IMS用户要求的S-CSCF能力集,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应不包含S-CSCF的URI,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集:
a)如果包含,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
b)如果不包含,I-CSCF任选一个S-CSCF。
c)CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF任选一个S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
下面结合附图描述本发明的呼叫流程。如图4所示。
步骤401、I-CSCF收到初始请求(邀请)。
步骤402、I-CSCF通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置。
步骤403、HSS将查询结果(如S-CSCF)返回给I-CSCF。
步骤404、I-CSCF将SIP请求发送给HSS返回的S-CSCF#1。
步骤405、I-CSCF没有收到S-CSCF#1的响应。
步骤406、S-CSCF#1通过Cx-Put命令将S-CSCF URI告知HSS。
步骤407、HSS将Cx-Put命令执行结果返回给S-CSCF#1。
步骤408、S-CSCF#1通过Cx-Pull命令向HSS取用户数据。
步骤409、HSS将Cx-Pull命令执行结果返回给S-CSCF#1。
步骤410、I-CSCF根据IMS用户要求的S-CSCF能力集选择另一个满足要求的S-CSCF,将SIP请求发送给这个选择的S-CSCF#2。
步骤411、S-CSCF#2向I-CSCF返回100Trying响应。
步骤412、S-CSCF#1返回响应,I-CSCF不得转发该响应。
步骤413、S-CSCF#2通过Cx-Put命令将S-CSCF URI告知HSS。
步骤414、HSS将Cx-Put命令执行结果返回给S-CSCF#2。
步骤415、S-CSCF#2通过Cx-Pull命令向HSS取用户数据。
步骤416、HSS将Cx-Pull命令执行结果返回给S-CSCF#2。
步骤417、HSS通过Cx-Deregister命令通知S-CSCF#1注销该IMS用户。
步骤418、S-CSCF#1将Cx-Deregister命令执行结果返回给S-CSCF#1。
步骤419、S-CSCF#2向I-CSCF返回183 Session Progress响应。
步骤420、I-CSCF转发183 Session Progress响应。
步骤421、S-CSCF#1发起BYE请求,I-CSCF不得转发该请求。
替代方案7
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF,同时返回IMS用户要求的S-CSCF能力集。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集,如果存在,I-CSCF应该保存IMS用户要求的S-CSCF能力集,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应包含DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集:
a)如果包含,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
b)如果不包含,I-CSCF任选一个S-CSCF。
c)CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF任选一个S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
替代方案8
在IMS网络中,当一个IMS用户的UE做被叫,被叫网络的I-CSCF收到初始请求后,I-CSCF将通过Cx-Location-Query命令向HSS查询该IMS用户的注册位置(如果有多个HSS,I-CSCF将查询SLF得到该IMS用户所在的HSS)。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于UNREGISTERED状态或者相关的ID处于UNREGISTERED状态并且都不处于REGISTERED状态时,HSS通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_SOME_ID_UNREGISTERED的指示和处理该IMS用户未注册业务的S-CSCF,同时返回IMS用户要求的S-CSCF能力集。
如果该IMS用户签约了未注册业务(如转语音邮箱等),当该IMS用户处于NOT REGISTERED状态并且相关的ID也处于NOT REGISTERED状态时,HSS将通过Cx-Location-QueryResp命令向I-CSCF返回DIAMETER_UNREGISTERED_SERVICE的指示和该IMS用户要求的S-CSCF能力集。
I-CSCF收到HSS返回的响应后,检查HSS的响应,如果响应包含DIAMETER_SOME_ID_UNREGISTERED或DIAMETER_UNREGISTERED_SERVICE的指示,I-CSCF必须表现为有状态的代理:
I-如果响应包含S-CSCF的URI,I-CSCF应该检查响应是否包含IMS用户要求的S-CSCF能力集,如果存在,I-CSCF应该保存IMS用户要求的S-CSCF能力集,I-CSCF执行3GPP规范要求的处理后将SIP请求发送给HSS返回的S-CSCF,由S-CSCF处理该IMS用户的已注册业务或未注册业务。
II-如果响应包含IMS用户要求的S-CSCF能力集,I-CSCF应该保存IMS用户要求的S-CSCF能力集,根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
III-如果响应既不包含S-CSCF的URI,又不包含IMS用户要求的S-CSCF能力集,I-CSCF任选一个S-CSCF。I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由S-CSCF处理该IMS用户的未注册业务。
如果S-CSCF因为设备故障或通信中断等原因没有返回响应,I-CSCF应该检查是否保存过IMS用户要求的S-CSCF能力集:
1.如果保存过,I-CSCF应该根据前面保存的IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF。
2.如果没有保存,I-CSCF任选一个S-CSCF。
I-CSCF执行3GPP规范要求的处理后将SIP请求发送给这个选择的S-CSCF,由该S-CSCF处理该IMS用户的未注册业务,提供类似现网已有的“您呼叫的用户暂时无法接通,请稍后再拨”的网络提示。
如果I-CSCF不能根据IMS用户要求的S-CSCF能力集选择一个满足要求的S-CSCF,I-CSCF应该返回600响应。
如果此后I-CSCF收到原来的S-CSCF返回的SIP响应,I-CSCF不能转发SIP响应。
S-CSCF收到I-CSCF发送的SIP请求后,检查IMS用户的注册状态,发现没有用户数据,通过Cx-Put、Cx-Pull命令向HSS告知IMS用户的注册状态和S-CSCF URI,获取用户签约数据。HSS收到S-CSCF发送的Cx-Put、Cx-Pull命令后,检查S-CSCF URI,如果与已有的S-CSCF URI不同,HSS通过Cx-Deregister命令通知原来的S-CSCF注销IMS用户,删除用户签约数据。原来的S-CSCF收到HSS发送的Cx-Deregister命令,将注销IMS用户,释放该IMS用户的所有会话,如果该S-CSCF此前收到了I-CSCF发送的SIP请求,此时将向I-CSCF发送BYE请求,I-CSCF收到BYE请求后,不能转发BYE请求。
因此,根据本发明,如果HSS返回的处理IMS用户未注册业务的S-CSCF因为设备故障或通信中断等原因,没有返回响应,I-CSCF根据IMS用户要求的S-CSCF能力集重选其它的S-CSCF处理该IMS用户的未注册业务,重选的S-CSCF如果成功处理该IMS用户的未注册业务,可以避免主叫侧的SIP请求将因超时而失败,被叫IMS用户的未注册业务也将正确执行,避免可能发生的长时间不能为该IMS用户提供正确业务的严重缺陷。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,在不脱离本发明的精神和实质的情况下,就可使本发明有许多变形和变化,本发明的范围由所附的权利要求来限定。