CN109889405B - 一种网络电话的通信方法、相关装置及系统 - Google Patents
一种网络电话的通信方法、相关装置及系统 Download PDFInfo
- Publication number
- CN109889405B CN109889405B CN201910105497.6A CN201910105497A CN109889405B CN 109889405 B CN109889405 B CN 109889405B CN 201910105497 A CN201910105497 A CN 201910105497A CN 109889405 B CN109889405 B CN 109889405B
- Authority
- CN
- China
- Prior art keywords
- user
- point
- room
- established
- communication channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本申请实施例公开了一种网络电话的通信方法、相关装置及系统,包括:在第一用户加入虚拟房间后,判断第一用户与第二用户之间是否满足预设条件,第二用户为虚拟房间内其他的任意一个用户;若满足预设条件,则引导第一用户和第二用户进行点对点通信通道的建立,使得点对点通信通道建立成功后,第一用户和第二用户在通话建立后通过点对点通信通道直接进行通信数据的传输;若不满足预设条件或点对点通信通道建立失败,则在第一用户和第二用户通话建立后,接收第一用户和第二用户中的一个用户发送的通信数据并转发至另一个用户;本申请实施例降低了房间服务器处理数据的压力,降低了通信数据在房间服务器端被非法窃取的风险。
Description
技术领域
本申请涉及网络电话技术领域,尤其涉及一种网络电话的通信方法、相关装置及系统。
背景技术
随着通信技术的发展,网络电话越来越受欢迎。网络电话(Voice OverInternetProtocol,VOIP),是将模拟的声音讯号引经过压缩与封包之后,以数据封包的形式在IP网络进行语音讯号的传输,通俗来说也就是互联网电话或IP电话。网络电话可使用户通过互联网免费或资费很低地传送语音、传真、视频和数据等业务。
在现有的网络电话中,房间服务器会应主叫用户的需求建立虚拟房间,然后再通知被叫用户加入该虚拟房间,在虚拟房间中,任意两个用户之间均可以建立通话,在通话建立之后,两个用户便可以通过房间服务器中继转发通信数据实现通信。
可想而知,在通话过程中,房间服务器承担了数据处理的压力,而当用户数量与并发量越来越多时,房间服务器承担的数据处理压力会越来越大,用户交互数据的传输速度、传输实时性和传输完整性都变得不可保证,导致用户体验降低;而且,由于用户间的通信数据需经房间服务器转发,在服务器端存在通信数据被非法窃取的潜在风险。
发明内容
本申请实施例提供了一种网络电话的通信方法、相关装置及系统,降低了房间服务器处理数据的压力,降低了通信数据在房间服务器端被非法窃取的风险。
有鉴于此,本申请第一方面提供了一种网络电话的通信方法,应用于房间服务器,包括:
在第一用户加入虚拟房间后,判断所述第一用户与第二用户之间是否满足预设条件,所述第二用户为所述虚拟房间内其他的任意一个用户;
若满足所述预设条件,则引导所述第一用户和所述第二用户进行点对点通信通道的建立,使得所述点对点通信通道建立成功后,所述第一用户和所述第二用户在通话建立后通过所述点对点通信通道直接进行通信数据的传输;
若不满足预设条件或所述点对点通信通道建立失败,则在所述第一用户和所述第二用户通话建立后,接收所述第一用户和所述第二用户中的一个用户发送的通信数据并转发至另一个用户。
优选地,
所述的通信方法,还包括:周期性地接收房间内所有用户发送的心跳包。
优选地,
在周期性地接收房间内所有用户发送的心跳包之后,还包括:
通过所述心跳包中的网络状态信息判断每个用户的网络地址是否发生变化;
若第三用户的网络地址发生变化,且所述第三用户与第四用户间建立有点对点通信通道,则引导所述第三用户和所述第四用户重新进行所述点对点通信通道的建立,所述第三用户和所述第四用户均为所述虚拟房间内的任意一个用户。
优选地,
若第三用户的网络地址发生变化,所述通信方法还包括:更新所述第三用户的网络地址,以使能够将接收到的通信数据成功转发至所述第三用户。
优选地,
若第五用户和第六用户之间未建立点对点通信通道,则在所述第五用户和所述第六用户建立通话后,接收所述第五用户和所述第六用户发送的心跳包,并将所述第五用户的心跳包发送至所述第六用户,将所述第六用户的心跳包发送至所述第五用户,使得所述第五用户和所述第六用户根据所述心跳包中的交互心跳信息得知对方的接收丢包率,并在所述第五用户和所述第六用户中一个用户的接收丢包率达到预设丢包率后,另一个用户提高发送的通信数据的冗余率,所述第五用户和所述第六用户均为所述虚拟房间内的任意一个用户。
优选地,
所述的通信方法,还包括:
若从最近一次接收到心跳包开始,预设第一时间内未接收到第七用户的心跳包,则向所述虚拟房间中的其他用户发送所述第七用户的退出房间信令,所述第七用户为所述虚拟房间内的任意一个用户。
优选地,
所述的通信方法,还包括:
当接收到第八用户发送的第一信令,则将所述第一信令转发给所述虚拟房间内的其他用户,所述第一信令包括加入房间信令和退出房间信令,所述第八用户为所述虚拟房间内的任意一个用户。
优选地,
在第一用户加入虚拟房间后,还包括:
向所述第一用户发送所述虚拟房间内的成员信息。
优选地,
所述的通信方法,还包括:
周期性地向所述虚拟房间的所有用户发送房间信息,所述房间信息包括成员信息和\或用户的网络状态信息。
优选地,
所述的通信方法,还包括:
通过UDP传输通道接收和转发用户的通话信令,所述通话信令包括加入房间信令、退出房间信令、振铃信令、接听信令、拒绝信令和挂断信令。
优选地,
所述的通信方法,还包括:
在为以TLS安全传输协议登录且携带n位随机数的主叫用户分配虚拟房间的同时,生成新的n位随机数;
将所述主叫用户携带的n位随机数和所述新的n位随机数共同作为因子,生成对称密钥;
将所述对称密钥以TLS安全传输协议发送至所述主叫用户以及之后以TLS安全传输协议加入所述虚拟房间的所有被叫用户,使得所述虚拟房间内的所有用户通过所述对称密钥对通信数据进行加密。
本申请第二方面提供了一种网络电话的通信装置,应用于房间服务器,包括:
判断单元,用于在第一用户加入虚拟房间后,判断所述第一用户与第二用户之间是否满足预设条件,所述第二用户为所述虚拟房间内其他的任意一个用户;
引导单元,用于当满足预设条件时,引导所述第一用户和所述第二用户进行点对点通信通道的建立,使得所述点对点通信通道建立成功后,所述第一用户和所述第二用户在通话建立后通过所述点对点通信通道直接进行通信数据的传输;
数据转发单元,用于当不满足预设条件或所述点对点通信通道建立失败时,在所述第一用户和所述第二用户通话建立后,接收所述第一用户和所述第二用户中的一个用户发送的通信数据并转发至另一个用户。
本申请第三方面提供了一种网络电话的通信方法,应用于终端,包括:
加入虚拟房间后,若与第二用户之间满足预设条件,则在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立,所述第二用户为所述虚拟房间内其他的任意一个用户;
若所述点对点通信通道建立成功,则在与所述第二用户通话建立后,通过所述点对点通信通道直接进行通信数据的传输;
若与所述第二用户之间不满足预设条件或所述点对点通信通道建立失败,则在与所述第二用户通话建立后,通过所述房间服务器转发通信数据与所述第二用户进行通信。
优选地,
所述的通信方法,还包括:
周期性地向所述房间服务器发送心跳包,使得所述房间服务器通过所述心跳包中的网络状态信息判断网络地址是否发生切换;
若与第四用户之间建立有点对点通信通道,则当所述房间服务器判断所述网络地址发生切换后,在所述房间服务器的引导下,与所述第四用户重新进行点对点通信通道的建立,所述第四用户为所述虚拟房间内的任意一个用户。
优选地,
所述的通信方法,还包括:
与第六用户建立通话后,若与所述第六用户之间建立有点对点通信通道,则通过所述点对点通信通道接收所述第六用户发送的心跳包,若与所述第六用户之间未建立有点对点通信通道,则接收所述房间服务器转发的心跳包,所述第六用户为所述虚拟房间内的任意一个用户;
根据所述心跳包中的交互心跳信息获取所述第六用户的接收丢包率,并当所述第六用户的所述接收丢包率达到预设丢包率时,提高发送给所述第六用户的通信数据的冗余率。
优选地,
所述的通信方法,还包括:
通过UDP传输通道向所述房间服务器发送通话信令,使得所述房间服务器通过UDP传输通道对所述通话信令进行转发,或通过UDP传输通道接收所述房间服务器转发的通话信令,所述通话信令包括加入房间信令、退出房间信令、振铃信令、接听信令、拒绝信令和挂断信令。
优选地,
在通过UDP传输通道向所述房间服务器发送通话信令之前,还包括:
为所述通话信令的数据包分配唯一标识,使得接收到所述通话信令的用户反馈所述唯一标识;
在通过UDP传输通道向所述房间服务器发送通话信令后,若预设第二时间内未接收到用户反馈的所述唯一标识,则重新通过UDP传输通道向所述房间服务器发送所述通话信令。
优选地,
在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立之前,还包括:
将带有唯一标识的通话信令的数据包缓存,直到接收到用户反馈的所述唯一标识。
优选地,
在加入虚拟房间之前,还包括:
携带n位随机数并以TLS安全传输协议登陆所述房间服务器,并请求所述房间服务器分配虚拟房间;
以TLS安全传输协议接收所述房间服务器发送的对称密钥,所述对称密钥是以所述n位随机数和新的n位随机数共同作为因子生成的,且用于通话建立后通信数据的加密,所述新的n位随机数由所述房间服务器在分配所述虚拟房间时生成。
本申请第四方面提供了一种网络电话的通信装置,应用于终端,包括:
通道建立单元,用于加入虚拟房间后,当与第二用户之间满足预设条件时,在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立,所述第二用户为所述虚拟房间内其他的任意一个用户;
通信单元,用于当所述点对点通信通道建立成功,且在与所述第二用户通话建立后,通过所述点对点通信通道直接进行通信数据的传输;
所述通信单元,还用于当与所述第二用户之间不满足预设条件或所述点对点通信通道建立失败,在与所述第二用户通话建立后,通过所述房间服务器转发通信数据与所述第二用户进行通信。
本申请第五方面提供了一种网络电话的通信系统,包括终端以及服务器;
所述服务器,用于在第一用户加入虚拟房间后,判断所述第一用户与第二用户之间是否满足预设条件,所述第二用户为所述虚拟房间内其他的任意一个用户;
若满足所述预设条件,则引导所述第一用户和所述第二用户进行点对点通信通道的建立,使得所述点对点通信通道建立成功后,所述第一用户和所述第二用户在通话建立后通过所述点对点通信通道直接进行通信数据的传输;
若不满足预设条件或所述点对点通信通道建立失败,则在所述第一用户和所述第二用户通话建立后,接收所述第一用户和所述第二用户中的一个用户发送的通信数据并转发至另一个用户。
所述终端,用于加入虚拟房间后,若与第二用户之间满足预设条件,则在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立,所述第二用户为所述虚拟房间内其他的任意一个用户;
若所述点对点通信通道建立成功,则在与所述第二用户通话建立后,通过所述点对点通信通道直接进行通信数据的传输;
若与所述第二用户之间不满足预设条件或所述点对点通信通道建立失败,则在与所述第二用户通话建立后,通过所述房间服务器转发通信数据与所述第二用户进行通信。
本申请第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行本申请第一方面中任一项所述的网络电话的通信方法或本申请第三方面中任一项所述的网络电话的通信方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种网络电话的通信方法、相关装置及系统,包括:在第一用户加入虚拟房间后,判断第一用户与第二用户之间是否满足预设条件,第二用户为虚拟房间内其他的任意一个用户;
若满足预设条件,则引导第一用户和第二用户进行点对点通信通道的建立,使得点对点通信通道建立成功后,第一用户和第二用户在通话建立后通过点对点通信通道直接进行通信数据的传输;
若不满足预设条件或点对点通信通道建立失败,则在第一用户和第二用户通话建立后,接收第一用户和第二用户中的一个用户发送的通信数据并转发至另一个用户;
在本申请实施例中,第一用户和第二用户可以通过点对点通信通道直接进行通信数据的传输,而不需经房间服务器转发,所以降低了房间服务器处理数据的压力,从而解决了房间服务器由于处理数据压力过大导致用户交互数据的传输速度、传输实时性和传输完整性不可保证的技术问题;并且,因为不是所有通信数据都经过房间服务器,所以降低了通信数据在房间服务器端被非法窃取的风险。
附图说明
图1为本申请实施例中网络电话的通信系统架构图;
图2为本申请实施例中一种网络电话的通信方法的流程示意图;
图3为本申请实施例中一种网络电话的通信装置的结构示意图;
图4为本申请实施例中一种网络电话的通信方法的流程示意图;
图5为本申请实施例中一种网络电话的通信装置的结构示意图;
图6为本申请实施例中一种网络电话的通信系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,本申请实施例中网络电话的通信系统架构图。
目前,在图1所示的通信系统中,终端用户A和终端用户B均可以作为主叫用户发起网络电话,下面以终端用户A作为主叫用户、终端用户B作为被叫用户进行具体介绍。
在网络电话过程中,首先终端用户A连上登录服务器,并请求房间服务器的地址;然后登录房间服务器将房间服务器的地址发送给终端用户A,终端用户A根据房间服务器的地址登录房间服务器,并请求虚拟房间的分配。
然后房间服务器会为终端用户A分配一个代号为R的虚拟房间。
之后,终端用户A会将话单发送至登录服务器,其中话单包括主叫信息、被叫信息、房间服务器的地址和房间代号R。
接着,推送相关服务器会根据被叫信息将话单发送至终端用户B。
终端用户B会根据房间服务器的地址登录房间服务器,并请求加入代号为R的虚拟房间。
终端用户B加入虚拟房间后,会发送加入房间信令至房间服务器,由房间服务器转发给终端用户A。
同时,终端用户B还会发送振铃信令至房间服务器,由房间服务器转发给终端用户A,终端用户A做出振铃反应,并等待终端用户B下一步的接听动作。
待终端用户B接通后,会发送接通信令至房间服务器,由房间服务器转发给终端用户A。
这样,终端用户A和终端用户B便完成通话建立,并开始通话。
终端用户A和终端用户B在通话过程中,都会将通信数据线发送到房间服务器,然后由房间服务器将通信数据转发给对方,从而实现两个用户之间的通信数据传输。
终端用户A和终端用户B中的任意一方挂断电话,都会经房间服务器向对方发送挂断信令和退出房间信令。
从上述过程中可以看出,不仅通话信令需要经过房间服务器转发,终端用户A和终端用户B之间的所有通信数据均需要房间服务器转发,而该虚拟房间后续还可以允许被叫用户加入,所以随着终端用户数量及通信数据并发量的不断增多,房间服务器承受的数据处理压力越来越大,用户交互数据的传输速度、传输实时性和传输完整性都变得不可保证,导致用户体验降低;而且,由于用户间的通信数据需经房间服务器转发,在服务器端存在通信数据被非法窃取的潜在风险。
为此本申请实施例提供了一种网络电话的通信方法、相关装置及系统,能够降低房间服务器处理数据的压力,并能够降低通信数据在房间服务器端被非法窃取的风险。
请参阅图2,图2为本申请实施例中一种网络电话的通信方法的信令流程图。
本申请第一方面提供了一种网络电话的通信方法,应用于房间服务器,包括:
步骤201,在第一用户加入虚拟房间后,判断第一用户与第二用户之间是否满足预设条件,第二用户为虚拟房间内其他的任意一个用户。
可以理解的是,虚拟房间内可以有多个用户。通常情况下,当一个用户刚加入虚拟房间时,会对刚加入虚拟房间的用户与虚拟房间内已有的用户进行预设条件的判断,判断是否存在满足预设条件的两个用户,若存在便开始引导这两个用户进行点对点通信通道的建立。
需要说明的是,预设条件的内容可以根据实际需要进行设置。
因为虚拟房间内可以存在很多用户,当用户数量较多时,如果虚拟房间内的所有用户之间都建立点对点通信通道,那么点对点通信通道将成网状结构分布,即点对点通信通道的数量会很多,结构复杂,且需要较大的维护成本;所以可以将预设条件设置为进入虚拟房间的前n位用户,这里以n为3进行说明;主叫用户先进入虚拟房间,待第一个被叫用户进入虚拟房间后,满足预设条件,则与主叫用户建立点对点通信通道;待第二个被叫用户进入房间后,第二个被叫用户与第一个被叫用户、第二个被叫用户与主叫用户之间均满足预设条件,所以第二个被叫用户与第一个被叫用户、第二个被叫用户与主叫用户均建立点对点通信通道;而第三个被叫用户及之后的被叫用户在加入房间后,均因不满足预设条件,而不进行点对点通信通道的建立。
另外,为了满足用户的个性化需求,也可以根据用户的个性化需求设定预设条件;例如有的用户对保密要求较高,所以为了避免通信数据在房间服务器端被窃取,只要该用户参与通话,那么该用户通话的所有用户与该用户之间均可建立点对点通信通道。
步骤202,若满足预设条件,则引导第一用户和第二用户进行点对点通信通道的建立,使得点对点通信通道建立成功后,第一用户和第二用户在通话建立后通过点对点通信通道直接进行通信数据的传输。
在本申请实施例中,可以使用NAT穿越实现点对点通信通道的建立。
步骤203,若不满足预设条件或点对点通信通道建立失败,则在第一用户和第二用户通话建立后,接收第一用户和第二用户中的一个用户发送的通信数据并转发至另一个用户。
可以理解的是,目前,不存在一中技术能够保证点通信通道建立达到100%的成功率,所以在本申请实施例中,当点对点通信通道建立失败时,房间服务器还是负责第一用户和第二用户之间的通信数据转发工作。
需要说明的是,绝大多数情况下,点对点通信通道都是可以建立成功的,所以本申请实施例可以减少房间服务器大量的通信数据转发工作,所以降低了房间服务器处理数据的压力,从而解决了房间服务器由于处理数据压力过大导致用户交互数据的传输速度、传输实时性和传输完整性不可保证的技术问题;并且,因为不是所有通信数据都经过房间服务器,所以降低了通信数据在房间服务器端被非法窃取的风险。
进一步地,通信方法还可以包括:周期性地接收房间内所有用户发送的心跳包。
可以理解的是,通过周期性地接收用户的心跳包可以了解虚拟房间内用户的状态,以实现对虚拟房间内的监测。
需要说明的是,心跳包的接收可以是在用户通话过程中,也可以是在用户通话前,本申请实施例对心跳包接收的时间不做限定。
进一步地,在周期性地接收房间内所有用户发送的心跳包之后,通信方法还可以包括:
通过心跳包中的网络状态信息判断每个用户的网络地址是否发生变化。
可以理解的是,在实际应用中,用户可能在2/3/4G与Wifi之间切换自己的网络接入,那么网络地址便会随着改变。
若第三用户的网络地址发生变化,且第三用户与第四用户间建立有点对点通信通道,则引导第三用户和第四用户重新进行点对点通信通道的建立,第三用户和第四用户均为虚拟房间内的任意一个用户。
可以理解的是,当建立有点对点通信通道的两个用户中,任何一个用户的网络地址发生变化,都会导致原有的点对点通信通道失效,所以需要重新建立;尤其是在通话建立后,当发现用户的网络地址发生变化时,通过重新建立点对点通信通道,可以保证用户间的正常通话,否则会造成通话的中断,需要用户重新进行呼叫以建立通话,网络适应性差。
进一步地,若第三用户的网络地址发生变化,通信方法还可以包括:更新第三用户的网络地址,以使能够将接收到的通信数据成功转发至第三用户。
可以理解的是,第三用户与其他用户通话的方式可以是点对点通信通道,也可以是通过房间服务器进行转发,如果是通过房间服务器转发,那么需要知道房间服务器的网络地址,所以当第三用户的网络地址发生变化时,需要及时更新第三用户的网络地址。
进一步地,若第五用户和第六用户之间未建立点对点通信通道,则在第五用户和第六用户建立通话后,接收第五用户和第六用户发送的心跳包,并将第五用户的心跳包发送至第六用户,将第六用户的心跳包发送至第五用户,使得第五用户和第六用户根据心跳包中的交互心跳信息得知对方的接收丢包率,并在第五用户和第六用户中一个用户的接收丢包率达到预设丢包率后,另一个用户提高发送的通信数据的冗余率,第五用户和第六用户均为虚拟房间内的任意一个用户。
可以理解的是,在本申请实施例中,当两个用户通话时,便相互接收对方的心跳包,以获取对方的丢包率,当对方的丢包率大于预设丢包率时,则使用较高的冗余率发送通信数据,从而实现了根据丢包率为通话中的用户提供有差别的服务。
进一步地,通信方法还可以包括:
若从最近一次接收到心跳包开始,预设第一时间内未接收到第七用户的心跳包,则向虚拟房间中的其他用户发送第七用户的退出房间信令,第七用户为虚拟房间内的任意一个用户。
可以理解的是,在本申请实施例中,用户可能因网络中断或其他原因而长时间未向房间服务器发送心跳包,此时,房间服务器会认定该用户掉线,并向其他用户发送退出房间信令。
进一步地,通信方法,还可以包括:
当接收到第八用户发送的第一信令,则将第一信令转发给虚拟房间内的其他用户,第一信令包括加入房间信令和退出房间信令,第八用户为虚拟房间内的任意一个用户。
可以理解的是,当虚拟房间内加入新用户,或者有用户退出房间时,用户均会向房间服务器发送加入房间信令和退出房间信令,此时,房间服务器会将接收到的信令转给虚拟房间内的其他用户,使得虚拟房间内的用户知道虚拟房间内有哪些用户,从而实现了房间服务器的用户管理功能。
进一步地,在第一用户加入虚拟房间后,还可以包括:
向第一用户发送虚拟房间内的成员信息。
可以理解的是,当新用户加入房间,会告知其他用户,同时也会将虚拟房间内的成员信息发送给第一用户;在本申请实施例中,成员信息可以包括用户的ID,还可以包括用户的其他信息。
进一步地,通信方法还可以包括:
周期性地向虚拟房间的所有用户发送房间信息,房间信息包括成员信息和\或用户的网络状态信息。
可以理解的是,房间服务器的用户管理功能,不仅体现在有用户退出虚拟房间或加入虚拟房间时,还会周期性地向虚拟房间的用户广播房间信息。
进一步地,通信方法还可以包括:
通过UDP传输通道接收和转发用户的通话信令,通话信令包括加入房间信令、退出房间信令、振铃信令、接听信令、拒绝信令和挂断信令。
可以理解的是,当用户加入和退出虚拟房间时,均会向房间服务器发送加入房间信令和退出房间信令;在通话建立阶段,被叫用户接收到主叫用户的呼叫时,会发送振铃信令至主叫用户,当被叫用户拒绝接听时,会发送拒绝信令至主叫用户,当被叫用户接听时,会发送接听信令至主叫用户;而当处于通话状态的任何一个用户决定退出通话时,均发送挂断信令至其他用户。
需要说明的是,无论是通话的双方是否建立有点对点通信通道,上述通话信令均会通过房间服务器发送给用户。
进一步地,通信方法还可以包括:
在为以TLS安全传输协议登录且携带n位随机数的主叫用户分配虚拟房间的同时,生成新的n位随机数;
将主叫用户携带的n位随机数和新的n位随机数共同作为因子,生成对称密钥;
将对称密钥以TLS安全传输协议发送至主叫用户以及之后以TLS安全传输协议加入虚拟房间的所有被叫用户,使得虚拟房间内的所有用户通过对称密钥对通信数据进行加密。
可以理解的是,每次分配虚拟房间时,房间服务器都会生成一个新的对称密钥,使得通话中的用户通过该对称密钥实现对通话数据的加密,从而最大限度地保证了用户通信数据的安全。
请参与图3,本申请实施例中一种网络电话的通信装置的结构示意图。
本申请实施例提供了一种网络电话的通信装置,应用于房间服务器,包括:
判断单元301,用于在第一用户加入虚拟房间后,判断第一用户与第二用户之间是否满足预设条件,第二用户为虚拟房间内其他的任意一个用户;
引导单元302,用于当满足预设条件时,引导第一用户和第二用户进行点对点通信通道的建立,使得点对点通信通道建立成功后,第一用户和第二用户在通话建立后通过点对点通信通道直接进行通信数据的传输;
数据转发单元303,用于当不满足预设条件或点对点通信通道建立失败时,在第一用户和第二用户通话建立后,接收第一用户和第二用户中的一个用户发送的通信数据并转发至另一个用户。
可以理解的是,前述的通信方法是从服务器侧进行介绍的,下面将从终端侧对网络电话的通信方法进行介绍。
请参阅图4,图4为本申请实施例中一种网络电话的通信方法的信令流程图。
本申请实施例提供了一种网络电话的通信方法,应用于终端,包括:
步骤401,加入虚拟房间后,若与第二用户之间满足预设条件,则在房间服务器的引导下,与第二用户进行点对点通信通道的建立,第二用户为虚拟房间内其他的任意一个用户。
步骤402,若点对点通信通道建立成功,则在与第二用户通话建立后,通过点对点通信通道直接进行通信数据的传输。
步骤403,若与第二用户之间不满足预设条件或点对点通信通道建立失败,则在与第二用户通话建立后,通过房间服务器转发通信数据与第二用户进行通信。
进一步地,通信方法还可以包括:
周期性地向房间服务器发送心跳包,使得房间服务器通过心跳包中的网络状态信息判断网络地址是否发生切换;
若与第四用户之间建立有点对点通信通道,则当房间服务器判断网络地址发生切换后,在房间服务器的引导下,与第四用户重新进行点对点通信通道的建立,第四用户为虚拟房间内的任意一个用户。
进一步地,通信方法,还可以包括:
与第六用户建立通话后,若与第六用户之间建立有点对点通信通道,则通过点对点通信通道接收第六用户发送的心跳包,若与第六用户之间未建立有点对点通信通道,则接收房间服务器转发的心跳包,第六用户为虚拟房间内的任意一个用户;
根据心跳包中的交互心跳信息获取第六用户的接收丢包率,并当第六用户的接收丢包率达到预设丢包率时,提高发送给第六用户的通信数据的冗余率。
进一步地,通信方法,还可以包括:
通过UDP传输通道向房间服务器发送通话信令,使得房间服务器通过UDP传输通道对通话信令进行转发,或通过UDP传输通道接收房间服务器转发的通话信令,通话信令包括加入房间信令、退出房间信令、振铃信令、接听信令、拒绝信令和挂断信令。
进一步地,在通过UDP传输通道向房间服务器发送通话信令之前,还可以包括:
为通话信令的数据包分配唯一标识,使得接收到通话信令的用户反馈唯一标识。
需要说明的是,UDP传输协议本身是无连接、不保证消息的可靠达到的,为了提供消息传输可靠性,本申请实施例为通话信令的每个数据包都分配唯一标识,使得用户在接收到通话信令的数据包后,会反馈数据包中的唯一标识。
在通过UDP传输通道向房间服务器发送通话信令后,若预设第二时间内未接收到用户反馈的唯一标识,则重新通过UDP传输通道向房间服务器发送通话信令。
可以理解的是,本申请实施例采用重传机制,若预设第二时间内为接收到唯一标识的反馈,则认为数据包丢失,所以将重新发送数据包。
进一步地,在房间服务器的引导下,与第二用户进行点对点通信通道的建立之前,还可以包括:
将带有唯一标识的通话信令的数据包缓存,直到接收到用户反馈的唯一标识。
可以理解的是,为了方便数据包的重新发送,本申请实施例将数据包一直缓存至收到唯一标识的反馈为止。
进一步地,在加入虚拟房间之前,还包括:
携带n位随机数并以TLS安全传输协议登陆房间服务器,并请求房间服务器分配虚拟房间。
可以理解的是,用户携带的n位随机数可以是每次请求分配虚拟房间前新生成的,以保证对称密钥随机性。
以TLS安全传输协议接收房间服务器发送的对称密钥,对称密钥是以n位随机数和新的n位随机数共同作为因子生成的,且用于通话建立后通信数据的加密,新的n位随机数由房间服务器在分配虚拟房间时生成。
请参阅图5,本申请实施例中一种网络电话的通信装置的结构示意图。
本申请第实施例提供了一种网络电话的通信装置,应用于终端,包括:
通道建立单元501,用于加入虚拟房间后,当与第二用户之间满足预设条件时,在房间服务器的引导下,与第二用户进行点对点通信通道的建立,第二用户为虚拟房间内其他的任意一个用户;
通信单元502,用于当点对点通信通道建立成功,且在与第二用户通话建立后,通过点对点通信通道直接进行通信数据的传输;
通信单元502,还用于当与第二用户之间不满足预设条件或点对点通信通道建立失败,在与第二用户通话建立后,通过房间服务器转发通信数据与第二用户进行通信。
请参阅图6,本申请实施例中一种网络电话的通信系统的结构示意图。
本申请实施例还提供了一种网络电话的通信系统,包括终端601以及服务器602;
服务器602,用于在第一用户加入虚拟房间后,判断第一用户与第二用户之间是否满足预设条件,第二用户为虚拟房间内其他的任意一个用户;
若满足预设条件,则引导第一用户和第二用户进行点对点通信通道的建立,使得点对点通信通道建立成功后,第一用户和第二用户在通话建立后通过点对点通信通道直接进行通信数据的传输;
若不满足预设条件或点对点通信通道建立失败,则在第一用户和第二用户通话建立后,接收第一用户和第二用户中的一个用户发送的通信数据并转发至另一个用户。
终端601,用于加入虚拟房间后,若与第二用户之间满足预设条件,则在房间服务器的引导下,与第二用户进行点对点通信通道的建立,第二用户为虚拟房间内其他的任意一个用户;
若点对点通信通道建立成功,则在与第二用户通话建立后,通过点对点通信通道直接进行通信数据的传输;
若与第二用户之间不满足预设条件或点对点通信通道建立失败,则在与第二用户通话建立后,通过房间服务器转发通信数据与第二用户进行通信。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本申请实施例中任一项的网络电话的通信方法或本申请实施例中任一项的网络电话的通信方法。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种网络电话的通信方法,其特征在于,应用于房间服务器,包括:
在第一用户加入虚拟房间后,判断所述第一用户与第二用户之间是否满足预设条件,所述第二用户为所述虚拟房间内其他的任意一个用户;
若满足所述预设条件,则引导所述第一用户和所述第二用户进行点对点通信通道的建立,使得所述点对点通信通道建立成功后,所述第一用户和所述第二用户在通话建立后通过所述点对点通信通道直接进行通信数据的传输;
若不满足预设条件或所述点对点通信通道建立失败,则在所述第一用户和所述第二用户通话建立后,接收所述第一用户和所述第二用户中的一个用户发送的通信数据并转发至另一个用户;
若第五用户和第六用户之间未建立点对点通信通道,则在所述第五用户和所述第六用户建立通话后,接收所述第五用户和所述第六用户发送的心跳包,并将所述第五用户的心跳包发送至所述第六用户,将所述第六用户的心跳包发送至所述第五用户,使得所述第五用户和所述第六用户根据心跳包中的交互心跳信息获取对方的接收丢包率,并在所述第五用户和所述第六用户中的一个用户的接收丢包率达到预设丢包率后,提高另一个用户发送的通信数据的冗余率;其中,所述第五用户和所述第六用户均为所述虚拟房间内的任意一个用户。
2.根据权利要求1所述的通信方法,其特征在于,还包括:周期性地接收房间内所有用户发送的心跳包。
3.根据权利要求2所述的通信方法,其特征在于,在周期性地接收房间内所有用户发送的心跳包之后,还包括:
通过所述心跳包中的网络状态信息判断每个用户的网络地址是否发生变化;
若第三用户的网络地址发生变化,且所述第三用户与第四用户间建立有点对点通信通道,则引导所述第三用户和所述第四用户重新进行所述点对点通信通道的建立,所述第三用户和所述第四用户均为所述虚拟房间内的任意一个用户。
4.根据权利要求1所述的通信方法,其特征在于,还包括:通过UDP传输通道接收和转发用户的通话信令,所述通话信令包括加入房间信令、退出房间信令、振铃信令、接听信令、拒绝信令和挂断信令。
5.一种网络电话的通信装置,其特征在于,应用于房间服务器,包括:
判断单元,用于在第一用户加入虚拟房间后,判断所述第一用户与第二用户之间是否满足预设条件,所述第二用户为所述虚拟房间内其他的任意一个用户;
引导单元,用于当满足预设条件时,引导所述第一用户和所述第二用户进行点对点通信通道的建立,使得所述点对点通信通道建立成功后,所述第一用户和所述第二用户在通话建立后通过所述点对点通信通道直接进行通信数据的传输;
数据转发单元,用于当不满足预设条件或所述点对点通信通道建立失败时,在所述第一用户和所述第二用户通话建立后,接收所述第一用户和所述第二用户中的一个用户发送的通信数据并转发至另一个用户;
其中,所述房间服务器还用于若第五用户和第六用户之间未建立点对点通信通道,则在所述第五用户和所述第六用户建立通话后,接收所述第五用户和所述第六用户发送的心跳包,并将所述第五用户的心跳包发送至所述第六用户,将所述第六用户的心跳包发送至所述第五用户,使得所述第五用户和所述第六用户根据心跳包中的交互心跳信息获取对方的接收丢包率,并在所述第五用户和所述第六用户中的一个用户的接收丢包率达到预设丢包率后,提高另一个用户发送的通信数据的冗余率;其中,所述第五用户和所述第六用户均为所述虚拟房间内的任意一个用户。
6.一种网络电话的通信方法,其特征在于,应用于终端,包括:
加入虚拟房间后,若与第二用户之间满足预设条件,则在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立,所述第二用户为所述虚拟房间内其他的任意一个用户;
若所述点对点通信通道建立成功,则在与所述第二用户通话建立后,通过所述点对点通信通道直接进行通信数据的传输;
若与所述第二用户之间不满足预设条件或所述点对点通信通道建立失败,则在与所述第二用户通话建立后,通过所述房间服务器转发通信数据与所述第二用户进行通信;
其中,所述房间服务器还用于若第五用户和第六用户之间未建立点对点通信通道,则在所述第五用户和所述第六用户建立通话后,接收所述第五用户和所述第六用户发送的心跳包,并将所述第五用户的心跳包发送至所述第六用户,将所述第六用户的心跳包发送至所述第五用户,使得所述第五用户和所述第六用户根据心跳包中的交互心跳信息获取对方的接收丢包率,并在所述第五用户和所述第六用户中的一个用户的接收丢包率达到预设丢包率后,提高另一个用户发送的通信数据的冗余率;其中,所述第五用户和所述第六用户均为所述虚拟房间内的任意一个用户。
7.根据权利要求6所述的网络电话的通信方法,其特征在于,还包括:通过UDP传输通道向所述房间服务器发送通话信令,使得所述房间服务器通过UDP传输通道对所述通话信令进行转发,或通过UDP传输通道接收所述房间服务器转发的通话信令,所述通话信令包括加入房间信令、退出房间信令、振铃信令、接听信令、拒绝信令和挂断信令。
8.根据权利要求7所述的网络电话的通信方法,其特征在于,在通过UDP传输通道向所述房间服务器发送通话信令之前,还包括:
为所述通话信令的数据包分配唯一标识,使得接收到所述通话信令的用户反馈所述唯一标识;
在通过UDP传输通道向所述房间服务器发送通话信令后,若预设第二时间内未接收到用户反馈的所述唯一标识,则重新通过UDP传输通道向所述房间服务器发送所述通话信令。
9.一种网络电话的通信装置,其特征在于,应用于终端,包括:
通道建立单元,用于加入虚拟房间后,当与第二用户之间满足预设条件时,在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立,所述第二用户为所述虚拟房间内其他的任意一个用户;
通信单元,用于当所述点对点通信通道建立成功,且在与所述第二用户通话建立后,通过所述点对点通信通道直接进行通信数据的传输;
所述通信单元,还用于当与所述第二用户之间不满足预设条件或所述点对点通信通道建立失败,在与所述第二用户通话建立后,通过所述房间服务器转发通信数据与所述第二用户进行通信;
其中,所述房间服务器还用于若第五用户和第六用户之间未建立点对点通信通道,则在所述第五用户和所述第六用户建立通话后,接收所述第五用户和所述第六用户发送的心跳包,并将所述第五用户的心跳包发送至所述第六用户,将所述第六用户的心跳包发送至所述第五用户,使得所述第五用户和所述第六用户根据心跳包中的交互心跳信息获取对方的接收丢包率,并在所述第五用户和所述第六用户中的一个用户的接收丢包率达到预设丢包率后,提高另一个用户发送的通信数据的冗余率;其中,所述第五用户和所述第六用户均为所述虚拟房间内的任意一个用户。
10.一种网络电话的通信系统,其特征在于,包括终端以及服务器;
所述服务器,用于在第一用户加入虚拟房间后,判断所述第一用户与第二用户之间是否满足预设条件,所述第二用户为所述虚拟房间内其他的任意一个用户;
若满足所述预设条件,则引导所述第一用户和所述第二用户进行点对点通信通道的建立,使得所述点对点通信通道建立成功后,所述第一用户和所述第二用户在通话建立后通过所述点对点通信通道直接进行通信数据的传输;
若不满足预设条件或所述点对点通信通道建立失败,则在所述第一用户和所述第二用户通话建立后,接收所述第一用户和所述第二用户中的一个用户发送的通信数据并转发至另一个用户;
房间服务器还用于若第五用户和第六用户之间未建立点对点通信通道,则在所述第五用户和所述第六用户建立通话后,接收所述第五用户和所述第六用户发送的心跳包,并将所述第五用户的心跳包发送至所述第六用户,将所述第六用户的心跳包发送至所述第五用户,使得所述第五用户和所述第六用户根据心跳包中的交互心跳信息获取对方的接收丢包率,并在所述第五用户和所述第六用户中的一个用户的接收丢包率达到预设丢包率后,提高另一个用户发送的通信数据的冗余率;其中,所述第五用户和所述第六用户均为所述虚拟房间内的任意一个用户;
所述终端,用于加入虚拟房间后,若与第二用户之间满足预设条件,则在房间服务器的引导下,与所述第二用户进行点对点通信通道的建立,所述第二用户为所述虚拟房间内其他的任意一个用户;
若所述点对点通信通道建立成功,则在与所述第二用户通话建立后,通过所述点对点通信通道直接进行通信数据的传输;
若与所述第二用户之间不满足预设条件或所述点对点通信通道建立失败,则在与所述第二用户通话建立后,通过所述房间服务器转发通信数据与所述第二用户进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910105497.6A CN109889405B (zh) | 2019-02-01 | 2019-02-01 | 一种网络电话的通信方法、相关装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910105497.6A CN109889405B (zh) | 2019-02-01 | 2019-02-01 | 一种网络电话的通信方法、相关装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889405A CN109889405A (zh) | 2019-06-14 |
CN109889405B true CN109889405B (zh) | 2021-06-04 |
Family
ID=66927937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910105497.6A Active CN109889405B (zh) | 2019-02-01 | 2019-02-01 | 一种网络电话的通信方法、相关装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889405B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910880B (zh) * | 2021-01-28 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 虚拟房间创建方法、系统、装置、设备及介质 |
CN114338761B (zh) * | 2021-12-24 | 2023-02-24 | 威艾特科技(深圳)有限公司 | 一种远程现场通信方法及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664861B2 (en) * | 2005-02-02 | 2010-02-16 | Verizon Laboratories Inc. | Managed peer-to-peer file sharing |
CN1889611B (zh) * | 2006-01-26 | 2010-05-12 | 华为技术有限公司 | 实时语音通信的方法及实时语音通信系统 |
CN102946343B (zh) * | 2012-10-15 | 2015-12-16 | 腾讯科技(深圳)有限公司 | 访问音视频社区虚拟房间的方法和系统 |
CN105871651A (zh) * | 2015-12-11 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 设备连通性监测的方法及装置 |
CN105491251A (zh) * | 2015-12-30 | 2016-04-13 | 天津网加科技有限公司 | 网络电话回拨方法及系统 |
CN105897478B (zh) * | 2016-04-12 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 一种链路决策的方法及决策设备 |
CN106656649B (zh) * | 2016-09-14 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 一种实时通话过程中基于测速的通道切换方法、客户端与服务器 |
-
2019
- 2019-02-01 CN CN201910105497.6A patent/CN109889405B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109889405A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4847595B2 (ja) | グループ通信サービスを提供するシステムおよび方法 | |
EP1540907B1 (en) | Conferencing system | |
JP4711778B2 (ja) | 無線パケットベースの通信を確立するための方法 | |
EP2452487B1 (en) | Controlling multi-party communications | |
CN103634490A (zh) | 一种用于使得使用sip 的企业网络能够存活的网关 | |
CN109802913B (zh) | 融合会议实现方法及装置、电子设备、可读存储介质 | |
JP2007110631A (ja) | グループ通話サーバ、グループ通話システム、端末及びグループ通話制御方法 | |
JP2006101463A (ja) | トンネル装置、中継装置、端末装置、呼制御システム、ip電話システム、会議装置、これらの制御方法及びプログラム | |
US8249612B2 (en) | Method, system, server, and client for transmitting media burst data | |
CN103634303B (zh) | 一种实现VoIP通话的方法及系统 | |
KR20070026277A (ko) | 회의 통신 시스템, 회의 통신 시스템 작동 방법, 통지 장치및 통신 단말 장치에 통지하는 통지 방법 | |
CN109889405B (zh) | 一种网络电话的通信方法、相关装置及系统 | |
JP4940335B2 (ja) | 電話交換装置及び電話端末及び電話システムで使用される制御方法 | |
KR20090058610A (ko) | 아이엠에스 기반 인스턴트 메시지 서비스 제공 시스템 및방법 | |
US9071690B2 (en) | Call transfer processing in SIP mode | |
KR100475539B1 (ko) | 무선 인스턴트 메신저를 이용한 실시간 음성정보 전송 방법 및 이를 구현한 프로그램이 저장된 기록매체 | |
CN101594623B (zh) | 一种互联网协议语音呼叫的监听方法及设备 | |
KR101011891B1 (ko) | 제어 pt 서버 결정 방법 및 장치 | |
CN109067659B (zh) | 一种会话建立方法、路由器及会话系统 | |
CN108616496A (zh) | 多方通话的实现方法、装置、多通终端及网络侧设备 | |
CN102413136A (zh) | 实现VoIP语音流穿透防火墙的VoIP系统及方法 | |
WO2023209886A1 (ja) | 信号処理装置、信号処理システムおよび信号処理方法 | |
WO2023209882A1 (ja) | 信号処理装置、信号処理システムおよび信号処理方法 | |
KR101009953B1 (ko) | 데이터 통신망과 전화망 간의 즉시 그룹통신을 위한 즉시 그룹통신 시스템 및 그 장치 | |
JP2005327101A (ja) | セッション継続確認方法、および、sipプロキシサーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |