一种基于应用服务器许可权限的订阅通知的处理方法 【技术领域】
本发明涉及通信领域中IP多媒体子系统(IP Multimedia Core NetworkSubsystem,简称IMS)中一种基于应用服务器许可权限的订阅通知的处理方法,尤其涉及归属用户服务器(Home Subscriber Server,简称HSS)中应用服务器许可权限列表发生变化后的订阅通知的处理问题。
背景技术
目前,第三代合作伙伴计划(3rd Generation Partnership Project,简称3GPP)已经引入了用于IMS网络和服务的基本原理,采用控制与业务分离的思想,IMS控制层不提供业务,只提供业务层所必要的触发、路由、计费等功能,而业务完全由业务层来提供。
业务触发是IMS控制层的重要功能,是由IMS控制层的服务呼叫会话控制功能(Serving Call Session Control Function,简称S-CSCF)来完成的。用户的业务触发数据用“业务配置(Service Profiles)”来表示,并作为用户配置(User Profiles)数据的一部分保存在归属用户服务器中。当用户注册时,或S-CSCF收到未注册用户的一个终呼会话的初始请求时,或S-CSCF收到一个服务器代替用户发起的起呼会话的初始请求时,业务配置数据被从归属用户服务器下载到S-CSCF中,其中包括初始过滤规则(initial Filter Criteria,简称IFC)。
业务的触发条件是通过初始过滤规则表示的,根据用户签约业务的不同,一个用户的业务配置中会含有多条初始过滤规则,这些初始过滤规则都有各自的优先级。S-CSCF根据这些初始过滤规则对注册请求和会话初始请求进行评估,并根据评估结果将这些请求发送到指定的应用服务器(ApplicationServer,简称AS),由这些应用服务器根据请求来提供相应业务。
应用服务器签约用户业务数据,并将业务数据作为透明数据保存在归属用户服务器中。应用服务器可以通过与归属用户服务器之间的Sh接口读取或者修改这部分业务数据。与此同时,应用服务器也可以通过Sh接口读取与用户相关的信息,例如用户的注册状态、与应用服务器相关的初始过滤规则等。当归属用户服务器中的透明数据或用户相关信息发生变化时,应用服务器可以通过订阅通知获取变化的数据信息,归属用户服务器则以通知的形式上告应用服务器,参见图1。但是,应用服务器不能随意读取、更新或订阅通知归属用户服务器中的任何数据,归属用户服务器配置了一张通过Sh接口可以由应用服务器访问的数据访问列表。数据访问列表规定了应用服务器可以读取、更新或订阅通知的数据信息,如表1。
表1通过Sh接口的数据访问列表
数据 索引 数据 访问关键字 允许的操作命令 0 透明数据 IMS公共用户标识或 公共业务标识+数据 索引+业务指示 Sh-读,Sh-更新,Sh-订阅通知 10 IMS公共标识 IMS公共用户标识 或公共业务标识或 MSISDN+数据索引+标 识集 Sh-读,Sh-订阅通知 11 IMS用户状态 IMS公共用户标识+数 据索引 Sh-读,Sh-订阅通知 12 S-CSCF名 IMS公共用户标识或 公共业务标识+数据 索引 Sh-读,Sh-订阅通知 13 初始过滤规则 IMS公共用户标识或 公共业务标识+数据 索引+服务器名 Sh-读,Sh-订阅通知
14 位置信息 MSISDN+数据索引+请 求域+当前位置 Sh-读 ...... ...... ...... ......
本文以订阅通知为例,表1规定了应用服务器可以向归属用户服务器订阅的相关数据,例如透明数据,可以由应用服务器通过Sh-订阅通知消息向归属用户服务器订阅透明数据的变化信息,Sh-订阅通知消息中包括访问关键字涉及的参数。订阅通知成功后,归属用户服务器需要保存订阅关系,有关数据的订阅请求由用户标识和数据索引标定。当应用服务器所订阅的数据发生变化后,归属用户服务器发送Sh-通知消息给应用服务器,Sh-通知消息中包括变化的数据信息。
为了管理是否允许应用服务器使用特定的操作命令请求相关的数据,归属用户服务器同时还需要维护应用服务器许可权限表。应用服务器许可权限由应用服务器标识和数据索引标定。只有被归属用户服务器许可的应用服务器才可以通过Sh接口订阅通知相关的数据信息。应用服务器许可权限应用于归属用户服务器服务的所有用户,因此,当归属用户服务器接收到Sh-订阅通知消息后,需要首先检查应用服务器的许可权限。如果应用服务器未被归属用户服务器授权访问,归属用户服务器将拒绝应用服务器的Sh-订阅通知消息,以及相关的Sh-读和Sh-更新消息。
但是,如果应用服务器的许可权限发生了变化,例如归属用户服务器将某一个应用服务器从应用服务器许可权限列表中删除或标记为禁止访问,被归属用户服务器禁止访问的应用服务器将不能再次向归属用户服务器读取、更新或订阅通知相关的数据信息。如果此前应用服务器已经在归属用户服务器成功订阅了相关的数据,归属用户服务器同时保存了关于此应用服务器的订阅关系,那么应用服务器依然可以接收到归属用户服务器的通知消息。由于应用服务器的许可权限发生了变化,应用服务器也不能取消在归属用户服务器中的订阅通知,这就导致产生了大量无效的通知消息和订阅关系。
【发明内容】
本发明要解决的技术问题是提供一种基于应用服务器许可权限的订阅通知的处理方法,能够在应用服务器许可权限发生变化时,及时地处理订阅关系,从而避免不必要的无效通知消息。
为了解决上述技术问题,本发明提供了一种基于应用服务器许可权限的订阅通知的处理方法,包括:
归属用户服务器得知某应用服务器对本地某些数据访问地许可权限由允许变为禁止时,删除与所述应用服务器相关的所有被禁止访问的数据的订阅关系。
进一步地,上述方法还可具有以下特点:
所述应用服务器的许可权限由应用服务器标识和数据索引共同来标识;
所述应用服务器标识用于唯一地标识所述应用服务器;所述数据索引用于标识允许所述应用服务器访问的数据块。
进一步地,上述方法还可具有以下特点:
所述订阅关系的删除操作,在所述归属用户服务器得知某应用服务器对本地某些数据访问的许可权限由允许变为禁止时,直接执行。
进一步地,上述方法还可具有以下特点:
所述订阅关系的直接删除是由所述归属用户服务器的操作维护中心来执行的。
进一步地,上述方法还可具有以下特点:
所述订阅关系的删除操作,在所述归属用户服务器在对所述应用服务器发送来的订阅通知消息进行处理时,查询所述应用服务器的许可权限后执行。
进一步地,上述方法还可具有以下特点:
所述订阅关系的删除操作,在所述归属用户服务器向所述应用服务器发送包含发生变化的订阅数据的通知消息之前,查询所述应用服务器的许可权限后执行。
进一步地,上述方法还可具有以下特点:
所述订阅关系是指在归属用户服务器中保存的与应用服务器服务用户关联的订阅关系;所述归属用户服务器中的订阅数据发生变化时,按照其所保存的订阅关系通知应用服务器。
为了解决上述技术问题,本发明还提供了另一种基于应用服务器许可权限的订阅通知的处理方法,包括:
归属用户服务器向应用服务器发送包含发生变化的订阅数据的通知消息之前,先查询所述应用服务器当前的许可权限,如果该通知消息中包括所述应用服务器被禁止访问的数据,则不向所述应用服务器发送该通知消息。
进一步地,上述方法还可具有以下特点:
所述应用服务器的许可权限由应用服务器标识和数据索引共同来标识;
所述应用服务器标识用于唯一地标识所述应用服务器;所述数据索引用于标识允许所述应用服务器访问的数据块。
进一步地,上述方法还可具有以下特点:
所述订阅关系是指在归属用户服务器中保存的与应用服务器服务用户关联的订阅关系;所述归属用户服务器中的订阅数据发生变化时,按照其所保存的订阅关系通知应用服务器。
本发明所述的一种基于应用服务器许可权限的订阅通知的处理方法,针对应用服务器许可权限发生变化时产生的订阅通知问题,及时地处理订阅关系,从而实现避免不必要的无效通知消息的目的。
【附图说明】
图1是应用服务器和归属用户服务器之间的订阅通知消息流程图。
图2是本发明第一实施例订阅通知处理流程图。
图3是本发明第二实施例订阅通知处理流程图。
图4是本发明第三实施例订阅通知处理流程图。
【具体实施方式】
本发明提出一种基于应用服务器许可权限的订阅通知的处理方法,其基本构思是:归属用户服务器得知某应用服务器对本地某些数据访问的许可权限由允许变为禁止时,删除与所述应用服务器相关的所有被禁止访问的数据的订阅关系;或者也可以在归属用户服务器向应用服务器发送包含发生变化的订阅数据的通知消息之前,先检查所述应用服务器当前的许可权限,如果该通知消息中包括所述应用服务器被禁止访问的数据,则不向所述应用服务器发送该通知消息。
以下结合附图以及具体实施例对本发明作进一步地详细说明。
第一实施例
参考图2,在应用服务器向归属用户服务器发送订阅通知消息时,由归属用户服务器检查应用服务器许可权限列表,如果在所述许可权利列表中禁止应用服务器访问归属用户服务器中的某部分数据,则归属用户服务器删除所有与所述应用服务器相关的被禁止访问数据的订阅关系,具体包括以下步骤:
步骤201:应用服务器由于某些事件的触发,例如第三方注册或呼叫请求消息等向归属用户服务器发送订阅通知消息;
所述订阅通知消息中包括数据索引、用户标识等与订阅数据相关的参数信息;
步骤202:归属用户服务器接收到来自一应用服务器的订阅通知消息后,根据请求消息中携带的源主机名(Origin-Host)和数据索引(Data-Reference)参数在所述许可权限列表中查询所述应用服务器的许可权限,如果所述应用服务器不在所述许可权限列表内或被标记为禁止访问,则归属用户服务器删除其所保存的与所述应用服务器相关的所有被禁止访问数据的订阅关系;
步骤203:归属用户服务器向应用服务器返回订阅通知响应消息。
归属用户服务器向所述应用服务器返回一订阅通知响应消息DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED,通知应用服务器其订阅内容未被授权。
在归属用户服务器中的订阅数据发生变化时,归属用户服务器将按照所保存的订阅关系发送包含变化的订阅数据的通知给应用服务器,由于与所述应用服务器相关的所有被禁止访问数据的订阅关系已经删除,归属用户服务器将不会向所述应用服务器发送包含所述被禁止访问的数据的无效通知消息,从而能够有效地避免无效通知的下发。
第二实施例
参考图3,在归属用户服务器中的订阅数据发生变化时,归属用户服务器根据其保存的订阅关系发送包含变化的订阅数据的通知给应用服务器之前,还在许可权限列表中查询所述应用服务器的许可权限,如果所述应用服务器的许可权限发生变化,比如:某一应用服务器对归属用户服务器中部分数据的访问权限由许可变成禁止时,则归属用户服务器删除所有与所述应用服务器相关的被禁止访问的数据的订阅关系,具体包括以下步骤:
步骤301:当应用服务器相关的订阅数据发生变化时,归属用户服务器触发通知消息流程的处理,在归属用户服务器根据其保存的订阅关系发送包含变化的订阅数据的通知给应用服务器之前,还在许可权限列表中查询所述应用服务器的许可权限,如果某一应用服务器不在许可权限列表内或被标记为禁止访问,则归属用户服务器删除所有与所述应用服务器相关的被禁止访问数据的订阅关系;
由于所述与所述应用服务器相关的所有被禁止访问数据的订阅关系已经删除,归属用户服务器将按照所保存的订阅关系发送包含变化的订阅数据的通知给应用服务器时,将不会向所述应用服务器发送包含所述被禁止访问的数据的无效通知消息,从而能够有效地避免无效通知的下发。
如果所述应用服务器在许可权限列表内,则继续执行如下的步骤;
步骤302:归属用户服务器向应用服务器发送通知请求消息,请求消息中包括变化的数据信息;
步骤303:应用服务器向归属用户服务器返回通知响应消息。
第三实施例
参考图4,当归属用户服务器中的订阅数据发生变化,所述归属用户服务器按照所保存的订阅关系发送包含变化的订阅数据的通知给应用服务器之前,还在许可权限列表中查询所述应用服务器的许可权限,如果所述应用服务器的许可权限发生变化,比如:某一应用服务器对归属用户服务器中部分数据的访问由访问许可变成禁止访问时,则归属用户服务器不向所述应用服务器发送与所述被禁止访问的数据相关的通知消息,具体包括以下步骤:
步骤401:当应用服务器相关的订阅数据发生变化时,归属用户服务器触发通知消息流程的处理,在归属用户服务器根据其保存的订阅关系发送通知消息给应用服务器前,所述归属用户服务器还查询所述应用服务器的许可权限列表,如果该通知消息中包括所述应用服务器被禁止访问的数据,则不向所述应用服务器发送该通知消息,从而能够有效地避免无效通知的下发。
如果所述应用服务器在许可权限列表内,则继续执行如下的步骤;
步骤402:归属用户服务器向应用服务器发送通知请求消息,请求消息中包括变化的数据信息;
步骤403:应用服务器向归属用户服务器返回通知响应消息。
在另一实施例中,归属用户服务器也可以在得知某一应用服务器对本地某些数据访问的许可权限由允许变为禁止时,即应用服务器从许可权限列表内删除或被标记为禁止访问时,直接删除与应用服务器所有相关的被禁止访问数据的订阅关系,这部分操作可以由操作维护中心来完成,而不需要像图2、图3,以及图4的实现方案那样等待订阅通知消息或通知消息的触发。
本发明还可有其他多种实施例,比如上述几种方案的组合,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。