发明内容
为解决上述问题,本发明提供一种网络电话的通信方法及装置,旨在恢复主从式网络出现故障时的网络电话通信。
本发明一具体实施方式中提供的一种网络电话的通信装置,应用于主从式网络与点对点网络中,包括主从式通信模块以及点对点通信模块,主从式通信模块用于通过所述主从式网络的服务器建立所述网络电话的第一电话通信连接,并在每次所述第一电话通信连接建立成功时,将所述网络电话的连接信息存储于所述网络电话的缓存中,点对点通信模块,用于当所述第一电话通信连接建立失败时,在所述网络电话的缓存中查询所述网络电话的连接信息,并根据所述连接信息通过所述点对点网络建立所述网络电话的第二电话通信连接。
优选的,所述点对点通信模块包括查询单元以及连接单元,查询单元用于在所述网络电话的主叫端发送呼叫请求后根据所述呼叫请求在所述主叫端的缓存中查询所述网络电话的被叫端的连接信息,连接单元用于根据所述连接信息通过所述点对点网络建立所述网络电话的第二电话通信连接。
优选的,所述查询单元还用于当在所述主叫端的缓存中查询所述网络电话的被叫端的连接信息失败时,向所述点对点网络的其中一个网络节点发送检索请求,并根据所述检索请求在所述网络节点中查询所述被叫端的连接信息。
优选的,所述点对点通信模块还包括转发单元,转发单元用于当所述查询单元在所述网络节点中查询所述被叫端的连接信息失败时,将所述检索请求依次转发至所述点对点网络的其他网络节点中,所述查询单元还用于根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息。
优选的,所述转发单元还用于将所述检索请求依次转发至所述点对点网络的其他网络节点中之前存储唯一ID于所述网络节点中;所述查询单元还用于在根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之前,在包含所述唯一ID的所述点对点网络的网络节点接收到所述检索请求时丢弃所述检索请求,并在根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之后,将所述唯一ID存储于所述点对点网络中没有所述被叫端连接信息的网络节点中,并根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息。
优选的,所述装置还包括复位单元,用于所述查询单元在所述点对点网络的其他网络节点中查询所述被叫端的连接信息成功后向所述点对点网络发送复位请求,并根据所述复位请求删除所述点对点网络的网络节点中的所述唯一ID。
优选的,所述点对点模块还包括启用单元,所述启用单元用于所述查询单元在所述点对点网络中查询所述被叫端的连接信息失败时,启用一连接所述点对点网络和所述网络电话的被叫端的备援网络。
本发明一具体实施方式中提供的一种网络电话的通信方法,应用于主从式网络与点对点网络中,其特征在于,包括:通过所述主从式网络的服务器建立所述网络电话的第一电话通信连接;每次所述第一电话通信连接建立成功时,将所述网络电话的连接信息存储于所述网络电话的缓存中;其中,当所述第一电话通信连接建立失败时,执行以下步骤:在所述网络电话的缓存中查询所述网络电话的连接信息;以及根据所述连接信息通过所述点对点网络建立所述网络电话的第二电话通信连接。
优选的,所述在所述网络电话的缓存中查询所述网络电话的连接信息具体包括:在所述网络电话的主叫端发送呼叫请求后根据所述呼叫请求在所述主叫端的缓存中查询所述网络电话的被叫端的连接信息。
优选的,所述在所述网络电话的主叫端发送呼叫请求后根据所述呼叫请求在所述主叫端的缓存中查询所述网络电话的被叫端的连接信息之后还包括:当在所述主叫端的缓存中查询所述网络电话的被叫端的连接信息失败时,向所述点对点网络的其中一个网络节点发送检索请求;以及根据所述检索请求在所述网络节点中查询所述被叫端的连接信息。
优选的,所述根据所述检索请求在所述网络节点中查询所述被叫端的连接信息之后还包括:当在所述网络节点中查询所述被叫端的连接信息失败时,执行以下步骤:将所述检索请求依次转发至所述点对点网络的其他网络节点中;以及根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息。
优选的,所述将所述检索请求依次转发至所述点对点网络的其他网络节点中之前还包括:存储唯一ID于所述网络节点中;所述根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之前还包括:在包含所述唯一ID的所述点对点网络的网络节点接收到所述检索请求时丢弃所述检索请求;所述根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之后还包括:将所述唯一ID存储于所述点对点网络中没有所述被叫端连接信息的网络节点中。
优选的,所述根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息,并将所述唯一ID存储于所述点对点网络的其他网络节点中之后还包括:在所述点对点网络的其他网络节点中查询所述被叫端的连接信息成功后向所述点对点网络发送复位请求;以及根据所述复位请求删除所述点对点网络的网络节点中的所述唯一ID。
优选的,所述方法还包括:在所述点对点网络中查询所述被叫端的连接信息失败时启用一连接所述点对点网络和所述被叫端的备援网络。
本发明提供一种网络电话的通信方法及装置,在通过主从式网络的服务器进行网络电话的电话通信时,将所述网络电话的连接信息存储于所述网络电话的缓存中,当出现网络故障时,在所述网络电话的缓存中查询所述网络电话的连接信息以根据所述连接信息通过所述点对点网络建立网络电话通信,恢复了主从式网络出现故障时的网络电话通信。
具体实施方式
下面结合附图,对本发明中的网络电话的通信方法及系统作进一步的详细描述。
请参考图1,是本发明实施例一中网络电话通信方法和装置的系统架构图,本实施例的一种网络电话的通信方法和装置,应用于主从式网络与点对点网络中,主从式网络包括路由器20和设置于网络云端并通过互联网与路由器20进行主从式信息交换的服务器10,点对点网络包括一组点对点连接的网络电话30,其中,一部网络电话30为点对点网络的一个网络节点,每一部网络电话30能同时扮演客户端和服务端的角色,从而使得点对点网络中的每一部网络电话30可以通过其他网络电话30的转接建立连线,单个网络节点的加入和下线不会影响整个点对点网络的运行。点点对点网络中的网络电话30通过路由器20连接主从式网络,从而使得本发明一实施例中网络电话30通信方法的系统架构同时具有主从式网络和点对点网络的特性。
请参考图2,本发明一实施例的一种网络电话的通信装置,包括主从式通信模块40和点对点通信模块50,主从式通信模块40设置于主从式网络中,点对点通信模块50设置于点对点网络中,其中,主从式通信模块40连接路由器20和点对点网络,点对点通信模块50与网络电话30点对点连接。
主从式通信模块40用于通过所述主从式网络的服务器10建立所述网络电话30的第一电话通信连接,并在每次所述第一电话通信连接建立成功时,将所述网络电话30的连接信息存储于所述网络电话30的缓存中。
每次第一电话通信连接建立成功时,主从式通信模块40将所述网络电话30的连接信息存储于所述网络电话30的缓存中。
此时主从式网络的服务器10正常工作,主从式网络的服务器10和网络电话30正常连接,网络电话30通过主从式网络进行网络电话30通信。
点对点通信模块50用于当所述第一电话通信连接建立失败时,在所述网络电话30的缓存中查询所述网络电话30的连接信息,并根据所述连接信息通过所述点对点网络建立所述网络电话30的第二电话通信连接。
请参考图3,其中,点对点通信模块50包括查询单元51以及连接单元52,查询单元51用于在所述网络电话30的主叫端发送呼叫请求后根据所述呼叫请求在所述主叫端的缓存中查询所述网络电话30的被叫端的连接信息,连接单元52用于根据所述连接信息通过所述点对点网络建立所述网络电话30的第二电话通信连接。
网络故障有时是在正在通话的时候出现的,此时在检测到第一电话通信连接断开,主叫端和呼叫端失去连接时,先等待主叫端重新发起呼叫请求,在主叫端重新发起呼叫请求后,主叫端在本地的缓存中查询被叫端的连接信息,由于此时主叫端和被叫端是在通信中出现故障,因此此时主叫端的缓存中存储有被叫端的连接信息,通过所述连接信息便可重新恢复主叫端和被叫端的网络电话30通信。在其他实施例中,也可以在侦测到故障时,自动启动点对点通信方案即时恢复通信,无需等待主叫端重新呼叫。
在本实施例中,所述查询单元51还用于当在所述主叫端的缓存中查询所述网络电话30的被叫端的连接信息失败时,向所述点对点网络的其中一个网络节点发送检索请求,并根据所述检索请求在所述网络节点中查询所述被叫端的连接信息。
在本实施例的网络电话30装置中,网络故障的出现还存在以下情况:
故障是在网络待机的时候出现的,此时没有进行中的网络通话,或者上一个通话已经结束,或者本次网络通话正在呼叫时出现故障,此时可能是新的主叫端呼叫新的被叫端,新的主叫端中还没有存储新的被叫端的连接信息,或者待机时间过长,存储有某个被叫端连接信息的网络电话30的缓存已经被自动清理。
故障在通话中出现,但由于在某些电话会议的时候网络通话时间过长导致主叫端的缓存已被清理,连接信息已经被删除。或者在故障出现后通过在缓存中查询连接信息恢复通话后,此时又需要将新的被叫端加入通话中。
因此此时需要向点对点网络的网络节点发送检索请求以在除了主叫端的其他节点位置查找所述连接信息。
在一些点对点网络的系统架构中,每个网络节点都可以和大部分的其他网络节点进行点对点通信,在点对点网络的其他节点存储有被叫端的连接信息时,此时只需要在点对点网络中的网络节点查询一次便可以获得所述连接信息以建立第二电话通信连接。
请参考图4,在本实施例中,所述点对点通信模块50还包括转发单元53,转发单元53用于当所述查询单元51在所述网络节点中查询所述被叫端的连接信息失败时,将所述检索请求依次转发至所述点对点网络的其他网络节点中。查询单元51还用于根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息。
在另外一些点对点网络的系统架构中,点对点网络的网络节点存在树状分布,某些网络节点只能和部分其他网络节点进行通信,在向点对点网络的一个网络节点查询之后存在查询没有被叫端连接信息的情况,此时需要网络节点转发所述检索请求至其他网络节点继续查收以获得被叫端的连接信息。
其中,转发单元51还用于将所述检索请求依次转发至所述点对点网络的其他网络节点中之前存储唯一ID于所述网络节点中,并根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之前,在包含所述唯一ID的所述点对点网络的网络节点接收到所述检索请求时丢弃所述检索请求,并在根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之后,将所述唯一ID存储于所述点对点网络中没有所述被叫端连接信息的网络节点中。
在点对点网络的网络节点转发检索请求时,存在点对点之间的请求回传,以及有可能同一个网络节点收到多次检索请求的情况。请参考图10和图11,网络节点B将检索请求回传至主叫端A,网络节点C和网络节点D回传至网络节点B,网络节点E将检索请求回传网络节点D。
此时通过生成唯一ID存储于已经执行过查询动作的网络节点中作为标记,存储之后再转发所述检索请求,如果在收到检索请求后发现存在唯一ID证明是第二次收到检索请求,则丢弃所述检索请求不执行查询动作,防止造成循环查询并节省系统资源。
请参考图5,在本实施例中,所述装置还包括复位单元54,复位单元54用于查询单元51在所述点对点网络的其他网络节点中查询所述被叫端的连接信息成功后向所述点对点网络发送复位请求,并根据所述复位请求删除所述点对点网络的网络节点中的所述唯一ID。
唯一ID只针对本次故障发生时的检索请求,在查询得到被叫端的连接信息后需要复位点对点网络以删除唯一ID,以防止干扰下次新的故障出现后的恢复连线过程。
请参考图6,在本实施例中,所述点对点模块还包括启用单元55,启用单元55用于查询单元51在所述点对点网络中查询所述被叫端的连接信息失败时,启用一连接所述点对点网络和所述网络电话的被叫端的备援网络。
在所述点对点网络中查询所述被叫端的连接信息失败后,说明此时点对点网络的网络节点中还没有被叫端的通话记录或者存储有被叫端连接信息的网络节点没有上线,也有可能是被叫端没有加入所述点对点网络中而存在PSTN(Public Switched Telephone Network,公共交换电话网)端,此时架构一备援网络,通过所述备援网络向所述被叫端发送所述连接请求,所述备援网络可通过电信运营商互联,通过电信运营商网络连接主叫端和被叫端以建立跨系统的电话通信。
请同时参考图7、图8和图9,本发明一实施例中网络电话30通信方法,包括以下步骤。
S100:主从式通信模块40通过所述主从式网络的服务器10建立所述网络电话30的第一电话通信连接。
所述主从式网络的服务器10通过互联网提供网络电话30之间的主从式网络电话通信服务,网络电话30可通过路由器20和服务器10建立与其他网络电话30的第一电话通信连接。
在每一次的第一电话通信连接建立的过程中,具体包括以下步骤:
网络电话30作为主叫端接收用户指令发出呼叫请求;
主叫端通过路由器20和互联网连接至服务器10;
服务器10通过互联网和路由器20连接至被叫端;
被叫端回应呼叫请求;
主叫端和被叫端之间交换信息以完成第一电话通信连接的建立,从而使用户进行通话。
S200:点对点通信模块50判断所述第一电话通信是否连接建立成功。成功执行步骤S300,失败进入步骤S400。
S300:成功则点对点通信模块50将所述网络电话30的连接信息存储于所述网络电话30的缓存中,并回到步骤S100中进行通话。
每次第一电话通信连接建立成功时,点对点通信模块50将所述网络电话30的连接信息存储于所述网络电话30的缓存中。
此时主从式网络的服务器10正常工作,主从式网络的服务器10和客户端正常连接,网络电话30通过主从式网络进行网络电话30通信。
为了防止设置于网络云端的服务器10或主从式网络出现故障导致通信中断,在每次所述第一电话通信连接建立成功的时候,在主叫端和被叫端的缓存中分别存储此次连接的对方的连接信息,从而得到有过连线记录的历史资料。其中连接信息为主叫端和被叫端双方的网络位置信息,所述网络位置信息可以是IP地址,也可以是其他的网络位置信息。
当所述第一电话通信连接建立失败时,执行以下步骤。
S400:点对点通信模块50的查询单元51在所述网络电话30的缓存中查询所述网络电话30的连接信息。
S500:点对点通信模块50的连接单元52根据所述连接信息通过所述点对点网络建立所述网络电话30的第二电话通信连接。
此时说明主从式网络电话30通信出现故障,则启用点对点通信方案,通过点对点网络进行网络电话30通信。
由于在故障前的主从式网络电话30通信时,存储过有过网络电话30通信记录的网络电话30的连接信息,说明此时全部或者部分网络电话30缓存中可能存在本次连线需要的连接信息,通过在网络电话30中查询所述连接信息,根据所述连接信息通过所述点对点网络便可以建立新的电话通信连接以取代因故障断开的第一电话通信连接。
在本实施例中,主叫端和被叫端只分别存储对方的连接信息,在其他的实施例中,主叫端和被叫端可以将存储的连接信息广播至点对点网络的其他节点中。
请参考图10,在本实施例中,步骤S400:查询单元51在所述网络电话30的缓存中查询所述网络电话30的连接信息具体包括以下步骤。
S401:查询单元51在所述网络电话30的主叫端A发送呼叫请求后根据所述呼叫请求在所述主叫端A的缓存中查询所述网络电话30的被叫端F的连接信息。
网络故障有时是在正在通话的时候出现的,此时在检测到第一电话通信连接断开,主叫端A和被叫端F失去连接时,先等待主叫端A重新发起呼叫请求,在主叫端A重新发起呼叫请求后,主叫端A在本地的缓存中查询被叫端F的连接信息,由于此时主叫端A和被叫端F是在通信中出现故障,因此此时主叫端A的缓存中存储有被叫端的连接信息,即被叫端F的IP地址,通过所述连接信息便可重新恢复主叫端A和被叫端F的网络电话30通信。在其他实施例中,也可以在侦测到故障时,自动启动点对点通信方案即时恢复通信,无需等待主叫端A重新呼叫。
请同时参考图11,在本实施例中,在步骤S401:查询单元51在所述网络电话30的主叫端发送呼叫请求后根据所述呼叫请求在所述主叫端的缓存中查询所述网络电话30的被叫端的连接信息之后还包括以下步骤。
S402:查询单元51判断在所述主叫端的缓存中查询所述网络电话30的被叫端的连接信息是否成功,成功则进入步骤S500,失败进入步骤S403。
S403:当查询单元51在所述主叫端的缓存中查询所述网络电话30的被叫端的连接信息失败时,向所述点对点网络的其中一个网络节点发送检索请求。
S404:查询单元51根据所述检索请求在所述网络节点中查询所述被叫端的连接信息。
在本实施例的网络电话30通信中,网络故障的出现还存在以下情况:
故障是在网络待机的时候出现的,此时没有进行中的网络通话,或者上一个通话已经结束,或者本次网络通话正在呼叫时出现故障,此时可能是新的主叫端呼叫新的被叫端,新的主叫端中还没有存储新的被叫端的连接信息,或者待机时间过长,存储有某个被叫端连接信息的网络电话30的缓存已经被自动清理。
故障在通话中出现,但由于在某些电话会议的时候网络通话时间过长导致主叫端的缓存已被清理,连接信息已经被删除。或者在故障出现后通过在缓存中查询连接信息恢复通话后,此时又需要将新的被叫端加入通话中。
请参考图12和图13,此时需要向点对点网络的网络节点B发送检索请求以在除了主叫端A的其他节点位置查找所述连接信息。
在一些点对点网络的系统架构中,每个网络节点都可以和大部分的其他网络节点进行点对点通信,在点对点网络的其他节点存储有被叫端的连接信息时,此时只需要在点对点网络中的网络节点查询一次便可以获得所述连接信息以建立第二电话通信连接。
在本实施例中,步骤S404:根据所述检索请求在所述网络节点中查询所述被叫端的连接信息还包括以下步骤。
S405:查询单元51判断在所述网络节点中查询所述被叫端的连接信息是否成功;成功则进入步骤S500,失败进入步骤S407。
S407:当查询单元51在所述网络节点中查询所述被叫端的连接信息失败时,转发单元53将所述检索请求依次转发至所述点对点网络的其他网络节点中。
S410:查询单元51根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息。
在另外一些点对点网络的系统架构中,点对点网络的网络节点存在树状分布,某些网络节点只能和部分其他网络节点进行通信,在向点对点网络的一个网络节点查询之后存在查询没有被叫端连接信息的情况,此时需要网络节点转发所述检索请求至其他网络节点继续查收以获得被叫端的连接信息。
主叫端A中存储有网络节点B的IP地址,主叫端A向网络节点B查询被叫端F的连接信息,此时网络节点B中没有被叫端F的连接信息,主叫端A在网络节点B中查找被叫端F的连接信息失败。
网络节点B将检索请求依次进行转发,网络节点B中存储有主叫端A,网络节点C和网络节点D的IP地址,网络节点B依次将检索请求转发至网络节点C和网络节点D以及回传至主叫端A中,网络节点D中包含网络节点E的IP地址,网络节点D将检索请求转发至网络节点E,网络节点E中存储有被叫端F的连接信息,根据在网络节点E中查询得到的被叫端F的连接信息建立主叫端A和被叫端F的第二电话通信连接。
请参考图14和图15,在实施例三中,步骤S407:将所述检索请求依次转发至所述点对点网络的其他网络节点中之前还包括以下步骤。
S406:查询单元51存储唯一ID于所述网络节点中。
步骤S410:查询单元51根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之前还包括。
S408:查询单元51在判断所述点对点网络中当前查询的网络节点中是否有唯一ID,有则进入步骤S409,没有则进入步骤S410。
S409:查询单元51丢弃所述检索请求。
查询单元51将所述唯一ID存储于所述点对点网络的其他网络节点中,并在包含所述唯一ID的所述点对点网络的网络节点接收到所述检索请求时丢弃所述检索请求。
步骤S410:查询单元51根据所述检索请求在所述点对点网络的其他网络节点中查询所述被叫端的连接信息之后还包括以下步骤。
S411:查询单元51判断在所述点对点网络的其他网络节点中查询所述被叫端的连接信息是否成功,成功则进入步骤S500,失败则回到步骤S406。
在查询单元51每次查询之前判断所述点对点网络中当前查询的网络节点中是否有唯一ID,有则丢弃所述检索请求不进行查询,没有则继续查询,并在查询失败的时候转发单元53继续转发所述检索请求。
在点对点网络的网络节点转发检索请求时,存在点对点之间的请求回传,以及有可能同一个网络节点收到多次检索请求的情况。请参考图11,网络节点B将检索请求回传至主叫端A,网络节点C和网络节点D回传至网络节点B,网络节点E将检索请求回传网络节点D。
此时通过生成唯一ID存储于已经执行过查询动作的网络节点中作为标记,存储之后再转发所述检索请求,如果在收到检索请求后发现存在唯一ID证明是第二次收到检索请求,则丢弃所述检索请求不执行查询动作,防止造成循环查询并节省系统资源。
请参考图16,本实施例的网络电话30通信方法还包括以下步骤。
S412:查询单元51在所述点对点网络的其他网络节点中查询所述被叫端的连接信息成功后复位单元54向所述点对点网络发送复位请求。
S413:复位单元54根据所述复位请求删除所述点对点网络的网络节点中的所述唯一ID。
唯一ID只针对本次故障发生时的检索请求,在查询得到被叫端的连接信息后需要复位点对点网络以删除唯一ID,以防止干扰下次新的故障出现后的恢复连线过程。
请参考图17,本实施例的网络电话30通信方法还包括以下步骤。
查询单元51在所述点对点网络中查询所述被叫端的连接信息失败时启用单元55启用一连接所述点对点网络和所述被叫端的备援网络。
在所述点对点网络中查询所述被叫端的连接信息失败后,说明此时点对点网络的网络节点中还没有被叫端的通话记录或者存储有被叫端连接信息的网络节点没有上线,也有可能是被叫端没有加入所述点对点网络中而存在PSTN端。请参考图12,此时架构一备援网络,通过所述备援网络向所述被叫端G发送所述连接请求,所述备援网络可通过电信运营商互联,通过电信运营商网络连接主叫端A和被叫端G以建立跨系统的电话通信。
本技术领域的普通技术人员应当认识到,以上的实施方式仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围之内,对以上实施方式所作的适当改变和变化都落在本发明要求保护的范围之内。