通话方法及装置
【技术领域】
本申请涉及通信技术领域,尤其涉及一种通话方法及装置。
【背景技术】
随着音视频技术的发展,出现了各种视频通话产品。各种视频通话产品所实现的视频通话过程与传统电话没有差别,也包括通话呼叫阶段和通话阶段。在通话呼叫阶段,通话双方或多方建立呼叫初始会话;在通话阶段,通话双方或多方进行音频、视频信息的相互传输,接收和展现,彼此间达到实时沟通和交流的目的。在视频通话应用中,发起呼叫的用户称为主叫用户,主叫用户进行视频通话使用的设备称为主叫端设备,被呼叫的用户称为被叫用户,被叫用户进行视频通话使用的设备称为被叫端设备。
在实际应用中,主叫用户呼叫被叫用户时,被叫用户可能不在被叫端设备旁边(例如被叫端设备在家,而被叫用户不在家),或者由于其它原因来不及或无法接听,此时,主叫端设备会收到“超时,无人接听”等同的信令,而被叫端设备会有“此主叫端设备在某时间点呼叫我”的历史呼叫记录,可方便被叫用户回呼主叫用户。由此可见,在现有视频通话过程中,存在漏接视频通话的情况。
【发明内容】
本申请的多个方面提供一种通话方法及装置,用以降低漏接通话的概率。
本申请的一方面,提供一种通话方法,包括:
主叫端设备向被叫端设备及与所述被叫端设备绑定的其它通信设备中的至少一个发送通话请求,以请求进行通话;
若所述被叫端设备及与所述被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应,则所述主叫端设备与返回所述通话响应的设备建立通话连接。
本申请的另一方面,提供一种通话方法,包括:
服务器接收主叫端设备发送的用于请求与被叫端设备进行通话的会话建立请求;
所述服务器根据所述会话建立请求,向所述被叫端设备以及与所述被叫端设备绑定的其它通信设备中的至少一个发送通话请求;
若所述被叫端设备以及与所述被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应,所述服务器指示所述主叫端设备与返回所述通话响应的设备建立通话连接。
本申请的又一方面,提供一种通话装置,位于主叫端设备中实现,所述装置包括:
发送模块,用于向被叫端设备及与所述被叫端设备绑定的其它通信设备中的至少一个发送通话请求,以请求进行通话;
连接建立模块,用于在所述被叫端设备及与所述被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应时,则与返回所述通话响应的设备建立通话连接。
本申请的又一方面,提供一种通话装置,位于服务器中实现,所述装置包括:
接收模块,用于接收主叫端设备发送的用于请求与被叫端设备进行通话的会话建立请求;
发送模块,用于根据所述会话建立请求,向所述被叫端设备以及与所述被叫端设备绑定的其它通信设备中的至少一个发送通话请求;
指示模块,用于在所述被叫端设备以及与所述被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应时,指示所述主叫端设备与返回所述通话响应的设备建立通话连接。
在本申请中,预先为被叫端设备绑定其它通信设备,当主叫端设备需要与被叫端设备进行通话时,向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求,当被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个有返回通话响应时,主叫端设备与返回通话响应的设备建立通话连接,从而进行通话。由此可见,由于为被叫端设备绑定了其它通信设备,若用户不方便或无法通过被叫端设备接听通话,则可以采用与被叫端设备绑定的其它通信设备来接听,这相当于为被叫用户接听通话提供了更多选择,有利于降低漏接通话的概率。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一实施例提供的通话系统的结构示意图;
图2为本申请一实施例提供的通话方法的流程示意图;
图3为本申请一实施例提供的通话提示方式的示意图;
图4为本申请另一实施例提供的通话系统的结构示意图;
图5为本申请另一实施例提供的通话方法的流程示意图;
图6为本申请又一实施例提供的通话方法的流程示意图;
图7为本申请又一实施例提供的通话方法的流程示意图;
图8为本申请一实施例提供的通话装置的结构示意图;
图9为本申请另一实施例提供的通话装置的结构示意图;
图10为本申请又一实施例提供的通话装置的结构示意图;
图11为本申请又一实施例提供的通话装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
现有视频通话流程主要包括:视频通话呼叫阶段:主叫端设备向被叫端设备发起视频通话请求,以请求进行视频通话;视频通话阶段:被叫端设备接通视频通话,进入视频通话阶段,主叫端设备和被叫端设备进行视频通话。
在实际应用中,主叫用户呼叫被叫用户时,被叫用户可能不在被叫端设备旁边(例如被叫端设备在家,而被叫用户不在家),或者由于其它原因来不及或无法接听,此时,主叫端设备会收到“超时,无人接听”等同的信令,而被叫端设备会有“此主叫端设备在某时间点呼叫我”的历史呼叫记录,方便被叫用户回呼主叫用户。由此可见,在现有视频通话过程中,存在漏接视频通话的情况。
针对上述问题,本申请提供一种解决方案,该解决方案不仅仅用于视频通话场景中解决漏接视频通话的问题,实际上该解决方案可用于各种通话场景中解决漏接通话的问题。该解决方案的主要思路为:预先为被叫端设备绑定其它通信设备,主叫用户需要与被叫用户进行通话时,通过主叫端设备向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求,当被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个有返回通话响应时,主叫端设备与返回通话响应的设备建立通话连接,从而进行通话。由此可见,由于为被叫端设备绑定了其它通信设备,若被叫用户不方便或无法通过被叫端设备接听通话,则可以采用与被叫端设备绑定的其它通信设备来接听,这相当于为被叫用户接听通话提供了更多选择,有利于降低漏接通话的概率。
例如,假设被叫端设备为电视,电视一般位于被叫用户家中,被叫用户经常不在家中,为避免漏接通话,本实施例预先为电视绑定了被叫用户的手机,对被叫用户来说,手机一般会随身携带。由此可见,当主叫用户呼叫被叫用户时,主叫端设备分别向被叫用户的电视和与该电视绑定的手机发起了通话请求,若被叫用户不方便通过电视接听通话,则可以通过随身携带的手机接听该通话,这样可以降低因被叫用户不在被叫端设备旁边导致漏接通话的概率。
又例如,假设被叫端设备为电视,电视一般位于被叫用户家中,为避免因被叫用户不在家中而漏接通话,本实施例预先为电视绑定了被叫用户工作使用的电脑,对被叫用户来说,一般非节假日时间都会在公司,位于电脑旁边。由此可见,当主叫用户呼叫被叫用户时,主叫端设备分别向被叫用户的电视和与该电视绑定的电脑发起通话请求,若被叫用户不方便通过电视接听通话,则可以通过身旁的电脑接听该通话,这样可以降低因被叫用户不在被叫端设备旁边导致漏接通话的概率。
再例如,假设被叫端设备为固定电话,该固定电话位于公司中,用于接听或拨打与工作相关的通话,当被叫用户在家中时,一般无法接听该固定电话的通话,为避免漏接通话,本实施例预先为该固定电话绑定被叫用户的个人手机、位于家中的电视和电脑。这样,当主叫用户呼叫被叫用户时,主叫端设备分别向被叫用户公司的固定电话、与该固定电话绑定的手机、电视和电脑发起通话请求,若被叫用户不方便通过固定电话接听通话,则可以通过身旁的手机、电视或电脑来接听该通话,这样可以降低因被叫用户不在被叫端设备旁边导致漏接通话的概率。
在一种应用场景中,通话系统包括主叫端设备、被叫端设备及与被叫端设备绑定的其它通信设备。
在另一种应用场景中,通话系统包括主叫端设备、服务器、被叫端设备及与被叫端设备绑定的其它通信设备。
本申请以下方法实施例将分别从上述两种通话系统的角度,对本申请技术方案做详细说明。
图1为本申请一实施例提供的通话系统的结构示意图。图1所示通话系统包括:主叫端设备、被叫端设备和与被叫端设备绑定的其它通信设备。
其中,主叫端设备可以是各种具有通话功能(例如安装有通话软件)的设备,例如可以是手机、固定电话、笔记本电脑、平板电脑或台式电脑等。相应的,被叫端设备也可以是各种具有通话功能的设备,例如可以是手机、固定电话、笔记本电脑、平板电脑或台式电脑等。另外,与被叫端设备绑定的其它通信设备也可以是各种具有通话功能的设备,例如可以是手机、固定电话、笔记本电脑、平板电脑或台式电脑等。
在本实施例中,不限定与被叫端设备绑定的其它通信设备的类型及个数。例如,与被叫端设备绑定的其它通信设备可以是一个或多个。
图2为本申请一实施例提供的通话方法的流程示意图。该方法可基于图1所示视频通信系统实现。如图2所示,该方法包括:
201、主叫端设备向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求,以请求进行通话。
202、若被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应,则主叫端设备与返回通话响应的设备建立通话连接。
具体的,主叫用户希望与被叫用户进行通话时,主叫端设备向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求,以请求进行通话。可选的,在被叫端设备以及其它通信设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。关于通话提示的具体实现,不同产品在实现上并不相同。在图3中,接听按钮用于供被叫用户接通通话;挂断按钮用于供被叫用户挂断通话。
若被叫用户通过被叫端设备及与该被叫端设备绑定的其它通信设备中的某个设备接通通话时,该设备会向主叫端设备返回通话响应;主叫端设备在接收到通话响应时,与返回该通话响应的设备建立通话连接,以进入通话阶段。
其中,主叫端设备向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求之前,主叫端设备需要确定被叫端设备,并确定与该被叫端设备绑定的其它通信设备。
在一种确定与该被叫端设备绑定的其它通信设备的实施方式中,服务器预先存储被叫端设备及与被叫端设备绑定的其它通信设备的绑定关系,例如服务器上存储被叫端设备的标识,并对应存储与被叫端设备绑定的其它通信设备的标识。基于此,主叫端设备向服务器发送信息获取请求,该信息获取请求包括被叫端设备的标识,用于向服务器请求与该被叫端设备绑定的其它通信设备的标识;服务器接收主叫端设备发送的信息获取请求,从信息获取请求中获取被叫端设备的标识,进而从所存储的绑定关系中,获取与被叫端设备绑定的其它通信设备的标识,并将所获取的标识返回给主叫端设备;主叫端设备接收服务器返回的与被叫端设备绑定的其它通信设备的标识,进而确定与被叫端设备绑定的其它通信设备。
在另一种确定与该被叫端设备绑定的其它通信设备的实施方式中,主叫端设备预先存储被叫端设备及与被叫端设备绑定的其它通信设备的绑定关系,例如主叫端设备上存储被叫端设备的标识,并对应存储与被叫端设备绑定的其它通信设备的标识。基于此,主叫端设备可以根据被叫端设备的标识,直接从本地存储的绑定关系中,获取与该被叫端设备绑定的其它通信设备的标识,进而确定与被叫端设备绑定的其它通信设备。
值得说明的是,根据被叫端设备及与被叫端设备绑定的其它通信设备的不同,所述标识也会有所不同。例如,若被叫端设备或与该被叫端设备绑定的其它通信设备为手机,则所述标识可以是手机号码、IMEI或SIM卡的IMSI等。又例如,若被叫端设备或与该被叫端设备绑定的其它通信设备为电脑,则所述标识可以是IP地址、MAC地址、机器名或设备码等。
在一可选实施方式中,在确定被叫端设备及与被叫端设备绑定的其它通信设备后,主叫端设备可以不关心被叫端设备及与被叫端设备绑定的其它通信设备是处于在线状态还是处于离线状态,而是分别向被叫端设备及与被叫端设备绑定的其它通信设备发送通话请求,以请求进行通话。
在上述实施方式中,若被叫端设备及与被叫端设备绑定的其它通信设备中有一个设备处于在线状态,则这个处于在线状态的设备会接收到通话请求,并且在这个处于在线状态的设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。若被叫用户根据该通话提示,选择接通通话,则这个处于在线状态的设备会向主叫端设备返回通话响应。主叫端设备与该返回通话响应的设备建立通话连接,以进入通话阶段。其中,这个处于在线状态的设备可以是被叫端设备,也可以是与被叫端设备绑定的其它通信设备中的一个。
在上述实施方式中,若被叫端设备及与被叫端设备绑定的其它通信设备中有两个或两个以上设备处于在线状态,则每个处于在线状态的设备都会接收到通话请求,并且在每个处于在线状态的设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。若被叫用户根据该通话提示,选择某个处于在线状态的设备来接通通话,则该设备会向主叫端设备返回通话响应。主叫端设备与该返回通话响应的设备建立通话连接,以进入通话阶段。其中,这里两个或两个以上处于在线状态的设备可以包括被叫端设备,也可以不包括被叫端设备。
在上述实施方式中,主叫端设备不需要关心被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态,直接向所有设备发送通话请求,有利于提高通话效率,并且可以减轻主叫端设备的处理负担。
在另一可选实施方式中,在确定被叫端设备及与被叫端设备绑定的其它通信设备后,主叫端设备关心被叫端设备及与被叫端设备绑定的其它通信设备是处于在线状态还是处于离线状态,进而根据被叫端设备及与被叫端设备绑定的其它通信设备的状态来进行通话请求的发送。
具体的,主叫端设备判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态;主叫端设备向被叫端设备及与被叫端设备绑定的其它通信设备中处于在线状态的设备发送通话请求,以请求进行通话。
在一种判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态的实施方式中,主叫端设备分别向被叫端设备及与被叫端设备绑定的其它通信设备发送探测消息,该探测消息要求接收方在指定时间内返回探测响应,若在指定时间内返回探测响应,意味着探测消息的接收方处于在线状态;对于被叫端设备及与该被叫端设备绑定的其它通信设备来说,若处于在线状态,会接收到主叫端设备发送的探测消息,并且会在指定时间内返回探测响应。若被叫端设备及与该被叫端设备绑定的其它通信设备中有在指定时间内返回探测响应,则主叫端设备会在发送探测消息之后的指定时间内接收到探测响应,于是确定返回探测响应的设备处于在线状态。其中,处于在线状态的设备可以是一个或多个。处于在线状态的设备可以包括被叫端设备,也可以不包括被叫端设备(即处于在线状态的设备全部是与该被叫端设备绑定的其它通信设备)。
上述探测消息具体可以是保活消息(keepalive Message)或心跳消息(HeartbeatMessage)。
根据应用场景的不同,上述指定时间的长度可以适应性设置。举例说明,上述指定时间可以是5秒、10秒、30秒、1分钟、3分钟等等。
主叫端设备在确定出被叫端设备及与该被叫端设备绑定的其它通信设备中处于在线状态的设备后,向处于在线状态的设备发送通话请求,以请求进行通话。对于每个处于在线状态的设备都会接收到通话请求,并且在每个处于在线状态的设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。若被叫用户根据该通话提示,选择某个处于在线状态的设备来接通通话,则该设备会向主叫端设备返回通话响应。主叫端设备与该返回通话响应的设备建立通话连接,以进入通话阶段。
在该实施方式中,主叫端设备关心被叫端设备及与该被叫端设备绑定的其它通信设备是否处于在线状态,并仅向被叫端设备及与该被叫端设备绑定的其它通信设备中处于在线状态的设备发送通话请求,这样可以减少发送通话请求的个数,有利于节约发送通话请求所消耗的资源。
图4为本申请另一实施例提供的通话系统的结构示意图。如图4所示,该通话系统包括:主叫端设备、服务器、被叫端设备以及与被叫端设备绑定的其它通信设备。在该系统中,主叫端设备和被叫端设备之间的交互,以及主叫端设备和与被叫端设备绑定的其它通信设备之间的交互均通过服务器来实现。
其中,主叫端设备可以是各种具有通话功能(例如安装有通话软件)的设备,例如可以是手机、固定电话、笔记本电脑、平板电脑或台式电脑等。相应的,被叫端设备也可以是各种具有通话功能的设备,例如可以是手机、固定电话、笔记本电脑、平板电脑或台式电脑等。另外,与被叫端设备绑定的其它通信设备也可以是各种具有通话功能的设备,例如可以是手机、固定电话、笔记本电脑、平板电脑或台式电脑等。
在本实施例中,不限定与被叫端设备绑定的其它通信设备的类型及个数。例如,与被叫端设备绑定的其它通信设备可以是一个或多个。
基于图4所示通话系统实现的通话方法的流程如图5和图6所示。图5所示为从主叫端设备角度进行描述的通话方法的流程。图6所示为从服务器角度进行描述的通话方法的流程。
其中,图5所示方法包括:
501、主叫端设备向服务器发送用于请求与被叫端设备进行通话的会话建立请求,以指示服务器向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
502、若被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应,则主叫端设备根据服务器的指示,与返回所述通话响应的设备建立通话连接。
其中,图6所示方法包括:
601、服务器接收主叫端设备发送的用于请求与被叫端设备进行通话的会话建立请求。
602、服务器根据会话建立请求,向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
603、若被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应,则服务器指示主叫端设备与返回通话响应的设备建立通话连接。
具体的,主叫用户希望与被叫用户进行通话时,主叫端设备向服务器发送会话建立请求,该会话建立请求用于指示与被叫端设备进行通话,同时用于指示服务器向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。会话建立请求会携带被叫端设备的标识,用于标识被叫端设备。
对服务器来说,接收主叫端设备发送的会话建立请求,从会话建立请求中获取被叫端设备的标识,进而确定被叫端设备,并且根据会话建立请求获知主叫端设备需要与被叫端设备进行通话,于是向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。可选的,在被叫端设备以及其它通信设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。关于通话提示的具体实现,不同产品在实现上并不相同。在图3中,接听按钮用于供被叫用户接通通话;挂断按钮用于供被叫用户挂断通话。
若被叫用户通过被叫端设备及与该被叫端设备绑定的其它通信设备中的某个设备接通通话时,该设备会向服务器返回通话响应;服务器在接收到通话响应时,指示主叫端设备与返回通话响应的设备建立通话连接,以进入通话阶段。对主叫端设备来说,根据服务器的指示,与返回通话响应的设备建立通话连接。
例如,服务器可以将通话响应转发给主叫端设备,以使主叫端设备与返回通话响应的设备建立通话连接。或者,服务器可以将返回通话响应的设备的标识发送给主叫端设备,以使主叫端设备根据该标识与返回通话响应的设备建立通话连接;主叫端设备根据服务器返回的标识,向该标识所标识的设备(即返回通话响应的设备)发送连接建立请求,并接收该标识所标识的设备返回的连接建立响应,从而与该标识所标识的设备建立通话连接。
进一步,若被叫端设备及与被叫端设备绑定的其它通信设备中仅有一个设备针对通话请求返回通话响应,则服务器直接指示主叫端设备与该返回通话响应的设备建立通话连接。换句话说,若返回通话响应的设备为一个,则主叫端设备可以根据服务器的指示,与该返回通话响应的设备建立通话连接。
若被叫端设备及与被叫端设备绑定的其它通信设备中仅有至少两个设备针对通话请求返回通话响应,即返回通话响应的设备为至少两个,则服务器直接指示主叫端设备与至少两个返回通话响应的设备中的一个设备建立通话连接。换句话说,若返回通话响应的设备为至少两个,则主叫端设备可以根据服务器的指示,与至少两个返回通话响应的设备中的一个设备建立通话连接。
优选的,服务器可以根据通话响应到达服务器的先后顺序,选择返回最先到达的通话响应的设备,指示主叫端设备与该返回最先到达的通话响应的设备建立通话连接。对于后到达的通话响应,服务器可以将其忽略。
在一可选实施方式中,服务器在接收主叫端设备发送的会话建立请求之后,确定是否可以向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求,并在确定可以向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求后,向主叫端设备发送会话建立响应。对主叫端设备来说,在向服务器发送会话建立请求之后,还可以接收服务器在确定可以向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求后返回的会话建立响应。
例如,服务器可以通过判断是否能够获取到与被叫端设备绑定的其它通信设备的标识,来判断是否可以向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求。若能够获取到与被叫端设备绑定的其它通信设备的标识,则确定可以向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求。若无法获取到与被叫端设备绑定的其它通信设备的标识,则确定无法向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
在一种实施方式中,服务器在本地存储被叫端设备和与该被叫端设备绑定的其它通信设备的绑定关系,该绑定关系包括被叫端设备的标识和与该被叫端设备绑定的其它通信设备的标识。基于此,服务器可以判断本地是否存储有被叫端设备和与该被叫端设备绑定的其它通信设备的绑定关系,若判断结果为是,则确定可以向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求;反之,则确定无法向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
对主叫端设备来说,可以根据该会话建立响应了解到此次通话能否继续进行的信息。
在一可选实施方式中,在确定可以向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求后,服务器可以不关心被叫端设备及与被叫端设备绑定的其它通信设备是处于在线状态还是处于离线状态,而是分别向被叫端设备及与被叫端设备绑定的其它通信设备发送通话请求。
在上述实施方式中,若被叫端设备及与被叫端设备绑定的其它通信设备中有一个设备处于在线状态,则这个处于在线状态的设备会接收到通话请求,并且在这个处于在线状态的设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。若被叫用户根据该通话提示,选择接通通话,则这个处于在线状态的设备会向服务器返回通话响应。服务器指示主叫端设备与该返回通话响应的设备建立通话连接,以进入通话阶段。其中,这个处于在线状态的设备可以是被叫端设备,也可以是与被叫端设备绑定的其它通信设备中的一个。
在上述实施方式中,若被叫端设备及与被叫端设备绑定的其它通信设备中有两个或两个以上设备处于在线状态,则每个处于在线状态的设备都会接收到服务器发送的通话请求,并且在每个处于在线状态的设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。若被叫用户根据该通话提示,选择某个处于在线状态的设备来接通通话,则该设备会向服务器返回通话响应。服务器指示主叫端设备与该返回通话响应的设备建立通话连接,以进入通话阶段。若被叫用户根据该通话提示,选择至少两个处于在线状态的设备来接通通话,则每个被选择的设备都向服务器返回通话响应。服务器从返回通话响应的多个设备中选择一个,并指示主叫端设备与所选择的该设备建立通话连接。例如,可以选择返回最先到达服务器的通话响应的设备与主叫端设备建立通话连接。其中,这里两个或两个以上处于在线状态的设备可以包括被叫端设备,也可以不包括被叫端设备。
在此说明,在接收到通话请求的设备一端,被叫用户接通通话的过程,与向服务器返回通话响应的过程可以是同一过程,也可以是不同的过程。
在上述实施方式中,服务器不需要关系被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态,直接向所有设备发送通话请求,有利于提高通话效率,并且可以减轻服务器的处理负担。
在另一可选实施方式中,在确定可以向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求后,服务器关心被叫端设备及与被叫端设备绑定的其它通信设备是处于在线状态还是处于离线状态,进而根据被叫端设备及与被叫端设备绑定的其它通信设备的状态来进行通话请求的发送。
具体的,服务器判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态;服务器向被叫端设备及与被叫端设备绑定的其它通信设备中处于在线状态的设备发送通话请求。
在一种判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态的实施方式中,服务器分别向被叫端设备及与被叫端设备绑定的其它通信设备发送探测消息,该探测消息要求接收方在指定时间内返回探测响应,若在指定时间内返回探测响应,意味着探测消息的接收方处于在线状态;对于被叫端设备及与该被叫端设备绑定的其它通信设备来说,若处于在线状态,会接收到服务器发送的探测消息,并且会在指定时间内返回探测响应。若被叫端设备及与该被叫端设备绑定的其它通信设备中有在指定时间内返回探测响应,则服务器会在发送探测消息之后的指定时间内接收到探测响应,于是确定返回探测响应的设备处于在线状态。其中,处于在线状态的设备可以是一个或多个。处于在线状态的设备可以包括被叫端设备,也可以不包括被叫端设备(即处于在线状态的设备全部是与该被叫端设备绑定的其它通信设备)。
上述探测消息具体可以是保活消息(keepalive Message)或心跳消息(HeartbeatMessage)。
根据应用场景的不同,上述指定时间的长度可以适应性设置。举例说明,上述指定时间可以是5秒、10秒、30秒、1分钟、3分钟等等。
服务器在确定出被叫端设备及与该被叫端设备绑定的其它通信设备中处于在线状态的设备后,向处于在线状态的设备发送通话请求。对于每个处于在线状态的设备都会接收到通话请求,并且在每个处于在线状态的设备一端会有通话提示,例如通话提示的一种方式可如但不限于图3所示。若被叫用户根据该通话提示,选择某个处于在线状态的设备来接通通话,则该设备会向服务器返回通话响应。服务器指示主叫端设备与该返回通话响应的设备建立通话连接,以进入通话阶段。若被叫用户根据该通话提示,选择至少两个处于在线状态的设备来接通通话,则每个被选择的设备都向服务器返回通话响应。服务器从返回通话响应的多个设备中选择一个,并指示主叫端设备与所选择的该设备建立通话连接。例如,可以选择返回最先到达服务器的通话响应的设备与主叫端设备建立通话连接。
在该实施方式中,服务器关心被叫端设备及与该被叫端设备绑定的其它通信设备是否处于在线状态,并仅向被叫端设备及与该被叫端设备绑定的其它通信设备中处于在线状态的设备发送通话请求,这样可以减少发送通话请求的个数,有利于节约发送通话请求所消耗的资源。
图7为本申请又一实施例提供的通话方法的流程示意图。如图7所示,该方法包括:
7a、主叫端设备向服务器发送标识分配请求。
7b、服务器根据标识分配请求,为主叫端设备分配标识,并将分配的标识发送给主叫端设备。
7c、被叫端设备向服务器发送标识分配请求。
7d、服务器根据标识分配请求,为被叫端设备分配标识,并将分配的标识发送给被叫端设备。
7e、需要与被叫端设备绑定的其它通信设备向服务器发送标识分配请求。
7f、服务器根据标识分配请求,为需要与被叫端设备绑定的其它通信设备分配标识,并将分配的标识发送给需要与被叫端设备绑定的其它通信设备。
上述步骤7a-7f主要描述了服务器接收主叫端设备、被叫端设备及需要与被叫端设备绑定的其它通信设备发送的标识分配请求;根据标识分配请求,分别为主叫端设备、被叫端设备及需要与被叫端设备绑定的其它通信设备分配标识的过程。
其中,服务器为主叫端设备、被叫端设备以及需要与被叫端设备绑定的其它通信设备分配的标识具有唯一性,可以唯一标识相应设备。例如,为主叫端设备分配的标识可以为11223344,为被叫端设备分配的标识为11223355;为其它通信设备分配的标识为11223366。
7g、被叫端设备向服务器发送绑定请求,该绑定请求包括需要与被叫端设备绑定的其它通信设备的标识。
对服务器来说,接收被叫端设备发送的绑定请求。
7h、服务器将被叫端设备与需要与被叫端设备绑定的其它通信设备进行绑定,并在本地存储被叫端设备与需要与被叫端设备绑定的其它通信设备的标识。
7i、主叫端设备向服务器发送会话建立请求,该会话建立请求携带有被叫终端设备的标识,用于指示主叫端设备需要与被叫端设备进行通话。
7j、服务器向主叫端设备返回会话建立响应。
7k、服务器根据会话建立请求,向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
步骤7k的具体实现方式可参见前述实施例。
7l、被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个中接收到通话请求的设备向服务器返回通话响应。
本实施例以分别向被叫端设备以及与被叫端设备绑定的其它通信设备发送通话请求,并且被叫端设备以及与被叫端设备绑定的其它通信设备均返回通话响应为例。
7m、服务器接收到通话响应后,指示主叫端设备与返回通话响应的设备建立通话连接。
当接收到多个通话响应时,服务器指示主叫端设备与最先返回通话响应的设备建立通话连接。
在该实施方式中,可以将服务器为主叫端设备、被叫端设备以及与被叫端设备绑定的其它通信设备分配标识的过程称为标识分配阶段。可选的,在标识分配阶段,服务器可以分别与被叫端设备及与被叫端设备绑定的其它通信设备建立的长连接。所谓长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包,以保持该连接。
基于此,服务器判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态的又一种实施方式包括:
服务器判断在标识分配阶段分别与被叫端设备及与被叫端设备绑定的其它通信设备建立的长连接是否处于保持状态;确定处于保持状态的长连接对应的设备处于在线状态。若服务器和被叫端设备之间的长连接处于保持状态,则确定被叫端设备处于在线状态。若服务器和与被叫端设备绑定的其它通信设备之间的长连接处于保持状态,则确定与被叫端设备绑定的其它通信设备处于在线状态。
这种判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态的实施方式要求服务器与被叫端设备及与被叫端设备绑定的其它通信设备之间建立长连接,对服务器的并发性能有一定影响,但可以及时方便的判断出被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态,判断效率较高。
在上述实施例或实施方式中,预先为被叫端设备绑定其它通信设备,当主叫端设备需要与被叫端设备进行通话时,通过服务器向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求,当被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个有返回通话响应时,主叫端设备根据服务器的指示,与返回通话响应的设备建立通话连接,从而进行通话。由此可见,由于为被叫端设备绑定了其它通信设备,若用户不方便或无法通过被叫端设备接听通话,则可以采用与被叫端设备绑定的其它通信设备来接听,这相当于为被叫用户接听通话提供了更多选择,有利于降低漏接通话的概率。另外,在上述实施例或实施方式中,主要的通话逻辑都由服务器来完成,可以最大限度处理并发能力和响应同步,而主叫端设备及被叫端设备等的实现逻辑相对简单,对其软硬件性能要求较低。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
图8为本申请一实施例提供的通话装置的结构示意图。该通话装置可位于主叫端设备中实现,如图8所示,该装置包括:发送模块81和连接建立模块82。
发送模块81,用于向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求,以请求进行通话。
连接建立模块82,用于在被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应时,则与返回通话响应的设备建立通话连接。
在一可选实施方式中,如图9所示,该通话装置还包括:第一接收模块83。
发送模块81还用于:在向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求之前,向服务器发送信息获取请求,信息获取请求包括被叫端设备的标识。
基于上述,第一接收模块83,用于接收服务器返回的与被叫端设备绑定的其它通信设备的标识。
在一可选实施方式中,发送模块81具体用于:分别向被叫端设备及与被叫端设备绑定的其它通信设备发送通话请求,以请求进行通话。
在一可选实施方式中,如图9所示,该通话装置还包括:判断模块84。
判断模块84,用于判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态。
基于上述判断模块84,发送模块81具体用于:向判断模块84判断出的被叫端设备及与被叫端设备绑定的其它通信设备中处于在线状态的设备发送通话请求,以请求进行通话。
可选的,判断模块84具体可用于:分别向被叫端设备及与被叫端设备绑定的其它通信设备发送探测消息;当被叫端设备及与被叫端设备绑定的其它通信设备中有在指定时间内返回探测响应时,确定返回探测响应的设备处于在线状态。
在一可选实施方式中,发送模块81具体可用于:向服务器发送用于请求与被叫端设备进行通话的会话建立请求,以指示服务器向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
基于上述,如图9所示,该装置还包括:第二接收模块85。
第二接收模块85,用于接收服务器在确定可以向被叫端设备及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求后返回的会话建立响应。
基于上述,连接建立模块82具体用于:根据服务器的指示,与返回通话响应的设备建立通话连接。
进一步,连接建立模块82具体用于:在返回通话响应的设备为至少两个时,根据服务器的指示,与至少两个返回通话响应的设备中的一个设备建立通话连接。
在一可选实施方式中,发送模块81还用于在向服务器发送会话建立请求之前,向服务器发送标识分配请求。相应的,第二接收模块85还用于:接收服务器发送的为主叫端设备分配的标识。
本实施例提供的通话装置,位于主叫端设备中实现,支持预先为被叫端设备绑定其它通信设备,当需要与被叫端设备进行通话时,向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求,当被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个有返回通话响应时,与返回通话响应的设备建立通话连接,从而进行通话。由此可见,由于为被叫端设备绑定了其它通信设备,若用户不方便或无法通过被叫端设备接听通话,则可以采用与被叫端设备绑定的其它通信设备来接听,这相当于为被叫用户接听通话提供了更多选择,有利于降低漏接通话的概率。
图10为本申请又一实施例提供的通话装置的结构示意图。该通话装置位于服务器中实现,如图10所示,该装置包括:接收模块1001、发送模块1002和指示模块1003。
接收模块1001,用于接收主叫端设备发送的用于请求与被叫端设备进行通话的会话建立请求。
发送模块1002,用于根据接收模块1001接收的会话建立请求,向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求。
指示模块1003,用于在被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个中有返回通话响应时,指示主叫端设备与返回通话响应的设备建立通话连接。
其中,接收模块1001还用于接收返回的通话响应。接收模块1001还与指示模块1003连接,用于向指示模块1003提供返回通话响应的设备信息。
在一可选实施方式中,发送模块1002还用于:在确定可以向被叫端设备以及与被叫端设备绑定的其它通信设备中的至少一个发送通话请求后,向主叫端设备发送会话建立响应。
在一可选实施方式中,发送模块1002具体用于:分别向被叫端设备及与被叫端设备绑定的其它通信设备发送通话请求。
在一可选实施方式中,如图11所示,该通话装置还包括:判断模块1004。
判断模块1004,用于判断被叫端设备及与被叫端设备绑定的其它通信设备是否处于在线状态。
基于上述判断模块1004,发送模块1002具体用于:向判断模块1004判断出的被叫端设备及与被叫端设备绑定的其它通信设备中处于在线状态的设备发送通话请求。
可选的,判断模块1004具体用于:分别向被叫端设备及与被叫端设备绑定的其它通信设备发送探测消息;若被叫端设备及与被叫端设备绑定的其它通信设备中有在指定时间内返回探测响应,则确定返回探测响应的设备处于在线状态。
可选的,判断模块1004具体用于:判断在标识分配阶段分别与被叫端设备及与被叫端设备绑定的其它通信设备建立的长连接是否处于保持状态;确定处于保持状态的长连接对应的设备处于在线状态。
在一可选实施方式中,如图11所示,该通话装置还包括:分配模块1005。
接收模块1001还用于:在接收会话建立请求之前,接收主叫端设备、被叫端设备及需要与被叫端设备绑定的其它通信设备发送的标识分配请求。
分配模块1005用于根据接收模块1001接收的标识分配请求,分别为主叫端设备、被叫端设备及需要与被叫端设备绑定的其它通信设备分配标识。
在一可选实施方式中,如图11所示,该通话装置还包括:绑定模块1006。
接收模块1001还用于:接收被叫端设备发送的绑定请求,绑定请求包括需要与被叫端设备绑定的其它通信设备的标识。
绑定模块1006,用于根据接收模块1001接收的绑定请求,将被叫端设备与需要与被叫端设备绑定的其它通信设备进行绑定。
本实施例提供的通话装置,位于服务器中实现,通过与主叫端设备、被叫端设备及与被叫端设备绑定的其它通信设备相配合,当主叫端设备需要与被叫端设备进行通话时,根据主叫端设备的会话建立请求,向被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个发送通话请求,当被叫端设备及与该被叫端设备绑定的其它通信设备中的至少一个有返回通话响应时,指示主叫端设备根据服务器的指示,与返回通话响应的设备建立通话连接,从而进行通话。由此可见,由于为被叫端设备绑定了其它通信设备,若用户不方便或无法通过被叫端设备接听通话,则可以采用与被叫端设备绑定的其它通信设备来接听,这相当于为被叫用户接听通话提供了更多选择,有利于降低漏接通话的概率。另外,在上述实施例或实施方式中,主要的通话逻辑都由本实施例的通话装置来完成,可以最大限度处理并发能力和响应同步,而主叫端设备及被叫端设备等的实现逻辑相对简单,对其软硬件性能要求较低。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。