具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种反馈失败信息的方法、相关装置及通信系统,使用本发明实施例提供的技术方案,能够使得客户端获得失败信息。
实施例一
本实施例阐述一种反馈失败信息的方法,下面结合附图进行详细说明,参见图1,该方法包括以下步骤:
步骤101:CBUS服务器接收客户端发送的用户选择请求;
客户端可以是CBUS客户端。
上述用户选择请求包括选择的条件,CBUS服务器将向与选择的条件对应的信息源发送获取评估信息的请求。
用户选择请求可以是选择单个或多个用户的用户选择请求,当选择多个用户时,用户选择请求可以是包含多个用户统一资源标识,也可以是包含列表统一资源标识。
步骤102:CBUS服务器向信息源或通过策略评估执行管理服务器向信息源获取评估信息;
根据用户选择请求向与用户选择请求对应的信息源或通过策略评估执行管理服务器向信息源获取评估信息;
上述步骤可以是先根据用户选择请求向与用户选择请求对应的信息源或通过策略评估执行管理服务器向信息源发送获取评估信息的请求;再接收信息源或策略评估执行管理服务器返回的信息。
在CBUS服务器通过策略评估执行管理服务器向信息源获取评估信息时,策略评估执行管理服务器根据获取评估信息的请求判断是否允许对与列表统一资源标识对应的列表的信息的访问,或,策略评估执行管理服务器根据获取评估信息的请求判断是否允许对列表中每个用户信息的访问,上述每个用户信息可以从共享列表扩展标记语言(Extensible Markup Language,XML)文档管理服务器获得,在允许访问时向信息源发送获取评估信息的请求。
在CBUS服务器直接向信息源获取评估信息时,CBUS服务器可以是根据所述用户选择请求向扩展标记语言文档管理(XML DocumentManagement,XDM)服务器发送搜索请求,XDM服务器再向PEEM服务器请求权限评估。
在CBUS服务器通过策略评估执行管理服务器向信息源获取评估信息时,策略评估执行管理服务器根据所述获取评估信息的请求进行权限评估,在所述策略评估执行管理服务器允许客户端对评估信息访问时,将所述获取评估信息的请求发送给所述信息源。
在CBUS服务器直接向信息源获取评估信息后,接收信息源根据所述获取评估信息的请求判断认证没有通过或没有满足所述条件的目标用户时返回的信息。
在CBUS服务器直接向信息源获取评估信息后,接收信息源返回的允许客户端访问的评估信息和拒绝客户端访问的评估信息。
步骤103:CBUS服务器对信息进行评估,在判断信息包含失败信息时,向客户端反馈失败信息。
可以是向客户端反馈拒绝访问的评估信息。
失败信息可以是包括拒绝访问的用户统一资源标识、拒绝访问的用户个数、拒绝访问的用户拒绝的选择条件、拒绝访问的用户拒绝的理由中的任一或任意组合。
本实施例由于向信息源或通过策略评估执行管理服务器向信息源获取评估信息,对上述信息进行评估,在判断上述信息包含失败信息时,向客户端反馈失败信息,使得客户端在选择目标用户失败时能够了解拒绝其访问的评估信息,从而可以避免客户端发起一些无用的选择。
下面的实施例对各种场景下本发明的实施方式进行了描述。
信息源可以是包括应用服务器和XDM服务器,而应用服务器包括呈现服务器和位置服务器等。下面的实施例中提及的应用服务器可以替换为信息源。
评估信息可以是包括目标用户的呈现信息、位置信息、个人轮廓(profile)信息等。下面的实施例中提及的目标用户信息、位置信息等可以替换为评估信息。
实施例二
本实施例阐述CBUS服务器向应用服务器获取信息失败的情况,下面结合附图进行详细说明,参见图2,本实施例的方法包括以下步骤:
步骤201:客户端A向CBUS服务器发起选择请求;
其中包含选择的条件和范围,条件为“状态=在线;位置=北京”,范围是用户B和用户C;
步骤202:CBUS服务器向对应的应用服务器获取目标用户的信息;
CBUS服务器向呈现服务器请求获取用户B和用户C的状态信息,向位置服务器请求获取这两个用户的位置信息;
CBUS服务器接收到客户端A的请求后,向呈现服务器请求获取用户B和用户C的状态信息,向位置服务器请求获取这两个用户的位置信息。同时CBUS服务器也向这些应用服务器提供了认证信息,例如客户端A的用户名和密码或证书、CBUS服务器的用户名和密码或证书等。
呈现服务器对CBUS服务器和/或客户端A的身份进行认证,在呈现服务器对上述任一种进行认证没有通过时则得到认证没有通过的结论,然后向CBUS服务器反馈认证未通过的信息。而位置服务器向CBUS服务器反馈了用户B和用户C的位置信息,例如位置信息是位于上海。
步骤203:CBUS服务器对反馈的信息进行评估;
CBUS服务器对反馈的信息进行评估后发现呈现服务器拒绝了请求,而根据位置服务器反馈的信息,没有一个目标用户的位置在北京。
步骤204:CBUS服务器向客户端A反馈选择失败信息。
在CBUS服务器得到认证没有通过或没有满足条件的目标用户的信息时,CBUS服务器向客户端A反馈具体的选择失败信息可以是如下所示:
<?xml version="1.0"encoding="UTF-8"?>
<cbus xmlns="...">
…
<FailureResults>
<FailureSource>
<Source>presence</Source>
<Data>403Authentication Failed</Data>
</FailureSource>
<FailureSource>
<Source>location</Source>
<Data>405No Target Suitable</Data>
</FailureSource>
</FailureResults>
</cbus>
其中FailureResults元素表示反馈的是失败信息,其每个子元素FailureSource表示一个应用服务器的相关信息,FailureSource的子元素Source表示应用服务器的类型或者标识,另一个子元素Data表示具体的失败信息,对于呈现服务器,失败信息是认证未通过,对于位置服务器,失败信息是没有发现满足“在北京”这个条件的用户。
其它的失败信息还可以包括CBUS长时间没有收到应用服务器的反馈导致任务终止。
本实施例CBUS服务器在获得呈现服务器对客户端A的身份认证没有通过或位置服务器反馈没有满足条件的目标用户时,向客户端A反馈选择目标用户B和C的失败信息,能够使得客户端A了解选择失败的具体原因,提升了用户体验。
实施例二阐述的是CBUS服务器向应用服务器获取信息失败的情况,下面的实施例阐述一种单个用户拒绝被选择的情况。
实施例三
本实施例阐述一种单个用户拒绝被选择的情况,下面结合附图进行详细说明,参见图3,本实施例的方法包括以下步骤:
步骤301:客户端A向CBUS服务器发起选择单个用户是否在线的请求;
某客户端A希望通过CBUS服务器了解目标用户B是否在线。
步骤302:CBUS服务器向PEEM服务器发送获取单个用户是否在线的请求;
使用代理模式,CBUS服务器向呈现服务器请求目标用户B的在线信息,中途通过代理接口向PEEM服务器发送消息,其主要内容可以是如下所示:
SUBSCRIBE sip:Bps.cintel.net.cn SIP/2.0
…
To:<sip:Bps.cintel.net.cn>
From:<sip:CBUSps.cintel.net.cn>
…
Event:presence
…
Content-Type:application/cbus
Content-Length:xxx
ConsumerID:sip:Aps.cintel.net.cn
ConsumerServiceID:PoC
ConsumerServiceProviderID:PoC-Provider
这是一条会话初始协议的订阅(SUBSCRIBE)消息,在上面例子中用于向呈现服务器请求用户的在线信息。消息中各个字段的含义如下:
To: | <sip:Bps.cintel.net.cn> | 目标用户的URI |
From: | <sip:CBUSps.cintel.net.cn> | CBUS服务器的URI |
Event: | presence | 请求的资源 |
Content-Type: | application/cbus | 消息体类型 |
Content-Length: | XXX | 消息体长度 |
ConsumerID: | <sip:Aps.cintel.net.cn> | 客户端URI |
ConsumerServiceID: | PoC | 发起请求的业务ID |
ConsumerServiceProviderID: | PoC-Provider | 发起请求的业务提供商 |
消息中指明了目标用户的URI、CBUS服务器的URI、请求的资源为呈现信息、消息体类型为application/cbus,表示订阅消息体中携带的是CBUS服务器发起请求时的专用信息,本例中这些专用信息包括客户端URI、发起请求的业务标识(Identifier,ID)、发起请求的业务的提供商。
当PEEM收到这条消息后综合分析以上的信息对该请求进行权限评估,例如分析CBUS服务器、客户端A是否有权限访问目标用户B的呈现信息,也可以再加入发起请求的业务ID及提供商作为评估参考条件。
步骤303:PEEM服务器对客户端的权限进行评估;
若PEEM服务器经过权限评估后允许A对B的访问,则将A发送的请求向呈现服务器转发;若PEEM服务器拒绝A对B的访问,则向CBUS服务器返回许可失败消息;
若PEEM服务器允许对目标用户B呈现信息的访问,则把该请求向呈现服务器转发,在转发时可以对一些已经进行了权限评估的专用信息进行裁剪,例如裁剪掉ConsumerID、ConsumerServiceID、ConsumerServiceProviderID等消息体,Content-Type也裁剪掉,Content-Length设为0,这时消息变为如下形式:
SUBSCRIBE sip:Bps.cintel.net.cn SIP/2.0
…
To:<sip:Bps.cintel.net.cn>
From:<sip:CBUSps.cintel.net.cn>
…
Event:presence
…
Content-Length:0
当然,也可以不裁剪这些信息,全部转发给呈现服务器。
若PEEM服务器拒绝对目标用户B呈现信息的访问,则直接向CBUS服务器返回许可失败信息,返回的许可失败信息可以是如下所示:
SIP/2.0403Forbidden
…
From:<sip:Bps.cintel.net.cn>
To:<sip:CBUSps.cintel.net.cn>
…
Content-Length:0
其中使用403Forbidden作为响应表示请求被拒绝,可选的可以在失败消息中添加失败的具体原因描述,这可以放在消息体中,只要在消息头中指明消息体的类型即可。
步骤304:CBUS服务器向客户端反馈许可失败信息。
CBUS服务器收到PEEM返回的许可失败消息后,向客户端A反馈上述许可失败消息。
CBUS服务器向客户端A反馈用户B拒绝访问呈现状态的信息。
本实施例由于CBUS服务器收到PEEM服务器拒绝客户端A对目标用户B的呈现信息进行访问后返回的许可失败信息,对许可失败信息进行评估后向客户端A反馈目标用户B拒绝访问呈现状态的信息,可以使得客户端A了解选择目标用户B的呈现信息失败的具体原因,从而提升了用户体验。
实施例三阐述了一种选择单个用户被拒绝的情况,下面的实施例阐述一种以列表方式请求多个目标用户资源信息时失败的情况。
实施例四
本实施例阐述一种了解多个目标用户在线信息部分失败的情况,下面结合附图进行详细说明,参见图4,本实施例的方法包括以下步骤:
步骤401:客户端A以列表URI方式向CBUS服务器发起选择多个用户是否在线的请求;
客户端A希望通过CBUS服务器了解多个目标用户的在线信息,例如目标用户B、C、D、E是否在线。
步骤402:CBUS服务器向PEEM服务器发送获取多个用户是否在线的请求;
使用代理模式,CBUS服务器通过代理接口向PEEM服务器发送消息,其主要内容可以是如下所示:
SUBSCRIBE sip:A-listps.cintel.net.cn SIP/2.0
…
To:<sip:A-listps.cintel.net.cn>
From:<sip:CBUSps.cintel.net.cn>
Event:presence
…
Content-Type:application/cbus
Content-Length:xxx
ConsumerID:sip:Aps.cintel.net.cn
ConsumerServiceID:PoC
ConsumerServiceProviderID:PoC-Provider
此时目标用户URI变成了一个列表的URI,即A-listps.cintel.net.cn,该列表中包含了B、C、D、E四个用户。列表包含的用户URI存储在一个共享列表XDM服务器上。
步骤403:PEEM服务器对客户端A的权限进行评估;
PEEM服务器判断是否允许A对该列表URI的呈现信息进行访问,或,从包含列表用户URI的共享列表XDM服务器上获取列表中包含的目标用户URI后再判断是否允许A对每个目标用户呈现信息的访问;
PEEM服务器收到该消息后可以有多种处理方式:
1)、根据消息中的相关信息判断是否允许对该目标列表的呈现信息的访问,判断方法及后续的处理与实施例三相同;
PEEM也可能从共享列表XDM服务器上获取列表包含的用户URI,并判断客户端A是否有对整个列表用户的访问权。
2)、从共享列表XDM服务器上取回列表中包含的目标用户URI,并根据订阅消息中的相关信息判断是否允许对每个目标用户呈现信息的访问,其中,相关信息可以是目标用户ID、权限评估发起者ID、目标属性、目标属性使用者,可选的包括目标用户属性使用业务ID、目标属性使用业务提供商。对于许可访问的目标用户,PEEM向呈现服务器或资源列表服务器(ResourceList Server,RLS)转发订阅消息,对于拒绝访问的目标用户,PEEM向CBUS服务器返回拒绝访问信息。
步骤404:PEEM服务器返回评估后的结果;
对于PEEM服务器许可访问的用户,PEEM向呈现服务器或资源列表服务器转发订阅消息,对于PEEM服务器拒绝A访问的目标用户,PEEM向CBUS服务器返回拒绝访问的消息;
假设目标用户B和C拒绝访问,而D和E允许访问,PEEM发送的消息分别描述如下。
对PEEM服务器允许访问的用户转发的消息例子如下所示:
SUBSCRIBE sip:rlsps.cintel.net.cn SIP/2.0
…
To:RLS<sip:rlsps.cintel.net.cn>
From:<sip:CBUSps.cintel.net.cn>
…
Event:presence
Content-Type:application/resource-lists+xml
Content-Disposition:recipient-list
Content-Length:xxx
<?xml version="1.0"encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<list>
<entry uri="sip:Dps.cintel.net.cn"/>
<entry uri="sip:Eps.cintel.net.cn"/>
</list>
</resource-lists>
由于此时需要订阅多个用户的呈现信息,所以向呈现服务器发送该消息,其URI为sip:rlsps.cintel.net.cn,消息体中包含了两个目标用户D和E的URI,消息体的类型由application/resource-lists+xml标识。
对于拒绝访问的用户,PEEM服务器向CBUS服务器返回拒绝访问的消息之前先返回200OK消息,表明CBUS服务器发送的消息已经成功处理,然后使用会话初始协议技术中的通知(NOTIFY)方法反馈拒绝访问消息,消息可以是如下所示:
NOTIFY sip:a.cintel.net.cn SIP/2.0
…
From:<sip:A-listps.cintel.net.cn>
To:<sip:CBUSps.cintel.net.cn>
…
Event:presence
Subscription-State:terminated;reason=rej ected
…
Content-Type:application/rlmi+xml;char set="UTF-8"
Content-Length:xxx
<?xml version="1.0"encoding="UTF-8"?>
<list xmlns="urn:ietf:params:xml:ns:rlmi"
uri="sip:A-listps.cintel.net.cn"
version="1"full State="true">
<name language="en">Buddy List of A</name>
<name language="de">Liste der Freunde of A</name>
<resource uri="sip:Bps.cintel.net.cn">
<name>B</name>
<instance id="juwigmtboe"state="active"
cid="Bps.cintel.net.cn"/>
</resource>
<resource uri="sip:Cps.cintel.net.cn">
<name>C</name>
<instance id="hqzsuxtfyq"state="active"
cid="Cps.cintel.net.cn"/>
</resource>
</list>
NOTIFY的消息头中的From字段为sip:A-listps.cintel.net.cn表示是从目标用户列表反馈的消息,另外消息头中使用Subscription-State字段携带“terminated;reason=rejected”的信息,这表示订阅被拒绝,而拒绝访问的目标用户在消息体中包含,这个NOTIFY请求包含的消息体类型是“application/rlmi+xml”,消息体包含一个目标用户列表,本例中列表只包括了目标用户B和C的信息,说明拒绝访问的用户只有这两个。
步骤405:CBUS服务器向客户端反馈拒绝访问的目标用户信息。
CBUS服务器根据PEEM服务器发送的消息进行评估后向客户端A反馈拒绝客户端A访问的目标用户信息。
CBUS服务器通过评估后向客户端A反馈满足条件的目标用户URI,另外也反馈拒绝客户端A访问的目标用户信息,这些信息可以包括拒绝的用户URI、拒绝的用户个数、用户拒绝的选择条件、用户拒绝的理由等,可以包括它们中的一个或多个。用户拒绝的可以是客户端A,也可以是CBUS服务器。
具体反馈的失败信息可以是如下所示:
<?xml version="1.0"encoding="UTF-8"?>
<cbus xmlns="...">
…
<SuccessfulResults>
…
<Target uri="sip:Bps.cintel.net.cn"/>
<Target uri="sip:Cps.cintel.net.cn"/>
</SuccessfulResults>
<FailureResults>
<FailureSource>
<Source>presence</Source>
<Target uri="sip:Dps.cintel.net.cn"reason=”...”/>
<Target uri="sip:Eps.cintel.net.cn"reason=”...”/>
<TargetNumber>2</TargetNumber>
</FailureSource>
</FailureResults>
</cbus>
其中在SuccessfulResults中包含了符合本次选择的目标用户信息,其每个子元素Target具体表示了每一个目标用户的URI,即用户B和用户C。而另外使用FailureResults元素包含了选择失败的目标用户信息,其中每个子元素FailureSource携带一个应用服务器反馈的失败信息,FailureSource的子元素Source携带应用服务器的类型或者应用服务器的URI,上述例子中为presence,表示应用服务器是呈现服务器,FailureSource的子元素Target携带了拒绝访问的用户的URI以及拒绝的理由,FailureSource的子元素TargetNumber携带拒绝的用户个数。
本实施例由于部分目标用户拒绝访问,PEEM服务器向CBUS服务器返回拒绝访问信息,CBUS服务器通过评估后向客户端反馈拒绝客户端A访问的目标用户信息,可以使客户端A能够了解其选择的具体执行情况以及部分选择失败时能够及时的了解失败的原因。
实施例四阐述了一种以列表URI方式请求多个目标用户资源信息部分失败时的情况,下面的实施例阐述一种以多个URI方式请求多个目标用户信息部分失败的情况。
实施例五
本实施例阐述一种在请求中直接包含多个目标用户URI的方法来访问的情况,下面结合附图进行详细说明,参见图5,本实施例的方法包括以下步骤:
步骤501:客户端A向CBUS服务器发起选择多个用户是否在线的请求,上述请求包含多个用户的URI;
此时发送的请求消息可以是如下所示:
SUBSCRIBE sip:rlsps.cintel.net.cn SIP/2.0
…
To:RLS<sip:rlsps.cintel.net.cn>
From:<sip:CBUSps.cintel.net.cn>
…
Event:presence
…
Content-Type:multipart/related;type="application/resource-lists+xml";
start="<nXYxAEps.cintel.net.cn>";
boundary="50UBfW7LSCVLtggUPe5z"
Content-Length:xxx
--50UBfW7LSCVLtggUPe5z
Content-Transfer-Encoding:binary
Content-ID:<nXYxAEps.cintel.net.cn>
Content-Type:application/resource-lists+xml;charset="UTF-8"
Content-Disposition:recipient-list
Content-Length:xxx
<?xml version="1.0"encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<list>
<entryuri="sip:Bps.cintel.net.cn"/>
<entry uri="sip:Cps.cintel.net.cn"/>
<entry uri="sip:Dps.cintel.net.cn"/>
<entry uri="sip:Eps.cintel.net.cn"/>
</list>
</resource-lists>
…
Content-Type:application/cbus+xml;charset="UTF-8"
Content-ID:<CBUSps.cintel.net.cn>
Content-Length:xxx
<?xml version="1.0"encoding="UTF-8"?>
<cbus xmlns="urn:ietf:params:xml:ns:cbus">
<ConsumerID uri="sip:Aps.cintel.net.cn"/>
<ConsumerServiceID>PoC</ConsumerServiceID>
<ConsumerServiceProviderID>PoC-Provider</ConsumerServiceProviderID>
</cbus>
其中消息头字段To和From分别表示目的地的资源列表服务器的URI,和发起消息的CBUS服务器的URI;字段Event为呈现服务器表示订阅呈现信息;内容类型multipart/related表示消息中有多个部分,第一个部分的类型是application/resource-lists+xml,ID标识是nXYxAEps.cintel.net.cn,这部分用于携带资源列表包括的多个用户URI,如例子中用list/entry携带了B、C、D、E四个URI;第二个部分内容类型是application/cbus+xml,ID标识是CBUSps.cintel.net.cn,这部分携带了客户端ID、发起请求的业务ID、发起请求的业务的提供商。
步骤502至步骤505与步骤402至步骤405相同,此处不再赘述,只是在步骤503中,PEEM服务器收到订阅消息后不需要再联系共享列表XDM服务器。
本实施例由于PEEM服务器向CBUS服务器返回部分目标用户拒绝访问信息,CBUS服务器通过评估后向客户端反馈拒绝客户端A访问的目标用户信息,可以使客户端A能够了解其选择的具体执行情况以及部分选择失败时能够及时的了解失败的原因。
实施例五阐述了一种在请求中直接包含多个目标用户URI的方法来访问的情况,下面的实施例阐述一种在即时调用模式下请求多个目标用户的情况。
实施例六
本实施例阐述一种在即时调用模式下请求多个目标用户的情况,下面结合附图进行详细说明,参见图6,本实施例的方法包括以下步骤:
步骤601:客户端A向CBUS服务器发起选择多个用户是否在线的请求;
可以是以列表形式,也可以是在请求中包含多个用户的URI的方式。
客户端A向CBUS服务器发送请求,如目标用户列表A-Listps.cintel.net.cn是否在线,列表中包含4个用户B、C、D、E。
步骤602:CBUS服务器向呈现服务器发送获取多个用户是否在线的请求;
在即时调用的模式下,CBUS服务器直接向呈现服务器发送订阅消息,此时的订阅消息与实施例三、四、五的消息相同。
步骤603:呈现服务器向PEEM服务器发送权限评估的信息请求权限评估;
呈现服务器根据获取多个用户是否在线的请求向PEEM服务器发送权限评估的信息请求权限评估;
呈现服务器首先向PEEM服务器请求权限评估,这个请求消息可以是如下所示:
<?xml version="1.0"encoding="UTF-8"?>
<peem xmlns="urn:ietf:params:xml:ns:peem"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<templateID>OMA_GPM_1</templateID>
<templateVersion>V1.0.0</templateVersion>
<permissionsTargetID uri="sip:A-Listps.cintel.net.cn"/>
<permissionsRequesterID uri="sip:CBUSps.cintel.net.cn"/>
<TargetAttributeConsumer>
<ConsumerID uri="sip:Aps.cintel.net.cn"/>
<ServiceID>PoC</ServiceID>
<ServiceProviderID>Poc Provider</ServiceProviderID>
</TargetAttributeConsumer>
<requestedAttributes>
<targetAttributeName>presence</targetAttributeName>
</requestedAttributes>
</peem>
其中包含了如实施例三中描述的用于进行权限评估的信息:目标用户的URI,此时为一个列表URI,但也可以为多个指定的目标用户URI;发起者CBUS服务器的URI;客户端URI;发起请求的业务ID;发起请求的业务的提供商;请求的资源,此时为呈现信息。消息前端包括PEEM的模板标识和模板版本号,分别为OMA_GPM_1和V1.0.0。
步骤604:PEEM服务器进行权限评估后,向呈现服务器返回评估结果;
PEEM服务器根据上述权限评估的信息进行权限评估后,对于PEEM拒绝A访问的用户,则向呈现服务器返回拒绝A访问用户的信息,可选的,还可以返回拒绝的原因;对于PEEM允许A访问的用户,向呈现服务器反馈许可的用户标识;
PEEM进行综合评估后,假设拒绝对目标用户B和C的访问,允许对目标用户D和E的访问,则向呈现服务器返回的消息可以是如下所示:
<?xml version="1.0"encoding="UTF-8"?>
<peem xmlns="urn:ietf:params:xml:ns:peem"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<templateID>OMA_GPM_2</templateID>
<templateVersion>V1.0.0</templateVersion>
<PermissionTarget>
<TargetID uri="sip:Bps.cintel.net.cn"/>
<TargetID decision=”DENY”/>
<TargetID reason=”Consumer A is not permitted to visit B”/>
</PermissionTarget>
<PermissionTarget>
<TargetID uri="sip:Cps.cintel.net.cn"/>
<TargetID decision=”DENY”/>
<TargetID reason=”C is not willing to accept PoC call”/>
</PermissionTarget>
<PermissionTarget>
<TargetID uri="sip:Dps.cintel.net.cn"/>
<TargetID decision=”GRANT”/>
</PermissionTarget>
<PermissionTarget>
<TargetID uri="sip:Eps.cintel.net.cn"/>
<TargetID decision=”GRANT”/>
</PermissionTarget>
</peem>
通过四个PermissionTarget/TargetID元素来表示对每个目标用户的许可结果,每个TargetID元素的uri属性表示目标用户的URI,对应的decision属性表示对该目标用户的访问许可情况。可选的还可使用reason属性给出拒绝的原因,例如例子中B的拒绝理由是“不允许A访问他”,C的拒绝理由是“不想加入基于蜂窝网的一按通业务(Push to talk over Cellular,PoC)会话”。
步骤605:呈现服务器将拒绝访问的目标用户的信息发送给CBUS服务器;
呈现服务器将上述拒绝访问用户的信息、还可以包括URI信息及原因信息发送给CBUS服务器;呈现服务器将允许A访问的用户的呈现信息发送给CBUS服务器;
呈现服务器通过NOTIFY的方式把拒绝访问的用户的URI信息及原因信息告知CBUS服务器,这与实施例四相同。PRS服务器还可以通过NOTIFY的方式把允许访问的用户的呈现信息告知CBUS服务器。
步骤606:CBUS服务器向客户端反馈拒绝访问的目标用户信息。
CBUS服务器对收到的信息进行评估后向客户端A反馈拒绝客户端A访问的目标用户信息。
此步骤与步骤405相同,此处不再赘述。
本实施例可以使客户端了解其有权限访问的目标用户URI,同时也了解了拒绝其访问的目标用户的URI,提升了用户体验。
实施例六阐述了一种在即时调用模式下请求多个目标用户信息的情况,下面阐述一种在即时调用模式下使用搜索方式请求多个目标用户信息的情况。
实施例七
本实施例阐述一种在即时调用模式下使用搜索方式请求多个目标用户信息的情况,下面结合附图进行详细说明,参见图7,本实施例的方法包括以下步骤:
步骤701:客户端A向CBUS服务器发起选择多个用户是否爱好足球的请求;
可以是以列表URI形式,也可以是在请求中包含多个用户的URI。
在即时调用模式下,除了使用订阅的方式外,CBUS服务器还可以使用搜索的方式在XDM服务器,例如共享Profile XDM服务器上进行资源访问,例如在一个列表中搜索爱好足球的用户URI。
步骤702:CBUS服务器向共享轮廓(Profile)XDM服务器发送搜索请求;
CBUS服务器根据上述请求向共享Profile XDM服务器发送搜索请求;
CBUS服务器通过聚合代理和搜索代理向共享Profile XDM服务器发送搜索消息。该消息中包含需要搜索的范围信息,例如一个目标用户列表;搜索的条件信息,例如“爱好=足球”。
步骤703:Profile XDM服务器向PEEM服务器发送权限评估的信息请求权限评估;
共享Profile XDM服务器可以是使用与实施例六类似的方法向PEEM请求对目标用户列表的权限评估,并获取权限评估结果。
步骤704:PEEM服务器进行权限评估后向Profile XDM服务器返回评估结果;
PEEM服务器根据上述权限评估的信息进行权限评估后,对于PEEM服务器拒绝A的访问的用户,则向Profile XDM服务器返回拒绝访问用户的信息(可选的,还可以返回拒绝的原因);对于PEEM服务器允许A访问的用户,向Profile XDM服务器发送允许访问的用户标识;
步骤705:Profile XDM服务器向CBUS服务器返回信息;
Profile XDM服务器将允许访问且爱好足球的目标用户的URI发送给CBUS服务器,将拒绝访问的用户信息发送给CBUS服务器;
Profile XDM服务器向CBUS服务器反馈允许访问的而且爱好是足球的
目标用户URI,同时向CBUS服务器指明拒绝访问的用户信息,具体的反馈
方式可以是与实施例六相同。
步骤706:CBUS服务器向客户端反馈拒绝访问的目标用户信息。
CBUS服务器对收到的信息进行评估后向客户端A反馈拒绝客户端A访问的目标用户信息。
向客户端A反馈的方式可以是与实施例六相同。
本实施例由于CBUS服务器向XDM服务器搜索目标用户信息,XDM服务器向PEEM服务器请求权限评估,获得评估结果后向CBUS服务器反馈允许访问和拒绝访问的目标用户信息,CBUS服务器向客户端反馈拒绝访问的目标用户信息,使得客户端能够了解拒绝其访问的目标用户的信息,从而提升了用户体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上提供了一种反馈失败信息的方法,本发明实施例还提供一种基于条件的用户选择服务器和一种通信系统。
首先阐述一种基于条件的用户选择服务器,参见图8,基于条件的用户选择服务器包括以下单元:
接收单元801,用于接收客户端发送的用户选择请求;
信息获取单元802,用于根据所述接收单元801接收到的所述用户选择请求向与所述用户选择请求对应的信息源或通过策略评估执行管理服务器向所述信息源获取评估信息;
评估单元803,用于判断所述信息获取单元802得到的信息是否包含失败信息;
反馈单元804,用于在所述评估单元803判断所述信息包含失败信息时,向所述客户端反馈所述失败信息。
其中,信息获取单元802可以包括:
请求发送单元,用于根据所述接收单元801接收到的所述用户选择请求向与所述用户选择请求对应的信息源或通过策略评估执行管理服务器向所述信息源发送获取评估信息的请求;
信息接收单元,用于接收所述信息源或策略评估执行管理服务器根据所述请求发送单元接收到的所述获取评估信息的请求返回的信息;
评估单元803包括:评估子单元,用于判断所述信息接收单元接收到的所述信息是否包含失败信息。
其中,接收单元801包括:接收子单元,用于接收客户端发送的包含选择的条件的用户选择请求;请求发送单元包括:请求发送子单元,用于根据所述用户选择请求向与所述条件对应的信息源发送获取评估信息的请求。
其中,接收子单元包括:第一接收单元,用于接收所述信息源根据所述获取评估信息的请求判断认证没有通过或没有满足所述条件的目标用户时返回的信息。
其中,接收单元801包括:第二接收单元,用于接收客户端发送的选择单个或多个用户的用户选择请求;请求发送单元包括:第一请求发送单元,用于根据所述选择单个或多个用户的用户选择请求通过策略评估执行管理服务器向信息源请求所述单个或多个用户的信息;反馈单元804包括:反馈子单元,用于在所述评估单元803判断所述信息包含失败信息时,向客户端反馈拒绝访问的评估信息。
其中,接收单元801包括:第三接收单元,用于接收客户端发送的选择多个用户的用户选择请求,所述选择多个用户的用户选择请求包含列表统一资源标识。
其中,接收单元801包括:第四接收单元,用于接收客户端发送的选择多个用户的用户选择请求,所述选择多个用户的用户选择请求包含列表统一资源标识或多个用户统一资源标识;信息接收单元包括:信息接收子单元,用于接收信息源返回的允许所述客户端访问的用户信息和拒绝所述客户端访问的用户信息。
其中,接收单元801包括:第四接收单元,用于接收客户端发送的选择多个用户信息的用户选择请求,所述选择多个用户信息的用户选择请求包含列表统一资源标识或多个用户统一资源标识;请求发送单元包括:第二请求发送单元,用于根据所述用户选择请求向扩展标记语音文档管理服务器发送搜索请求;信息接收单元包括:第一信息接收单元,用于接收信息源返回的允许和拒绝所述客户端访问的评估信息。
其中,上述失败信息包括拒绝访问的用户统一资源标识、拒绝访问的用户个数、拒绝访问的用户拒绝的选择条件、拒绝访问的用户拒绝的理由中的任一或任意组合。
上述CBUS服务器可以用于实现本发明实施例提及的反馈失败信息的方法,但不限于实现该方法。
上面阐述了一种CBUS服务器,下面阐述一种通信系统。
参见图9,一种通信系统,包括:
基于条件的用户选择服务器901,用于接收客户端发送的用户选择请求;根据所述用户选择请求向与所述用户选择请求对应的信息源902;对所述信息进行评估,在判断所述信息包含失败信息时,向所述客户端反馈所述失败信息;
信息源902,用于向所述基于条件的用户选择服务器901返回信息。
其中,上述通信系统还包括:
策略评估执行管理服务器,用于根据基于条件的用户选择服务器801接收到的所述用户选择请求进行权限评估,在允许对评估信息进行访问时,将允许访问的目标用户标识发送给所述信息源902,在拒绝对评估信息进行访问时,向所述基于条件的用户选择服务器901返回失败信息。
本发明实施例由于向信息源或通过策略评估执行管理服务器向信息源获取评估信息,对上述信息进行评估,在判断上述信息包含失败信息时,向客户端反馈失败信息,使得客户端在选择目标用户失败时能够了解拒绝其访问的评估信息,从而可以避免客户端发起一些无用的选择。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
接收客户端发送的用户选择请求;
根据所述用户选择请求向与所述用户选择请求对应的信息源或通过策略评估执行管理服务器向所述信息源获取评估信息
对所述信息进行评估,在判断所述信息包含失败信息时,向所述客户端反馈所述失败信息。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种反馈失败信息的方法、相关装置及通信系统进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。