CN101540702B - 评估结果获取方法和条件评估服务器 - Google Patents
评估结果获取方法和条件评估服务器 Download PDFInfo
- Publication number
- CN101540702B CN101540702B CN200810102442.1A CN200810102442A CN101540702B CN 101540702 B CN101540702 B CN 101540702B CN 200810102442 A CN200810102442 A CN 200810102442A CN 101540702 B CN101540702 B CN 101540702B
- Authority
- CN
- China
- Prior art keywords
- evaluation
- condition
- assessment
- information
- group member
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1818—Conference organisation arrangements, e.g. handling schedules, setting up parameters needed by nodes to attend a conference, booking network resources, notifying involved parties
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种评估结果获取方法和条件评估服务器,该方法包括:解析接收到的请求消息,获取评估对象、评估条件和评估设置;根据所述评估设置和所述评估条件,对评估对象的相关信息进行评估;发送携带有评估结果的通知消息。本发明实施例通过解析接收到的请求消息,获取到评估对象、评估条件和评估设置,通过条件评估确定满足条件的群组成员,把详细的评估结果反馈给群组成员对应的客户端。
Description
技术领域
本发明实施例涉及通信领域,特别涉及一种评估结果获取方法和条件评估服务器。
背景技术
群组通信在通信领域中有着比较广的应用范围,根据群组的特点,可以分为预定义(Pre-arranged)群组,临时(Ad-hoc)群组和聊天(Chat)群组。预定义群组为预先定义好的一组成员,有固定的群组ID和与该群组ID相关联的成员;对于Ad-hoc群组指的是在会话的时候临时指定的一些成员所组成的群组,没有指定的群组ID;Chat群组是指一个Chat会场中,参与Chat会话的所有成员所组成的群组。
为了使动态群组的功能更具有通用性,使其它的业务服务器可以共同使用,引入了动态群组服务器(Dynamic Group Server,DGS)的概念,DGS用来确定满足条件的动态群组成员,并把相关的动态群组成员信息告知业务服务器,业务服务器把成员信息反馈到客户端,由客户端向业务服务器发起业务请求,并邀请相应的成员参与会话。
在基于动态群组的会话中,当群组成员不满足评估条件时,动态群组服务器在告诉业务服务器的通知中,只包含有哪些群组成员满足评估条件,并没有包含哪些群组成员没有满足评估条件,也没有包含不满足评估条件的原因,即哪些条件匹配成功、哪些条件没有匹配,导致群组成员在被拒绝或结束参与会话的时候无法获取原因。
发明内容
本发明实施例提供一种评估结果获取方法和条件评估服务器,用以实现当群组成员不满足评估条件时,能够获取评估结果的详细信息。
本发明实施例提供了一种评估结果获取方法,包括:
解析接收到的来自客户端的请求消息,获取所述请求消息中的评估对象、评估条件和评估设置;
根据所述评估设置和所述评估条件,对评估对象的相关信息进行评估;
发送携带有评估结果的通知消息给客户端;进一步,
收到来自呈现服务器的群组成员信息的变化通知;
对评估对象进行实时评估,并把评估后的群组成员变化信息和条件执行结果发送给客户端,使得客户端能够以此指示业务服务器结束群组成员参与的会话。
本发明实施例提供了一种条件评估服务器,包括:
解析模块,用于解析接收到的来自客户端的请求消息,获取所述请求消息中的评估对象、评估条件和评估设置;还用于接收来自呈现服务器的群组成员信息的变化通知;
评估模块,用于根据所述评估设置和所述评估条件,对评估对象的相关信息进行评估;
通知模块,用于发送携带有评估结果的通知消息给客户端;发送评估后的群组成员变化信息和条件执行结果给客户端,使得客户端能够以此指示业务服务器结束群组成员参与的会话。
附图说明
本发明实施例通过解析接收到的请求消息,获取到评估对象、评估条件和评估设置,通过条件评估确定满足条件的群组成员,把详细的条件评估结果反馈给群组成员的客户端,使得群组成员在被拒绝或结束参与会话的时候能够获取详细的评估结果信息即原因。
下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
图1为本发明评估结果获取方法的第一实施例的流程示意图;
图2为本发明评估结果获取方法的第二实施例的流程示意图;
图3为本发明评估结果获取方法的第三实施例的流程示意图;
图4为本发明评估结果获取方法的第四实施例的流程示意图;
图5为本发明评估结果获取方法的第五实施例的流程示意图;
图6为本发明评估结果获取方法的第六实施例的流程示意图;
图7为本发明评估结果获取方法的第七实施例的流程示意图;
图8为本发明评估结果获取方法的第八实施例的流程示意图;
图9为本发明评估结果获取方法的第九实施例的流程示意图;
图10为本发明条件评估服务器的具体实施例的结构示意图。
具体实施方式
如图1所示,为本发明评估结果获取方法的第一实施例的流程示意图。本实施例包括:
步骤101、客户端向条件评估服务器发送SUBSCRIBE订阅请求消息,该订阅请求消息包括群组标识、评估条件、评估设置和评估事件标识。
其中,群组标识用来表示预定义群组,如群组ID;评估条件用来指定动态群组中成员应该满足的评估条件;评估设置用来设置条件评估服务器评估条件的执行方式,如仅评估一次、评估多次、实时评估,以及评估的时间,评估的间隔等信息;评估事件标识用来标识该消息是评估事件,需要条件评估服务器执行评估。实时评估结束的方法为:评估条件满足,或达到预定义的监控时间。
下面以SUBSCRIBE请求消息为例,具体的消息格式如下:
SUBSCRIBE sip:golf-buddies example.com SIP/2.0
Via:SIP/2.0/TCP pda.example.com;branch=z9hG4bKnash54
To:<sip:golf-buddiesexample.com>
From:<sip:userexample.com>;tag=xfg9
Call-ID:4654674982
CSeq:1 SUBSCRIBE
Contact:<sip:userpda.example.com>
Max-Forwards:70
Event:condev
Accept:application/condev-result+xml
Content-type:application/condev-rules+xml
Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-rules xmlns=″urn:ietf:params:xml:ns:condev-rules″
xmlns:pidf=″urn:ietf:params:xml:ns:pidf″
xmlns:rpid=″urn:ietf:params:xml:ns:pidf:rpid″
xmlns:pp=”urn:ietf:params:xml:ns:pidf:person”>
<rule id=″a″>
<conditions type=”xpath”>
<include>
/pidf:presence/pidf:tuple[rpid:class=″PoC″]/
pidf:status[pidf:basic=”open”]/pidf:basic
</include>
<include>
/pidf:presence/pidf:person/pp:status[pp:place-type
=”office”]/pp:place-type
</include>
</conditions>
<rule>
<evaluation-setting>
<evaluation-type>RealTime</evaluation-type>
<validity>
<from>2008-01-20T17:00:00+01:00</from>
<until>2008-01-20T19:00:00+01:00</until>
</validity>
</evaluation-setting>
</condev-rules>
上述的消息格式中,定义了一个新的事件包condev,表示为一个条件评估事件;Accept消息头为application/condev-result+xml,表示接受的内容为评估结果;Content-Type消息头为application/condev-rules+xml,表示在消息体中的内容为评估条件<condev-rules>,其中包括<rule>和<evaluation-setting>,<rule id=”a”>表示需要评估的内容和条件,评估的内容为pif:basic和pp:place-type,表示需要从群组成员对应的呈现服务器上获取这两个信息;评估的条件分别为pidf:basic=”open”和pp:place-type=”office”,表示当群组成员的pidf:basic值为open并且pp:place-type值为office状态时,满足评估条件。
在<rule>中,各<include>之间逻辑关系为“与”,当所有<include>条件满足时,该<rule>才成立。同样,在<condev-rules>中可以定义多个<rule>,<rule>与<rule>之间的逻辑关系为“或”,其中任何一个<rule>中的条件满足时,表示<condev-rules>评估条件匹配。
在<evaluation-setting>中的内容表示设置评估条件的执行方式即评估方式,<evaluation-type>RealTime</evaluation-type>表示具体的评估类型为RealTime,实时评估;<validity>中的内容表示该评估方式的有效时间段,<from>中的内容表示开始时间,<until>中的内容表示结束时间;<evaluation-type>中的内容还可以为仅评估一次,如<evaluation-type>ONCE</evaluation-type>;也可以为评估多次,同时还包括设置多次评估的时间间隔,设置最大时间间隔和最小时间间隔等信息。
步骤102、条件评估服务器根据SUBSCRIBE消息中的群组标识,通过GET获取消息向XML文档管理服务器(XML Document Management Server,XDMS)发起一个获取群组成员的请求;
步骤103、XDMS发送OK响应消息到条件评估服务器,该响应消息包括群组成员信息。
如群组golf-buddiesexample.com中包括aexample.com,bexample.com和cexample.com三个成员,则在上述响应消息中包括这三个成员的URI信息;
步骤104、条件评估服务器保存评估设置。
其中的评估设置用于指定条件评估的执行方式,如评估一次、实时评估、评估多次,评估的时间间隔,评估的粒度等信息。评估的粒度可以指评估的周期等信息。
下面以实时评估为例,评估设置以XML格式表示如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-settings xmlns=″urn:oma:params:xml:ns:condev-settings″>
<evaluation-type>RealTime</evaluation-type>
<validity>
<from>2008-01-20T17:00:00+01:00</from>
<until>2008-01-20T19:00:00+01:00</until>
</validity>
</entity>
</condev-settings>
上述的消息格式中,<evaluation-type>中的内容RealTime表示具体的评估方式为实时评估;<validity>中的内容表示该评估方式的有效时间段。
步骤105、条件评估服务器向资源列表服务器(Resource List Servers,RLS)发送SUBSCRIBE订阅请求消息,以订阅群组成员相应的呈现信息,该SUSCRIBE请求消息包括群组成员信息和订阅的呈现信息。下面以订阅Presence为例,消息格式如下:
SUBSCRIBE sip:golf-buddies example.com SIP/2.0
Via:SIP/2.0/TCP host.example.com;branch=z9hG4bKnash54d
To:<sip:golf-buddiesexample.com>
From:<sip:condevexample.com>;tag=xsdfg9
Call-ID:4654674982
CSeq:12 SUBSCRIBE
Contact:<sip:condevhost.example.com>
Max-Forwards:70
Event:presence
Content-type:multipart/mixed;boundary=″boundary1″
Length:...
--boundary1
Content-Type:application/resource-lists+xml
<?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:aexample.com″/>
<entry uri=″sip:bexample.com″/>
<entry uri=″sip:cexample.com″/>
</list>
</resource-lists>
--boundary1
Content-Type:application/simple-filter+xml
<?xml version=″1.0″encoding=″UTF-8″?>
<filter-set xmlns=″urn:ietf:params:xml:ns:simple-filter″>
<ns-bindings>
<ns-binding prefix=″pidf″urn=″urn:ietf:params:xml:ns:pidf″/>
<ns-binding prefix=″rpid″
urn=″urn:ietf:params:xml:ns:pidf:rpid″/>
<ns-binding prefic=”pp”urn=”urn:ietf:params:xml:ns:pidf:person”/>
</ns-bindings>
<filter id=″123″uri=″sip:presentityexample.com″>
<what>
<include>
/pidf:presence/pidf:tuple[rpid:class=″PoC″]/
pidf:status/pidf:basic
</include>
<include>
/pidf:presence/pidf:person/pp:status/pp:place-type
</include>
</what>
</filter>
</filter-set>
--boundary1--
上述SUBSCRIBE的消息体格式中,Content-Type:application/resource-lists+xml部分的内容表示定义的对象,分别为aexample.com,bexample.com和cexample.com;Content-Type:application/simple-filter+xml部分的内容表示根据评估条件订阅的内容,使用simple-filter来过滤订阅的内容,根据评估条件这里订阅了成员的/pidf:presence/pidf:tuple[rpid:class=″PoC″]/pidf:status/pidf:basic状态信息和/pidf:presence/pidf:person/pp:status/pp:place-type状态信息。
有时呈现服务器需要对订阅请求消息进行鉴权,只有得到授权的请求才能订阅成员的呈现信息。在订阅消息中,可以携带群组成员的授权信息到呈现服务器(Presence Server,PS)上订阅呈现信息,这里条件评估服务器到PS的订阅消息中通过携带P-Asserted-Identity消息头,在P-Asserted-Identity消息头带上请求的信息。
条件评估服务器在获取群组成员的呈现信息时,也可以由条件评估服务器为群组中的每个成员分别订阅成员的呈现信息。
步骤106、RLS收到来自条件评估服务器的群组订阅请求消息,根据该请求消息中的群组成员信息和订阅成员的呈现信息,使用SUBSCRIBE消息分别向群组成员对应的PS发送订阅请求,以订阅群组成员的呈现信息;
步骤107、RLS收到来自各个PS的Notify通知消息的响应信息;
步骤108、RLS汇总收到的订阅的群组成员信息,发送Notify通知消息 到条件评估服务器,该Notify消息中包括群组成员信息和与其相关的呈现信息。
若返回的信息中成员aexample.com,bexample.com和cexample.com的<basic>状态信息为open,则<place-type>状态信息都为office。
步骤109、条件评估服务器根据评估设置和评估条件,对群组成员进行评估,来确定满足评估条件的群组成员,并保存评估条件的执行结果。
当群组成员的<basic>状态信息为open并且<place-type>状态信息为office时,才满足评估条件。经过条件评估服务器的实时评估,成员aexample.com,bexample.com和cexample.com都满足评估条件;
步骤110、条件评估服务器使用Notify通知消息通知客户端动态群组信息,该消息包括满足评估条件的群组成员信息、不满足评估条件的成员信息和评估条件的执行结果信息,或者他们的结合,具体Notify消息格式如下:
NOTIFY sip:userexample.com SIP/2.0
Via:SIP/2.0/TCP condev.example.com;branch=z9hG4bKnash54
Max-Forwards:70
From:<sip:condev.example.com>;tag=JenZ40P3
To:<sip:userexample.com>;tag=a12eztNf
Call-ID:45665231jhkj
CSeq:452 NOTIFY
Contact:<sip:condevexample.com>
Content-Type:application/condev-result+xml
Content-Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-result xmlns=″urn:ietf:params:xml:ns:condev-result″>
<match-list>
<entry uri=″sip:aexample.com″/>
<entry uri=″sip:bexample.com″/>
</match-list>
<mismatch-list>
<entry uri=″sip:cexample.com″>
<failure-info>
Place type doesn’t match!
</failure-info>
</entry>
<mismatch-list/>
</condev-info>
上述的消息格式中,Content-Type:applicatio/ncondev-result+xml内容指明了评估结果,包括满足评估条件的群组成员信息,不满足评估条件的成员信息和不满足评估条件的原因;<match-list>中的内容为满足评估条件的群组成员信息;<mismatch-list>中包括了不满足评估条件的群组成员信息和条件匹配结果。上述例子中,群组成员为aexample.com和bexample.com满足评估条件,<entry uri=″sip:bexample.com″>中的内容表示不满足评估条件的群组成员为cexample.com;<failure-info>中的内容给出了不满足评估条件的原因,是由于place信息不匹配,这里还可以给出具体的匹配结果信息,如包括匹配项和不匹配项,例如是由于<place-type>信息为home导致的不匹配。
上述步骤101~步骤110是终端获取动态群组成员信息的过程。在客户端从条件评估服务器上获取动态群组成员信息的过程中,除了上述过程中使 用SUBSCRIBE消息和Notify消息外,客户端可以使用XCAP协议,通过GET请求消息告知条件评估服务器,在GET消息中携带评估对象(群组标识)、评估条件和评估设置等信息,条件评估服务器通过获取评估对象的信息并进行评估,通过OK响应消息中携带群组成员信息、评估结果等信息,从而实现了客户端从条件评估服务器上获取动态群组成员信息的目的。
步骤111、客户端根据接收收到的满足条件的动态群组成员信息与业务服务器进行交互,以邀请相应的动态群组成员并建立群组会话。
客户端呈现接收到的不满足评估条件的原因,其成员可以根据该原因修改一些用户可以设置的选项,以满足评估条件,重新发起请求加入会话,以供进行重新评估。
其中的业务服务器可以是无线一键通(Push-to-talk over Cellular,PoC)服务器、即时消息(Instant Message,IM)服务器、融合IP消息(ConvergedIP Messaging,CPM)服务器等。
本实施例中,客户端首先从条件评估服务器上获取满足评估条件的群组成员,条件评估服务器根据客户端的评估条件,通过条件评估确定满足评估条件的群组成员,把群组成员信息和条件评估结果反馈给客户端;客户端和业务服务器进行交互,与满足条件的群组成员建立会话。
如图2所示,为本发明评估结果获取方法的第二实施例的流程示意图。与上一实施例相比,本实施例在步骤111之后还可以包括以下步骤:
步骤201、当某一个PS上的群组成员的呈现信息发生变化时,该PS通过Notify通知消息通知RLS,由RLS前转Notify消息到条件评估服务器,以通知条件评估服务器该群组成员的呈现信息的变化信息。
若PS(B)上的群组成员B的呈现信息发生变化,例如,成员bexample.com的<place-type>状态信息由实施例一的office变为home;
步骤202、条件评估服务器根据评估设置和评估条件,对群组成员的相关信息进行实时评估,发现该成员B不满足评估条件,并保存不满足评估条件的该群组成员信息和条件评估结果。
条件评估服务器实时评估群组成员是否满足评估条件,当检测到群组成员B的<place-type>状态信息为home时,则根据评估设置的条件和评估条件判断出该成员bexample.com不满足评估条件;
步骤203、条件评估服务器发送Notify通知消息告知客户端群组成员的变化情况,该通知消息包括不满足评估条件的群组成员信息和条件评估结果。下面以群组成员B不满足评估条件为例,具体的消息格式如下:
NOTIFY sip:userexample.com SIP/2.0
Via:SIP/2.0/TCP condev.example.com;branch=z9hG4bKnash54
Max-Forwards:70
From:<sip:condev.example.com>;tag=JenZ40P3
To:<sip:userexample.com>;tag=a12eztNf
Call-ID:45665231jhkj
CSeq:455 NOTIFY
Contact:<sip:condevexample.com>
Content-Type:application/condev-result+xml
Content-Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-result xmlns=″urn:ietf:params:xml:ns:condev-result″>
<mismatch-list>
<entry uri=″sip:bexample.com″>
<failure-info>
Place type doesn’t match!
</failure-info>
</entry>
<mismatch-list/>
</condev-info>
在上述消息体中,<mismatch-list>中包括了不满足评估条件的群组成员信息和条件匹配结果,<entry uri=″sip:bexample.com″>中的内容表示不满足评估条件的群组成员为bexample.com;<failure-info>中的内容给出了不满足评估条件的原因,是由于place信息不匹配,这里还可以给出具体的匹配结果信息,如包括匹配项和不匹配项,例如是由于<place-type>信息为home导致的不配;
步骤204、客户端获知群组中有成员不满足评估条件后,通过REFER参考消息告知业务服务器结束与不满足评估条件的群组成员之间进行的会话,并在REFER消息的refer-to消息头中使用BYE方法指明要退出会话的群组成员,并携带该群组成员被退出会话的原因,这里还可以携带条件匹配的细节。下面以客户端要求结束与成员sip:bexample.com之间的会话为例,在消息体中携带条件评估结果的xml格式如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<reason-info xmlns=″urn:ietf:params:xml:ns:reason-info″>
<failure-info>
Place type doesn’t match!
</failure-info>
</reason-info>
步骤205、业务服务器发送BYE退出消息到群组成员B,该BYE消息中携带有退出的原因。具体消息格式如下:
BYE sip:bexample.com SIP/2.0
Max-Forwards:69
From:<sip:SessionAexample.com>;tag=1234567
To:<sip:bexample.com>;tag=314159
Call-ID:45645665sdf
CSeq:2 BYE
Content-Type:application/reason-info+xml
Content-Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<reason-info xmlns=″urn:ietf:params:xml:ns:reason-info″>
<failure-info>
Place type doesn’t match!
</failure-info>
</reason-info>
这里的原因还可以包括评估结果的详细信息,包括匹配的信息和不匹配的信息。
步骤206、退出会话的群组成员B发送相应的响应消息通过业务服务器到客户端,从而结束客户端与群组成员B之间的会话。
同样地,在群组会话过程中,条件评估服务器通过实时评估检测到某群组成员满足评估条件时,通知客户端满足评估条件的群组成员信息,由客户端告知业务服务器,邀请该群组成员加入会话。同样可以使用REFER消息, 在refer-to消息头中使用INVITE方法,并在消息中指明要邀请的群组成员URI信息。
本实施例中,条件评估服务器收到来自某PS上群组成员信息的变化通知,对评估对象进行实时评估,并把评估后的群组成员变化信息和条件执行结果反馈给群组成员的客户端,由客户端指示业务服务器结束该群组成员参与的会话。
如图3所示,为本发明评估结果获取方法的第三实施例的流程示意图,介绍了不满足评估条件的群组用户获取会话失败详细原因的流程。与本发明评估结果获取方法的第一实施例相比,在会话建立之前或会话过程中,本实施例还可以包括以下步骤:
步骤301、当条件评估服务器检测到某群组用户不满足评估条件,条件评估服务器通知某群组用户对应的客户端某群组用户不满足评估条件,该通知消息中包括评估条件。下面以检测到群组成员A(aexample.com)不满足评估条件,以及通知消息以SIP协议的MESSAGE消息为例,消息格式如下:
MESSAGE sip:aexample.com SIP/2.0
Via:SIP/2.0/TCP client.biloxi.example.com;branch=z9hG4bKnash
Max-Forwards:70
From:<sip:condev.example.com>;tag=8675309
To:<sip:aexample.com>
Call-ID:sdjfikusadhf8923
CSeq:42 MESSAGE
Content-type:application/condev-rules+xml
Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-rules xmlns=″urn:ietf:params:xml:ns:condev-rules″
xmlns:pidf=″urn:ietf:params:xml:ns:pidf″
xmlns:rpid=″urn:ietf:params:xml:ns:pidf:rpid″
xmlns:pp=”urn:ietf:params:xml:ns:pidf:person”>
<rule id=″a″>
<conditions type=”xpath”>
<include>
<ifexist>/pidf:presence/pidf:person/rpid:activities/rpid:meeting</ifexist>
<iftrue>/pidf:presence/pidf:tuple/pidf:status/pidf:basic=”open”</iftrue>
</include>
<exclude>
<ifexist>/pidf:presence/pidf:person/rpid:activities/rpid:away</ifexist>
</exclude>
</conditions>
<rule>
</condev-rules>
该消息体中的评估条件为另外一种表达方式,在<conditions>中包括<include>和<exclude>项,<include>中的条件表示需要包括的条件,<exclude>中的条件表示需要排除的条件;<ifexist>表示存在条件,/pidf:presence/pidf:person/rpid:activities/rpid:meeting表示activiities的内容为meeting时满足条件;<iftrue>表示满足的条件判断,/pidf:presence/pidf:tuple/pidf:status/pidf:basic=”open”表示basic的状态信息为open是满足条件。
步骤302、群组用户A对应的客户端返回OK响应消息到条件评估服务 器;
步骤303、群组用户A对应的客户端发送SUBSCRIBE请求消息到条件评估服务器,该请求消息包含评估条件中的需要评估的内容,消息格式如下:
SUBSCRIBE sip:a example.com SIP/2.0
Via:SIP/2.0/TCP pda.example.com;branch=z9hG4bKnash54
To:<sip:condev.example.com>
From:<sip:aexample.com>;tag=xfg9
Call-ID:4654674982
CSeq:1 SUBSCRIBE
Contact:<sip:apda.example.com>
Max-Forwards:70
Event:condev
Accept:application/condev-result+xml
Content-type:application/condev-rules+xml
Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-rules xmlns=″urn:ietf:params:xml:ns:condev-rules″
xmlns:pidf=″urn:ietf:params:xml:ns:pidf″
xmlns:rpid=″urn:ietf:params:xml:ns:pidf:rpid″
xmlns:pp=”urn:ietf:params:xml:ns:pidf:person”>
<rule id=″a″>
<conditions type=”xpath”>
<include>
/pidf:presence/pidf:tuple/pidf:status/pidf:basic
</include>
<include>
/pidf:presence/pidf:person/rpid:activities
</include>
</conditions>
<rule>
</condev-rules>
上述消息体中,Content-type:application/condev-rules+xml表示消息体中的内容为评估条件。/pidf:presence/pidf:tuple/pidf:status/pidf:basic来自于条件<ifexist>中所指的条件,/pidf:presence/pidf:person/rpid:activities来自于<ifexist>中所指的条件。
步骤304、条件评估服务器根据评估条件中的需要评估的内容,从PS上获取相应信息,并进行条件评估。下面以从PS上获取的pidf:basic信息为open,rpid:activities信息为working为例;
步骤305、条件评估服务器通过Notify通知消息把评估结果告知客户端,该通知消息包括评估结果的详细信息。具体消息格式如下:
NOTIFY sip:aexample.com SIP/2.0
Via:SIP/2.0/TCP condev.example.com;branch=z9hG4bKnash54
Max-Forwards:70
To:<sip:condev.example.com>;tag=erjlks
From:<sip:aexample.com>;tag=xfg9
Call-ID:45665231jhkj
CSeq:455 NOTIFY
Contact:<sip:condevexample.com>
Content-Type:application/condev-result+xml
Content-Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-result xmlns=″urn:ietf:params:xml:ns:condev-result″>
<mismatch-list>
<entry uri=″sip:bexample.com″>
<success-info>
<rule attr=“basic”>TRUE</rule>
</success-info>
<failure-info>
<rule attr=”activities”>FALSE</rule>
</failure-info>
</entry>
<mismatch-list/>
</condev-info>
上述通知消息中的评估结果中包括了详细的评估结果,在<success-info>中给出了条件basic满足评估条件,<failure-info>中指明activities不满足评估条件。至此,客户端即可以呈现出评估结果信息。
本实施例中,评估结果是由客户端从条件评估服务器上获取的,也可以在客户端上进行处理,步骤如下:客户端根据评估条件,直接从PS订阅相应的状态信息;然后客户端将所获取的状态信息与评估条件进行对比,并将对 比结果在客户端呈现。
本实施例中,由于评估条件发生变化或者群组成员的呈现信息发生变化,条件评估服务器进行实时评估时检测到群组成员的变化情况,确定不满足评估条件的群组成员,并把评估条件通知该群组成员对应的客户端,用于客户端据此检测自身状态与评估条件的匹配情况。本实施例可以不必担心隐私问题,群组成员的状态信息或者评估结果不会发送给其他的会话参与方即其他群组成员,并且可以让该群组成员很详细的获知自己为什么不能进入一个会话,或者为什么从会话中自动被退出了。
如图4所示,为本发明评估结果获取方法的第四实施例的流程示意图。本实施例包括以下步骤:
步骤401、客户端向条件评估服务器发送SUBSCRIBE订阅请求消息,该订阅请求消息包括群组成员列表、评估条件、评估设置和评估事件标识。
其中,群组成员列表用来表示评估对象;评估条件用来指定动态群组中成员应该满足的评估条件;评估设置用来设置条件评估服务器评估条件的执行方式,如仅评估一次、评估多次、实时评估,以及评估的时间、评估的间隔等信息;评估事件标识用来标识该消息是评估事件,需要条件评估服务器执行评估。具体的消息格式与上述本发明评估结果获取方法的第一实施、第二实施和第三实施的消息格式基本相同,主要不同点是:在消息体中增加了如下表示Ad-hoc群组列表信息的内容:
Content-Type:application/resource-lists+xml
<?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:aexample.com″/>
<entry uri=″sip:bexample.com″/>
<entry uri=″sip:cexample.com″/>
</list>
</resource-lists>
在上述消息体中,Content-Type:application/resource-lists+xml所包含的内容用来表示Ad-hoc群组成员信息,包括成员aexample.com,bexample.com和cexample.com。
步骤402、条件评估服务器保存评估设置。
其中的评估设置用于指定条件评估的执行方式,如评估一次、实时评估、评估多次,评估的时间间隔,评估的粒度等信息;
步骤403、条件评估服务器向PS发送SUBSCRIBE消息,以订阅群组成员列表中相应的呈现信息,由条件评估服务器为群组成员向相应的PS上订阅,该SUSCRIBE请求消息包括群组成员信息和订阅的呈现信息;
步骤404、PS发送Notify通知消息到条件评估服务器,条件评估服务器收到多条Notify通知消息,条件评估服务器汇总收到的订阅的群组成员的呈现信息;
步骤405、条件评估服务器根据评估设置和评估条件,对群组成员进行评估,来确定满足评估条件的群组成员,并保存评估条件的执行结果。
步骤406、条件评估服务器使用Notify消息通知客户端动态群组信息,该消息包括满足评估条件的群组成员信息、不满足评估条件的成员信息和评估条件的执行结果信息,或者他们的结合;
步骤407、客户端根据接收动态群组成员信息与业务服务器进行交互,以邀请满足评估条件的动态群组成员并建立群组会话。
客户端呈现接收到的不满足评估条件的原因,其成员可以根据该原因修改一些用户可以设置的选项,以满足评估条件,重新发起请求加入会话,以供进行重新评估。
本实施例的客户端从条件评估服务器获取满足评估条件的群组成员的处理过程,通过客户端在请求消息中指定了Ad-hoc群组成员信息,条件评估服务器不用和XDMS服务器交互,直接从请求中提取出群组成员列表,根据群组成员列表中的成员信息直接从PS获取相应的信息,根据评估设置和评估条件对Ad-hoc群组成员进行评估,并把结果反馈给客户端。
本实施例中,客户端首先选择Ad-hoc群组成员,然后从条件评估服务器上获取满足评估条件的群组成员,条件评估服务器根据客户端的评估条件,在获取Ad-hoc群组成员的呈现信息时,条件评估服务器直接从相关的PS上获取,并通过条件评估确定满足条件的成员,把群组成员信息和条件评估结果反馈给客户端;客户端和业务服务器进行交互,与满足条件的用户建立会话。
进一步地,本实施例在步骤407之后还可以包括不满足评估条件的群组成员退出会话的处理过程,与第二实施例的处理过程一致,此处不再赘述。
如图5所示,为本发明评估结果获取方法的第五实施例的流程示意图。本实施例包括以下步骤:
步骤501、客户端向业务服务器发送INVITE邀请请求消息,以请求建立一个群组会话,该邀请请求消息包括群组标识、评估条件、评估设置和评估业务标识。
其中,群组标识用来表示预定义群组,如群组URI;评估条件用来指定动态群组中成员满足的评估条件;评估设置用来设置条件评估服务器评估条件的执行方式,如仅评估一次、评估多次、实时评估,以及评估的时间,评估的间隔等信息;评估业务标识用来标识该业务是评估业务,需要条件评估 服务器来执行评估,具体的消息格式如下:
INVITE sip:golf-buddies example.com SIP/2.0
Via:SIP/2.0/TCP pda.example.com;branch=z9hG4bKnash54
To:<sip:golf-buddiesexample.com>
From:<sip:userexample.com>;tag=xfg9
Call-ID:4654674982
CSeq:1 INVITE
Contact:<sip:userpda.example.com>
Max-Forwards:70
Require:condition-evaluation
Content-type:multipart/mixed;boundary=″boundary1″
Length:...
--boundary1
Content-Type:application/sdp
[not shown here]
--boundary1
Content-Type:application/condev-rules+xml
Content-Disposition:condition-evaluation
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-rules xmlns=″urn:ietf:params:xml:ns:condev-rules″
xmlns:pidf=″urn:ietf:params:xml:ns:pidf″
xmlns:rpid=″urn:ietf:params:xml:ns:pidf:rpid″
xmlns:pp=”urn:ietf:params:xml:ns:pidf:person”>
<rule id=″a″>
<conditions type=”xpath”>
<include>
<if>/pidf:presence/pidf:person/pp:status/pp:place-type/rpid:office</if>
<if>/pidf:presence/pidf:tuple/pidf:status/pidf:basic/
pidf:open</if>
</include>
</conditions>
<rule>
<evaluation-setting>
<evaluation-type>RealTime</evaluation-type>
<validity>
<from>2008-01-20T17:00:00+01:00</from>
<until>2008-01-20T19:00:00+01:00</until>
</validity>
</evaluation-setting>
</condev-rules>
--boundary1--
在上述请求消息中,定义了一个Require消息头参数condition-evaluation,表示要求业务服务器把相关条件和评估设置转发到条件评估服务器上来评 估。
上面的消息体中使用另外的条件表示方式,在<include>项中包含了<if>元素,当<if>中的内容满足时,才满足条件,如<if>/pidf:presence/pidf:person/pp:status/pp:place-type/rpid:office</if>,当place-type值为office时,条件满足。条件的表达方式不仅仅限于实施例中的表达;
步骤502、业务服务器根据INVITE消息中的群组标识,通过GET消息向XDMS发起一个获取群组成员的请求;
步骤503、XDMS发送OK响应消息到业务服务器,该响应消息包括群组成员信息,或者群组成员信息和预定义群组的条件信息,如群组的大小,允许发起的业务等信息。
如群组golf-buddiesexample.com中包括aexample.com,bexample.com和cexample.com三个成员,则在上述响应消息中包括这三个成员的URI信息;
步骤504、业务服务器根据评估业务标识向条件评估服务器发送SUBSCRIBE订阅请求消息,该请求消息包括群组成员信息、评估条件和评估设置等信息。
其中,业务服务器与条件评估服务器交互,除了上述过程中使用SUBSCRIBE消息和Notify消息,业务服务器也可以使用XCAP协议,通过GET请求消息告诉条件评估服务器,在GET消息中携带评估对象、评估条件和评估设置等信息,条件评估服务器通过获取评估对象的相关信息并进行评估,通过OK响应消息中携带群组成员信息、评估结果等信息,从而得到客户端从条件评估服务器上获取动态成员信息的目的;
步骤505、条件评估服务器保存评估设置。
其中的评估设置用于指定条件评估的执行方式,如评估一次、实时评估、 评估多次,评估的时间间隔,评估的粒度等信息;
步骤506、条件评估服务器向RLS发送SUBSCRIBE消息,以订阅群组成员相应的呈现信息,该SUSCRIBE请求消息包括群组成员信息和订阅的呈现信息。
可替换地,条件评估服务器获取群组成员的呈现信息时,也可以由条件评估服务器分别订阅群组中的每个成员成员的呈现信息;
步骤507、RLS收到来自条件评估服务器的群组订阅请求消息,根据该请求消息中的群组成员信息和订阅成员的呈现信息,使用SUBSCRIBE消息分别向群组成员对应的PS发送订阅请求,以订阅群组成员的呈现信息;
步骤508、RLS收到来自各个PS的Notify响应信息;
步骤509、RLS汇总收到的订阅的群组成员信息,发送Notify通知消息到条件评估服务器,该Notify消息包括群组成员信息和与其相关的呈现信息。
若返回的信息中成员aexample.com,bexample.com和cexample.com的<basic>状态信息为open,则<place-type>状态信息都为office;
步骤510、条件评估服务器根据评估设置和评估条件,对群组成员的呈现信息进行评估,来确定满足条件的群组成员,并保存评估条件的执行结果。
当群组成员的<basic>状态信息为open并且<place-type>状态信息为office时,才满足评估条件。经过条件评估服务器的实时评估,成员aexample.com,bexample.com和cexample.com都满足评估条件;
步骤511、条件评估服务器发送Notify通知消息到业务服务器,该Notify消息包括满足评估条件的群组成员信息和评估条件的执行结果信息,具体Notify消息的消息体的内容如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-result xmlns=″urn:ietf:params:xml:ns:condev-result″>
<match-list>
<entry uri=″sip:aexample.com″/>
<entry uri=″sip:cexample.com″/>
<entry uri=″sip:bexample.com″/>
</match-list>
<mismatch-list/>
</condev-info>
步骤512、业务服务器根据条件评估服务器返回满足评估条件的群组成员,向满足条件的群组成员发送邀请,建立群组会话,并返回OK响应消息给客户端。
客户端呈现接收到的不满足评估条件的原因,其成员可以根据该原因修改一些用户可以设置的选项,以满足评估条件,重新发起请求加入会话,以供进行重新评估。
通常情况下,群组成员是否能够加入会话是由业务服务器根据条件评估服务器的条件评估结果,主动邀请群组成员加入动态群组会话的。当群组成员拒绝邀请时,业务服务器将不会重复邀请该群组成员加入会话,用户想加入会话需要主动向业务服务器请求,业务服务器根据评估结果来决定是否允许用户加入会话。
本实施例中客户端首先与业务服务器进行交互,发起一个基于群组的会话请求消息,该请求消息中指定参与会话者需要满足的评估条件,并指定执行评估条件的方式,业务服务器把评估对象和评估条件以及评估设置发给条件评估服务器,条件评估服务器根据客户端的评估条件,通过条件评估确定满足条件的成员,把群组成员信息和条件评估结果反馈给业务服务器,然后业务服务器向满足条件的群组成员发起参与会话的邀请,建立群组会话。
如图6所示,为本发明评估结果获取方法的第六实施例的流程示意图。与上一实施例相比,本实施例在步骤512之后还可以包括以下步骤:
步骤601、当某一个PS上的群组成员的呈现信息发生变化时,该PS通过Notify消息通知RLS,由RLS前转Notify消息到条件评估服务器,以通知条件评估服务器该群组成员的呈现信息的变化信息。
若PS(B)上的群组成员B的呈现信息发生变化,成员bexample.com的<place-type>状态信息由office变为home;
步骤602、条件评估服务器根据成员的设置条件和评估条件,对群组成员的相关信息进行实时评估,发现该成员不满足评估条件,并保存不满足评估条件的该群组成员信息和条件评估结果。
条件评估服务器实时评估群组成员是否满足评估条件,当检测到群组成员B的<place-type>状态信息为home时,则根据设置条件和评估条件判断出该成员bexample.com不满足评估条件;
步骤603、条件评估服务器发送Notify通知消息告知业务服务器群组成员的变化情况,该通知消息包括不满足评估条件的群组成员信息和条件评估结果(匹配项和不匹配的内容)。下面以群组成员B不满足评估条件为例,具体的消息格式如下:
NOTIFY sip:serverexample.com SIP/2.0
Via:SIP/2.0/TCP condev.example.com;branch=z9hG4bKnash54
Max-Forwards:70
From:<sip:condev.example.com>;tag=JenZ40P35
To:<sip:serverexample.com>;tag=a12eztNf1
Call-ID:45665231jhkj
CSeq:455 NOTIFY
Contact:<sip:condevexample.com>
Content-Type:application/condev-result+xml
Content-Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-result xmlns=″urn:ietf:params:xml:ns:condev-result″>
<mismatch-list>
<entry uri=″sip:bexample.com″>
<failure-info>
Place type doesn’t match!
</failure-info>
</entry>
<mismatch-list/>
</condev-info>
除了上述使用Notify消息通知业务服务器成员的变化情况外,也可以通过REFER消息告诉业务服务器结束不满足条件的成员进行会话,并在REFER消息的refert-to消息头中使用BYE方法中指明要退出会话的成员和条件评估结果信息(被退出的原因)。
业务服务收到成员变化后,可能会告知客户端动态成员的变化情况,如通过INFO消息把不满足条件的成员信息和条件评估结果告诉客户端;
步骤604、业务服务器发送BYE消息到群组成员B,该BYE消息中携带有退出的原因,下面以成员B退出会话为例,具体消息格式如下:
BYE sip:bexample.com SIP/2.0
Max-Forwards:69
From:<sip:SessionAexample.com>;tag=1234567
To:<sip:bexample.com>;tag=314159
Call-ID:45645665sdf
CSeq:2 BYE
Content-Type:application/reason-info+xml
Content-Length:...
<?xml version=″1.0″encoding=″UTF-8″?>
<reason-info xmlns=″urn:ietf:params:xml:ns:reason-info″>
<failure-info>
Place type doesn’t match!
</failure-info>
</reason-info>
这里的原因也可以包括评估结果的详细信息,包括匹配的信息和不匹配的信息。
步骤605、退出会话的群组成员B发送相应的响应消息通过业务服务器到条件评估服务器。
在群组会话过程中,由于评估条件发生变化或者群组成员的呈现信息发生变化,条件评估服务器实时评估检测到上述变化,导致群组成员被结束参与会话,群组成员可以通过主动修改呈现信息,使之满足评估条件,重新进入到会话中。
本实施例中,条件评估服务器收到来自某PS上群组成员信息的变化通知,对评估对象进行实时评估,并把评估后的群组成员变化信息和评估条件执行结果反馈给业务服务器,由业务服务器根据评估结果来确定结束该群组 成员的参与会话。
如图7所示,为本发明评估结果获取方法的第七实施例的流程示意图。本实施例包括以下步骤:
步骤701、客户端向业务服务器发送INVITE邀请请求消息到业务服务器,以请求建立一个群组会话,该邀请请求消息包括群组成员列表、评估条件、评估设置和评估事件标识。
其中,群组成员列表用来表示Ad-hoc群组成员信息;评估条件用来指定动态群组中成员满足的评估条件;评估设置用来设置条件评估服务器评估条件的执行方式,如仅评估一次、评估多次、实时评估,以及评估的时间,评估的间隔等信息;评估业务标识用来标识该业务是评估业务,需要条件评估服务器来执行评估。具体的消息格式与上述本发明评估结果获取方法的第五实施和第六实施的消息格式基本相同,主要不同点是:INVITE请求消息的Request-URI为sip:ConferenceFactoryURI.example.com;以及在消息体中增加了如下表示Ad-hoc群组列表信息的内容:
Content-Type:application/resource-lists+xml
<?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:aexample.com″/>
<entry uri=″sip:bexample.com″/>
<entry uri=″sip:cexample.com″/>
</list>
</resource-lists>
步骤702、业务服务器根据评估业务标识向条件评估服务器发送SUBSCRIBE订阅请求消息,该请求消息包括群组成员信息、评估条件和评估设置等信息;
步骤703、条件评估服务器保存评估设置。
其中的评估设置用于指定条件评估的执行方式,如评估一次、实时评估、评估多次,评估的时间间隔,评估的粒度等信息;
步骤704、条件评估服务器向PS发送SUBSCRIBE消息,以订阅群组成员列表中相应的呈现信息,由条件评估服务器为群组成员向响应的PS上订阅,该SUSCRIBE请求消息包括群组成员信息和订阅的呈现信息;
步骤705、PS发送Notify通知消息到条件评估服务器,该Notify消息包括群组成员信息和与其相关的呈现信息,收到多条Notify通知消息,条件评估服务器汇总信息;
步骤706、条件评估服务器根据评估设置和评估条件,对群组成员的呈现信息进行评估,来确定满足条件的群组成员,并保存评估条件的执行结果。
当群组成员的<basic>状态信息为open并且<place-type>状态信息为office时,才满足评估条件。经过条件评估服务器的实时评估,成员aexample.com,bexample.com和cexample.com都满足评估条件;
步骤707、条件评估服务器发送Notify通知消息到业务服务器,该Notify消息包括满足评估条件的群组成员信息和评估条件的执行结果信息,具体Notify消息的消息体的内容如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-result xmlns=″urn:ietf:params:xml:ns :condev-result″>
<match-list>
<entry uri=″sip:aexample.com″/>
<entry uri=″sip:cexample.com″/>
<entry uri=″sip:bexample.com″/>
</match-list>
<mismatch-list/>
</condev-info>
步骤708、业务服务器根据条件评估服务器返回满足评估条件的群组成员,向满足条件的群组成员发送邀请,建立群组会话,并返回OK响应消息给客户端。
客户端呈现接收到的不满足评估条件的原因,其成员可以根据该原因修改一些用户可以设置的选项,以满足评估条件,重新发起请求加入会话,以供进行重新评估。
本实施例的客户端首先与业务服务器交互,发起一个基于Ad-hoc群组的会话请求,该请求消息中指定参与会话者需要满足的评估条件,并指定执行评估条件的方式,业务服务器把评估对象和评估条件以及评估设置给条件评估服务器,条件评估服务器根据客户端的评估条件,通过条件评估确定满足条件的用户,把群组成员信息和条件评估结果反馈给业务服务器,然后业务服务器发起向满足条件的群组成员发起参与会话的邀请,建立群组会话。
本实施例的客户端从条件评估服务器获取满足评估条件的群组成员的处理过程,通过客户端在请求消息中指定了Ad-hoc群组成员信息,业务服务器直接从请求中提取出群组成员信息,然后业务服务器向条件评估服务器发送请求,条件评估服务器根据群组成员列表中的成员信息直接从PS获取相应的信息,根据评估设置和评估条件对Ad-hoc群组成员进行评估,并把结果反馈给业务服务器,然后由业务服务器发起会话。
进一步地,本实施例在步骤708之后还可以包括不满足评估条件的群组 成员退出会话的处理过程,与第六实施例的处理过程一致,此处不再赘述。
如图8所示,为本发明评估结果获取方法的第八实施例的流程示意图。与前述本发明评估结果获取方法的各个实施例相比,本实施例中条件评估服务器所获取的群组成员相应的呈现信息可以包括来自于位置服务器(LocationServer,LS)的位置相关信息,那么条件评估服务器从LS获取群组成员的位置相关信息的操作具体包括以下步骤:
步骤801、条件评估服务器发送请求消息到LS。
在条件评估服务器和LS之间可以通过移动位置服务协议(MobileLocation Protocol,MLP)协议来获取群组成员的位置信息,MLP协议可以通过TCP/IP、HTTP或SIP等协议来承载。下面以基于HTTP协议通过POST消息为例来说明,在消息中使用MLP协议来获取群组成员的位置信息,其中在请求中可以一次获取一个群组成员信息的位置信息,也可以一次获取多个群组成员的位置信息。下面以获取群组成员aexample.com的位置信息为例,消息格式如下:
POST http://location-server.example.com:9210/LocationQueryService/HTTP/1.1
Host:condev.example.com
User-Agent:condev/OMA2.0
Date:Thu,10Aug 2006 10:50:33 GMT
X-3GPP-Intended-Identity:″sip:userexample.com″
Content-type:application/slir-info+xml
Length:...
<?xml version=′1.0′encoding=″UTF-8′?>
<slir-info xmlns=″urn:oma:xml:ls:slir-info″>
<slir ver=′3.0.0′res_type=′SYNC′>
<msids>
<msid type=′MSISDN′>3035551003</msid>
</msids>
<loc_type type=′CURRENT_OR_LAST′/>
</slir>
</slir-info>
在POST请求消息中,Content-type:application/slir-info+xml指示消息体中的内容为一个标准位置实时请求(Standard Location Immediate Request),用户aexample.com的msid为3035551003,位置类型为CURRENT_OR_LAST。
在消息体中,同样可以定义filter,来指明需要请求的位置信息的内容;
步骤802、LS收到请求消息,根据消息中MLP的内容,获取群组成员相关的位置信息,通过OK响应消息告知条件评估服务器,消息格式如下:
HTTP/1.1 200 OK
Server:LS-serv/OMA2.0
Date:Thu,10 Aug 2006 10:50:39 GMT
Content-Type:application/slia-info+xml
Content-Length:
<?xml version=′1.0′encoding=′UTF-8′?>
<slia-info xmlns=″urn:oma:xml:ls:slia-info″>
<slia ver=′3.0.0′>
<pos>
<msid>3035551003</msid>
<pd>
<time utc_off=′+0100′>
20080101091301
</time>
<shape>
<CircularArea>
<coord>
<X>45 07 24.123N</X>
<Y>100 06 22.111E</Y>
<Z>5280</Z>
</coord>
<radius>1000</radius>
</CircularArea>
</shape>
<alt>5280.0</alt>
</pos>
</slia>
</slia-info>
在上述的OK响应消息中,Content-Type:application/slia-info+xml表示消息体的内容为一个标准位置实时应答(Standard Location Immediate Answer),其中的内容为群组成员aexample.com的相关的位置信息。
在LS中的群组成员的位置信息变化时,LS发送携带MLP信息的消息, 告知条件评估服务器变化情况,由条件评估服务器对群组成员进行实时评估。
如图9所示,为本发明评估结果获取方法的第九实施例的流程示意图。本实施例包括以下步骤:
步骤901、应用服务器上预设的事件发生,应用服务器发送SUBSCRIBE订阅请求消息,该订阅请求消息包括评估对象、评估条件和评估设置。
其中,评估对象以XQuery方式表示,通过查询确认群组成员信息;评估条件用来指定动态群组中成员满足的评估条件;评估设置用来设置条件评估服务器评估条件的执行方式,如仅评估一次、评估多次、实时评估,以及评估的时间,评估的间隔等信息,具体的消息格式如下:
SUBSCRIBE sip:condev.example.com SIP/2.0
Via:SIP/2.0/TCP host.example.com;branch=z9hG4bKnash54
To:<sip:condev.example.com>
From:<sip:server.example.com>;tag=xfg9uiut
Call-ID:4654674j82
CSeq:6 SUBSCRIBE
Contact:<sip:server.example.com>
Max-Forwards:70
Event:condev
Accept:application/condev-result+xml
Content-type:multipart/mixed;boundary=″boundary1″
Length:...
--boundary1
Content-Type:application/vnd.oma.search+xml
<?xml version=″1.0″encoding=″UTF-8″?>
<search-set xmlns=″urn:oma:xml:xdm:search″>
<search id=″1234″>
<request>
<query>
<![CDATA[
xquery version″1.0″;
declare default element namespace″urn:oma:xml:cab:contact-info″;
for $u in collection(″org.openmobilealliance.cab/users/″)/user
where($u/hobbies/hobby=″football″)and($u/department=″software″)
return<uri>{$u/uri}</uri>
]]>
</query>
</request>
</search>
</search-set>
--boundary1
Content-Type:application/condev-rules+xml
<?xml version=″1.0″encoding=″UTF-8″?>
<condev-rules xmlns=″urn:ietf:params:xml:ns:condev-rules″
xmlns:pidf=″urn:ietf:params:xml:ns:pidf″
xmlns:rpid=″urn:ietf:params:xml:ns:pidf:rpid″
xmlns:pp=”urn:ietf:params:xml:ns:pidf:person”>
<rule id=″a″>
<conditions type=”xpath”>
<include>
/pidf:presence/pidf:tuple[rpid:class=″PoC″]/
pidf:status[pidf:basic=”open”]/pidf:basic
</include>
<include>
/pidf:presence/pidf:person/pp:status[pp:place-type
=”office”]/pp:place-type
</include>
</conditions>
<rule>
<evaluation-setting>
<evaluation-type>RealTime</evaluation-type>
<validity>
<from>2008-01-20T17:00:00+01:00</from>
<until>2008-01-20T19:00:00+01:00</until>
</validity>
</evaluation-setting>
</condev-rules>
--boundary1--
在上述的消息中,Content-Type:application/vnd.oma.search+xml中的内容表示评估对象(群组成员信息)通过XQuery定义的条件来确定,这里的查询条件为从融合地址簿(Converged Address Book,CAB)服务器上查询部门为software并且爱好为football的成员为评估对象,返回结果为群组成员的URI信息。
融合地址评估对象的个人信息包括统一资源标识URI、姓名、地址、电话号码、兴趣爱好等静态信息,还可以包括一些动态信息,比如位置信息、呈现信息等。
其它内容同述实施例中所述一样,此处不再赘述。
本步骤中的评估条件和评估设置可以不带,可以使用条件评估服务器的默认设置;
步骤902、条件评估服务器根据查询条件确定评估对象(群组成员信息),条件评估服务器发送XQuery消息到CAB上查询信息,获取满足查询条件的成员列表信息,可以使用基于SIP协议的SUBSCRIBE消息来携带查询消息,也可以使用XCAP协议。下面以适用XCAP协议的POST方法为例,具体的消息格式如下:
POST /org.openmobilealliance.search?target=org.openmobilealliance.cab/users/HTTP/1.1
Host:condev.example.com
Date:Thu,10 Jan 2008 10:50:33 GMT
X-3GPP-Intended-Identity:″sip:condev.example.com″
Content-Type:application/vnd.oma.search+xml
Content-Length:
<?xml version=″1.0″encoding=″UTF-8″?>
<search-set xmlns=″urn:oma:xml:xdm:search″>
<search id=″1234″>
<request>
<query>
<![CDATA[
xquery version″1.0″;
declare default element namespace″urn:oma:xml:cab:contact-info″;
for $u in collection(″org.openmobilealliance.cab/users/″)/user
where($u/hobbies/hobby=″football″)and($u/department=″software″)
return<uri>{$u/uri}</uri>
]]>
</query>
</request>
</search>
</search-set>
步骤903、CAB返回查询结果响应消息,在响应消息中包括满足条件的成员列表信息。下面以三个用户aexample.com,bexample.com和cexample.com满足查询条件为例,响应消息格式如下:
HTTP/1.1 200 OK
Server:CAB-serv/OMA2.0
Date:Thu,10 Aug 2006 10:50:39 GMT
Content-Type:application/vnd.oma.search+xml
Content-Length:(...)
<?xml version=″1.0″encoding=″UTF-8″?>
<search-set xmlns=″urn:oma:xml:xdm:search″
xmlns:cab=″urn:oma:xml:xdm:cab″>
<search id=″1234″>
<response>
<cab:user uri=″Aexample.com″></cab:user>
<cab:user uri=″Bexample.com″></cab:user>
<cab:user uri=″Cexample.com″></cab:user>
</response>
</search>
</search-set>
返回内容包括用户的URI信息;
步骤904、条件评估服务器确定评估对象(群组成员信息)后,条件评估服务器向PS发送SUBSCRIBE消息,订阅群组成员列表中相应的呈现信息,由条件评估服务器为群组的成员向响应的PS上订阅,该SUSCRIBE请求消息包括群组成员信息和订阅的呈现信息;
步骤905、PS发送Notify通知消息到条件评估服务器,收到多条Notify通知消息,条件评估服务器汇总信息;
步骤906、条件评估服务器根据评估设置和评估条件对群组成员信息进行条件评估,确定满足条件的群组成员,并保存评估结果;
步骤907、条件评估服务器发送Notify通知消息到应用服务器,该消息包括满足条件的群组成员和评估条件的执行结果;
步骤908、应用服务器邀请满足条件的群组成员参与会话。
客户端呈现接收到的不满足评估条件的原因,其成员可以根据该原因修改一些用户可以设置的选项,以满足评估条件,重新发起请求加入会话,以供进行重新评估。
本实施例通过在应用服务器预先安排一个在将来时刻发生的事件,如在会议系统中,可以预定义在将来某一时间创建会议,并指定参与会议的群组成员,当事件发生时,由应用服务器主动发起会议,邀请参与者参加会话。应用服务器在制定参与者信息时,可以指定评估对象(预定义群组、Ad-hoc群组)和定义评估条件,由条件评估服务器根据应用服务器定义的评估条件,确定满足评估条件的群组成员,并告诉应用服务器满足条件的群组成员信息和评估结果,由应用服务器邀请满足条件的成员参与会话。
如图10所示,为本发明条件评估服务器的具体实施例的结构示意图。本实施例包括顺次连接的解析模块10、评估模块20和通知模块30。本发明实施例的条件评估服务器是逻辑功能模块,实际部署中可以部署在终端侧,也可以部署在网络侧,可以独立设置,也可以与其他网络实体一体化设置。其中,解析模块10用于解析接收到的请求消息,获取评估对象、评估条件和评估设置;评估模块20用于根据所述评估设置和所述评估条件,对评估对象的相关信息进行评估;通知模块30用于发送携带有评估结果的通知消息,该评估结果可以为下列任一信息或组合:满足评估条件的群组成员信息、不满足评估条件的群组成员信息、评估条件的执行结果信息。
其中的解析模块可以直接从所述请求消息中解析得到群组成员信息;还可以根据从所述请求消息中解析得到的群组标识,从XDMS中得到群组成员信息;也可以根据从所述请求消息中解析得到的查询条件,从CAB服务器中得到群组成员信息。
进一步地,本实施例中评估模块20可以包括相互连接的获取单元21和第一评估单元22。其中,获取单元21用于获取评估对象的相关信息;第一 评估单元22用于根据所述评估设置和所述评估条件,对获取单元21所获取的评估对象的相关信息进行评估。
其中的获取单元可以从呈现服务器、LS或CAB服务器中获取评估对象的相关信息。
本发明实施例通过解析模块解析接收到的请求消息,获取到评估对象、评估条件和评估设置,评估模块通过条件评估确定满足条件的群组成员,通知模块把详细的条件评估结果反馈给客户端,使得群组成员在被拒绝或结束参与会话的时候能够获取详细的评估结果信息即原因。
进一步地,本实施例中评估模块20还可以包括第二评估单元23,用于检测到所述评估结果发生变化时,对获取单元21所获取的评估对象的相关信息重新进行评估,从而实现在会话过程中对条件进行实时评估。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (16)
1.一种评估结果获取方法,其特征在于包括:
解析接收到的来自客户端的请求消息,获取所述请求消息中的评估对象、评估条件和评估设置;
根据所述评估设置和所述评估条件,对评估对象的相关信息进行评估;
发送携带有评估结果的通知消息给客户端;进一步,
收到来自呈现服务器的群组成员信息的变化通知;
对评估对象进行实时评估,并把评估后的群组成员变化信息和条件执行结果发送给客户端,使得客户端能够以此指示业务服务器结束群组成员参与的会话。
2.根据权利要求1所述的评估结果获取方法,其特征在于所述获取所述请求消息中的评估对象具体为:
直接从所述请求消息中解析得到群组成员信息;或者
根据从所述请求消息中解析得到的群组标识,从XML文档管理服务器中得到群组成员信息;或者
根据从所述请求消息中解析得到的查询条件,从融合地址簿服务器中得到群组成员信息。
3.根据权利要求2所述的评估结果获取方法,其特征在于所述评估设置包括评估的类型、评估的时间间隔或评估的粒度。
4.根据权利要求3所述的评估结果获取方法,其特征在于所述评估的类型包括:
实时监控所述评估对象的相关信息,判断所述相关信息是否满足评估条件;或
在预定时间监控一次所述评估对象的相关信息,判断所述相关信息是否满足评估条件;或
当评估条件满足或达到预定义的监控时间后,结束评估。
5.根据权利要求1或2所述的评估结果获取方法,其特征在于还包括:获取评估对象的相关信息。
6.根据权利要求5所述的评估结果获取方法,其特征在于所述获取评估对象的相关信息具体为:从呈现服务器、位置服务器或融合地址簿服务器中获取评估对象的相关信息,所述评估对象的相关信息包括下列任一信息或组合:评估对象的呈现信息、评估对象的位置信息、评估对象的个人信息。
7.根据权利要求1或2所述的评估结果获取方法,其特征在于所述评估条件包括位置条件和/或呈现条件。
8.根据权利要求1或2所述的评估结果获取方法,其特征在于所述评估结果为下列任一信息或组合:满足评估条件的群组成员信息、不满足评估条件的群组成员信息、评估条件的执行结果信息。
9.根据权利要求8所述的评估结果获取方法,其特征在于所述评估结果中的群组成员信息为群组成员的统一资源标识。
10.根据权利要求8所述的评估结果获取方法,其特征在于所述发送携带有评估结果的通知消息之后还包括:
不满足评估条件的群组成员的客户端呈现接收到的评估结果;
所述客户端根据所述群组成员的指令修改相应的设置,以满足评估条件;
所述客户端重新发起请求消息以加入会话。
11.根据权利要求2所述的评估结果获取方法,其特征在于还包括:
根据所述评估条件检测到所述评估对象的相关信息发生变化;
根据所述评估设置和所述评估条件,对变化后的评估对象的相关信息进行评估;
发送携带有所述评估对象的相关信息的变化情况的通知消息,所述评估对象的相关信息的变化情况为下列任一信息或组合:满足评估条件的群组成员信息,不满足评估条件的群组成员信息和评估条件的执行结果信息。
12.根据权利要求2所述的评估结果获取方法,其特征在于还包括:
根据所述评估条件检测到所述评估对象的相关信息发生变化;
发送携带有所述评估条件的通知消息;
根据所述评估条件对变化后的评估对象的相关信息进行条件评估,获取评估结果;
发送评估结果,所述评估结果为下列任一信息或组合:满足评估条件的群组成员信息、不满足评估条件的成员信息、评估条件的执行结果信息。
13.根据权利要求1或2所述的评估结果获取方法,其特征在于所述请求消息是由应用服务器在预设条件触发后发送的。
14.一种条件评估服务器,其特征在于包括:
解析模块,用于解析接收到的来自客户端的请求消息,获取所述请求消息中的评估对象、评估条件和评估设置;
评估模块,用于根据所述评估设置和所述评估条件,对评估对象的相关信息进行评估;
通知模块,用于发送携带有评估结果的通知消息给客户端;还用于发送评估后的群组成员变化信息和条件执行结果给客户端,使得客户端能够以此指示业务服务器结束群组成员参与的会话。
15.根据权利要求14所述的条件评估服务器,其特征在于所述评估模块包括:
获取单元,用于获取评估对象的相关信息;
第一评估单元,用于根据所述评估设置和所述评估条件,对所述获取单元所获取的评估对象的相关信息进行评估。
16.根据权利要求15所述的条件评估服务器,其特征在于所述评估模块还包括第二评估单元,用于检测到所述评估对象的相关信息发生变化时,对所述获取单元所获取的评估对象的相关信息重新进行评估。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810102442.1A CN101540702B (zh) | 2008-03-21 | 2008-03-21 | 评估结果获取方法和条件评估服务器 |
PCT/CN2009/070931 WO2009115057A1 (zh) | 2008-03-21 | 2009-03-20 | 评估结果获取方法和条件评估服务器 |
EP09723219A EP2267958A4 (en) | 2008-03-21 | 2009-03-20 | PROCEDURE FOR OBTAINING EVALUATION RESULTS AND SERVER FOR EVALUATING CIRCUMSTANCES |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810102442.1A CN101540702B (zh) | 2008-03-21 | 2008-03-21 | 评估结果获取方法和条件评估服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101540702A CN101540702A (zh) | 2009-09-23 |
CN101540702B true CN101540702B (zh) | 2012-09-05 |
Family
ID=41090514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810102442.1A Expired - Fee Related CN101540702B (zh) | 2008-03-21 | 2008-03-21 | 评估结果获取方法和条件评估服务器 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2267958A4 (zh) |
CN (1) | CN101540702B (zh) |
WO (1) | WO2009115057A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103679366A (zh) * | 2013-12-11 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 退出用户群组的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098267A (zh) * | 2006-06-28 | 2008-01-02 | 华为技术有限公司 | 一种建立群组会话的方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909701B2 (en) * | 2003-05-02 | 2014-12-09 | Nokia Corporation | IMS conferencing policy logic |
US20060031234A1 (en) * | 2004-05-21 | 2006-02-09 | Brodi Beartusk | Systems and methods for a collaborative group chat |
CN100518345C (zh) * | 2005-07-15 | 2009-07-22 | 中兴通讯股份有限公司 | 集群系统中群组状态查询方法 |
CN100505704C (zh) * | 2005-12-17 | 2009-06-24 | 华为技术有限公司 | 查询用户信息的方法 |
-
2008
- 2008-03-21 CN CN200810102442.1A patent/CN101540702B/zh not_active Expired - Fee Related
-
2009
- 2009-03-20 WO PCT/CN2009/070931 patent/WO2009115057A1/zh active Application Filing
- 2009-03-20 EP EP09723219A patent/EP2267958A4/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098267A (zh) * | 2006-06-28 | 2008-01-02 | 华为技术有限公司 | 一种建立群组会话的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2267958A4 (en) | 2011-03-30 |
CN101540702A (zh) | 2009-09-23 |
EP2267958A1 (en) | 2010-12-29 |
WO2009115057A1 (zh) | 2009-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090043847A1 (en) | Group Communication in a Communication System | |
CN101098267B (zh) | 一种建立群组会话的方法和系统 | |
CN101237336B (zh) | 进行多方通信的方法、系统及装置 | |
US20060235981A1 (en) | Providing a second service to a group of users using a first service | |
US20050233776A1 (en) | Method and apparatus for dynamic group address creation | |
RU2477014C2 (ru) | Способ группового оповещения в службе обмена сообщениями на основе протокола инициации сеанса связи "sip" | |
US20070127505A1 (en) | Group communication | |
WO2008144283A1 (en) | Systems and methods for integrating applications on user equipment utilizing special uri control messages | |
CN101283541B (zh) | 处理到多用户通信会话的邀请的方法及装置 | |
CN101299829A (zh) | 一种实现统一存储中管理媒体内容的方法和消息系统 | |
EP1861959B1 (en) | Method and system for collecting opinions of push to talk over cellular participants in push to talk over cellular network | |
CN100413354C (zh) | 一种群组会话中添加用户的方法及系统 | |
CN101115094B (zh) | 提供通信业务的方法和系统及触发器装置 | |
KR20150059662A (ko) | 소셜 서비스 제공 시스템에서 관계 설정 방법 및 장치 | |
EP2452463B1 (en) | Group handling for push-to-talk services | |
CN101771549A (zh) | 一种发送通知消息的方法及装置 | |
US9571563B2 (en) | Handling a shared data object in a communication network | |
KR20130082561A (ko) | 연락처 정보의 구독을 초대하는 장치 및 방법 | |
CN101540702B (zh) | 评估结果获取方法和条件评估服务器 | |
EP1941752B1 (en) | System and method for forwarding presence subscription along with contact list entries | |
CN101155025A (zh) | 隐私保护系统及方法和全局许可管理服务器和客户端 | |
CN101120603B (zh) | 无线一键通通信系统中的动态组的管理 | |
EP2066090A1 (en) | Initiation of dynamic sessions | |
KR100768846B1 (ko) | Pt 서비스 방법 | |
Zhang et al. | Inter-working between SIMPLE and IMPS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120905 Termination date: 20140321 |