一种基于xdms的群组管理系统及方法

文档序号:7721923阅读:283来源:国知局
专利名称:一种基于xdms的群组管理系统及方法
技术领域
本发明涉及网络通信中的群组管理,具体的说是一种基于XDMS的群组管理系统及方法,所述XDMS为XML文档管理服务器。
背景技术
OMA(Open Mobile Alliance,开放移动联盟)是一个国际标准化组织,其宗旨是寻
求一种与系统无关的、开放的,使各种应用和业务能够在全球范围内的各种用户终端上实现互联互通的标准。0MA推出了0MA X匿(XML Document Management, XML文档管理)规范,它定义了能够存储和管理多种业务XML数据的通用引擎——XML文档管理系统,如图l所示,XML文档管理系统主要包含以下几个功能实体 1.共享列表(Shared List) XDMS (XDM Server, XDM服务器)包括ResourceLists XDMS和Group Usage List XDMS,存储和管理两种类型的XML文档的内容——用户URI (Uniform Resourceldentif ier,统一资源标识符)列表文档Resource Lists和群组列表文档Group Usage List ;处理接收到的SIP (Session InitiationProtocol,会话初始协议)请求禾PXCAP(XML Configuration AccessProtocol, XML配置访问协议)请求;当上述两种XML文档内容发生改变时,通知该文档的订阅者。 2.共享资料(Shared Profile)XDMS :存储和管理用户资料(UserProfile)文档的内容;处理客户端的SUBSCRIBE请求和XCAP请求;为客户端提供基于XML的查询能力。
3.共享群组(Shared Group) XDMS :存储和管理群组资料的XML文档的内容,包括群组设置、群组成员、群组策略等信息;处理客户端的SUBSCRIBE请求、处理XCAP请求;为客户端提供基于XML的查询能力。 4.特定功能XDMS :常见的有用于存储和管理访问控制策略文档的Shared PolicyXDMS,用于存储提供资源列表状态服务文档的RLS(Resource List Server,资源列表服务器)XDMS,用于存储历史消息和离线消息元数据文档的IM(Instant Messaging,即时通信)XDMS。 5. XDMC(XDM客户端)XDMC是一个客户端实体,它提供访问上述各种XDMS中的XCAP资源的功能;它首先通过XCAP来构建基于HTTP协议的URI,然后通过URI访问XDMS中的XCAP资源。所述XCAP资源可以是XML文档,也可以是XML文档内的某个元素或属性;所述访问可以是添加、获取、修改、查询XCAP资源;XDMC还可以发起对XML文档变化和好友状态的订阅请求;当XDMC与3GPP IMS (IP MultimediaSubsystem, IP多媒体子系统)网络或者SIP/IP Core网络交互时,XDMC可以在UE (User Equipment,用户终端)或某个AS(A卯licationServer,应用服务器)中实现。 6.聚合代理它是UE中的XDMC访问存储在XDMS中的XCAP资源的接入点,同时也是其他特定功能实体AS访问远程XDMS的接入点;执行XDMC的认证和鉴权功能;路由XCAP请求到正确的XDMS或远程网络实体。 所述UE是指包含客户端的 一 种设备,例如手机、PDA(PersonalDigitalAssistant,个人数字助理)、PC等;所述客户端特指UE中的通信客户端软件,包括IM客户端和XDMC两部分(参见图2)。 目前,移动通信、M等网络通信技术已经得到了大规模的应用,关于VOIP(VoiceOver IP, IP电话)、IM和网络融合的讨论已经从理论探讨逐渐到了现实生活中,用户希望使用同一个客户端,可以与不同类型的其他客户端进行通信;用户希望自己的客户端既可以打电话,也可以即时通信。可是,由于没有遵循统一标准,各种客户端还不能共享数据,所以也就无法进行互通。如常用的IM客户端里,MSN和QQ的好友列表就不能共享,不能互发即时信息。 大量用户的加入,使得客户端上的好友越来越多。于是,各种客户端上的好友列表,管理起来就越来越复杂,也越来越难以让人满意。用户希望自己的好友列表能够方便地进行分组,也能方便地同时和多人进行聊天;同时,用户希望自己各个客户端的好友列表都能共享,如手机客户端通信簿和PC客户端上好友列表的共享。而现有的IM通信系统中,并不存在这样一种机制来实现用户的需求。

发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于XDMS的群组管理系统及方法,可满足用户方便快捷地对客户端的好友列表和群组进行管理,并能在多个不同用户终端上的客户端间共享好友列表和群组数据,增强用户体验。
为达到以上目的,本发明采取的技术方案是 —种基于XDMS的群组管理系统,其特征在于包括用户终端、XDMS和聚合代理、SIP服务器、M服务器、Presence服务器; 用户终端包含IM客户端和X匿C,以聚合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现好友和群组列表的管理; 用户终端以SIP服务器为SIP信令接入点,通过SIP消息与Presence服务器交互实现用户状态的订阅、发布和通知,通过SIP消息与IM服务器交互实现即时消息的传递,通过SIP消息与XDMS交互实现文档变化的订阅与通知; Presence服务器和M服务器分别以聚合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现通过群组标识来获取群组成员列表。 —种基于上述系统的基于XDMS的群组管理方法,其特征在于包括以下管理功能
A.存储用户列表,用户终端通过XCAP消息将用户终端上的好友列表和群组列表分别上传到XDMS上; B.获取用户列表,所述用户列表包括获取好友列表和群组列表,用户登录到用户终端时,通过XCAP消息从XDMS上获取好友列表和群组列表,并分别呈现在用户终端上;
C.创建好友分组,用户终端通过XCAP消息创建不同的分组,再通过XCAP消息将好友列表上的好友分别添加到分组中,形成多个好友分组,一个好友不能被添加到多个分组中; D.添加好友,用户终端通过SIP MESSAGE消息,发送添加某用户的请求到IM服务器,IM服务器将该邀请转发至该用户;经过该用户的认证和授权后,同意被添加的SIPMESSAGE消息经IM服务器返回,用户终端收到后再向XDMS发送XCAP消息,将该用户添加为
5好友并在好友列表内呈现该用户; E.创建群组,用户通过用户终端,将群组资料和相关群组访问规则通过XCAP消息发送到XDMS服务器,创建一个群组;群组创建成功后,该群组便会显示在用户终端上,群组成员中默认包含创建该群组的用户且为该群组的管理员; F.加入群组,当某个用户想加入一个群组时,用户终端通过SIP MESSAGE消息发送该群组的帐号URI到IM服务器,IM服务器通过SIP MESSAGE消息转发该加入请求到该群组的创建者所在的用户终端;经过创建者认证和授权后,该用户被加入群组,其用户终端上的群列表中会显示所加入的群组,群组成员列表里包含刚刚加入的用户;同时,XDMS服务器通过SIP NOTIFY消息通知所加入群组的其他成员自动更新群组成员列表;
G.认证与授权,所述功能D和F,当对方拒绝邀请或拒绝加入,用户终端以SIPMESSAGE消息向IM服务器发出通知,告知无法通过被请求方的认证和授权,IM服务器中转该消息至用户终端,向请求方发出操作失败的提示。 在上述技术方案的基础上,所述管理功能A进一步包括以下功能 Al.存储分组成员,为每个分组创建一个以分组ID命名的Resource Lists文档,
并将好友列表中各个分组里的好友分别存储到这些分组文档中,各个文档中每个元素为好
友的URI和显示名构成; A2.存储分组列表,将所述步骤A1中的每个分组的地址URI和显示名作为一个元素存储到名为index的Resource Lists文档中,该地址URI指向Al中创建的各个分组文档在XDMS中的存储地址,index文档并不存储用户URI ; A3.存储群组和群组列表,与存储分组有相似之处,各个群组成员也是存储在以群组ID命名的Resource Lists文档中;不同的是,其群组列表是存储在名为grouplist的Group Usage List文档中,而不是Resource Lists文档;grouplist文档并不存储用户URI,其各个元素为群组地址URI和显示名构成。 在上述技术方案的基础上,所述管理功能B的具体实现包括以下步骤 Bl.获取分组列表,即获取名为index的Resource Lists文档,其中包含多个分组
的URI、显示名和地址; B2.获取分组成员,根据上一步骤B1获取的每个分组地址,逐一从名为分组URI的Resource Lists文档中获取分组成员; B3.根据步骤B1和B2中的获得数据,组成一个新的、包含所有分组及成员的XML文档,IM客户端读取该文档并呈现在用户终端上; B4.获取群组列表和成员并呈现,从Group Usage List文档中获取群组列表,再逐一从Resource Lists文档获取群组成员,形成综合的群组成员文档,并呈现在用户终端上。
本发明所述的基于XDMS的群组管理系统及方法,可满足用户方便快捷地对客户端的好友列表和群组进行管理,并能在多个不同用户终端上的客户端间共享好友列表和群组数据,增强用户体验。


本发明有如下附图 图1XML文档管理系统结构示意 图2基于XDMS的群组管理系统的总体架构图; 图3基于XDMS的群组管理方法中创建群组的消息流程图; 图4本发明的添加用户过程中的认证与授权的消息流程图。
具体实施例方式
以下结合附图对本发明作进一步详细说明。 本发明公开了一种基于XDMS的群组管理系统,包括用户终端、XDMS和聚合代理、 SIP服务器、IM服务器、Presence服务器;其总体架构如图2所示,包括用户终端、XDMS和 聚合代理、SIP服务器、IM服务器、Presence服务器;用户终端包含IM客户端和X匿C,以聚 合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现好友和群组列表的管理;用户 终端以SIP服务器为SIP信令接入点,通过SIP消息与Presence服务器交互实现用户状态 的订阅、发布和通知,通过SIP消息与M服务器交互实现即时消息的传递,通过SIP消息 与XDMS交互实现文档变化的订阅与通知;Presence服务器和IM服务器分别以聚合代理为 XCAP信令接入点,通过XCAP消息与XDMS交互实现通过群组标识来获取群组成员列表。
如图2所示,用户终端UE包含IM客户端和XDMC,UE通过XCAP消息操作XDMS,实 现好友和群组列表的管理。UE与X匿S、 Presence服务器、M服务器之间使用SIP消息交 互;与UE交互的SIP消息都经过SIP服务器中转。SIP服务器与XDMS之间的SIP消息用于 文档的订阅与通知,如UE订阅XDMS中好友资料文档的变化,当好友修改资料时,XDMS会即 时通知UE。 UE与Presence之间的SIP消息用于用户状态(如空闲、忙碌、离开)的订阅、 发布和通知。UE与IM服务器之间的SIP消息用于即时消息的传递。Presence服务器和IM 服务器与XDMS使用XCAP消息交互,主要是通过群组标识来获取群组成员列表,如订阅分组 状态和群组聊天。 所述XDMS和聚合代理中,至少包括共享列表XDMS、共享资料XDMS、共享群组XDMS 三个X匿服务器,X匿S根据用户的请求,处理特定的XML文档,并向客户端返回处理结果。 在这里,聚合代理是作为X匿服务器的一部分和这些XDMS部署在一起的。
所述IM客户端,是用户使用的友好界面客户端,它可以存在于手机、PDA、 PC或是 其他用户终端上,是UE的一部分,它和XDMC —起构成所述系统的客户端。IM客户端接受用 户输入,调用XCAP和SIP协议的接口 ,向相关服务器发送XCAP和SIP请求并接收响应,最 后解析并显示接收到的消息,与所述系统的其他部分组成一个完整的即时通信、VOIP音视 频相结合的系统。 在上述技术方案的基础上,本发明给出了一种基于XDMS的群组管理方法,以XDMS 作为数据存储平台,实现对UE上好友列表的群组管理,包括以下管理功能
A.存储用户列表,用户终端通过XCAP消息将用户终端上的好友列表和群组列表 分别上传到XDMS上; B.获取用户列表,所述用户列表包括获取好友列表和群组列表,用户登录到用户 终端时,通过XCAP消息从XDMS上获取好友列表和群组列表,并分别呈现在用户终端上;
C.创建好友分组,用户终端通过XCAP消息创建不同的分组,再通过XCAP消息将好 友列表上的好友分别添加到分组中,形成多个好友分组,一个好友不能被添加到多个分组 中;
7
D.添加好友,用户终端通过SIP MESSAGE消息,发送添加某用户的请求到IM服 务器,IM服务器将该邀请转发至该用户;经过该用户的认证和授权后,同意被添加的SIP MESSAGE消息经IM服务器返回,用户终端收到后再向XDMS发送XCAP消息,将该用户添加为 好友并在好友列表内呈现该用户; E.创建群组,用户通过用户终端,将群组资料和相关群组访问规则通过XCAP消息 发送到XDMS服务器,创建一个群组;群组创建成功后,该群组便会显示在用户终端上,群组 成员中默认包含创建该群组的用户且为该群组的管理员; F.加入群组,当某个用户想加入一个群组时,用户终端通过SIP MESSAGE消息发 送该群组的帐号URI到IM服务器,IM服务器通过SIP MESSAGE消息转发该加入请求到该 群组的创建者所在的用户终端;经过创建者认证和授权后,该用户被加入群组,其用户终端 上的群列表中会显示所加入的群组,群组成员列表里包含刚刚加入的用户;同时,XDMS服 务器通过SIP NOTIFY消息通知所加入群组的其他成员自动更新群组成员列表;
G.认证与授权,所述功能D和F,当对方拒绝邀请或拒绝加入,用户终端以SIP MESSAGE消息向IM服务器发出通知,告知无法通过被请求方的认证和授权,IM服务器中转 该消息至用户终端,向请求方发出操作失败的提示。 所述管理功能还包括上述管理功能的反向操作,如删除好友、删除分组、解散群 组、退出群组等,这些反向操作均可采用现有技术实现,故此处不再详述。需要说明的是,只 有该群组的创建者才有权限解散它。 在上述技术方案的基础上,所述管理功能A进一步包括 Al.存储分组成员,为每个分组创建一个以分组ID命名的Resource Lists文档, 并将好友列表中各个分组里的好友分别存储到这些分组文档中,各个文档中每个元素为好 友的URI和显示名构成; A2.存储分组列表,将所述步骤A1中的每个分组的地址URI和显示名作为一个元 素存储到名为index的Resource Lists文档中,该地址URI指向Al中创建的各个分组文 档在XDMS中的存储地址,index文档并不存储用户URI ; A3.存储群组和群组列表,与存储分组有相似之处,各个群组成员也是存储在以群 组ID命名的Resource Lists文档中;不同的是,其群组列表是存储在名为grouplist的 Group Usage List文档中,而不是Resource Lists文档;grouplist文档并不存储用户 URI,其各个元素为群组地址URI和显示名构成。
在上述技术方案的基础上,所述管理功能B进一步包括 Bl.获取分组列表,即获取名为index的Resource Lists文档,其中包含多个分组 的URI、显示名和地址; B2.获取分组成员,根据上一步骤B1获取的每个分组地址,逐一从名为分组URI的 Resource Lists文档中获取分组成员; B3.根据步骤B1和B2中的获得数据,组成一个新的、包含所有分组及成员的XML 文档,IM客户端读取该文档并呈现在UE上; B4.获取群组列表和成员并呈现,从Group Usage List文档中获取群组列表,再逐 一从Resource Lists文档获取群组成员,形成综合的群组成员文档,并呈现在UE上。
本发明的有益效果为
本发明提供了一种基于XDMS的群组管理系统,实现了对用户终端上好友列表的 管理,为用户对众多好友信息的管理变得方便快捷,这一点对于通信用户数量快速膨胀的 现状来说尤为重要。 本发明提供了一种不同UE之间共享好友列表和群组信息的解决方案。用户的好 友列表群组信息以XML文档的形式存储在X匿S上,任何UE上的客户端,只要经过认证和授 权,都可以通过XCAP协议从XDMS上获取这些数据,这为在不同的UE之间进行好友列表和 群组信息共享提供了一种可靠有效的解决方案。 本发明实现了一种基于XDMS的群组管理方法,将好友列表、群组成员和群组列表 存储在Shared List XDMS上,将群组信息存储在Shared Group XDMS上。群组列表XML文 档上存放各个群组的URI,并映射到相应群组成员和群组信息文档;不同类型UE上的客户 端登录时,通过调用XCAP接口,会将该用户的好友列表文档和群组列表文档编码后发送给 UE, UE上客户端的其他模块无需与XDMS交互,大大简化了程序的开发,高效而且安全性有 保证。 以下结合附图及具体实施方式
,对本发明进行进一步的详细说明。需要说明的是,
此处所描述的具体实施方式
仅仅用以解释本发明,并不用来限定本发明。 本发明提供了一种群组管理系统,用户经过成功注册后,可以通过客户端进行添
加其他的注册用户,并可以对客户端上的好友列表进行分组管理;用户可以创建群组,还可
以邀请其他用户加入群组,并可以对群组信息和群组成员进行维护和管理。下面就以本发
明的实施例来详细说明。 首先来说明本发明中的好友列表的存储方式。 用户好友列表是存储在XDMS上的Resource Lists文档中的,其中每个分组是存 储在以分组URI命名的文档中,如下是一个分组URI为ext_fh_Cm的成员列表文档,其地址
为 http://fhims. com. cn:9082/resource-lists/users/ sip:05030001008@10. 90. 5. lll/ext_fh_cm 该文档的内容为 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8" > 〈resource-lists xmlns = 〃 urn: ietf :par咖s:xml :ns:resource-lists〃 > 〈listname=〃 ext_fh_cm〃 > 〈display_name>我的同学〈/display_name> 〈entryuri=〃 sip:05030001001@10. 90. 5. Ill 〃 > 〈display_name>Jane〈/display-nameX/entry> 〈entryuri=〃 sip:05030001002@10. 90. 5. Ill 〃 > 〈display_name>Bob〈/display_name>〈/entry> 〈/list> 〈/resource_lists> 该文档内容显示,用户sip:05030001008@10. 90. 5. Ill有一个以"我的同学"命名
的好友分组,里面有两个成员,Jane和Bob。
而用户的分组列表是存储在名为index的Resource Lists文档中的,文档的每个 分组都会通过external元素映射到其成员列表,其属性anchor值为成员列表文档的地址。 index文档中每个external元素对应一个分组,但是其中不包含具体的用户URI ;每个分组 成员的用户URI是存储在以分组URI命名的成员列表文档中的。是如下为用户的好友列表 文档的地址 http://fhims. com. cn:9082/resource_lists/users/sip:05030 001008@10. 90. 5. Ill/index 该文档的内容为 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8" > 〈resource-lists xmlns = 〃 urn: ietf :par咖s:xml :ns:resource-lists〃 > 〈listname=〃 oma_buddylist〃 > 〈external anchor =〃 http://fhims. com. cn:9082/resource_lists/users/sip:0 5030001008@10. 90. 5. lll/ext_fh_cm/ /resource_lists/list% 5B@ name =% 22ext_fh_cm% 22% 5D〃 > 〈display_name>我的同学〈/display_name> 〈/external> 〈external anchor = 〃 http://fhims. com. cn:9082/resource_lists/users/sip:0 5030001008@10. 90. 5. 111/10001008/ /resource_lists/list% 5B@n ame =% 2210001008% 22% 5D〃 > 〈display_name>我的月月友〈/display_name> 〈/external> 〈/list> 〈/resource_lists> 通过上述文档可以看出,该用户有两个好友分组,分别为"我的同学"和"我的朋
友",并通过其在XDMS上的地址映射到其对应的分组成员列表文档。 用户登录时,首先会获取到该分组列表文档index,然后根据其中的每个分组的 地址,分别取出其成员,最后形成一分完整的好友列表文档,由IM客户端读取并解析,最后 呈现给终端用户。群组列表的存储和获取与好友列表类似,不同的是其群组列表存储在 GroupUsage List文档中。 图3是本发明的一个实施例的创建群组的消息流程图。 如图3所示,该流程的主要实体包括XDMC和Resource ListsXDMS、 Group Usage List XDMS、Shared Group XDMS等特定功能的XDM服务器。XDMC与XDMS之间传递的是XCAP 消息。需要说明的是,XDMC发送和接收的XCAP消息都要经过聚合代理,为了简化流程,图3 中省略了聚合代理。其主要步骤如下 步骤1,创建群组成员列表。创建一个群组,首先需要创建一份群组成员列表文档, 存储在Resource Lists XDMS中,创建者Jane作为默认的群组成员,被包含在该群的成员列表中。XDMC发送的XCAP消息内容如下
PUT/resource-lists/users/sip:05030001008@10. 90. 5. 111/0001008
HTTP/1.1 Host :fhims. com. cn:9082 Content-Type :即plication/resource-lists+xml X-3GPP-Asserted-Identity :sip:05030001008@10. 90. 5. Ill User-Agent :XDM_client/0MA2. 0 Content-Length : 260 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8" > 〈resource-listsxmlns = 〃 urn: ietf :par咖s:xml :ns:resource-lists〃 > 〈listname=〃 0001008〃 > 〈display_name>我的同事〈/display_name> 〈entryuri=〃 sip:05030001008@10. 90. 5. Ill " > 〈display_name>Jane〈/display-nameX/entry> 〈/list> 〈/resource_lists> 上述消息中,消息头第一行为Request URI,包括XCAP方法"PUT"和文档选择器 services/resource-lists/users/sip:05030001008@10. 90. 5. 111/0001008,如果是定位 到文档内部,还需要节点选择器。节点选择器与文档选择器之间以分隔符 连接,后面会 有该分隔符的应用。消息头还包括Host、 User-Agent、 Content-Length等,与HTTP协议类 似,需要说明的是Content-Type头的内容是XCAP协议中特有的,X-Assertechldentity头 用于认证用户。 上述消息中,消息内容为XML文档,根节点为resource-lists,表明它 是存储在Resource Lists XDMS中,list元素表明 一 个群组,群组标识name为 "0001008",显示名display-name为"我的同事",默认包含一个成员entry为创建者 sip:05030001008@10. 90. 5. 111。 步骤2, Resource Lists XDMS响应,创建成功,表示步骤1中的XCAP PUT消息已 得到处理,XML文档已成功上传到XDMS中。其响应消息内容如下
HTTP/1. 1201 Created
ETag :1232000068718
… 上述消息跟HTTP协议类似,其中ETag头的内容为该XML文档的版本号,如果文档 被修改,该字段内容会被更新。 为了简化说明,下面的步骤中,与步骤1和步骤2类似的XCAP消息头会被省略。
步骤3,创建群组信息。XDMC根据用户输入的信息,构建XML文档,然后通过XCAP 协议发送到Shared Group XDMS。其XCAP消息内容如下
PUT
/org. openmobilealliance. groups/users/sip:05030001008010 . 90. 5. 111/0001008HTTP/1. 1 X-3GPP-Asserted-Identity :sip:05030001008@10. 90. 5. Ill Content-Type :即plication/vnd. oma. poc. groups+xml Content-Length :561 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8" > 〈group xmlns =〃 urn:oma:xml:poc:list-service" xmlns:oxe=〃 urn:oma:xml:xdm: extens ions" > 〈list-service uri =〃 sip:0001008@group. example, com" > 〈display_name>我的同事〈/display_name> 〈list> 〈external anchor =〃 http://fhims. com. cn:9082/resource_lists/users/sip:0 503 0001008@10. 90. 5. 111/0001008/ /resource_lists/list% 5B@n ame =% 220001008% 22% 5D〃 />
〈/list> 〈invite_members>true〈/invite_members> 〈oxe:searchable>true〈/oxe:searchable> 〈oxe: sub ject>工作组〈/oxe: subject> 〈/list_service>
〈/group> 上述消息中,步骤1中创建的群组0001008的name在这里被封装成了 URI,即
sip:0001008@group. example, com ;另外添加了一些群组的相关信息,如,是否可以邀请用 户invite-members、是否允许被搜索searchable、群组主题subject等。该群组的成员存 放在external元素映射到的、步骤1中创建的Resource Lists文档中。
步骤4, Shared Group XDMS向客户端返回409conf lict,表明上述消息中的群组 URI命名不合规范,或者在XDMS中该群组URI已经存在,需要重新构建;并在消息体中附带 一个符合要求的URI供客户端选择。 步骤5, XDMC重新构建群组URI ,再次发送XCAP PUT消息。 所述步骤4和步骤5,是一个可选的操作,如果该群组URI符合OMA X匿规范而且 符合唯一性约束,则直接执行步骤6。 步骤6,群组信息文档创建成功,返回201Created。 步骤7,获取群组列表,判断该用户是否存在群组列表XML文档。如果存在,则添加 一个元素,否则创建群组列表文档。XDMC发送的XCAP消息内容如下 GET /org. openmobilealliance. group_usage_list/users/sip:05030001 008@10. 90. 5. 111/grouplist HTTP/1. 1 X-3GPP-Asserted-Identity:sip:05030001008@10. 90. 5. Ill:0172] User-Agent :XDM_client/0MA2. 0
:0173] …
:0174] 步骤8, Group Usage List XDMS收到XDMC的请求,响应消息如下 :0175] HTTP/1. 1200 OK
.0176] Content-Type :即plication/vncL oma. group_usage_list+xml 5
:0177] charset = utf_8
:0178] Content-Length : 381
:0179] ETag :1231242056337
:0180] 〈? xml version =〃 1.0〃 encoding = 〃 UTF-8" >
:0181] 〈resource-lists
:0182] xmlns = 〃 urn: ietf :par咖s:xml :ns:resource-lists〃 >
:0183] 〈list name = 〃 bookmarkedGroups〃 >
:0184] 〈entryuri=〃 0001006〃 >
:0185] 〈display_name>我的同学〈/display_name>
:0186] 〈external
:0187] anchor =〃 http://fhims. com. cn:9082/resource_lists/users/sip:0
:0188] 5030001006@10. 90. 5. 111/0001006/ /resource_lists/list5B% @na
:0189] me = 22% 000100622% 5D%〃 />
:0190] 〈/entry>
:0191] 〈/list>
:0192] 〈/resource_lists>
:0193] 上述消息中,返回码为200 OK,表明该用户已经存在群组列表文档grouplist,而
且他已经加入了一个名为0001006的群组。所以,下一步只需添加一个entry元素,以标识 一个新的群组,并通过external元素映射到该群成员列表文档。 所述步骤8还有一个可选流程,如图3中所示的"404 Not Found",表明该用户还 没有群组列表文档,下一步需要创建Group Usage List文档,并包含刚刚创建的群组。
步骤9,添加新创建的群组到用户群组列表grouplist,即添加一个entry元素。如 果步骤8返回的是404 Not Found,则创建该文档。XDMC发送的XCAP内容为
:0196] PUT
:0197] /org. openmobilealliance. group_usage_list/users/sip:05030001
:0198] 008@10. 90. 5. 111/grouplist/ /resource_lists/list% 5b@name = % 2
:0199] 2bookmarkedGroups% 22% 5d/entry% 5b@uri =% 220001008% 22% 5d
:0200] HTTP/1. 1
:0201] Content-Type :即plication/xc即-el+xml
:0202] X-3GPP-Asserted-Identity :sip:05030001008@10. 90. 5. Ill
:0203] Content-Length :231
:0204] 〈entryuri=〃 0001008〃 >
:0205] 〈display_name>我的同事〈/display_name>
:0206] 〈external
anchor =〃 http://fhims. com. cn:9082/resource-lists/users/sip:0 5030001008@10. 90. 5. 111/0001008/ /resource_lists/list% 5B@na me =% 220001008% 22% 5D〃 />
〈/entry> 步骤10, Group Usage List XDMS返回201 Created,表明创建成功,创建群组流 程结束。 用户终端的群组列表上会出现该群组"我的同事",成员列表中包含创建者。用户 可以执行对群组信息及成员的后续操作。 图4是本发明的一个实施例的认证与授权的消息流程图。 如图4所示,用户Jim想要添加Daisy为好友,其中,Jim的账号为 sip:05030001001@10. 90. 5. lll,Daisy的账号为sip:05030001002@10. 90. 5. 111。于是Jim 的用户终端UE1向服务器发出邀请,发送的MESSAGE消息内容如下 MESSAGE sip:05030001002@10. 90. 5. Ill SIP/2.0 Max-Forwards :70 From :sip:05030001001@10. 90. 5. Ill ;tag = 49583 To :sip:05030001002@10. 90. 5. Ill Call-ID :asd88asd77a@l. 2. 3. 4 CSeq : 1MESSAGE Content-Type :message/friend-invite Content-Length :… 〈friend_invite> 〈user_displayname>Jim〈/user_displayname>〈user-uri>sip:05030001001@10. 90. 5. lll〈/user_uri> 〈/friend_invite> 消息中的消息体类型为自定义的MESSAGE的扩展类型,包含内容的发起邀请的用 户的显示名和账号。MESSAGE消息经过SIP服务器和IM服务器的转发,传递到Daisy的终 端UE2。如图4所示。注意,图4中省略了 SIP服务器。UE2收到消息后以SIP 200 0K响应。 如果Daisy同意Jim的请求,则执行XCAP PUT请求,将其添加到自己的好友列表 中。添加成功后,Daisy向Jim发送响应的MEASSAGE消息,消息内容如下
MESSAGE sip:05030001001@10. 90. 5. Ill SIP/2.0 Max-Forwards :70 From :sip05030001002@10. 90. 5. Ill ;tag = 98786 To :sip:05030001001@10. 90. 5. Ill Call-ID :asd89asd77cc@l. 2. 3. 4 CSeq : 1MESSAGE Content-Type :message/friend_invite_notify Content-Length :… 〈friend_invite_notify>
〈invite_user_displayname>Daisy〈/invite_user_displayname>
〈invite-user>sip:05030001002@10. 90. 5. lll〈/invite_user > 〈option>yes〈/option>
〈/friend_invite_notify> 响应消息中包含了 Daisy的账号和显示名,并包含其意愿的option元素,yes表 示同意,no表示拒绝。UEl收到Daisy同意消息后,执行XCAP操作,将其添加到好友列表, 流程结束。 图4还有一个可选流程,如果Daisy拒绝Jim的请求,则无需执行XCAP操作,直接 发送包含option元素值为no的MEASSAGE响应消息,Jim的UEl收到消息后不能执行XCAP PUT的添加操作。 对于用户加入群组或者群组创建者邀请用户加入的流程,与图4类似,只是 MESSAGE消息体的内容稍有不同,请求的消息体中多了群组标识GroupID,而响应的消息体 中则为群组显示名group-displayname和群组标识GroupID及意愿option。而且,如图4 所示的流程结束后,群组其他成员的UE会收到来自XDMS的、该成员列表文档变化的NOTIFY 消息,其消息体中会包含该文档的版本号ETag、地址URI以及变化的内容。
权利要求
一种基于XDMS的群组管理系统,其特征在于包括用户终端、XDMS和聚合代理、SIP服务器、IM服务器、Presence服务器;用户终端包含IM客户端和XDMC,以聚合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现好友和群组列表的管理;用户终端以SIP服务器为SIP信令接入点,通过SIP消息与Presence服务器交互实现用户状态的订阅、发布和通知,通过SIP消息与IM服务器交互实现即时消息的传递,通过SIP消息与XDMS交互实现文档变化的订阅与通知;Presence服务器和IM服务器分别以聚合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现通过群组标识来获取群组成员列表。
2. —种基于权利要求1所述系统的基于XDMS的群组管理方法,其特征在于包括以下管理功能A. 存储用户列表,用户终端通过XCAP消息将用户终端上的好友列表和群组列表分别上传到XDMS上;B. 获取用户列表,所述用户列表包括获取好友列表和群组列表,用户登录到用户终端时,通过XCAP消息从XDMS上获取好友列表和群组列表,并分别呈现在用户终端上;C. 创建好友分组,用户终端通过XCAP消息创建不同的分组,再通过XCAP消息将好友列表上的好友分别添加到分组中,形成多个好友分组,一个好友不能被添加到多个分组中;D. 添加好友,用户终端通过SIP MESSAGE消息,发送添加某用户的请求到IM服务器,M服务器将该邀请转发至该用户;经过该用户的认证和授权后,同意被添加的SIP MESSAGE消息经IM服务器返回,用户终端收到后再向XDMS发送XCAP消息,将该用户添加为好友并在好友列表内呈现该用户;E. 创建群组,用户通过用户终端,将群组资料和相关群组访问规则通过XCAP消息发送到XDMS服务器,创建一个群组;群组创建成功后,该群组便会显示在用户终端上,群组成员中默认包含创建该群组的用户且为该群组的管理员;F. 加入群组,当某个用户想加入一个群组时,用户终端通过SIP MESSAGE消息发送该群组的帐号URI到IM服务器,IM服务器通过SIP MESSAGE消息转发该加入请求到该群组的创建者所在的用户终端;经过创建者认证和授权后,该用户被加入群组,其用户终端上的群列表中会显示所加入的群组,群组成员列表里包含刚刚加入的用户;同时,XDMS服务器通过SIP NOTIFY消息通知所加入群组的其他成员自动更新群组成员列表;G. 认证与授权,所述功能D和F,当对方拒绝邀请或拒绝加入,用户终端以SIP MESSAGE消息向IM服务器发出通知,告知无法通过被请求方的认证和授权,IM服务器中转该消息至用户终端,向请求方发出操作失败的提示。
3. 如权利要求2所述的基于XDMS的群组管理方法,其特征在于所述管理功能A进一步包括以下功能Al.存储分组成员,为每个分组创建一个以分组ID命名的Resource Lists文档,并将好友列表中各个分组里的好友分别存储到这些分组文档中,各个文档中每个元素为好友的URI和显示名构成;A2.存储分组列表,将所述步骤A1中的每个分组的地址URI和显示名作为一个元素存储到名为index的Resource Lists文档中,该地址URI指向Al中创建的各个分组文档在XDMS中的存储地址,index文档并不存储用户URI ;A3.存储群组和群组列表,与存储分组有相似之处,各个群组成员也是存储在以群组ID命名的Resource Lists文档中;不同的是,其群组列表是存储在名为grouplist的GroupUsage List文档中,而不是Resource Lists文档;g丽plist文档并不存储用户URI,其各个元素为群组地址URI和显示名构成。
4.如权利要求3所述的XDMS的基于XDMS的群组管理方法,其特征在于所述管理功能B的具体实现包括以下步骤Bl.获取分组列表,即获取名为index的Resource Lists文档,其中包含多个分组的URI、显示名和地址;B2.获取分组成员,根据上一步骤B1获取的每个分组地址,逐一从名为分组URI的Resource Lists文档中获取分组成员;B3.根据步骤Bl和B2中的获得数据,组成一个新的、包含所有分组及成员的XML文档,IM客户端读取该文档并呈现在用户终端上;B4.获取群组列表和成员并呈现,从Group Usage List文档中获取群组列表,再逐一从Resource Lists文档获取群组成员,形成综合的群组成员文档,并呈现在用户终端上。
全文摘要
一种基于XDMS的群组管理系统及方法,涉及网络通信中的群组管理,其特征在于用户终端以聚合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现好友和群组列表的管理;用户终端以SIP服务器为SIP信令接入点,通过SIP消息与Presence服务器交互实现用户状态的订阅、发布和通知,与IM服务器交互实现即时消息的传递,与XDMS交互实现文档变化的订阅与通知;Presence服务器和IM服务器分别以聚合代理为XCAP信令接入点,通过XCAP消息与XDMS交互实现通过群组标识来获取群组成员列表。本发明所述的管理系统及方法,可满足用户方便快捷地对客户端的大量好友和群组进行管理,并能在多个不同用户终端上的客户端间共享好友列表和群组数据,增强用户体验。
文档编号H04L29/06GK101714170SQ20091025002
公开日2010年5月26日 申请日期2009年12月2日 优先权日2009年12月2日
发明者屈兰, 李长春, 盛锐, 覃洪清, 陈敬志 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1