著录项信息
专利名称 | 实现多终端的消息同步的方法及装置 |
申请号 | CN200710167790.2 | 申请日期 | 2007-10-27 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2008-09-03 | 公开/公告号 | CN101257375 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L7/00 | IPC分类号 | H;0;4;L;7;/;0;0;;;H;0;4;L;1;2;/;5;8;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 许国军;牟伦建;黄成 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明提供了一种实现多终端消息同步的方法,包括收到用户的第一终端发送消息状态改变的通知,所述消息状态改变的通知携带消息状态及消息标识;根据所述消息状态改变的通知向所述用户的其他终端发送消息状态改变的通知。本发明还提供一种实现多终端存储布局同步的方法,包括:接收第一终端发送的存储布局同步请求,所述请求中携带存储目录和/或存储数据信息;将所述存储布局同步请求发送给与所述第一终端相关联的其他终端,以使相关的其他终端更新所述消息、媒体数据和/或存储结构实现同步。本发明还提供了实现多终端消息同步的服务器及终端。通过本发明,使得消息及消息的状态以及存储数据和存储结构可以在多个终端间实现同步。
1.一种实现多终端的消息状态同步的方法,其特征在于,包括:
接收第一终端发送的消息状态改变的通知,所述消息状态改变的通知携带消息状态及消息标识,用户的标识,及第一终端的标识;
服务器存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息状态改变的通知中的用户的标识,获取所述用户每个终端的标识,所述用户的标识为Public User Identity,所述终端的标识为Private User Identity;
将所述消息状态改变的通知发送给与所述第一终端相关联的其他终端;
所述将消息状态改变的通知发送给其他终端,具体包括:
获取其他终端的标识,并根据该标识与所述其他终端建立传输通道,并通过所述传输通道向所述其他终端发送所述消息状态改变的通知。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述消息状态改变的通知发送给所述其他终端前,判断所述其他终端在线;
若判断所述其他终端离线,当所述其他终端上线后,将所述消息状态改变的通知发送给所述其他终端;
若判断所述其他终端离线,当判断服务器保存有所述消息标识对应的消息,根据所述消息状态更新所保存的所述消息标识对应的消息状态,并当所述其他终端上线后,将所述消息状态改变的通知发送给所述其他终端;或
判断所述其他终端离线,并当判断服务器没有保存所述消息标识对应的消息,存储所述消息对应的消息状态,当所述其他终端上线后,将所述消息状态改变的通知发送给所述其他终端。
3.如权利要求1或2所述的方法,其特征在于,所述第一终端通过SIPPUBLISH、SIP MESSAGE、MSRP SEND、MSRP REPORT、IMAP协议的APPEND、或IMAP协议的STORE,将所述消息状态改变的通知发送给所述服务器。
4.如权利要求1所述的方法,其特征在于,所述根据消息状态改变的通知向用户的其他终端发送消息状态改变的通知为:
服务器通过SIP NOTIFY、SIP MESSAGE、MSRP SEND、MSRP REPORT、或IMAP协议的FETCH将所述消息状态改变的通知发送给所述其他终端。
5.一种实现多终端消息同步的方法,其特征在于,包括:
接收第一终端发送的消息更新通知,所述消息更新通知携带更新信息,和用户的标识;
服务器存储所述用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息更新通知中的用户的标识,获取所述用户每个终端的标识及所述终端的IP地址;
将所述消息更新通知发送给与所述第一终端相关联的其他终端;
将所述消息更新通知发送给其他终端,具体包括:
根据所述其他终端的标识与所述其他终端建立传输通道,并通过所述传输通道向所述其他终端发送所述消息更新通知。
6.如权利要求5所述的方法,其特征在于,所述根据消息更新通知向所述用户的其他终端发送所述消息更新通知具体为:服务器根据所述消息更新通知判断所述用户的其他终端在线,并将所述消息更新通知发送给所述其他终端。
7.如权利要求5所述的方法,其特征在于,将所述消息更新通知发送给其他终端,具体包括:
判断所述用户的其他终端离线,并当所述其他终端上线后,将所述消息更新通知发送给所述其他终端。
8.如权利要求5、6或7所述的方法,其特征在于,所述接收第一终端发送的消息更新通知为:
收到用户的第一终端通过SIP PUBLISH、SIP MESSAGE、MSRP SEND、MSRP REPORT、IMAP协议的APPEND、或IMAP协议的STORE发送的消息更新通知。
9.如权利要求5、6或7所述的方法,其特征在于,将所述消息更新通知发送给其他终端,包括:
通过SIP MESSAGE、SIP PUBLISH、MSRP SEND、MSRP REPORT、或IMAP协议的FETCJ将所述消息更新通知发送其他终端。
10.一种服务器,其特征在于,包括:
接收模块,用于接收第一终端发送的消息状态改变和/或消息更新通知;
所述消息状态改变的通知携带消息状态及消息标识,用户的标识,及第一终端的标识;
或,所述消息更新通知携带所述更新信息,和用户的标识;
发送模块,用于将所述消息状态改变和/或消息更新通知发送给与所述第一终端相关联的其他终端;
所述服务器还包括:标识获取模块,用于获取所述用户其他终端标识,所述发送模块还用于根据所述其他终端标识向所述其他终端发送消息状态改变和/或消息更新通知;
所述服务器还用于存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息状态改变的通知中的用户的标识,获取所述用户每个终端的标识,所述用户标识为Public User Identity,所述终端的标识为Private User Identity;或存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息更新通知中的用户的标识,获取所述用户每个终端的标识及所述终端的IP地址。
11.如权利要求10所述的服务器,其特征在于,还包括:
判断模块,用于判断所述其他终端是否在线,当所述判断模块判定所述其他终端在线时,所述发送模块将所述消息状态改变和/或消息更新通知发送给所述其他终端;
当所述判断模块判定所述其他终端离线时,待所述其他终端上线后,所述发送模块将所述消息状态改变和/或消息更新通知发送给所述其他终端。
实现多终端的消息同步的方法及装置\n技术领域\n[0001] 本发明涉及移动通信技术领域,尤其涉及一种多终端消息状态或消息同步的方法及装置。\n背景技术\n[0002] 消息业务包括短消息、多媒体消息、即时消息以及融合消息等。其中即时消息、融合消息等是基于SIP技术的消息业务,属于基于Presence的个人对个人、个人对应用、个人对群组的消息类的移动数据业务。\n[0003] 在现有的同步技术中,使用“服务器/客户端”模式进行数据同步,可以实现日程表、通讯录、短消息、电子邮件、文件的同步。\n[0004] 其中,终端包含同步客户代理的设备,它首先发出它的修改到服务端。并收到来自服务端的回复。同时,服务端也能发出一个同步任务要求。终端通常是移动电话,PC,或是PDA设备。\n[0005] 服务器:包含同步服务代理和同步引擎的设备,接收终端发起同步并且发出修改给服务端。并且当服务端收到终端的修改时,回复处理过的同步分析结果。另外,如果没有收到同步请求命令,这些命令能被传输协议层支持,它也可以发起从服务器到终端的同步。\n[0006] 此外,现有技术中还存在邮件同步技术。即当终端的邮件状态发生了变化时,终端会在建立连接后通知服务器,由服务器对邮箱中的邮件状态根据更新;服务器上的邮箱中的邮件状态发生了变化,会通知终端(连接不存在时通过带外通知方式其它消息引擎,连接存在时通过带内通知方式-IMAP响应),终端收到通知后会相应更新本地邮件状态。\n[0007] 但是,发明人在发明的过程中却发现,发送方和接收方进行消息通信,发送方和接收方可以具有多个消息终端,例如手机、PDA、个人电脑等。因此,当发送方和接收方的多个终端都处于开机的情况时,发送方发送的消息应该同时递送到接收方的多个终端。同时,当发送方没有将消息发送出去,而作为草稿存储在发送方的一个终端上时,可以将未完成的消息同步到发送方的其他终端,以便发送方可以在其他终端上继续编辑并发送该消息。而现有的同步技术都是基于服务器与终端,终端与服务器之间的同步。而对于同一用户的多终端之间的消息及消息状态的同步则不能直接实现。因此,现有的技术不能完全满足在服务器不保存历史消息的情况下实现消息及状态的同步。\n发明内容\n[0008] 本发明的实施例提供了一种实现多终端的消息状态同步的方法,包括:接收第一终端发送的消息状态改变的通知,所述消息状态改变的通知携带消息状态及消息标识,用户的标识,及第一终端的标识;服务器存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息状态改变的通知中的用户的标识,获取所述用户每个终端的标识所述用户的标识为Public User Identity,所述终端的标识为Private User Identity,;\n将所述消息状态改变的通知发送给与所述第一终端相关联的其他终端;所述将消息状态改变的通知发送给其他终端,具体包括:获取其他终端的标识,并根据该标识与所述其他终端建立传输通道,并通过所述传输通道向所述其他终端发送所述消息状态改变的通知。\n[0009] 本发明的实施例还提供了一种实现多终端消息同步的方法,包括:接收第一终端发送的消息更新通知,所述消息更新通知携带更新信息,和用户的标识;服务器存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息更新通知中的用户的标识,获取所述用户每个终端的标识及所述终端的IP地址;将所述消息更新通知发送给与所述第一终端相关联的其他终端;将所述消息更新通知发送给其他终端,具体包括:根据所述其他终端的标识与所述其他终端建立传输通道,并通过所述传输通道向所述其他终端发送所述消息更新通知。\n[0010] 本发明的实施例还提供了一种服务器,包括:接收模块,用于接收第一终端发送的消息状态改变和/或消息更新通知,所述通知携带消息标识、用户的标识、第一终端的标识,以及消息状态或/或更新后的消息;发送模块,用于将所述消息状态改变和/或消息更新通知发送给与所述第一终端相关联的其他终端;所述服务器还包括:标识获取模块,用于获取所述用户其他终端标识,所述发送模块,还用于根据所述其他终端标识向所述其他终端发送消息状态改变和/或消息更新通知;所述服务器还用于存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息状态改变的通知中的用户的标识,获取所述用户每个终端的标识,所述用户的标识为Public User Identity,所述终端的标识为Private User Identity;或存储用户的标识以及所述用户的已经注册的所有终端的标识,根据所述消息更新通知中的用户的标识,获取所述用户每个终端的标识及所述终端的IP地址。\n[0011] 本发明提供的技术方案中,一个终端编辑生成的新消息,或者改变了已有消息的状态时,服务器可以将编辑生成的新消息或消息的最新状态同步给相互关联的其它终端。\n这样,就实现了多个终端之间的消息及消息状态的同步。此外,由于一个终端向服务器发送的生成新消息或消息状态改变的通知中携带了所述新消息或改变消息状态的消息状态及消息标识,即使服务器没有保存所述消息,也可以根据所述消息及消息状态及消息标识,向相互关联的其它终端发送消息及消息状态改变的通知。从而实现不同终端之间的消息及消息状态改变的同步,并且节约了网络资源。\n附图说明\n[0012] 图1为本发明的一个实施例提供的一种多终端消息状态同步的方法流程图;\n[0013] 图2为本发明实施例提供的一种多终端消息同步的方法流程图;\n[0014] 图3为本发明实施例提供的一种使用SIP MESSAGE格式在服务器和多个终端之间进行消息状态同步的流程图;\n[0015] 图4为本发明实施例提供的使用MRSP协议在服务器和多个终端之间进行消息状态同步的流程图;\n[0016] 图5为本发明的一个实施例提供的利用SUBSCRIBE和NOTIFY进行多终端消息状态同步的流程图;\n[0017] 图6为本发明实施例提供的一种多终端存储布局同步的方法流程图;\n[0018] 图7为本发明实施例提供的另一种多终端存储布局同步的方法流程图;\n[0019] 图8为本发明实施例提供的又一种多终端存储布局同步的方法流程图。\n具体实施方式\n[0020] 下面结合附图及具体实施例对本发明再作进一步详细的说明。\n[0021] 本发明的一个实施例提供了一种实现多终端消息状态同步的方法,包括:收到用户的第一终端发送消息状态改变的通知,所述消息状态改变的通知携带消息状态及消息标识;\n[0022] 根据所述消息状态改变的通知向所述用户的第二终端发送消息状态改变的通知。\n[0023] 本发明的实施例还提供一种实现多终端消息同步的方法,包括:收到用户的第一终端发送的消息更新通知,所述消息更新通知携带所述更新后的消息;\n[0024] 根据所述消息更新通知向所述用户的第二终端发送所述消息更新通知。\n[0025] 实施例1\n[0026] 本发明的一个实施例提供了实现多终端消息状态同步的方法,如图1所示,包括以下步骤:\n[0027] 步骤101、用户的终端B1改变消息的状态,并向服务器发送消息状态改变的通知。\n所述消息状态改变的通知携带所述消息的标识(如消息ID),消息状态改变的描述(如删除,阅读,修改等),所述用户的标识,及终端B1标识。终端可以利用SIP MESSAGE消息,或利用MSRP通道发送MSRP SEND,或利用SIP协议订阅通知机制采用PUBLISH的方式发送状态改变的通知。在所述状态改变的通知中,可以携带多个消息或消息ID,每个消息状态改变的通知也可以对应一个或多个消息的改变状态。\n[0028] 另外,改变消息状态的终端可以在消息状态改变时,立即向服务器发送消息状态改变的通知。也可以根据用户的设置,在确定的时间间隔后向服务器发送消息状态改变的通知。\n[0029] 此步骤中,终端可以根据与服务器间存在的链接类型与需要更新的状态的大小,采用不同的更新方式。如所述消息状态改变的通知的内容长度小于1300字节,收到用户的第一终端通过SIP PUBLISH、SIP MESSAGE、MSRP SEND、MSRP REPORT、IMAP协议的APPEND、或IMAP协议的STORE发送的消息状态改变的通知;,否则收到用户的第一终端通过SIP PUBLISH、MSRP SEND、MSRP REPORT、IMAP协议的APPEND、或IMAP协议的STORE发送的消息状态改变的通知。\n[0030] 步骤102、服务器根据消息状态改变的通知以及所述用户的同步设置,判断需要更新的其它终端是否在线。\n[0031] 其中,服务器存储有用户的标识,以及所述用户的已经注册的所有终端的标识,如IP地址、手机号等,并将所述用户及其所有终端相关联。其中,所述用户的标识可以表示为:Public User Identity;所述用户的已经注册的所有终端的标识可以表示为:Private User Identity。对于用户来说,每个用户只知道自己的用户标识,当用户使用特定的设备注册时,服务器记录用户的标识及所述用户每个终端设备的Private User Identity(如终端设备的IP地址、USIM,MAC地址等),并使每个终端设备的Private User Identity与所述用户标识相关联。此种情况下,根据所述消息状态改变的通知中的用户标识,获取所述用户每个终端设备的Private User Identity(如终端设备的IP地址、USIM,MAC地址等),并判断所述用户的终端设备是否在线。如果所述用户对应的需要同步的其它终端均在线执行步骤107,否则只要所述用户的需要同步的其它终端有一个没有在线,则分别记录在线和不在线的终端标识及\n[0032] IP地址。向所述在线的终端发送消息状态改变的通知,并执行步骤103;此外,服务器还可以将用户标识与所述用户的每个终端的标识结合表示终端标识。如AA表示用户标识,则用户的几个终端的标识可分别表示为(AA+IP地址、AA+USIM,AA+MAC地址)。这种情况需要所述改变消息状态的通知中携带用户下的每个终端的标识,并根据所述(AA+IP地址、AA+USIM,AA+MAC地址)判断判断所述用户对应的需要同步的其它终端是否在线,如果所述用户对应的需要同步的其它终端均在线执行步骤107,否则只要所述用户的需要同步的其它终端有一个没有在线,则分别记录在线和不在线的终端标识及IP地址。向所述在线的终端发送消息状态改变的通知,并执行步骤103;\n[0033] 步骤103、服务器根据消息状态改变的通知(如通知中的消息ID),判断服务器的中所述消息ID对应的消息是否存在。如果所述消息ID对应的消息已经存在,执行步骤104,否则执行步骤105;\n[0034] 步骤104、服务器根据所述消息状态改变的通知更新中所述消息的消息状态,并保存。\n[0035] 此步骤中,服务器可以根据与其他终端的存在的链接类型与需要更新的消息的大小,采用不同的更新方式。如需要同步的消息字节小于1300字节,则可以使用SIP MESSAGE消息发送同步通知,否则不能使用SIP MESSAGE消息;如终端与服务器之间已存在MSRP链接,则终端可以向服务器发送MRSP REPORT/SEND更新。\n[0036] 步骤105、服务器根据所述消息状态改变的通知存储所述消息状态改变的通知或更新所述消息ID对应的消息状态并存储。\n[0037] 步骤106、服务器根据记录的不在线的终端标识及IP地址判断所述用户的其它终端在线;\n[0038] 步骤107、服务器根据所接收到的消息状态改变的通知或存储于服务器中的消息状态向在线的其它终端发送消息状态改变的通知,并记录已经发送了消息状态改变的通知的终端的标识(如IP地址等);或服务器记录不在线的终端标识(如终端的IP地址等),并在所记录的不在线的终端上线并向所记录的不在线的终端发送所述消息状态改变的通知后,服务器在所记录的不在线的终端标识中删除已经发送了消息状态改变的通知的终端标识。\n[0039] 步骤108、服务器判断是否向所述用户的所有的需要同步的其它终端发送了消息状态改变的通知。服务器根据所记录的已经发送了消息状态改变的通知的终端的标识及IP地址与步骤102中服务器获取存储于服务器中与所述用户标识相关联的所述终端标识及所述终端的IP地址比较,或服务器根据所记录的不在线的终端标识及IP地址,判断是否向所述用户的所有需要同步的的其它终端发送了消息状改变通知。如果是,执行步骤109,否则执行步骤106;\n[0040] 步骤109、服务器删除所保存的所述消息状态。结束流程。\n[0041] 实施例2\n[0042] 图2为本发明的又一个实施例提供的多终端消息同步的方法与图1所示的多终端消息状态同步的方法相比,多终端消息同步的方法中服务器不用根据所接收到的消息更新通知构造新的消息并保存,而只需保存所述携带所述消息的消息更新通知即可。其具体流程如下:\n[0043] 步骤201、用户的终端B1编辑产生新消息,并向服务器发送消息更新通知。所述消息请求携带新消息。终端可以利用SIP MESSAGE消息,或利用MSRP通道发送MSRP SEND,或利用SIP协议订阅通知机制采用\n[0044] PUBLISH的方式发送所述消息更新通知。在所述消息更新通知中,可以携带用户的终端B1编辑产生的多个新消息,以及所述新消息的ID。\n[0045] 另外,终端B1可以在编辑产生新消息时,立即向服务器发送消息更新通知。也可以根据用户的设置,在确定的时间间隔向服务器发送消息更新通知。\n[0046] 此步骤中,终端B1可以根据与服务器的存在的链接类型与需要更新的消息的大小,采用不同的更新方式。如需要同步的新消息字节小于1300字节,则可以使用SIP PUBLISH、SIP MESSAGE、MSRP SEND或MSRP REPORT消息发送同步通知,否则不能使用SIP MESSAGE消息;如终端B1与服务器之间已存在MSRP链接,则终端B1可以向服务器发送MRSP REPORT/SEND来同步所述新消息。\n[0047] 步骤202、服务器根据所述消息更新通知及所述用户的同步设置,判断需要同步的其它终端是否在线。所述用户的同步设置可以为:设置的需要同步的所述用户的多个终端标识。\n[0048] 其中,服务器存储有用户的标识及所述用户的已经注册的所有终端的标识,并将所述用户及其所有终端相关联。此步骤中,服务器根据所述消息更新通知中的用户标识,获取存储于服务器中与所述用户标识相关联的所述终端标识及所述终端的IP地址,并根据用户所需要同步的终端设置,判断所述用户对应的需要同步的其它终端是否在线,如果所述用户对应的需要同步的其它终端均在线执行步骤205,否则只要所述用户的需要同步的其它终端有一个没有在线,则分别记录在线和不在线的终端标识及IP地址。向所述在线的终端发送消息更新通知,以及执行步骤203;\n[0049] 步骤203、服务器在中保存所述消息更新通知。\n[0050] 此步骤中,服务器可以根据与其他终端的存在的链接类型与需要更新的消息的大小,采用不同的更新方式。如需要同步的消息字节小于1300字节,则可以使用SIP MESSAGE消息发送同步通知,否则不能使用SIP MESSAGE消息;如终端与服务器之间已存在MSRP链接,则终端可以向服务器发送MRSP REPORT/SEND更新。\n[0051] 步骤204器根据记录的不在线的终端标识及IP地址判断所述用户的其它终端在线,并执行步骤205;\n[0052] 步骤205、服务器向在线的其它终端发送所述消息更新通知。此步骤中,所述消息更新通知既可以是服务器接收到的终端B1直接发送的消息更新通知,也可以是服务器保存在中的所述消息更新通知。\n[0053] 步骤206、服务器判断是否向所述用户的所有的需要同步的其它终端发送了消息更新通知。此步骤中,服务器根据所记录的已经发送了所述消息更新通知终端的标识及IP地址与步骤202中服务器获取存储于服务器中与所述用户标识相关联的所述终端标识及所述终端的IP地址比较,或服务器根据所记录的不在线的终端标识及IP地址,判断是否向所述用户的所有需要同步的的其它终端发送了消息状改变通知。如果是,执行步骤207,否则执行步骤204;\n[0054] 步骤207、服务器删除所述消息更新通知。结束流程。\n[0055] 实施例3\n[0056] 图3为本发明的又一个实施例提供的使用SIP MESSAGE格式在服务器和多个终端之间进行消息或消息状态同步的流程,并且,此实施假设某个用户的所有终端即终端B1、B2、B3全部在线。其中,终端B1、B2、B3分别表示消息系统,如基于SIP的即时消息和呈现平衡扩展消息SIMPLE(SIP Instant Message and Presence Leveraging Extensions),即时消息IM(Instant Message)或基于IP的融合消息CPM(Converged IP Messaging)系统中的接收消息的用户B的多个终端。其归属服务器可以是IM或CPM服务器,这里的消息服务器是CPM服务器,所述CPM服务器可以作为参与功能服务器,也可以作为离线消息服务器。\n其具体的实施流程如下:\n[0057] 步骤301、当用户B在其终端B1上编辑产生新消息或改变了消息的状态时,例如新建了一条消息(该消息的数据量小于1300字节),阅读已有的消息,或者删除了某条消息,则终端B1产生一个SIP Message消息并发送给CPM服务器,即向CPM服务器发送一个消息更新通知或消息状态改变的通知。所述消息更新通知携带终端B1编辑产生的新消息。所述消息状态改变的通知中携带:用MESSAGE/CPIM内容类型(Content-Type)封装阅读报告的Content-Type:message/imdn+xml;Content-Disposition:notification和XML的内容表示状态更新的相关信息,如状态更新消息的Message-ID,状态更新的形式,时间,或对应的消息及消息所属的文件目录结构等信息。\n[0058] 步骤302、CPM服务器解析所收到消息状态更新通知,并构造与所述消息状态改变的通知中的消息ID所对应消息的状态改变消息。如果服务器收到的是消息更新通知,则无需执行此步骤。此步骤为可选步骤,服务器也可以不构造新的消息状态改变消息。\n[0059] 步骤303、CPM服务器向终端B1返回200OK响应。此步骤与步骤302并没有严格的时间顺序。\n[0060] 步骤304、CMP服务器判断终端B2在线,并将所构造的消息状态改变消息发送给终端B2或CMP服务器将所收到的消息更新通知发送给B2。\n[0061] 步骤305、终端B2更新所述消息状态,并向CPM服务器返回200OK响应,或终端B2保存所述消息更新通知中携带的新消息。\n[0062] 步骤304’、CMP服务器判断终端B3在线,并将所构造的消息状态改变消息发送给终端B3或CMP服务器将所收到的消息更新通知发送给B3;\n[0063] 步骤305’、终端B3更新所述消息状态,并向CPM服务器返回200OK响应,或终端B3保存所述消息更新通知中携带的新消息。\n[0064] 实施例4\n[0065] 图4为本发明的一个实施例提供的使用MRSP协议在服务器和多个终端之间进行消息状态同步的流程图,并且,此实施假设某个用户的所有终端即终端B1、B2、B3全部在线。其中,终端B1、B2、B3分别表示消息系统,如基于SIP的即时消息和呈现平衡扩展消息SIMPLE,即时消息IM(Instant Message)或基于IP的融合消息CPM(Converged IP Messaging,即)系统中接收消息的用户B的多个终端。CPM服务器表示用户B的所归属的消息服务器,所述CPM服务器可以作为参与功能服务器,也可以作为离线消息服务器。\n[0066] 步骤401、当用户B在其终端B1上更新了消息的状态时,例如阅读了新的消息,或者删除了某条消息。根据用户B的偏好和设置,需要将消息的状态和服务器及其它终端之间进行更新。则终端B1产生一个SIP INVITE消息通知CPM服务器并与CPM服务器建立MSRP会话通道。\n[0067] 步骤402、客户B1以MSRP SEND或MSRP REPORT等方式向CPM服务器B发\n送消息状态改变的通知。所述消息状态改变的通知中携带:用MESSAGE/CPIM内\n容 类 型 (Content-Type) 封 装 阅 读 报 告 的 Content-Type:message/imdn+xml;\nContent-Disposition:notification和XML的内容表示状态更新的相关信息,如状态更新消息的Message-ID,状态更新的形式,时间,收到消息的概要描述等信息。\n[0068] 步骤403、CPM服务器解析所述消息状态更新通知,并构造与所述消息状态改变的通知中的消息ID对应消息的状态改变消息。当然,此步骤为可选步骤,服务器也可以不构造新的消息状态改变消息。\n[0069] 步骤404、CPM服务器向终端B1返回200OK响应。当然,此步骤与步骤403并没有严格的时间顺序。\n[0070] 步骤405、CPM服务器通过向终端B1发送消息(如SIP BYE消息)断开CPM服务器与终端B1之间的MRSP会话通道。\n[0071] 步骤406、CPM服务器通过向终端B2发送消息(如SIPINVITE消息)建立CPM服务器与终端B1、B3之间的MRSP会话通道。\n[0072] 步骤407、CPM服务器判断终端B2在线,并将所构造的消息状态改变消息以(MSRP SEND或MSRP REPORT等方式)发送给终端B2;\n[0073] 步骤408、终端B2更新所述消息的消息状态,并向CPM服务器返回200OK响应。\n[0074] 步骤406’、CPM服务器通过向终端B3发送消息(如SIPINVITE消息)建立CPM服务器与终端B1、B3之间的MRSP会话通道。\n[0075] 步骤407’、CPM服务器判断终端B2在线,并将所构造的消息状态改变消息以(MSRP SEND或MSRP REPORT等方式)发送给终端B2;;\n[0076] 步骤408’、终端B3更新所述消息的消息状态,并向CPM服务器返回200OK响应。\n[0077] 当然,多终端间的消息同步也可以采用MSRP协议在服务器和多个终端之间。其具体实施方式与图4及其实施例相似。因此本发明不再作详细的说明。\n[0078] 此外,本发明的一个实施例还可以使用MSRP协议直接在多个终端之间进行消息同步或消息状态的同步。假设某个用户的所有终端即终端B1、B2、B3全部在线。其用户B所归属的CPM服务器此时只起到中转信令的作用,在收到用户B的终端B1的消息更新通知或消息状态改变的通知时链接建立请求后,向用户的其他终端B2、B3转发所收到的消息更新通知或消息状态改变的通知,使B1和B2及B1、3之间建立MSRP会话通道。并通过所述建立的MSRP会话通道完成终端B1、B2、B3的消息及状态的同步。此实施例中,消息及状态通知的发送,建立MSRP会话通道,消息及消息状态的同步等实现方法与图3所示方法相同。\n故不再一一详述。\n[0079] 实施例5\n[0080] 图5为本发明的又一个实施例提供的利用SIP SUBSCRIBE和SIP NOTIFY进行多终端消息状态同步的流程图。此实施例中,根据用户的设置,用户B的所有终端即终端B1、B2、B3分别向服务器定购消息状态更新的通知。并且,此实施假设某个用户的所有终端即终端B1、B2、B3全部在线。其中,终端B1、B2、B3分别表示消息系统,如基于SIP的即时消息和呈现平衡扩展消息SIMPLE,即时消息IM(Instant Message)或基于IP的融合消息CPM(Converged IP Messaging)系统中接收消息的用户B的多个终端。CPM服务器表示用户B的所归属的消息服务器,所述CPM服务器可以作为参与功能服务器,也可以作为离线消息服务器。\n[0081] 步骤501、当用户B在其终端B1上更新了消息的状态时,例如阅读了新的消息,或者删除了某条消息。根据用户B的偏好和设置,需要将消息的状态和服务器及其它终端之间进行更新。终端B 1向服务器以SIP PUBLISH的方式发送消息状态改变的通知。所述消息状态改变的通知中携带:用MESSAGE/CPIM内容类型(Content-Type)封装阅读报告的Content-Type:message/imdn+xml;Content-Disposition:notification和XML的内容表示状态更新的相关信息,如状态更新消息的Message-ID,状态更新的形式,时间,收到消息的概要描述等信息。\n[0082] 步骤502、CPM服务器解析所述消息状态更新通知,并构造与所述消息状态改变的通知中的消息ID对应的消息的状态改变消息。当然,此步骤为可选步骤,服务器也可以不构造新的消息状态改变消息。\n[0083] 步骤503、CPM服务器向终端B1返回200OK响应。当然,此步骤与步骤502并没有严格的时间顺序。\n[0084] 步骤504、CPM服务器判断终端B2在线,并且终端B2定购了消息状态改变的通知的服务,因此CPM服务器将所构造的消息状态改变消息以(NOTIFY、SIP MESSAGE、SIP PUBLISH等方式)发送给终端B2;\n[0085] 步骤505、终端B2更新所述消息的消息状态,并向CPM服务器返回200OK响应。\n[0086] 步骤504’、CPM服务器B判断终端B2在线,并且终端B3定购了消息状态改变的通知的服务,因此CPM服务器并将所构造的消息状态改变消息以(NOTIFY、SIP MESSAGE、SIP PUBLISH等方式)发送给终端B2;;\n[0087] 步骤505’、终端B3更新所述消息的消息状态,并向CPM服务器返回200OK响应。\n[0088] 当然,也可以利用SUBSCRIBE和NOTIFY在服务器和多个终端之间进行多终端消息同步。其具体实施方式与图5及其实施例相似。因此本发明不再作详细的说明。\n[0089] 以上几个实施例都是以用户B的所有终端即终端B1、B2、B3都在线时而进行的消息同步或消息状态同步。如果当需要消息同步或消息状态同步时,有的终端如B2或B3不在线时,进行消息同步或消息状态同步有以下几种实现方式。\n[0090] 1、CPM服务器为离线终端(如终端B2)保存终端B2不在线期间的离线消息,同时记录在此期间发生状态改变消息的状态或保存在此期间收到的消息更新通知。当终端B2上线时,CPM服务器将这些期间发生的消息及状态改变同步到终端B2。消息及消息状态的同步和在线时的同步没有区别,可以用上述方案中的任何一个实现。\n[0091] 2.CPM服务器保存所有的消息及状态,当终端B2上线时,将终端B2离线期间服务器保存的消息及状态同步。消息及消息状态的同步和在线时的同步没有区别,可以用上述方案中的任何一个实现。\n[0092] 3、上线的终端如终端B2向在线的其他终端如终端B1或B3发送同步请求,通过服务器在两者之间建立传输通道,将终端B2没有在线期间的消息及状态同步。\n[0093] 4、上线的终端如终端B2向CPM服务器发出消息及状态的同步请求,CPM服务器向在线的其他终端(终端B1或B3)发送同步请求,CPM服务器和其他在线终端(终端B1或B3)同步,然后再和终端B2之间建立传输通道,将终端B2没有在线期间的消息及状态同步。\n[0094] 另外,在上述情况下,如果用户B在终端B2离线时通过终端B1对消息的状态进行了更改,同时用户B也在终端B3上更改了消息状态,然后终端B2才上线,这时,消息的状态更改是一个交互过程,收到消息更改的终端B2通过对比发生状态改变消息的状态更改时间,取最新更改的状态为准。\n[0095] 本发明还提供多终端间存储布局同步的方法,所谓存储布局同步是指不同终端上相对于本地存储根目录而言的存储目录路径及存储目录名称的操作同步,以及不同终端上的结合存储目录路径信息的各个存储目录中所存储的诸如消息、图片、音频、视频片断等存储数据项操作的同步。\n[0096] 实施例6\n[0097] 图6为本发明实施例提供的一种多终端数据操作和/或存储布局同步的方法流程图,图中终端A1/A2/A3表示多终端用户A所使用的终端,SIP/IP核心网为路由SIP信令的核心网,消息服务器Messaging Server表示用户A归属的消息业务服务器;该方法具体包括:\n[0098] 当用户A的某一终端(如A1)中进行了存储数据操作和/或存储布局更新后,[0099] 将携带有所述存储数据和/或存储布局信息的同步消息发送给相关的其他终端如A2、A3,以使所述相关的终端A2、A3更新存储数据和/或目录结构。\n[0100] 当A1中仅进行了改变存储布局结构的操作时,同步消息的处理流程如下:\n[0101] 步骤601)-604)用户A在终端A1上进行本地存储目录的操作,如目录的\n创建、重命名、删除;为了在用户A的其他终端同步对应的存储目录操作,A1向其归属的消息服务器发送存储目录同步消息,定义新的内容类型“Content-Type”头域“message/hierarchy-synchronization”及消息内容部署“Content-Disposition”头域为“synchronization”,用以指示消息接收方根据所收到的消息体内容执行存储布局同步操作,本实施例中具体可采用XML格式给出存储布局同步描述:同步元素
标识“id”及同步类型“type”值为“folder”,其中包括:存储布局目录路径及对应的存储目录名称,对存储目录所执行的同步动作,其值包括:创建“create”、删除“delete”、重新命名“rename”。收到同步消息后,Messaging Server向终端A1返回响应;\n[0102] 步骤605)-612)消息服务器Messaging Server根据用户A上线注册的终端记录向其他终端A2/A3转发布局同步消息,A2/A3收到消息后读取其中携带的同步描述信息,并在各自的本地存储中执行对应的存储目录同步操作。具体情况如下:\n[0103] ①如果终端A2/A3本地存储不存在同步消息中指定的目录结构且对应的同步操作为“创建”,则终端A2/A3根据同步描述创建指定的目录,包括同步路径中间的目录,否则终端A2/A3不执行任何动作;\n[0104] ②如果终端A2/A3本地存储不存在同步消息中指定的目录结构且对应的同步操作为“重命名”,则终端A2/A3根据同步描述中新的目录名创建指定的目录,包括同步路径中间的目录,否则终端A2/A3不执行任何动作;\n[0105] ③如果终端A2/A3本地存储存在同步消息中指定的目录结构且对应的同步操作为“删除”,则终端A2/A3根据同步描述删除指定的目录,但不包括同步路径中间的目录,否则终端A2/A3不执行任何动作;\n[0106] 当A1中仅进行了存储布局中存储数据操作时,同步消息的处理流程如下:\n[0107] 用户A在终端A1本地存储的某个存储目录内执行存储数据项的操作,包括:消息或媒体文件的存储、更新和删除。\n[0108] 为了在用户A其他终端对应存储目录中同步操作对应的存储内容,A1向其归属的消息服务器Messaging Server发送存储布局中存储数据项同步操作消息,与上述存储布局结构操作时所发送的同步消息类似,同步消息体中可采用XML格式给出存储布局同步描述:同步元素标识“id”及同步类型“type”值为“file”,其中包括:存储数据项所在存储布局目录路径及对应的存储数据项名称,对存储数据项所执行的同步动作,其值包括:存储“store”、更新“update”、删除“delete”等。除此之外,同步消息体中还包括存储数据项本身,如即时消息、多媒体图片等。\nMessaging Server向A1返回接收响应并转发同步消息至用户A的其他终端A2/A3。根据收到的同步消息中存储布局描述及对应的存储数据项,A2/A3在各自的本地存储上执行相同的动作,如具体如下所述:\n[0109] 如果终端A2和A3的本地存储中不存在同步消息中指定的存储数据项所在的目录结构,则终端A2和A3首先根据同步消息中的同步描述创建指定的目录,包括同步路径中间的目录。\n[0110] 如果终端A2和A3在同步消息中指定的存储目录中不存在所要操作的存储数据项,且同步消息中携带的同步操作为“存储”,则终端A2和A3把同步消息中携带的存储数据项存储在指定的存储目录;如果终端A2和A3的本地存储对应存储目录中已经存在同步消息中操作的存储数据项,则终端A2和A3不执行任何动作;\n[0111] 如果终端A2和A3在同步消息中指定的存储目录中不存在所要操作的存储数据项,且同步消息中携带的同步操作为“更新”,则终端A2和A3把同步消息中携带的存储数据项存储在指定的存储目录;如果终端A2和A3的本地存储对应存储目录中已经存在同步消息中操作的存储数据项,则终端A2和A3用同步消息中携带的存储数据项覆盖存储目录中原有数据项;\n[0112] 如果终端A2和A3在同步消息中指定的存储目录中不存在所要操作的存储数据项,且同步消息中携带的同步操作为“删除”,则终端A2和A3不执行任何动作;如果终端A2和A3的本地存储对应存储目录中已经存在同步消息中操作的存储数据项,则终端A2和A3删除存储目录中的存储数据项。\n[0113] 此外,用户还可以在终端A1的本地存储中将某个存储目录内的存储数据项复制或移动到的另一个存储目录。\n[0114] 为了在用户A其他终端对应存储目录之间执行存储数据项同步操作,A1向其归属的消息服务器Messaging Server发送存储布局中存储数据项的复制或移动同步消息,与上述同步消息类似,同步消息体中可采用XML格式给出存储布局同步描述:同步元素标识“id”及同步类型“type”值为“file”,其中包括:存储数据项源存储布局目录路径及对应的存储目录名称,存储数据项目的存储布局目录路径及对应的存储目录名称,以及对存储数据项所执行的同步动作,其值包括:复制“copy”、移动“move”。\n[0115] Messaging Server向A1返回接收响应并转发同步消息至用户A的其他终端A2/A3。根据收到的同步消息中指定的存储数据项及目的存储目录,A2/A3在各自的本地存储上执行相同的动作。\n[0116] 具体如下所述:\n[0117] 如果终端A2和A3的本地存储中不存在同步消息中指定的目录结构,即存储数据项所在的源存储目录及目的存储目录,则终端A2和A3首先根据同步消息中的同步描述创建指定的目录,包括同步路径中间的目录。\n[0118] 如果终端A2和A3在同步消息中指定的源存储目录中不存在所要操作的存储数据项,且同步消息中携带的同步操作为“复制”,则终端A2和A3首先把同步消息中携带的存储数据项存储在源存储目录中,然后把存储数据项存储在目的存储目录中;如果终端A2和A3在本地存储源存储目录中已经存在同步消息中操作的存储数据项,则终端A2和A3只需将同步消息中携带的存储数据项存储在目的存储目录中。如果目的目录中已经存在该存储数据项,那么也将用同步消息中携带的存储数据项覆盖它。\n[0119] 如果终端A2和A3在同步消息中指定的源存储目录中不存在所要操作的存储数据项,且同步消息中携带的同步操作为“移动”,则终端A2和A3只要把同步消息中携带的存储数据项存储在目的存储目录中;如果终端A2和A3在本地存储源存储目录中已经存在同步消息中操作的存储数据项,则终端A2和A3首先删除源存储目录中的该存储数据项,然后再把同步消息中携带的存储数据项存储在目的存储目录中。如果目的目录中已经存在该存储数据项,那么也将用同步消息中携带的存储数据项覆盖它。\n[0120] 如果Messaging Server收到上述同步消息时终端A2或A3并不在线,那么与上述步骤不同的是Messaging Server会把同步消息作为离线消息存储,等待A2/A3上线后发送。\n[0121] 另外,在本实施例中除了如图6中给出的同步消息发送流程之外,为了实现多终端存储布局的同步,当用户A对终端A1本地存储的存储目录或存储数据项进行操作后,还可以由终端A1直接向终端A2和A3发送同步消息,即终端A1发送给消息服务器A的同步消息中携带终端A2或A3的地址或标识。当消息服务器A收到所述同步消息后,直接根据所述同步消息中携带的终端A2和/或A3的地址或标识,将所述同步消息发送给终端A2或A3。在此种实施例中,消息服务器A不需要查找用户注册的终端。\n[0122] 类似地,当A1中同时进行存储数据操作和存储布局结构更新操作时,其同步消息的处理流程与前述基本相同,在此不再赘述。\n[0123] 上述介绍的多终端之间存储布局结构和/或存储数据的同步流程描述中要求收到同步请求的终端按照请求中携带的同步信息在本地存储执行严格的同步操作。在实际的应用中,用户可以根据不同终端的存储需要选择不同的同步策略:即保持部分终端存储之间的严格同步,而其他终端既便收到同步请求也可以拒绝同步操作;或者保持终端之间部分存储的严格同步,而终端中特定存储结构或特定存储数据不受同步操作的影响。这些有限同步或部分同步的操作可以根据用户的指示在终端侧实现,此时要求终端结合收到的同步请求中的同步信息和终端本地具体的存储策略来执行实际的存储结构和/或存储数据同步操作。\n[0124] 实施例7\n[0125] 图7为本发明实施例提供的另一种多终端存储布局同步的方法流程图。\n[0126] 当用户A在终端A1上进行存储目录结构和/或存储数据更新操作时,\n[0127] A1将向用户A相关的其他终端如A2、A3发送存储布局同步请求,以使所述相关的终端A2、A3同步更新存储目录结构和/或存储数据。在本实施例中,终端A1存储布局同步请求是通过与消息服务器、相关的终端A2和A3建立存储布局同步会话,并利用建立好的会话通道发送携带有所述存储目录结构和/或存储数据信息的同步消息实现的。\n[0128] 参照图7,当用户A在终端A1上进行了存储布局操作时,所述同步消息的处理流程如下:\n[0129] 步骤701)-704)用户A在终端A1上进行存储目录结构操作和/或存储数据更新,包括:存储目录的创建、重命名、删除,存储目录中存储数据项的操作(存储、更新和删除),以及存储数据项在存储目录之间的操作(复制和移动)。为了在用户A的其他终端同步对应的存储布局操作,A1向其归属的消息服务器Messaging Server发送存储布局同步会话邀请,Messaging Server向终端A1返回响应,从而建立起Messaging Server与A1之间的存储布局同步会话;\n[0130] 步骤705)-707)终端A1利用建立好的会话通道,如MSRP传输通道向Messaging Server发送存储布局同步消息,定义内容类型“Content-Type”头域“message/hierarchy-synchronization”及 消 息 内 容 部 署“Content-Disposition”头 域 为“synchronization”,用以指示消息接收方根据所收到的消息体内容执行存储布局同步操作,具体实施例中,可采用XML格式给出存储布局同步描述:同步标识“id”及类型“type”,其中包括:存储布局目录或存储数据项路径及对应的存储目录或存储数据项名称,对存储目录所执行的同步动作,如,创建、删除、重新命名,或对存储数据项所执行的同步动作,如,存储、更新、删除,或者存储目录之间的复制或移动。\n[0131] 上述存储布局同步消息的发送可以一次完成也可以分多次完成,终端A1向消息服务器Messaging Server发送完毕存储布局同步消息后会在步骤707)请求关闭两者之间的会话通道;\n[0132] 步骤708)-711)Messaging Server根据用户A的身份标识如SIP URI确定是否存在该用户的其他在线终端,本实施例中假定用户A还拥有终端A2/A3并在线,为了实现用户A各终端存储布局同步,消息服务器Messaging Server首先向终端A2发送存储布局同步会话邀请,与之建立存储布局同步会话。\n[0133] 步骤712)-714)Messaging Server利用与终端A2建立好的会话通道,如MSRP传输通道向A2转发前面终端A2发送的存储布局同步消息,收到同步消息后,终端A2向Messaging Server返回响应,并根据同步消息中的存储布局信息在本地存储执行对应的操作。\n[0134] 在步骤714,Messaging Server请求关闭与A2之间的会话通道;\n[0135] 步骤715)与步骤712)-714)类似,Messaging Server还将向用户A终端A3转发存储布局同步消息,收到同步消息后A3根据消息体中携带的存储布局同步描述在本地存储执行同样的动作,并返回响应。\n[0136] 如果Messaging Server收到同步消息时终端A2或A3并不在线,那么与上述步骤不同的是Messaging Server会把同步消息作为离线消息存储,等待A2/A3上线后与之建立同步会话发送。\n[0137] 本领域技术人员可以理解,与上述流程不同,存储布局同步消息的发送还可以按照以下步骤来实现:终端A1邀请用户A的所有其他在线终端即本例中的终端A2/A3都加入到Messaging Server控制下的多方会议会话,并各自与Messaging Server协商好同步会话传输通道,在多方会话中终端A1向消息服务器发送存储布局同步消息,收到存储布局同步消息后消息服务器再分别向终端A2/A3转发同步消息;\n[0138] 或者,终端A1经由消息服务器分别与终端A2和A3建立会话并利用各自的会话通道来发送存储布局同步消息。\n[0139] 类似地,当A1中同时进行存储目录结构操作和存储数据更新操作时,其同步消息的处理流程与前述基本相同,在此不再赘述。\n[0140] 实施例8:\n[0141] 图8为本发明实施例提供的又一种多终端存储布局同步的方法流程图,图8中终端A1/A2表示多终端用户A所使用的客户终端;SIP/IP Core表示路由SIP信令的核心网;\nMessaging Server表示用户A归属的消息业务服务器;网络存储实体Network Storage为用户A归属网络中部署的网络存储实体,负责存储用户消息业务相关数据,参照图8,存储布局同步订阅通知的处理流程如下:\n[0142] 步骤801)用户A的终端A2向Network Storage发送用户A在终端A1上的存储布局变化通知订阅请求;\n[0143] 步骤802)-805)用户A在终端A1上进行本地存储布局操作,包括:存储目录的操作(创建、重命名、删除),存储目录中存储数据项的操作(存储、更新和删除),以及存储数据项在存储目录之间的操作(复制和移动)。为了在用户A的其他终端同步对应的存储布局操作,A1向其归属的消息服务器Messaging Server发送存储布局同步会话邀请,与Messaging Server协商好同步会话传输通道,Messaging Server向终端A1返回响应;\n[0144] 步骤806)-808)终端A1利用建立好的会话通道(如MSRP传输通道)向\nMessaging Server发送存储布局同步消息,定义新的内容类型“Content-Type”头域“message/hierarchy-synchronization”以及消息内容部署“Content-Disposition”头域为“synchronization”,用以指示消息接收方根据所收到的消息体内容执行存储布局同步操作,例如,采用XML格式给出存储布局同步描述:同步标识“id”及类型“type”,其中包括:存储布局目录或存储数据项路径及对应的存储目录或存储数据项名称,对存储目录所执行的同步动作,如,创建、删除、重新命名,或对存储数据项所执行的同步动作,如,存储、更新、删除,或者存储目录之间的复制或移动。收到同步消息后,Messaging Server向终端A1返回响应;\n[0145] 上述存储布局同步消息的发送可以一次完成也可以分多次完成,终端A1向消息服务器Messaging Server发送完毕存储布局同步消息后会在步骤808)请求关闭两者之间的会话通道;\n[0146] 步骤809)Messaging Server将收到的同步消息中的存储布局描述信息及可能存在的同步消息或媒体文件存储到Network Storage中与用户A对应的存储空间;\n[0147] 步骤810)-813)Network Storage生成并发送用户A终端A1上的存储布局变化通知至终端A2,所述通知消息中包含A1本地存储上发生变化的存储布局摘要信息,如存储布局路径及对应的存储目录或存储数据项名称,存储布局变化的原因,如存储、更新、删除等,以及存储布局同步操作中涉及到的存储数据项的元数据信息,如消息或媒体文件的名称、尺寸、存储格式等;\n[0148] 步骤814)-819)终端A2根据收到的通知消息向Messaging Server发送存储布局同步会话邀请,请求获取存储布局同步操作中涉及到的存储数据项实际内容,Messaging Server邀请Network Storage中用户A的存储空间中与终端A1存储布局对应的存储数据项作为虚拟用户加入同步会话;\n[0149] 步骤820)-823)Network Storage利用建立的存储布局同步会话通道将与终端A1存储布局对应的存储数据项经由Messaging Server发送到终端A2,终端A2根据存储布局描述信息及收到的存储数据项在本地终端执行同步动作。\n[0150] 另外,在具体实现时,还可以按照如下步骤进行:\n[0151] 终端A2向消息服务器发送订阅请求,在终端A1与消息服务器建立会话并发送同步消息后,消息服务器向终端A2发送通知,根据通知终端A2请求与消息服务器建立会话获取同步消息。\n[0152] 或者,终端A2向终端A1发送订阅请求,在终端A1上的存储布局发生变化后,A1向终端A2发送通知,根据通知终端A2请求与终端A1建立会话获取同步消息。\n[0153] 从以上方案可以看出,本发明的技术方案使用户B的所有终端能够基于SIP消息进行终端之间的消息及状态同步。从而丰富了用户体验。\n[0154] 此外,本发明还可以使用IMAP协议实现多个终端的消息同步或消息状态同步。当使用IMAP协议时,CPM系统的客户端和服务器都要支持IMAP 协议,然后客户端和服务器利用扩展后的IMAP协议实现消息同步或消息状态同步。有两种基本的实现方法:1.CPM服务器保存所有消息及每个消息对应的状态,并利用现有的IMAP协议实现多终端消息及消息状态的同步:如创建了新消息或改变消息状的态终端即用户的第一终端通过IMAP协议上传消息更新通知或改变消息状态的更改通知到服务器,服务器更改并保存对应的消息状态或保存所述消息更新通知。然后服务器利用IMAP协议同步消息更新通知或改变消息状态的通知到其他客户端。这样利用现有的IMAP协议即可实现间接的多终端同步。2.如果CPM服务器不保存消息及每个消息对应的状态,则需要扩展IMAP协议,需要改变现在IMAP协议中服务器接受消息状态改变的通知的操作。即当CPM服务器接受到消息状态改变的通知时,即使CPM服务器上没有与所述消息状态改变的通知对应的消息,CPM服务器也不向发起改变所述消息状态通知的终端返回错误信息,而是构建改变消息状态消息或保存所述消息状态改变的通知,通知用户的其它终端,以及向发起的终端如第一终端返回接收成功消息。这样可以实现利用IMAP协议在CPM服务器中转状态更新信息。\n[0155] 以下的实施例利用了IMAP协议来实现多终端的消息状态的同步,当然也可以用来实现多终端消息的同步。即本发明的实施例可以扩展IMAP的append命令,使携带消息状态及消息标识的消息状态改变的通知通过append命令发送到CPM服务器,CPM服务器利用Fetch响应通知用户的其它终端。当然改变消息状态的终端也可以采用IMAP的其它命令来实现消息状态的同步。例如使用store命令等。在扩展store命令时,使携带消息状态及消息标识的消息状态改变的通知通过store命令发送到CPM服务器。并且在CPM服务器接收到store命令后根据CPM服务器是否保存所述消息标识对应的消息,采取不同的策略。如果CPM服务器保存有所述消息标识对应的消息,则按照IMAP协议正常执行,即更改CPM服务器上消息状态并发送改变消息状态的消息给用户的其它终端。如果CPM服务器没有保存所述消息标识对应的消息,则只发送改变消息状态的消息给用户的其它终端,并向发起消息状态改变的通知的终端返回接收成功消息。\n[0156] 另外,本发明还可以采用只使用IMAP协议实现服务器下发改变消息状态的消息到其他终端。而改变消息状态的终端使用其他协议向CPM服务器发送消息状态改变的通知,例如,使用:SIP协议或SMTP协议等。CPM服务器接受到所述消息状态改变的通知后,构造IMAP协议,并将改变消息状态的消息通过IMAP协议发送给用户的其它终端。\n[0157] 当然,也可以利用IMAP协议来实现多终端的消息同步。其实现方法与利用IMAP协议来实现多终端的消息状态同步的实现方法相似,在此不再详细。\n[0158] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明包含这些改动和变型在内。法律信息
- 2012-08-08
- 2009-09-02
- 2008-09-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2004-11-11
| | |
2
| |
1998-09-30
|
1996-08-12
| | |
3
| |
2006-05-10
|
2004-12-06
| | |
4
| |
2004-11-03
|
2003-04-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |