一种多系统中的终端之间通信的方法及装置与流程

文档序号:13882435阅读:298来源:国知局
一种多系统中的终端之间通信的方法及装置与流程
本发明涉及通信
技术领域
,特别是指一种多系统中的终端之间通信的方法及装置。
背景技术
:在4g移动互联网时代,互联网厂家在移动应用领域快速发展,出现了微信、qq、米聊等一批ott应用,它们具有免费、体验丰富等特色,并且迭代快速,能不断为用户提供新业务特性,因此逐渐蚕食着运营商的用户群与收入。为解决这个问题,运营商大多采用了两种不同的方式,推出了自身的融合通信即时消息业务:第一种是运营商直接学习互联网厂家,推出自身使用ott技术,基于私有通信协议实现的即时消息软件(以下称ott私有系统,使用的终端称为ottapp),例如中国移动的飞信和中国电信的易信等,这种方式完全使用互联网解决方案,用户需要下载安装特定的app,并进行注册账户(对于运营商的ott即时消息软件,通常使用手机号作为用户账号进展注册,即用户名为手机号,而实际消息路由分发等使用ott内部标识);第二种是使用电信国际标准,通过对gsmarcs即融合通信国际协议的支持实现即时消息系统(以下称融合通信标准即时消息系统),如中国移动融合通信。该方式又分为推动手机厂家升级终端上原有的通话、短/彩信和通讯录三大通信入口,以终端原生方式(native,即终端在出厂时就已具备功能)的支持即时消息(以下称标准native方式,使用的终端称为native终端),和下载基于融合通信标准的app实现的即时消息(以下称标准app方式,使用的终端称为rcsapp)。由于使用国际标准,该方式保证了运营商基础通信业务全球可达性和电信级服务质量,可以说,该方式是以通信能力为核心的方式。部分较大的运营商,如中国移动,由于自身具备较强的技术能力,同时具有较强的产业推动力,因此同时具有融合通信标准即时消息系统和ott私有即时消息系统,这样,同一个用户可能在拥有native终端的同时使用app,而app可能是ottapp也可能是rcsapp,同时,这个用户还可能具有pc客户端、pad客户端等各种客户端,这样,同一个用户就会拥有很多不同的终端,而同一终端上具有相同功能的app或native入口也可能有多个,这样,如果消息分别发到他的不同终端不同入口,这个用户就需要在不同终端不同入口间反复切换,会给用户的使用带来困扰。同时,运营商传统的短彩信系统仍然存在,这就会进一步加大用户使用的困难。将运营商拥有的众多消息通道,包括电信标准即时消息通道、ott即时消息通道、传统短彩信通道进行合理整合,使用户具有的不同消息入口具有较好使用感受,是运营商提升用户消息体验,增加用户粘性的重要手段。例如:对于不同终端,保证都收到全量消息,用户看不同终端时,都可以有完整消息历史,但是,只在用户目前有操作的终端进行声音等提示,其他终端进行静默处理;对于同一终端,只有1个消息入口显示消息(或者是终端native原生消息入口,或者是唯一一个app消息入口,不需要在各消息入口反复切换)。对于这类多终端场景,目前现有技术一般分为ims系统内的多终端处理方式和ott系统内的多终端处理方式两种,其中:ims多终端消息机制如图1所示,该方式要求同一用户使用的全部终端均基于sip实现,都具有同样的sip用户身份标识(impi/impu),通过不同的sip实例(sip.instance或gruu)在ims中进行注册,对于不同的终端,有2种处理方式:终端标识完全相同,后注册的终端将先注册的终端踢下线,只有在线的终端会收到消息。不同终端通过gruu或sip.instance等参数进行区别,可同时注册,所有消息都被存入集中消息存储平台中,在接收消息时,通过ims的forking机制将同一个消息复制成多份,分别发到每一个终端实例,对于不在线的终端,在其上线后通过集中消息存储平台使用推送的方式实现消息同步。ott即时消息系统使用的方式与之类似,但一般多个终端分为主终端和从终端(例如微信与微信web版)。通常,一个设备上,同一个账户只能有一个终端登录(例如手机上不能登录2个同账户的微信),此外,从终端的登录需要依赖于主终端,如手机登录时,才能有pc侧web客户端登录等。对于接收方有多个设备的场景,一般发送时根据接收方登录状态将消息分别写入多个消息队列中,并且分别通知接收方的各个终端有消息更新,由接收方对比本地消息记录后,到服务器拉取相应消息,此后接收设备通知服务器某消息已接收,服务器可以将该设备的这部分消息在应消息队列中置为已读。对于具有多个消息系统的运营商,各类型终端的即时消息下发通道如图3所示。可见,各消息系统是分别独立的竖井式结构,用户拥有的多个终端和消息入口关系也较为复杂,现有的技术方案无法实现这种场景下的多终端管理与消息需求。上述图1和图2,不管是ims系统中的多终端方案,还是ott系统中的多终端方案,均不能满足统一运营商ims消息系统与ott消息系统共存,多终端分别存在于不同系统内的场景,即不能统一管理不同系统内的多个终端。也因为各个系统相互独立,无法实现消息在不同系统内的终端之间的分发,ims系统内的消息只能发到ims系统内的终端,ott系统内的消息也只能发到ott系统内的终端。技术实现要素:本发明提供了一种多系统中的终端之间通信的方法及装置,从而实现多个通信系统中的终端之间相同通信。为解决上述技术问题,本发明的实施例提供如下方案:一种多系统中的终端之间通信的方法,包括:获取第一类型终端采用第一通信系统进行登录的第一登录状态信息以及第二类型终端采用第二通信系统进行登录的第二登录状态信息,并将所述第一登录状态信息和所述第二登录状态信息存储在用户状态数据库中;所述第一类型终端和所述第二类型终端是基于相同应用的相同帐户进行登录的不同类型的终端;将所述第一登录状态信息和第二登录状态信息发送给在后登录的第二类型终端对应的第二通信系统,使所述第二通信系统根据所述第一登录状态信息和第二登录状态信息,以及预先存储的不同类型终端之间的登录冲突规则,确定是否允许所述第二类型终端进行登录。其中,所述登录冲突规则包括:所述第一类型终端为出厂即可支持即时消息收发并支持安装其它即时消息应用的native的终端,所述第二类型终端为出厂即可支持即时消息收发但不支持安装其它即时消息应用非native的终端时,两种类型的终端均可同时在线。其中,所述登录冲突规则包括:所述第一类型终端为安装即时消息应用富媒体通信rcsapp1的终端,所述第二类型终端为安装rcsapp1的终端时,两种类型的终端均可同时在线,但与安装rcsapp2、ottapp1和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;其中,rcsapp1与所述rcsapp2是基于相同通信协议的不同应用,ottapp1与ottapp2是基于相同通信协议的不同应用。所述登录冲突规则包括:所述第一类型终端为安装即时消息应用富媒体通信rcsapp2的终端,所述第二类型终端为安装rcsapp2的终端时,两种类型的终端均可同时在线,但与安装rcsapp1、ottapp1和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;其中,rcsapp1与所述rcsapp2是基于相同通信协议的不同应用,ottapp1与ottapp2是基于相同通信协议的不同应用。所述登录冲突规则包括:所述第一类型终端为安装私有通信协议的即时消息应用ottapp1的终端,所述第二类型终端为安装ottapp1时,两种类型的终端均可同时在线,但与安装rcsapp1、rcsapp2和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;其中,rcsapp1与所述rcsapp2是基于相同通信协议的不同应用,ottapp1与ottapp2是基于相同通信协议的不同应用。所述登录冲突规则包括:所述第一类型终端为安装私有通信协议的即时消息应用ottapp2的终端,所述第二类型终端为安装ottapp2的终端时,两种类型的终端均可同时在线,但与安装rcsapp1、rcsapp2和ottapp1的终端均不可同时在线,在后登录的将在前登录的踢下线;其中,rcsapp1与所述rcsapp2是基于相同通信协议的不同应用,ottapp1与ottapp2是基于相同通信协议的不同应用。所述登录冲突规则包括:所述第一类型终端为计算机pc1,所述第二类型终端为计算机pc2时,两种终端不可同时在线,在后登录的将在前登录的踢下线;其中,pc1与pc2为不同的计算机。其中,不同类型的终端,用终端标识进行区分:native的终端,通过基于会话初始协议的实例sip.instance=imei,获得终端标识;安装rcsapp1的终端,通过基于会话初始协议的实例sip.instance=uuid1获得终端标识;安装rcsapp2的终端,通过基于会话初始协议的实例sip.instance=uuid2获得终端标识;安装ottapp1的终端,对应的终端标识为eid1;安装ottapp2的终端,对应的终端标识为eid2;pc1终端,对应的终端标识为pcid1;pc2终端,对应的终端标识为pcid2;其中,eid1与eid2不同,pcid1与pcid2不同。其中,多系统中的终端之间通信的方法还包括:获取发送终端发送的消息,存储在该发送终端的第一消息队列中;从所述用户状态数据库中获取当前处于登录状态的至少一个类型的接收方终端;根据所述消息,分别为所述至少一类型的接入方终端的通知队列中写入一个通知消息,并由所述至少一个类型的接收方终端对应的系统服务器,将通知队列中的通知消息分别发送给接收方终端。其中,多系统中的终端之间通信的方法还包括:发送终端的第一消息队列向接收方终端的第二消息队列进行消息同步。其中,所述发送终端发送的消息中具有一标识,所述标识用于标识:该消息是发送终端向与所述发送终端同时处于登录状态且基于相同应用的相同帐户的接收终端发送的。其中,发送终端的第一消息队列向接收方终端的第二消息队列进行消息同步后还包括:至少一个类型的接收方终端对应的通信系统,将此次更新的消息发送给接收方终端。其中,多系统中的终端之间通信的方法还包括:接收方终端在接收到此次更新的消息时,该此次更新的消息如果已经在所述至少一个类型的其它接收方终端上接收过,则该接收方终端进行静默处理。其中,多系统中的终端之间通信的方法还包括:若至少一个类型的接收方终端中,只有出厂即可支持即时消息收发但不支持安装其它即时消息应用的非native终端处于登录状态,则由非native终端采用的通信系统将此次更新的消息转为短信或者彩信,通过短信中心发送给接收方终端。本发明的实施例还提供一种多系统中的终端之间通信的装置,包括:获取模块,用于获取第一类型终端采用第一通信系统进行登录的第一登录状态信息以及第二类型终端采用第二通信系统进行登录的第二登录状态信息,并将所述第一登录状态信息和所述第二登录状态信息存储在用户状态数据库中;所述第一类型终端和所述第二类型终端是基于相同应用的相同帐户进行登录的不同类型的终端;发送模块,用于将所述第一登录状态信息和第二登录状态信息发送给在后登录的第二类型终端对应的第二通信系统,使所述第二通信系统根据所述第一登录状态信息和第二登录状态信息,以及预先存储的不同类型终端之间的登录冲突规则,确定是否允许所述第二类型终端进行登录。其中,所述登录冲突规则包括:所述第一类型终端为出厂即可支持即时消息收发并支持安装其它即时消息应用的native的终端,所述第二类型终端为出厂即可支持即时消息收发但不支持安装其它即时消息应用非native的终端时,两种类型的终端均可同时在线;或者所述第一类型终端为安装即时消息应用富媒体通信rcsapp1的终端,所述第二类型终端为安装rcsapp1的终端时,两种类型的终端均可同时在线,但与安装rcsapp2、ottapp1和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;或者所述第一类型终端为安装即时消息应用富媒体通信rcsapp2的终端,所述第二类型终端为安装rcsapp2的终端时,两种类型的终端均可同时在线,但与安装rcsapp1、ottapp1和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;或者所述第一类型终端为安装私有通信协议的即时消息应用ottapp1的终端,所述第二类型终端为安装ottapp1时,两种类型的终端均可同时在线,但与安装rcsapp1、rcsapp2和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;或者所述第一类型终端为安装私有通信协议的即时消息应用ottapp2的终端,所述第二类型终端为安装ottapp2的终端时,两种类型的终端均可同时在线,但与安装rcsapp1、rcsapp2和ottapp1的终端均不可同时在线,在后登录的将在前登录的踢下线;或者所述第一类型终端为计算机pc1,所述第二类型终端为计算机pc2时,两种终端不可同时在线,在后登录的将在前登录的踢下线;其中,rcsapp1与所述rcsapp2是基于相同通信协议的不同应用,ottapp1与ottapp2是基于相同通信协议的不同应用,pc1与pc2为不同的计算机。其中,不同类型的终端,用终端标识进行区分:native的终端,通过基于会话初始协议的实例sip.instance=imei,获得终端标识;安装rcsapp1的终端,通过基于会话初始协议的实例sip.instance=uuid1获得终端标识;安装rcsapp2的终端,通过基于会话初始协议的实例sip.instance=uuid2获得终端标识;安装ottapp1的终端,对应的终端标识为eid1;安装ottapp2的终端,对应的终端标识为eid2;pc1,对应的终端标识为pcid1;pc2,对应的终端标识为pcid2;其中,eid1与eid2不同,pcid1与pcid2不同。其中,多系统中的终端之间通信的装置还包括:消息同步模块,用于获取发送终端发送的消息,存储在该发送终端的第一消息队列中;从所述用户状态数据库中获取当前处于登录状态的至少一个类型的接收方终端;根据所述消息,分别为所述至少一类型的接入方终端的通知队列中写入一个通知消息,并由所述至少一个类型的接收方终端对应的系统服务器,将通知队列中的通知消息分别发送给接收方终端。其中,所述消息同步模块还用于:发送终端的第一消息队列向接收方终端的第二消息队列进行消息同步。其中,所述发送终端发送的消息中具有一标识,所述标识用于标识:该消息是发送终端向与所述发送终端同时处于登录状态且基于相同应用的相同帐户的接收终端发送的。其中,多系统中的终端之间通信的装置还包括:至少一个类型的接收方终端对应的通信系统,将此次更新的消息发送给接收方终端。其中,多系统中的终端之间通信的装置还包括:接收方终端在接收到此次更新的消息时,该此次更新的消息如果已经在所述至少一个类型的其它接收方终端上接收过,则该接收方终端进行静默处理。其中,多系统中的终端之间通信的装置还包括:若至少一个类型的接收方终端中,只有出厂即可支持即时消息收发但不支持安装其它即时消息应用的非native终端处于登录状态,则由非native终端采用的通信系统将此次更新的消息转为短信或者彩信,通过短信中心发送给接收方终端。本发明的上述方案至少包括以下有益效果:本发明的上述方案,通过获取第一类型终端采用第一通信系统进行登录的第一登录状态信息以及第二类型终端采用第二通信系统进行登录的第二登录状态信息,并将所述第一登录状态信息和所述第二登录状态信息存储在用户状态数据库中;所述第一类型终端和所述第二类型终端是基于相同应用的相同帐户进行登录的不同类型的终端;将所述第一登录状态信息和第二登录状态信息发送给在后登录的第二类型终端对应的第二通信系统,使所述第二通信系统根据所述第一登录状态信息和第二登录状态信息,以及预先存储的不同类型终端之间的登录冲突规则,确定是否允许所述第二类型终端进行登录。实现不同系统间的多终端在线状态管理和消息通信管理。附图说明图1为现有技术中,ims多终端消息通信机制;图2为现有技术中,ott系统多终端消息通信机制;图3为现有技术中,各类型终端的即时消息下发通道的示意图;图4为本发明的多系统中的终端之间通信的方法流程图;图5为本发明的多系统中的终端之间通信的系统架构图;图6为本发明的多系统中的终端之间通信的方法中,初始时用户终端状态示意图;图7为本发明的多系统中的终端之间通信的方法中,用户ottapp1在终端b上线的示意图;图8为本发明的多系统中的终端之间通信的方法中,用户ottapp在native终端上登录的示意图;图9为本发明的多系统中的终端之间通信的方法中,用户pcapp注销的状态示意图;图10为本发明的多系统中的终端之间通信的方法的另一流程图;图11为图10所示流程中,主叫侧多终端消息发送流程;图12为图10所示流程中,被叫侧多终端消息接收流程;图13为图10所示流程中,被叫只有短信终端在线的流程。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。针对现有技术中,各个通信系统相互独立,无法实现消息在不同系统内的终端之间的分发,ims系统内的消息只能发到ims系统内的终端,ott系统内的消息也只能发到ott系统内的终端的问题,本发明的实施例通过建立统一数据层,将各系统的终端状态数据和消息数据等数据整合到统一数据层中的方式,实现不同系统间的多终端在线状态管理和消息管理。如图4所示,本发明的实施例提供一种多系统中的终端之间通信的方法,包括:步骤41:获取第一类型终端采用第一通信系统进行登录的第一登录状态信息以及第二类型终端采用第二通信系统进行登录的第二登录状态信息,并将所述第一登录状态信息和所述第二登录状态信息存储在用户状态数据库中;所述第一类型终端和所述第二类型终端是基于相同应用的相同帐户进行登录的不同类型的终端;步骤42:将所述第一登录状态信息和第二登录状态信息发送给在后登录的第二类型终端对应的第二通信系统,使所述第二通信系统根据所述第一登录状态信息和第二登录状态信息,以及预先存储的不同类型终端之间的登录冲突规则,确定是否允许所述第二类型终端进行登录。本发明的该实施例中,多系统可以是针对同一运营商拥有多个不同的即时消息系统以及传统短彩信系统,用户具有多个不同的终端,并且同一终端上可能有不同的native/app入口的场景,通过建立统一数据层,将各系统的终端数据和消息数据等数据整合到统一数据层中的方式,实现不同系统间的多终端在线状态管理和消息管理。本发明的实施例中,客户端可以类型分为以下4类:1.1)pc类客户端:基于pcott私有协议实现的pc上的app。1.2)rcsapp类客户端:基于rcs标准实现的手机上的app。1.3)ottapp类客户端:基于手机ott私有协议实现的手机上的app。1.4)native:手机原生消息入口,若已升级具备rcs消息能力,则可以收发rcs即时消息、短彩信,否则只能收发短彩信。该类型为独立类型,手机客户端app与native,不论app与native是否处于同一终端上,均可以同时在线。客户端的在线规则,即各类型的终端的登录冲突规则如下:2.1)native终端因为与用户sim卡绑定,每个用户只能有唯一的native终端,并且该终端不能被其他终端踢下线。2.2)当native终端具有数据连接时,它具有rcs即时消息接收能力。2.3)当native终端没有数据连接时,依然具有传统短彩信接收能力。2.4)非native终端,只有短彩信接收能力。2.5)rcsapp与ottapp都可以安装在native终端或非native终端上。2.6)同一终端上,rcsapp与ottapp只能有一个在线,后上线的客户端将另外的客户端踢下线。2.7)同一类型客户端不同版本不能同时在线。2.8)当native终端上安装app时,不管是哪一个版本的app,即时消息都将只送给native终端,若用户直接从app入口进入,则app从native终端的数据库中读取历史记录。2.9)pc客户端可与手机native/app同时在线,并且会收到全部消息。各类终端之间的冲突关系如表1所示。若有不同的冲突规则,则可以通过重新对该冲规则表进行配置的方式实现新的规则。表1其中,上述表格中,n/a表示允许在线,╳表示不允许在线。当登录的终端间存在冲突时,均为后登录的终端将先登录的终端踢下线。对于不同终端,通过其设备标识进行区别:3.1)native终端以及rcsapp都是基于融合通信标准即时消息系统的,使用基于ims的rcs标准,其标识都基于ims码号体系:native设备标识和设备类型通过sip.instance=imei获得;rcsapp设备标识和设备类型通过sip.instance=uuid获得。3.2)ott允许在不同设备上分别注册登录,每在一个设备上注册时,由ott服务器为该设备分配一个设备标识,形如:app1:标识为eid1,app2:标识为eid2;3.3)pc客户端与ottapp类似:pc客户端1:标识为pcid1,pc客户端2:标识为pcid2;其中,eid1与eid2不同,pcid1与pcid2不同。各类终端标识如表2所示。表2如图5所示,为实现上述方法的系统架构,为在同一运营商拥有多个不同的即时消息系统以及传统短彩信系统之上设置统一的用户状态数据库,在各即时消息系统和短信系统之上设置统一消息队列。图中,单向实线箭头表示消息下发,双向虚线箭头表示可安装,双向实线箭头表示可读取消息。原本相互独立的各竖井式消息系统需要于新设的用户状态数据库对接,将各自终端在自身系统内的登录状态经过数据接口提交给用户状态数据库,接收用户状态数据库返回的该用户全部登录设备的状态信息。原本相互独立的各竖井式消息系统需要于新设的统一消息队列对接,该消息队列又分为消息队列和通知队列两部分,消息队列用于存储收发的消息本身,通知队列用于通知各对应终端有新消息到来。多终端登录管理方法的一具体实现实例:用户的各类设备登录或注销时,其接入系统中的对应服务器(rcs即时消息系统中的imas,ott即时消息系统中的ottas,pc系统中的pcas)均需要将设备的登录或注销信息写入用户状态数据库(用户的短信默认在线,用户状态数据库中默认有短信终端信息,除非用户在cs(电路)域已不可达),用户状态数据库向该服务器返回的信息中带有该用户全部登录设备的信息。各系统中的服务器根据数据库返回和设备互斥策略判断是否需要将其他端踢下线,若需要则向该端所在服务器发起注销请求。因为短彩信系统不与其他系统互斥,所以短彩信中心不需要向其他系统发起注销请求。举例步骤如下:(1)用户native终端(号码为138xxxxxxxx)在线,如图6所示,有一个rcsapp安装在native终端上,则此时用户状态数据库内的信息如下表3所示:表3(2)用户用ottapp在终端b(号码为139xxxxxxxx)上登录,如图7所示,ottas为其分配eid1,并将ottapp在终端b登录的信息写入用户状态数据库,用户状态数据库返回当前全部在线终端信息给ottas,ottas根据冲突规则,判断目前不存在冲突,不需要发起注销请求。此时,用户的状态信息如下表4:表4(3)用户ottapp在native终端上登录,如图8所示。ottas为其分配eid2,并将ottapp在终端b登录的信息写入用户状态数据库,用户状态数据库返回当前全部在线终端信息给ottas,ottas根据冲突规则,判断同一终端上存在rcsapp与ottapp2之间的冲突,因此后登录的ottapp2需要将先登录的rcsapp踢下线,因此,ottas通过networkapi调用方式,向rcsas发起注销请求,将rcs即时消息系统中的rcsapp踢下线。此时用户的状态如下表5所示:表5(4)终端注销时,同理。如图9所示。例如,用户pcapp注销,则pcas将此信息写入用户状态数据库,用户状态数据库返回当前全部在线终端信息给pcas,此时终端无冲突,不需要发起注销。此时用户的状态如下表6所示:表6如图10所示,本发明的实施例提供一种多系统中的终端之间通信的方法,包括:步骤101:获取第一类型终端采用第一通信系统进行登录的第一登录状态信息以及第二类型终端采用第二通信系统进行登录的第二登录状态信息,并将所述第一登录状态信息和所述第二登录状态信息存储在用户状态数据库中;所述第一类型终端和所述第二类型终端是基于相同应用的相同帐户进行登录的不同类型的终端;步骤102:将所述第一登录状态信息和第二登录状态信息发送给在后登录的第二类型终端对应的第二通信系统,使所述第二通信系统根据所述第一登录状态信息和第二登录状态信息,以及预先存储的不同类型终端之间的登录冲突规则,确定是否允许所述第二类型终端进行登录;步骤103:获取处于登录状态的发送终端发送的消息,存储在该发送终端的第一消息队列中;其中,所述发送终端发送的消息中具有一标识,所述标识用于标识:该消息是发送终端向与所述发送终端同时处于登录状态且基于相同应用的相同帐户的接收终端发送的;步骤104:从所述用户状态数据库中获取当前处于登录状态的至少一个类型的接收方终端;步骤105:根据所述消息,分别为所述至少一类型的接入方终端的通知队列中写入一个通知消息,并由所述至少一个类型的接收方终端对应的系统服务器,将通知队列中的通知消息分别发送给接收方终端;并进一步的,该方法还可以包括:步骤106:发送终端的第一消息队列向接收方终端的第二消息队列进行消息同步。步骤107:至少一个类型的接收方终端对应的通信系统,将此次更新的消息发送给接收方终端。步骤108:接收方终端在接收到此次更新的消息时,该此次更新的消息如果已经在所述至少一个类型的其它接收方终端上接收过,则该接收方终端进行静默处理。本发明的该实施例中,在短信系统之上设置统一消息队列的方式实现多终端消息收发,其中又可以包括主叫侧的多终端消息发送机制和被叫侧的多终端消息接收机制。主叫侧多终端消息发送机制如下:每个用户(电话号码)具有一个归属的消息队列,作为主队列,非用户归属的另一节点的消息队列作为从队列,与主队列保持同步;主叫发出的消息同时写入自身接收消息队列中,用于实现主叫侧其他端的抄送。消息下发方式与接收方相同,但消息中带有特殊标识,表明这是一条自身的消息。主叫其他终端不形成递送报告消息。如图11所示,主叫侧多终端消息发送流程:①主叫a发送一条消息;②其归属的服务器将消息写入自身的接收消息队列,此消息有特殊标志标明是一条自身发送的消息;③消息队列数据库服务根据a用户状态数据库内的信息,查询用户a有哪些端在线,写入相应通知队列;④通知队列通知相应服务器由新消息;⑤相应服务器从消息队列拉取消息;⑥相应服务器将消息下发给主叫a其他端,其他端根据消息内标志判断这是一条自身发送的消息,显示在发送消息中。因为这些消息不会提示给发送用户,因此虽然发送方用户的其他端都会收到该用户发出的同样的消息记录,但是该用户不需要在自己的各个消息入口之间切换。此后,发送方用户a的消息队列向接收方用户b的消息队列进行消息同步。被叫侧多终端消息接收机流程如下:被叫侧同样采用统一消息队列提供被叫侧多终端消息接收,处理规则如下:同一用户的不同终端设备在一个消息通知队列中分别设置不同的指针,用于标识该终端所取到的消息。若当前被叫用户b状态数据库中,被叫用户b的手机号码的那部手机上除了短信外,没有任何终端在线,即没有通知队列需要被写入时,各服务器获得的用户在线列表也为空,这种状态下,rcsas会将此即时消息拉取过来,并将其转为短信,通过短信方式投递给被叫用户b。因为只有基于电信标准的rcs融合通信即时消息系统具有与电信信令网内的短信交互的能力,因此转短信的功能需要由rcsas完成。若某一设备的指针低于该用户的最高指针,则表明该终端的消息需要进行静默处理。各终端递送报告同样按照消息规则写入消息队列,对于已送达和已读报告,消息队列进行排重处理,只保留第一个递送报告。对于已转短信报告,由imsas单独作为新一条消息写入消息队列,与其他递送报告不做排重处理。如图12所示,被叫侧多终端消息接收流程:首先,完成用户b消息队列写入/同步,以及通知队列写入。根据用户b用户状态数据库查询当前b的在线终端,例如,此时接收方用户b有native和pc客户端,且最新消息的状态如下:流程包括:①通知native和pc客户端有新消息;②imsas获取ims客户端当前指针以后的消息(73-85),将native指针更新到85,最新已读更新到85;③ims服务器采用ims方式推送给rcsnative;④pc客户端上线或用户点击接收消息;⑤pc服务器获取pc客户端当前指针以后的消息(56-85),将pc指针更新到85;⑥pc客户端获取消息前指针55小于最高已读指针85,pc需做静默处理,pcas在下发消息中添加静默标志,即用户其他在线终端虽然仍会收到同样的消息,但是不会提醒用户,用户也不需要在各个消息入口之间来回切换。当用户主动从另一个消息入口进入时,因为之前该入口已经收到过消息,因此仍能看到同样的消息记录。如图13所示,当被叫方只有短信在线时,流程包括:完成用户b消息队列写入/同步,以及通知队列写入。根据用户b用户状态数据库查询当前b的在线终端。且最新消息的状态如下:最新消息85最新已读85rcsnative85rcsapp60ottapp168ottapp23pc85流程如下:①用户状态数据库查询发现发往被叫用户b的手机号码的那部手机上目前所有具有即时消息能力的终端都不在线,则需要通知具有转短信能力的rcsas来拉取新的消息;②rcsas查询目前最新已读到最新消息之间有3条消息(86-88),则将这3条消息拉倒本地,将rcsnative的最新已读指针置为88;③rcsas将这3条消息转为短信,通过7号信令网发往主叫用户的短信中心;④主叫用户的短信中心按照标准短信流程将3条短信发送给被叫用户b。本发明的上述实施例中,多个系统可以是同一运营商拥有的多个不同的即时消息系统以及传统短彩信系统,本发明的上述实施例通过在同一运营商拥有多个不同的即时消息系统以及传统短彩信系统之上设置统一的用户状态数据库,在该数据库中统一存储用户在线端的信息的方式实现多终端的在线状态管理;通过在各即时消息系统和短信系统之上设置统一消息队列的方式,实现多终端之间的消息分发。从而实现了原本相互独立的各个消息系统之间终端在线状态的统一管理;以及实现原本属于各个相互独立的消息系统的多个终端之间的消息分发,不同的终端都可以看到相同的消息记录,但是只有用户当前在操作的终端会对用户进行提示,用户不需要在各个终端之间反复切换,提高了用户体验。对于不同终端,保证都收到全量消息,用户看不同终端时,都可以有完整消息历史,但是,只在用户目前有操作的终端进行声音等提示,其他终端进行静默处理,对于同一终端,只有1个消息入口显示消息(或者是终端native原生消息入口,或者是唯一的一个app消息入口,不需要在各消息入口反复切换)。本发明的实施例还提供一种多系统中的终端之间通信的装置,包括:获取模块,用于获取第一类型终端采用第一通信系统进行登录的第一登录状态信息以及第二类型终端采用第二通信系统进行登录的第二登录状态信息,并将所述第一登录状态信息和所述第二登录状态信息存储在用户状态数据库中;所述第一类型终端和所述第二类型终端是基于相同应用的相同帐户进行登录的不同类型的终端;发送模块,用于将所述第一登录状态信息和第二登录状态信息发送给在后登录的第二类型终端对应的第二通信系统,使所述第二通信系统根据所述第一登录状态信息和第二登录状态信息,以及预先存储的不同类型终端之间的登录冲突规则,确定是否允许所述第二类型终端进行登录。其中,所述登录冲突规则包括:第一类型终端为出厂即可支持即时消息收发并支持安装其它即时消息应用的native的终端,第二类型终端为出厂即可支持即时消息收发但不支持安装其它即时消息应用非native的终端时,两种类型的终端均可同时在线;或者第一类型终端为安装即时消息应用富媒体通信rcsapp1的终端,第二类型终端为安装rcsapp1的终端时,两种类型的终端均可同时在线,但与安装rcsapp2、ottapp1和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;或者第一类型终端为安装即时消息应用富媒体通信rcsapp2的终端,第二类型终端为安装rcsapp2的终端时,两种类型的终端均可同时在线,但与安装rcsapp1、ottapp1和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;或者第一类型终端为安装私有通信协议的即时消息应用ottapp1的终端,第二类型终端为安装ottapp1时,两种类型的终端均可同时在线,但与安装rcsapp1、rcsapp2和ottapp2的终端均不可同时在线,在后登录的将在前登录的踢下线;或者第一类型终端为安装私有通信协议的即时消息应用ottapp2的终端,第二类型终端为安装ottapp2的终端时,两种类型的终端均可同时在线,但与安装rcsapp1、rcsapp2和ottapp1的终端均不可同时在线,在后登录的将在前登录的踢下线;或者第一类型终端为计算机pc1,第二类型终端为计算机pc2时,两种终端不可同时在线,在后登录的将在前登录的踢下线;其中,rcsapp1与所述rcsapp2是基于相同通信协议的不同应用,ottapp1与ottapp2是基于相同通信协议的不同应用,pc1与pc2为不同的计算机。其中,不同类型的终端,用终端标识进行区分:native终端,通过基于会话初始协议的实例sip.instance=imei,获得终端标识;安装rcsapp1终端,通过基于会话初始协议的实例sip.instance=uuid1获得终端标识;安装rcsapp2终端,通过基于会话初始协议的实例sip.instance=uuid2获得终端标识;ottapp1终端,对应的终端标识为eid1;ottapp2终端,对应的终端标识为eid2;pc1终端,对应的终端标识为pcid1;pc2终端,对应的终端标识为pcid2。其中,多系统中的终端之间通信的装置还包括:消息同步模块,用于获取发送终端发送的消息,存储在该发送终端的第一消息队列中;从所述用户状态数据库中获取当前处于登录状态的至少一个类型的接收方终端;根据所述消息,分别为所述至少一类型的接入方终端的通知队列中写入一个通知消息,并由所述至少一个类型的接收方终端对应的系统服务器,将通知队列中的通知消息分别发送给接收方终端。其中,所述消息同步模块还用于:发送终端的第一消息队列向接收方终端的第二消息队列进行消息同步。其中,所述发送终端发送的消息中具有一标识,所述标识用于标识:该消息是发送终端向与所述发送终端同时处于登录状态且基于相同应用的相同帐户的接收终端发送的。其中,多系统中的终端之间通信的装置还包括:至少一个类型的接收方终端对应的通信系统,将此次更新的消息发送给接收方终端。其中,多系统中的终端之间通信的装置还包括:接收方终端在接收到此次更新的消息时,该此次更新的消息如果已经在所述至少一个类型的其它接收方终端上接收过,则该接收方终端进行静默处理。其中,多系统中的终端之间通信的装置还包括:若至少一个类型的接收方终端中,只有出厂即可支持即时消息收发但不支持安装其它即时消息应用的非native终端处于登录状态,则由非native终端采用的通信系统将此次更新的消息转为短信或者彩信,通过短信中心发送给接收方终端。该装置是与上述方法对应的装置,上述方法中所有实现方式均适用于该终端的实施例中,也能达到相同的技术效果。本发明的该装置实施例中,多个系统可以是同一运营商拥有的多个不同的即时消息系统以及传统短彩信系统,本发明的上述实施例通过在同一运营商拥有多个不同的即时消息系统以及传统短彩信系统之上设置统一的用户状态数据库,在该数据库中统一存储用户在线端的信息的方式实现多终端的在线状态管理;通过在各即时消息系统和短信系统之上设置统一消息队列的方式,实现多终端之间的消息分发。从而实现了原本相互独立的各个消息系统之间终端在线状态的统一管理;以及实现原本属于各个相互独立的消息系统的多个终端之间的消息分发,不同的终端都可以看到相同的消息记录,但是只有用户当前在操作的终端会对用户进行提示,用户不需要在各个终端之间反复切换,提高了用户体验。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1