著录项信息
专利名称 | 一种消息系统中会话历史处理方法及消息系统 |
申请号 | CN200610139799.8 | 申请日期 | 2006-09-25 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2008-04-02 | 公开/公告号 | CN101155049 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/18 | IPC分类号 | H;0;4;L;1;2;/;1;8;;;H;0;4;M;3;/;4;2查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 牟伦建;王珏;黄成;D·高塔姆 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 王琦;王诚华 |
摘要
本发明公开了一种消息系统中会话历史处理方法,该方法包括:设置包括用于描述会议会话历史消息的会话消息元数据的会话历史元数据,按照该会话历史元数据的组成生成会话历史元数据。本发明还公开了一种消息系统。本发明通过在会话历史元数据的设置中增加用于描述会话历史消息的会话消息元数据,扩展了消息系统中存储的会话历史元数据的结构,使得用户对会话历史的操作建立在其对会话历史中具体消息内容了解的基础之上,从而提升了用户对会话历史信息检索、删除等管理能力,提高了消息系统的服务质量。
1.一种消息系统中会话历史处理方法,其特征在于,该方法包括:在消息系统中设置会话历史元数据的数据结构,所述会话历史元数据包括用于描述会话历史消息的会话消息元数据;按照会话历史元数据的组成生成并存储会话历史元数据,其中,所述生成并存储会话历史元数据具体包括:
客户端经由自身归属网络中的消息业务功能实体,向所述消息系统中的会话历史功能实体请求存储其所参与的会议会话过程中出现的所有消息;
会话历史功能实体向控制功能会议会话控制功能实体发送邀请请求,请求邀请自身加入会议会话作为会话参与方;
会议会话控制功能实体将接收到的来自会议会话参与客户端的消息转发给会话历史功能实体,会话历史功能实体存储会议会话历史消息,并按照所述会话历史元数据的组成生成并存储会议会话历史元数据信息。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
客户端经由消息业务功能实体向会话历史功能实体请求离开当前会话或请求结束对会议会话消息的存储,会话历史功能实体向会议会话控制功能实体请求结束对会议会话消息的存储;
会议会话控制功能实体经由会话历史功能实体、消息业务功能实体向客户端返回结束会议会话消息存储响应。
3.根据权利要求1所述的方法,其特征在于,所述按照所述会话历史元数据的组成生成并存储会议会话历史元数据信息的方法为:
元数据客户端向聚合代理发送会话历史元数据存储请求;
聚合代理根据接收到的会话历史元数据存储请求中携带的访问地址,将接收到的会话历史元数据存储请求转发至该访问地址所对应的元数据存储;
元数据存储检查客户端的操作权限,并执行会话历史元数据存储操作,按照所述会话历史元数据的组成生成当前会话中的会话历史元数据并存储。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:获取存储 的会议会话历史元数据,具体为:
客户端经由聚合代理向搜索代理请求查询会话历史元数据;
搜索代理根据接收到的请求中携带的查询条件确定需要查询的会话历史元数据在消息系统中的存储位置,并向该位置对应的元数据存储请求查询会话历史元数据;
元数据存储执行会话历史元数据查询,获得与查询条件匹配的会话历史元数据。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:所述元数据存储经由搜索代理和聚合代理,向所述客户端返回获得的会话历史元数据。
6.根据权利要求5所述的方法,其特征在于,该方法进一步包括获取会话历史消息,具体为:
客户端根据获得的会话历史元数据选择自身需要的会话历史消息,并利用对应的会话历史消息标识,经由消息业务功能实体向会话历史功能实体请求对应的会话历史消息;
会话历史功能实体根据所述会话历史消息标识,检索消息系统中存储的会话历史消息,以获得对应的每条会话历史消息,并返回给客户端。
7.根据权利要求5所述的方法,其特征在于,该方法进一步包括获取会话历史消息,具体为:
客户端根据获得的会话历史元数据选择自身需要的会话历史消息,并利用对应的会话历史消息标识,经由消息业务功能实体向所述会议会话控制功能实体请求对应的会话历史消息;
会议会话控制功能实体将与所述会话历史消息标识对应的各会话历史消息作为仅能发送的虚拟客户端,建立临时会话,并邀请所述客户端与位于会话历史功能实体中的各虚拟客户端参与建立的临时会话;
虚拟客户端将自身的会话历史消息发送给会议会话控制功能实体,会议会话控制功能实体将获得的会话历史消息经由消息业务功能实体发送给客 户端。
8.根据权利要求7所述的方法,其特征在于,该方法还包括:获取所述会话历史消息的上下文消息。
9.根据权利要求8所述的方法,其特征在于,所述获取所述会话历史消息的上下文消息的方法为:
所述客户端根据获得的会话消息元数据中携带的消息序列号及所属会话标识,构造检索同一会话中具有上一个或下一个序列号的会话消息元数据检索请求,获取所需上下文消息;
或者,所述客户端根据获得的会话消息元数据中携带的所属会话标识,构造定位同一会话中第一条或最后一条会话消息元数据检索请求,获取所需上下文消息。
10.根据权利要求1所述的方法,其特征在于,该方法还包括:删除存储的会议会话历史元数据,具体为:
客户端向聚合代理请求删除会议会话历史;
聚合代理根据接收到的请求中携带的删除条件,删除满足条件的会话历史元数据。
11.根据权利要求1所述的方法,其特征在于,所述会话消息元数据包括以下一项或一项以上:
消息标题、消息发送者、消息接收者、消息序列号、消息存储尺寸、会话历史中会话历史消息的唯一标识、消息发送时间。
12.根据权利要求1所述的方法,其特征在于,所述会话历史元数据包括以下一项或一项以上:
会话主题、会话历史期限、会话存储空间、会话开始时间、会话结束时间、会话历史文件名、会话历史文档存储路径。
13.根据权利要求1所述的方法,其特征在于,所述各会话消息元数据与自身隶属的会话历史元数据紧耦合存储;
存储在会话历史存储中的已有不同会话存储单元的各会话消息,与会话历 史元数据中的各会话消息元数据一一对应。
14.根据权利要求1所述的方法,其特征在于,所述各会话消息元数据与自身隶属的会话历史元数据松耦合存储;
存储在会话历史存储中的已有不同会话存储单元的各会话消息,与会话历史元数据中的各会话消息元数据一一对应。
15.根据权利要求1所述的方法,其特征在于,
会话历史消息和会话历史元数据存储在消息业务服务器;
或者,会话历史消息和会话历史元数据存储在数据存储设备;
或者,会话历史消息存储在消息业务服务器,会话历史元数据存储在数据存储设备;
或者,会话历史消息存储在数据存储设备,会话历史元数据存储在消息业务服务器。
16.根据权利要求15所述的方法,其特征在于,所述存储的方式为:
同一会话中的所有会话历史消息存储在一个或一个以上文件中;
或者,将每对参与会话的用户之间收发的所有会话历史消息存放在一个物理文件中;
或者利用数据库存储。
17.一种消息系统,其特征在于,至少包括:
会话历史功能实体,用于实现会话历史数据的存储;接收存储客户端所参与的会议会话过程中出现的所有消息的请求,向控制功能会议会话控制功能实体发送邀请请求;存储来自会议会话控制功能实体的会议会话历史消息,按照自身预先设置的会话历史元数据的组成生成并存储会议会话历史元数据到元数据存储;
元数据存储,用于实现会话历史元数据的存储;
会议会话控制功能实体,用于实现会议会话控制的逻辑实体,接收来自会话历史功能实体的邀请请求,邀请该会话历史功能实体加入会议会话作为会话参与方;将接收到的来自会议会话参与客户端的消息转发给会话历史功 能实体。
18.根据权利要求17所述的消息系统,其特征在于,该系统还包括:
消息业务功能实体,用于提供消息业务的应用服务器,转发消息系统与客户端间交互的信息。
19.根据权利要求18所述的消息系统,其特征在于,
所述会话历史功能实体、元数据存储分别集成在消息业务功能实体中,或者是消息系统中独立的网络实体。
一种消息系统中会话历史处理方法及消息系统 \n技术领域\n[0001] 本发明涉及消息业务处理技术,尤指一种在多方会议会话消息系统中,对会话历史进行处理的方法及消息系统。 \n背景技术\n[0002] 消息业务属于一种基于呈现(Presence)的个人对个人、个人对群组的消息类的移动数据业务,消息系统除了应具备基本信息交互能力外,还应为用户提供基于定制的增强业务体验,比如,在消息会话的过程中用户发送、接收的消息可以作为会话历史信息记录下来,会话结束后允许用户有选择地管理会话历史中的消息。消息业务可以在移动通信网络、Internet网络等上开展,其中,移动网络包括现有的2G、2.5G,未来的3G、以及多媒体子域等。 \n[0003] 支持会话历史功能(Conversation History Function)的消息系统,为会话参与各方用户之间收发的消息提供了网络存储,每一位消息业务的签约用户都拥有对应于各自会话历史信息的网络备份。会话历史信息包括会话历史消息(Conversation History Messages)和会话历史元数据(ConversationHistory Metadata)。其中,会话历史消息记录用户会话过程中参会各方收发的所有消息,是会话历史信息的主要载体,允许用户在会话结束后重新取回其中感兴趣的内容;会话历史元数据作为会话历史功能管理信息,是消息业务提供者设置的结构化内容,可以看作是会话历史信息的摘要。 \n[0004] 图1是现有的会话历史功能结构示意图,如图1所示,消息系统中的会话历史功能分布在消息业务服务器(MS)和可扩展标记语言(XML)文档管理服务器(XDMS),并利用聚合代理(AP,Aggregating Proxy)、搜索代理(SP,Search Proxy)为消息业务用户代理(UA,User Agent)提供会话 历史功能。 \n[0005] 根据用户代理中消息业务客户端的请求,消息业务服务器(会话历史功能)负责会话历史消息的存储,并将会话历史元数据通过聚合代理,存储到XDM Server。 [0006] 对于会话历史的检索,用户代理中的文档管理客户端通过聚合代理、经由搜索代理,从XDM Server中检索会话历史元数据。用户代理中的消息业务客户端根据检索到的会话历史元数据,从消息业务服务器(会话历史功能)进行取回、删除会话历史消息等管理操作。 \n[0007] 图2是现有消息系统中会议会话如聊天室的会话历史存储示意图,其中包括:记录会话过程实际内容的会话文件(Conversation File),以及对应的会话历史元数据信息。 [0008] 由于现有消息系统会话历史功能提供了会话过程中会话历史消息的存储能力,因此可以满足用户记录会话历史的基本需求;但是,现有方案的会话历史元数据层次结构中仅记录下用户参与了哪些会话以及会话本身所拥有的元数据,如会话开始/结束时间,主题等整体概要性元数据,而未曾涉及到会话历史存储内部每条历史消息中所包含的用户有可能感兴趣的实际内容,这将导致现有消息系统为用户提供的会话历史管理功能局限于会话层面,而无法更加细致地检索和维护消息层面的会话历史信息,限制了用户对会话历史信息检索、删除等管理的能力,即用户对会话历史的操作脱离了会话中具体的消息内容而被限制在会话层面,用户无法有选择的直接获取可能感兴趣的消息,比如,用户不能按照消息发送者/接收者、消息发送时间等与消息相关的信息,检索感兴趣的会话历史信息。 [0009] 目前消息系统中提供的会议会话历史功能存有局限,不能保存更多更详细的会话历史信息,使得用户不能灵活实现对会话历史信息的管理,降低了消息系统的服务质量。 发明内容\n[0010] 有鉴于此,本发明的主要目的在于提供一种消息系统中会话历史处理方法,能够实现用户对会话历史信息的灵活管理,提高消息系统的服务质量。 \n[0011] 本发明的另一目的在于提供一种消息系统,能够实现用户对会话历史信息的灵活管理,提高消息系统的服务质量。 \n[0012] 为达到上述目的,本发明的技术方案具体是这样实现的: \n[0013] 一种消息系统中会话历史处理方法,该方法包括:在消息系统中设置会话历史元数据的数据结构,所述会话历史元数据包括用于描述会话历史消息的会话消息元数据;按照会话历史元数据的组成生成并存储会话历史元数据,其中,所述生成并存储会话历史元数据具体包括: \n[0014] 客户端经由自身归属网络中的消息业务功能实体,向所述消息系统中的会话历史功能实体请求存储其所参与的会议会话过程中出现的所有消息; \n[0015] 会话历史功能实体向控制功能会议会话控制功能实体发送邀请请求,请求邀请自身加入会议会话作为会话参与方; \n[0016] 会议会话控制功能实体将接收到的来自会议会话参与客户端的消息转发给会话历史功能实体,会话历史功能实体存储会议会话历史消息,并按照所述会话历史元数据的组成生成并存储会议会话历史元数据信息。 \n[0017] 该方法还包括: \n[0018] 客户端经由消息业务功能实体向会话历史功能实体请求离开当前会话或请求结束对会议会话消息的存储,会话历史功能实体向会议会话控制功能实体请求结束对会议会话消息的存储; \n[0019] 会议会话控制功能实体经由会话历史功能实体、消息业务功能实体向客户端返回结束会议会话消息存储响应。 \n[0020] 所述按照所述会话历史元数据的组成生成并存储会议会话历史元数据信息的方法为: \n[0021] 元数据客户端向聚合代理发送会话历史元数据存储请求; \n[0022] 聚合代理根据接收到的会话历史元数据存储请求中携带的访问地址,将接收到的会话历史元数据存储请求转发至该访问地址所对应的元数据存储; \n[0023] 元数据存储检查客户端的操作权限,并执行会话历史元数据存储操作,按照所述会话历史元数据的组成生成当前会话中的会话历史元数据并存储。 \n[0024] 该方法还包括:获取存储的会议会话历史元数据,具体为: \n[0025] 客户端经由聚合代理向搜索代理请求查询会话历史元数据; \n[0026] 搜索代理根据接收到的请求中携带的查询条件确定需要查询的会话历史元数据在消息系统中的存储位置,并向该位置对应的元数据存储请求查询会话历史元数据; [0027] 元数据存储执行会话历史元数据查询,获得与查询条件匹配的会话历史元数据。 [0028] 该方法还包括:所述元数据存储经由搜索代理和聚合代理,向所述客户端返回获得的会话历史元数据。 \n[0029] 该方法进一步包括获取会话历史消息,具体为: \n[0030] 客户端根据获得的会话历史元数据选择自身需要的会话历史消息,并利用对应的会话历史消息标识,经由消息业务功能实体向会话历史功能实体请求对应的会话历史消息; \n[0031] 会话历史功能实体根据所述会话历史消息标识,检索消息系统中存储的会话历史消息,以获得对应的每条会话历史消息,并返回给客户端。 \n[0032] 该方法进一步包括获取会话历史消息,具体为: \n[0033] 客户端根据获得的会话历史元数据选择自身需要的会话历史消息,并利用对应的会话历史消息标识,经由消息业务功能实体向所述会议会话控制功能实体请求对应的会话历史消息; \n[0034] 会议会话控制功能实体将与所述会话历史消息标识对应的各会话历史 消息作为仅能发送的虚拟客户端,建立临时会话,并邀请所述客户端与位于会话历史功能实体中的各虚拟客户端参与建立的临时会话; \n[0035] 虚拟客户端将自身的会话历史消息发送给会议会话控制功能实体,会议会话控制功能实体将获得的会话历史消息经由消息业务功能实体发送给客户端。 \n[0036] 该方法还包括:获取所述会话历史消息的上下文消息。 \n[0037] 所述获取所述会话历史消息的上下文消息的方法为: \n[0038] 或者,所述客户端根据获得的会话消息元数据中携带的所属会话标识,构造定位同一会话中第一条或最后一条会话消息元数据检索请求,获取所需上下文消息。 [0039] 所述客户端根据获得的会话消息元数据中携带的消息序列号及所属会话标识,构造检索同一会话中具有上一个或下一个序列号的会话消息元数据检索请求,获取所需上下文消息; \n[0040] 或者,所述客户端根据获得的会话消息元数据中携带的所属会话标识,构造定位同一会话中第一条或最后一条会话消息元数据检索请求,获取所需上下文消息。 [0041] 该方法还包括:删除存储的会议会话历史元数据,具体为: \n[0042] 客户端向聚合代理请求删除会议会话历史; \n[0043] 聚合代理根据接收到的请求中携带的删除条件,删除满足条件的会话历史元数据。 \n[0044] 所述会话消息元数据包括以下一项或一项以上: \n[0045] 消息标题、或者消息发送者、或者消息接收者、或者消息序列号、或者消息存储尺寸、或者会话历史中会话历史消息的唯一标识、或者消息发送时间。 \n[0046] 所述会话历史元数据包括以下一项或一项以上:会话主题、或者会话历史期限、或者会话存储空间、或者会话开始时间、或者会话结束时间、或者会话历史文件名、或者会话历史文档存储路径。 \n[0047] 所述各会话消息元数据与自身隶属的会话历史元数据紧耦合存储; [0048] 存储在会话历史存储中的已有不同会话存储单元的各会话消息,与会话历史元数据中的各会话消息元数据一一对应。 \n[0049] 所述各会话消息元数据与自身隶属的会话历史元数据松耦合存储; [0050] 存储在会话历史存储中的已有不同会话存储单元的各会话消息,与会话历史元数据中的各会话消息元数据一一对应。 \n[0051] 会话历史消息和会话历史元数据存储在消息业务服务器; \n[0052] 或者,会话历史消息和会话历史元数据存储在数据存储设备; \n[0053] 或者,会话历史消息存储在消息业务服务器,会话历史元数据存储在数据存储设备; \n[0054] 或者,会话历史消息存储在数据存储设备,会话历史元数据存储在消息业务服务器。 \n[0055] 所述存储的方式为: \n[0056] 同一会话中的所有会话历史消息存储在一个或一个以上文件中; [0057] 或者,将每对参与会话的用户之间收发的所有会话历史消息存放在一个物理文件中; \n[0058] 或者利用数据库存储。 \n[0059] 一种消息系统,至少包括: \n[0060] 会话历史功能实体,用于实现会话历史数据的存储;接收存储客户端所参与的会议会话过程中出现的所有消息的请求,向控制功能会议会话控制功能实体发送邀请请求;\n存储来自会议会话控制功能实体的会议会话历史消息,按照自身预先设置的会话历史元数据的组成生成并存储会议会话历史元数据到元数据存储; \n[0061] 元数据存储,用于实现会话历史元数据的存储; \n[0062] 会议会话控制功能实体,用于实现会议会话控制的逻辑实体,接收来自会话历史功能实体的邀请请求,邀请该会话历史功能实体加入会议会话作为 会话参与方;将接收到的来自会议会话参与客户端的消息转发给会话历史功能实体。 \n[0063] 该系统还包括: \n[0064] 消息业务功能实体,用于提供消息业务的应用服务器,转发消息系统与客户端间交互的信息。 \n[0065] 该系统还包括: \n[0066] 所述会话历史功能实体、元数据存储分别集成在消息业务功能实体中,或者是消息系统中独立的网络实体。 \n[0067] 由上述技术方案可见,本发明通过对会话历史元数据的设置,包括会话层面的会话历史元数据,还包括用于描述会话历史消息的消息层面的会话消息元数据,丰富了消息系统中存储的元数据,从而实现了用户对会话历史信息的灵活管理,提高了消息系统的服务质量。这里所说的会话消息元数据可以包括但不限于:消息标题(title)、消息发送者(sender)、消息接收者(receiver)、消息序列号(sequence)、消息存储尺寸(size)、会话历史中消息的唯一标识(ID)、消息发送时间(time)等用于描述会话历史消息的信息。 [0068] 可见,本发明使得用户对会话历史施加的比如检索、删除等操作,扩展了用户对会话历史信息检索、删除等管理的能力,用户对会话历史的操作建立在对会话历史消息内容了解的基础之上,比如,用户可以根据消息发送者/接收者、消息发送时间等与会话历史消息相关的摘要信息来检索其真正感兴趣的会话历史信息。可见,本发明方法灵活地实现了用户有选择的直接获取感兴趣的消息,增强了用户会话历史管理能力,提高了消息系统会话历史功能的业务体验。 \n[0069] 附图说明\n[0070] 图1是现有会话历史功能结构示意图; \n[0071] 图2是现有会话历史存储示意图; \n[0072] 图3是本发明存储会话历史信息的流程图; \n[0073] 图4是本发明会话历史信息在网络中的存储位置示意图; \n[0074] 图5a是本发明会话与消息紧耦合的会话历史元数据实现示意图; [0075] 图5b是本发明会话与消息松耦合的会话历史元数据实现示意图; [0076] 图6是本发明存储会议会话历史元数据的流程图; \n[0077] 图7是本发明获取会议会话历史元数据的流程图; \n[0078] 图8是本发明获取会议会话消息的实施例一的流程图; \n[0079] 图9是本发明获取会议会话消息的实施例二的流程图; \n[0080] 图10是本发明删除会议会话历史信息的流程图。 \n具体实施方式\n[0081] 本发明的核心思想是:在消息系统中设置会话历史元数据的数据结构,所述会话历史元数据包括用于描述会话历史消息的会话消息元数据;按照会话历史元数据的组成生成并存储会话历史元数据。 \n[0082] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。 \n[0083] 图3是本发明存储会话历史的流程图,如图3所示,涉及到的实体简单介绍如下: [0084] 客户端A(Client A)、Client B分别表示用户A和用户B的客户端;消息业务功能实体A、消息业务功能实体B分别表示消息系统中用户A和用户B在其各自的归属网络中提供消息业务的应用服务器;会话历史功能实体是位于用户A的归属网络中的会话历史管理功能逻辑实体,会话历史功能实体负责会话历史数据的实际存储;元数据存储是位于用户A的网络中的会话历史元数据逻辑实体,元数据存储负责会话历史元数据的实际存储;\n会 议会话控制功能实体是负责会议会话控制的逻辑实体。作为消息业务功能的组成部分,上述会话历史功能实体、元数据存储既可集成到消息业务功能实体中,也可作为消息系统中独立的网络实体。另外,如果会话历史消息和元数据一起存放,会话历史功能实体还应取代元数据存储承担会话历史元数据的管理任务。 \n[0085] 假设客户端A和客户端B处于会议会话中,并假设会议会话中客户端A发起存储会话消息请求,本发明存储会话历史信息的流程包括以下步骤: \n[0086] 步骤300:客户端A向消息业务功能实体A发送会话初始协议引用(SIPREFER)请求。 \n[0087] 在SIP REFER消息请求行中的统一资源标识请求(Request-URI)字段中携带有会话历史功能实体的URI信息如history@hostname,在SIP REFER请求的Refer-To头域中携带有当前会话的标识,在SIP REFER请求的引用方法(Refer Method)字段中携带有SIP方法名:邀请(INVITE),以便会话历史功能实体向会议会话控制功能实体邀请自身加入会话。 \n[0088] 步骤301~步骤302:消息业务功能实体A向会话历史功能实体转发SIPREFER请求,会话历史功能实体向会议会话控制功能实体发送SIP INVITE,请求邀请自身加入会话。 [0089] 步骤303:会议会话控制功能实体收到请求后,鉴别用户A的权限并在成功后,向会话历史功能实体返回表示成功响应的SIP 200OK消息。 \n[0090] 该SIP 200OK消息中包含采用多用途网际邮件扩充协议格式的会话描述协议(MIME SDP)消息体,该MIME SDP消息体作为会话描述并将direction属性设置为仅发送(sendonly),至此,会话历史功能实体被邀请加入当前会话,会话记录随之开始。需要说明的是,与其他参会各方不同的是,会话历史功能实体仅能接收而无法在会议会话中发送消息。 \n[0091] 步骤304~步骤306:会话历史功能实体向会议会话控制功能实体返回响应(ACK),同时会话历史功能实体向消息业务功能实体A返回SIP 200OK响应,消息业务功能实体A向Client A返回SIP 200OK响应。 \n[0092] 步骤307:Client A向消息业务功能实体A发送接收方为Client B的消息会话中继协议(MSRP,Message Session Relay Protocol)消息。 \n[0093] 会议会话中参会各方会互发消息,消息的媒体类型具有广泛性,使用的传输协议也不尽相同,比如SIP、MSRP、实时传输协议(RTP)等。本实施例中仅以MSRP为传输协议为例进行介绍。 \n[0094] 步骤308:消息业务功能实体A向会议会话控制功能实体转发接收到的MSRP消息; \n[0095] 步骤309~步骤311:作为会议会话的参与者,会话历史功能实体接收会议会话控制功能实体转发来的MSRP消息,另一方面,会议会话控制功能实体经由消息业务功能实体B向另一会议会话的参与者客户端B转发MSRP消息。 \n[0096] 假设,已设置包括有用于描述会话历史消息的会话消息元数据的会话元数据结构,会话历史功能实体接收到MSRP消息后,首先存储收到的会话消息,比如存放在同一个物理文件中,文件可以是以会话消息标识(msg id)建立索引的普通文本文件,或者是建立会话、用户、消息分级层次结构的类似XML标签语言格式,存储方式并不限于此。其次,会话历史功能实体还会生成并存储相应的会话历史元数据,该会话历史元数据中不仅具有描述会议会话概要信息的会话历史元数据,还包含对应于会议会话中每条历史消息的消息元数据信息。具体的会话元数据结构、存储位置和存储过程可参见下文图4、图5a、图5b和图6的描述,这里不再详述。 \n[0097] 本实施例中采用将每对参与会话的用户之间收发的所有会话历史消息存放在一个物理文件中的存储方式。 \n[0098] 步骤311~步骤314:一方面,会话历史存储成功后,会话历史功能实体向会议会话控制功能实体返回MSRP 200OK消息,另一方面,客户端B经由消息业务功能实体B向会议会话控制功能实体返回MSRP 200OK消息。 \n[0099] 如果会话历史存储失败,则会话历史功能实体可以在会话历史备份中存储空数据,也可以请求会议会话控制功能实体重发MSRP消息。 \n[0100] 步骤315~步骤316:会议会话控制功能实体经由消息业务功能实体A向Client A转发MSRP 200OK消息。 \n[0101] 从上述存储方法的描述可见,存储会话消息时,对于会话消息中的会话元数据将按照预设的包括有用于描述会话历史消息的会话消息元数据的会话元数据结构进行存储,丰富了消息系统中存储的会话历史元数据。 \n[0102] 步骤317~步骤325的实现与步骤307~步骤316的实现完全一致,只是会话历史功能实体存储的是Client B向Client A发送的会话消息内容,具体实现这里不再重述。 [0103] 假设Client A请求离开,包括: \n[0104] 步骤326:Client A向消息业务功能实体A发送SIP REFER请求,在SIP REFER请求中:Request-URI携带有会话历史功能实体的URI如history@hostname;Refer-To头域中携带有当前会话的标识;Refer Method中携带有再见(BYE),以便会话历史功能实体向会议会话控制功能实体请求结束会议会话,离开会话。 \n[0105] 步骤327:消息业务功能实体A向会话历史功能实体发送SIP REFER请求,请求结束会议会话的存储。 \n[0106] 停止会话历史存储的请求可以发生在会话过程中,也可以在会话结束时提出。 [0107] 步骤328:会话历史功能实体向会议会话控制功能实体发送SIP BYE,请求结束会议会话消息存储。 \n[0108] 步骤329~步骤331:会议会话控制功能实体向会话历史功能实体发送SIP 200OK消息,会话历史功能实体停止会话历史的存储,经由消息业务功能实体A向Client A返回SIP 200OK。 \n[0109] 需要说明的是,图3是以在会话过程中存储会话历史信息为例进行描述的,本发明存储会话历史信息的方法还可以是:在会议开始之前,用户在消息系统中进行了签约并生成签约信息,在会话开始后,便自动根据用户的签约信息如用户设置偏好等,触发会话历史存储功能。这里,用户的签约具体 实现属于现有技术,这里不再赘述。 [0110] 下面结合图4、图5a和图5b,详细描述会话元数据结构、及其存储位置的实现。 [0111] 本发明支持会话历史信息的多种网络存储方式,根据消息业务运营商网络设备配置的不同,会话历史信息即会话历史消息和会话历史元数据可以在消息服务器和数据存储设备如XML文档管理服务器等之间存储,比如: \n[0112] 会话历史消息和会话历史元数据全部存储在消息业务服务器,如图4所示,图4是本发明会话历史信息在网络中的存储位置示意图。 \n[0113] 或者,会话历史消息和会话历史元数据全部存储在数据存储设备; [0114] 或者,会话历史消息存储在消息业务服务器而会话历史元数据存储在数据存储设备; \n[0115] 或者,会话历史消息存储在数据存储设备而会话历史元数据存储在消息业务服务器。 \n[0116] 尽管会话历史信息在网络中可以有上述不同的存储位置,但消息系统会为消息用户终端提供统一的会话历史功能访问接口,支持一致的会话历史业务体验。 [0117] 会议会话历史信息记录的是用户会话的过程性信息,包括会话历史消息和会话历史元数据。会议会话历史信息形式上可能是普通文本消息,也可能是包含图片、音频、视频的多媒体消息。下面具体描述会话历史消息和会话历史元数据的具体存储方式。 [0118] (一)实际会话中,会话历史消息的数量以及每条消息的大小都有较大差异。 [0119] 本发明支持多种会话历史消息存储方式,比如: \n[0120] 1)同一会话中的所有会话历史消息存储在一个文件中。 \n[0121] 由于在一个文件中,存储有该会话中的所有会话历史消息,此时需要为每条消息建立索引,或者采用指定分割符分段存储,以便区分不同的会话历史消息。这种会话历史消息存储格式适应于消息数量多且每条消息较小的情 形。 \n[0122] 2)同一会话中的所有会话历史消息存储在多个文件中。 \n[0123] 当会话历史信息中的会话历史消息数量较少,或者每个会话历史消息较大如存在多媒体会话历史消息时,会话历史消息可以分开存储。 \n[0124] 比如,属于同一会话的不同文件之间通过特定机制进行关联如采用包含一定特征字符的文件名或所存目录为同一目录等。此时,文件中的文本信息和多媒体会话历史消息既可以统一编码存放在一个物理文件中,也可以通过在文本文件中添加指向多媒体内容的链接如指针,将多媒体会话历史消息单独存储在消息系统中。 \n[0125] 或者,将每对参与会话的用户之间收发的所有会话历史消息存放在一个物理文件中,在会话历史信息存取时,利用消息系统为会话分配的唯一标识和收发用户URI,确定文件存储的位置,以获取对应的会话历史消息。此时文件内容被限于这对用户之间产生的会话消息,文件数量为发生会话的用户对的数目。本发明实施例中,采取这种会话历史消息存储格式为例进行描述。 \n[0126] 3)使用数据库存储会话历史消息。数据库是存储数据信息的传统方式,关系数据库中二维表格可以用于存储会话历史消息。 \n[0127] (二)会话历史元数据中还包括用于描述会话历史消息的会话消息元数据。 [0128] 会话历史元数据的存储方式很多,可以采用任何能够反映元数据层次结构的数据存储形式,比如符合XML Schema语法规范的XML文档;对消息系统中会话历史元数据的访问,可以采用任何适当通信协议,比如IETF定义的XML配置访问协议(XCAP)等。采用上述存储形式和通信协议针对会话历史元数据进行各种会话历史处理操作包括:存储、检索如XML文档查询(Xquery)、删除等。 \n[0129] 会话历史元数据实现可以包括两种方式,如图5a和图5b所示。 \n[0130] 图5a是本发明会话与消息紧耦合的会话历史元数据实现示意图,如图5a所示,会话历史信息中每条会话消息元数据如图5a中的msg-metadata1、 msg-metadata2……msg-metadata n,与其隶属的会话历史元数据如图5a中的conv-metadata2是紧耦合的,比如在消息元数据的XML结构化定义中,消息元数据是作为会话元数据的子元素共同存储于同一个XML文档中的。会话历史存储中的不同会话存储单元中存储属于该单元的会话消息,且各条消息与会话历史元数据中的各会话历史消息元数据一一对应。 [0131] 以采用符合XML Schema语法规范的XML文档存储为例,会议会话历史元数据XML元素层次结构包括: \n[0132] 根元素即会话历史集合(conv-hist-set),其uri属性指明该会话历史的所有者; [0133] 会话元数据元素即会话(conv),其表示用户的一次会话记录,可以包括会话主题(subject)、会话历史期限(expiry)、会话存储空间(size)、会话开始时间(time-start)、会话结束时间(time-end)、会话历史文件名称(filename)、会话历史文档存储路径(history-reference)等子元素,指明的是会话历史在消息系统中的网络存储位置的db-ref属性;本发明还特别在会话历史元数据的XML Schema定义中增加了隶属于该会话的消息元数据即消息(msg),其表示用户会话中收发的消息,具有其″id″属性用来在会话存储中唯一标识会话消息。 \n[0134] 在会话的消息元数据XML元素类型定义中,描述会议会话中历史消息细节的消息元数据可以包括:消息标题(title)、消息发送者(sender)、消息接收者(receiver)、消息序列号(sequence)、消息存储尺寸(size)、会话历史中会话历史消息的唯一标识(id),消息发送时间(time)等。本发明通过在会议会话历史信息中增加上述针对消息的消息元数据信息,使得消息系统不仅允许用户浏览会议会话历史概略,还为用户提供了深入会议会话内部从多个角度检索会议会话历史消息的手段。 \n[0135] 图5b是本发明会话与消息松耦合的会话历史元数据实现示意图,如图5b所示,会话历史信息中每条会话消息元数据如图5b中的msg-metadatai、……msg-metadataj存储在消息元数据集合(msg-metadata-set) 中,会话历史元数据如图5b中的conv-metadata2存储在会话元数据集合中,二者存储于不同的XML文档之中,通过特定属性如conv属性进行关联。会话历史存储中的不同会话存储单元中存储属于该单元的会话消息,且各条消息与会话历史元数据中的各会话历史消息元数据一一对应。 \n[0136] 以上详细介绍了本发明对会话历史信息的存储方式,及会话历史元数据的结构,下面详细描述图3中生成并存储会议会话历史元数据的方法,图6是本发明存储会议会话历史元数据的流程图,如图6所示,元数据客户端是会话历史功能实体中负责存储会议会话历史元数据的实体;聚合代理是会话历史功能实体中访问消息系统会话历史存储的代理实体。存储会议会话历史元数据的方法包括以下步骤: \n[0137] 步骤600:元数据客户端向聚合代理发送会话历史元数据存储请求。 [0138] 会话历史元数据存储请求中携带有会话历史元数据及执行元数据存储必需的参数值,比如:聚合代理地址如Host:xcap.example.com、XCAP RootURI如xcap.example.com/、会话历史拥有者URI如sip:bob@example.com,以及用于存储会议会话历史元数据的文档名称如history.xml。 \n[0139] 步骤601:用户身份鉴别过程。 \n[0140] 本步骤的实现可以采用现有很多方法,这里不再赘述。需要说明的是,本步骤可以省略。 \n[0141] 步骤602:聚合代理根据接收到的会话历史元数据存储请求URI中XCAP访问部分,如://xcap.example.com/conv-hist-set/,将接收到的会话历史元数据存储请求转发至消息系统中元数据存储实体。 \n[0142] 步骤603:元数据存储实体根据接收到的会话历史元数据存储请求URI中用户部分,如:/users/sip:bob@example.com/history.xml,定位出对应与用户Bob的会话历史元数据存储位置,并按照存储请求中携带的相关信息执行会话历史元数据存储操作。 [0143] 存储方式可按照上文会话历史元数据的实现方式进行存储。 \n[0144] 步骤604~步骤605:元数据存储经由聚合代理向元数据客户端返回会话 历史元数据存储请求响应如HTTP 200OK消息。 \n[0145] 存储会议会话历史信息的目的是,用户在会话结束之后能够根据需要重新查看、获取或者删除历史会话过程中曾经出现的会话消息。 \n[0146] 获得对应于会话历史信息中用户感兴趣消息的引用或标识,并将其连同其他元数据信息返回客户端后,用户做出对会话历史信息进行检索的选择和判断,进而构造和发送会话历史消息下载请求等。通常,采用基于HTTPPOST的XQuery查询请求实现会话历史元数据的搜索目的,用于对以XML文档形式存储的会话历史元数据的访问,XQuery则是一种用于指导如何发现并获取XML文档中元素及其属性值的查询语言,这里仅举例说明了查询方式的实现,并不做限定。 \n[0147] 图7是本发明获取会议会话历史元数据的流程图,如图7所示,会话历史元数据的搜索代理是消息系统中负责会话历史元数据搜索代理实体。获取会议会话历史元数据的方法包括以下步骤: \n[0148] 步骤700:User Client向聚合代理发送会话历史元数据查询请求。 [0149] 该会话历史元数据查询请求中携带有XQuery查询语句的HTTP POST请求。本实施例中假设User Client-Bob想要检索主题为Weekend Meet的会话中所有由Alice发送的历史消息,则在XQuery查询请求中的消息元数据Subject和sender对应的取值分别为Weekend Meet和Alice,即设置了查询条件。 \n[0150] XQuery查询语句的构造属于本领域技术人员公知常识,这里不再详述。 [0151] 步骤701:用户身份鉴别过程。 \n[0152] 本步骤的实现可以采用现有很多方法,这里不再赘述。需要说明的是,本步骤可以省略。 \n[0153] 步骤702:聚合代理通过HTTP POST请求URI中携带的信息如″org.openmobilealliance.search″字符串判断出接收到的消息为XCAP查询请求,并将接收到的会话历史元数据查询请求转发给搜索代理。 \n[0154] 步骤703:搜索代理根据会话历史元数据查询请求中的应用唯一标识(AUID)携带的信息如″org.openmobilealliance/global/conversation″,判断出 接收到的消息为针对会话历史信息的查询请求,并将接收到的会话历史元数据查询请求转发元数据存储。 [0155] 步骤704:元数据存储执行会话历史元数据查询请求中的XQuery查询语句,获得与查询条件匹配的会话历史元数据。 \n[0156] 步骤705~步骤707:元数据存储经由搜索代理和聚合代理,向UserClient返回会话历史元数据查询请求响应如HTTP 200OK消息。 \n[0157] User Client收到会话历史元数据查询请求响应后,将获得符合查询条件的消息列表即示例中″msg id″和其他消息元数据信息如消息主题、发送时间、收发人姓名等。在用户客户端,通过预先设置的界面向用户展现上述符合查询条件的消息列表,而且用户可以通过用户客户端预先设置的界面,输入自身感兴趣的条件,进行检索或删除等管理操作。 [0158] 本发明提供两种不同的获取会话历史消息的实施例实现方法。 \n[0159] 图8是本发明直接获取会议会话消息的实施例一的流程图,如图8所示,包括以下步骤: \n[0160] 步骤800:User Client向消息业务功能实体发送SIP INVITE请求,该SIP INVITE请求中携带有由User Client要检索的历史消息标识(msg id)构成的URI Lsit。 [0161] msg id包含在获得的会话历史元数据中。 \n[0162] 本步骤中,所述客户端根据获得的会话历史元数据选择自身需要的会话历史消息。并利用对应的会话历史消息标识,经由消息业务功能实体向会话历史功能实体请求对应的会话历史消息。 \n[0163] 步骤801~步骤802:消息业务功能实体向会话历史功能实体转发SIPINVITE请求;会话历史功能实体经由消息业务功能实体向User Client返回SIP 200OK消息。 [0164] 步骤803~步骤804:User Client经由消息业务功能实体向会话历史功能实体返回ACK。 \n[0165] 同时,会话历史功能实体从接收到的SIP INVITE请求中携带的URI Lsit 中取出消息引用即msg id,并利用msg id检索消息系统中存储的会话历史消息,以获得每条会话历史消息。 \n[0166] 步骤805~步骤806:假设会话历史功能实体采用MSRP SEND携带检索到的会话历史消息,并经由消息业务功能实体发送给User Client。 \n[0167] 步骤807~步骤808:User Client经由消息业务功能实体向会话历史功能实体返回MSRP 200OK消息。 \n[0168] 多次执行步骤803~步骤808,直至检索到的会话历史消息全部返回UserClient为止。 \n[0169] 步骤809~步骤810:会话历史消息传送完毕后,会话历史功能实体经由消息业务功能实体向User Client发送SIP BYE消息,以断开与用户的连接。 \n[0170] 步骤811~步骤812:User Client经由消息业务功能实体向会话历史功能实体返回SIP 200OK消息。 \n[0171] 图9是本发明通过建立临时会话来获取会议会话消息的实施例二的流程图,如图\n9所示,会议会话控制功能实体是消息系统中会议会话控制的逻辑实体,包括以下步骤: [0172] 步骤900:User Client向消息业务功能实体发送SIP INVITE请求,SIPINVITE请求的Request-URI字段中携带有会话历史功能实体的URI如history@hostname,MIME SDP消息体作为会话描述并将其中的direction属性设置为a=recvonly即仅接收,此外,SIP INVITE请求中还携带有由被检索msg-id构成的URI Lsit。 \n[0173] 本步骤中,所述客户端根据获得的会话历史元数据选择自身需要的会话历史消息。并利用对应的会话历史消息标识,经由消息业务功能实体向会话历史功能实体请求对应的会话历史消息。 \n[0174] 步骤901:消息业务功能实体将接收到的SIP INVITE请求转发给会议会话控制功能实体。 \n[0175] 步骤902:会议会话控制功能实体经由消息业务功能实体向User Client 返回SIP 200OK消息。 \n[0176] 步骤903~步骤904:User Client经由消息业务功能实体向会议会话控制功能实体返回ACK。 \n[0177] 同时,会议会话控制功能实体将与所述会话历史消息标识对应的各会话历史消息作为仅能发送的虚拟客户端,建立临时会话,并邀请所述客户端与位于会话历史功能实体中的各虚拟客户端参与建立的临时会话会议会话。控制功能实体从接收到的SIP INVITE请求中携带的URI List中取出消息引用即msg id,并将msg id对应的会话历史消息作为虚拟User Client,建立临时会话,大致包括:会议会话控制功能实体发送SIP INVITE请求邀请会话历史功能实体中检索到的每个虚拟User Client加入临时会议会话。其中,″Request-URI″字段标识出会话历史功能实体中代表会话历史消息的虚拟User Client的URI,如d93kswow@example.com等,MIME SDP消息体作为会话描述并将direction属性设置为a=sendonly即仅发送;虚拟User Client向会议会话控制功能实体返回SIP \n200OK消息,会议会话控制功能实体向虚拟User Client返回ACK;会话历史功能实体中检索到的每个虚拟User Client将其代表的会话历史消息,按照会议会话中出现的时间顺序发送给会议会话控制功能实体,比如历史消息通过MSRP SEND封装消息发送;会议会话控制功能实体向代表会话历史消息的虚拟User Client返回SIP 200OK消息。 [0178] 步骤906~步骤907:会议会话控制功能实体经由消息业务功能实体向User Client发送携带有会议会话历史消息的MSRP SEND消息。 \n[0179] 步骤908~步骤909:User Client经由消息业务功能实体向会议会话控制功能实体返回MSRP 200OK消息。 \n[0180] 从会议会话控制功能实体向虚拟User Client返回ACK开始,多次执行至步骤\n909,直到会话历史功能实体中检索到的所有会议会话历史消息全部发送给User Client为止,结束临时会话。 \n[0181] 步骤910:会议会话控制功能实体经由消息业务功能实体向User Client发送SIP BYE消息,结束与客户端的交互。 \n[0182] 步骤911~步骤912:User Client经由消息业务功能实体向会议会话控制功能实体返回SIP 200OK消息。 \n[0183] 在用户获得指定的会议会话历史消息后,用户有可能会进一步了解这些孤立的会话历史消息所在会话的上下文消息,这里,会话的上下文消息是指已经检索到会话历史消息所在会话的其他消息,本发明进一步通过以下步骤获取会话的上下文消息: [0184] 1)当用户想要获得已有消息所在会话上一条或下一条历史消息时,用户终端根据已检索消息序列号(sequence)及其所属会话标识(db-ref)构造一个检索同一会话中具有上一个或下一个序列号的会话历史消息元数据检索请求,并按照上文描述的获取会话历史消息方法获得想要的会话消息内容即上下文消息。当检索已至会话历史消息上下文首尾时,用户终端应给出如结束或继续等提示; \n[0185] 2)当用户想要获得已有消息所在会话第一条或最后一条历史消息时,用户终端应根据已检索消息所属会话标识(db-ref)构造一个用来定位同一会话中第一条或最后一条消息元数据检索请求,并按照上文描述的获取会话历史消息方法获得想要的上下文消息。\n当检索已至会话历史消息上下文首尾时,用户终端应给出如结束或继续等提示。 [0186] 在对会话历史信息的管理中,用户可能会删除一些会话历史信息,本发明删除会议会话历史的方法分为:用户主动请求删除和会话历史网络存储策略自动删除两种方式。 [0187] 图10是本发明用户主动请求删除会议会话历史信息的流程图,如图10所示,假设请求删除会议会话历史的用户为Bob,包括以下步骤: \n[0188] 步骤1000:User Client向聚合代理发送会议会话历史删除请求,该会议会话历史删除请求中携带有会话历史元数据XCAP访问URI如//xcap.example.com/conv-hist-set/~~/hi story.xml、会话历史拥有者URI如sip:bob@example.com,以及被删除的会议会话历史元数据标识。 \n[0189] 本实施例中,假设User Client-Bob请求删除会话的删除条件包括:主 题为Weekend Meet,消息标题(title)为Holiday Picture的会话历史消息,则XCAP DELETE请求消息中的元数据Subject和title对应的取值分别为Weekend Meet和Holiday Picture。 [0190] 步骤1001:用户身份鉴别过程。 \n[0191] 本步骤的实现可以采用现有很多方法,这里不再赘述。需要说明的是,本步骤可以省略。 \n[0192] 步骤1002:聚合代理根据接收到的会议会话历史删除请求URI中XCAP访问部分(//xcap.example.com/conv-hist-set/),将接收到的会议会话历史删除请转发至消息系统中会话历史元数据所在的元数据存储。 \n[0193] 步骤1003:元数据存储根据接收到的会议会话历史删除请求URI中用户部分(users/sip:bob@example.com/history.xml/~~/conv-hist-set/)定位出对应与用户Bob的会话历史元数据存储,并按照删除条件conv[@db-ref=″storage01@exampl.com″]/msg[@id=″d93kswow″]执行会话历史元数据删除操作。 \n[0194] 其中,conv[@db-ref=″storage01@exampl.com″]/msg[@id=″d93kswow″]表示存储在消息系统的网络存储位置为db-ref的,标识为id的消息。在会话历史元数据删除成功后,消息系统将按照上述删除条件删除网络中的会话历史消息存储。 [0195] 步骤1004~步骤1005:元数据存储经由聚合代理向User Client返回HTTP \n200OK消息。 \n[0196] 本实施例中,Bob仅请求删除会话历史中的一条消息,更一般的情况是删除整个会话,此时的XCAP DELETE请求消息URI中的会话历史元数据标识将不包含消息元数据部分。 [0197] 另外,会话历史网络存储策略自动删除的实现是:本发明会话历史元数据结构中expiry的取值用以限定会话历史记录的存储期限,因此,一旦消息系统时钟超过expiry的值,相应的会话历史信息将被视为过期,此时会话历史网络存储实体将会自动删除相应的整个会话历史内容。 \n[0198] 另外,用户通过客户端预先设置的界面,输入自身感兴趣的条件,进行检索或删除操作;或者,客户端通过预先设置的界面,向用户显示符合查询或删除条件的消息列表;或者,客户端根据用户消息列表做出的选择,构造与条件对应的包含会话历史元数据的请求消息;或者,客户端通过预先设置的界面,显示删除是否成功的结果,或获取的消息给用户。 [0199] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2011-05-04
- 2008-08-27
- 2008-04-02
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2003-07-23
|
2002-01-09
| | |
2
| |
2005-02-09
|
2004-07-21
| | |
3
| |
2003-11-26
|
2002-05-15
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |