一种通信方法以及终端的制作方法

文档序号:7806312阅读:108来源:国知局
一种通信方法以及终端的制作方法
【专利摘要】本发明实施例公开了一种通信方法以及终端,用以解决现有技术中在通过点对点通道进行网络通话时存在的无数据交换的时间段的技术问题。所述通信方法包括:在第一终端与第二终端已建立通信连接时,所述第一终端通过非点对点通道与所述第二终端交换数据,并在所述第一终端与所述第二终端之间建立点对点通道;在所述点对点通道建立后,所述第一终端启用所述点对点通道与所述第二终端交换数据;第一终端对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理;在所述第一数据流与所述第二数据流同步之后,所述第一终端通过所述点对点通道与所述第二终端交换数据。
【专利说明】一种通信方法以及终端

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种通信方法以及终端。

【背景技术】
[0002]点对点(又被称为对等连接或对等网络,英文:Peer to Peer ;简称:P2P)技术是一种用于不同终端之间,不经过中继设备直接交换数据或服务的技术。在网络电话(英文:Voice over Internet Protocol ;简称:VoIP)领域,点对点通话是指通话的数据流不经过中间服务器中转的一种通话方式。
[0003]一般来说,在相同局域网中或者VoIP通话客户端拥有公有(固定且唯一)互联网协议地址(又称为网际协议地址,英文:Internet Protocol Address ;简称:IP地址)情况下,数据流传输可以直接在客户端之间进行,而在互联网环境中,不同VoIP客户端可能处于不同局域网中,他们通过网络地址转换(英文:Network Address Translat1n ;简称:NAT)技术接入互联网。
[0004]网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它也是将IP数据包头中的IP地址转换为另一个IP地址的过程,被广泛应用于各种类型互联网接入方式和各种类型的网络中。NAT解决了 IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
[0005]如上所述,由于网络地址转换技术的广泛使用,不同局域网中的通话客户端都只拥有私有IP地址,他们之间并不能直接使用私有IP地址进行数据流传输,需要采用技术手段穿越NAT设备,实现点对点通话。在当前NGN(下一代网络)环境下,VoIP广泛采用会话发起协议(英文:Sess1n Initiat1n Protocol ;简称:SIP) (RFC3261)建立通话,并使用交互式连接建立(英文:InteractiveConnectivity Establishment ;简称:ICE) (RFC5245)技术穿越网络地址转换(英文:Network Address Translat1n ;简称:NAT)设备实现VoIP的点对点通话。
[0006]ICE技术基于对请求/响应模型的扩充,它的工作原理是通过会话描述协议(英文:Sess1n Descript1n Protocol ;简称:SDP)请求和响应消息携带客户端的多个种类的IP地址(如本地IP、NAT设备分配的IP等),再对这些地址进行点对点通道的连通性检测,从而找到可用且最优的点对点通道。
[0007]请参考图1,图1是现有技术中使用ICE技术的VoIP点对点通话流程图,如图1所示,使用ICE技术的VoIP点对点通话流程有如下步骤:
[0008](I)主叫端向被叫端发起呼叫后首先向NAT的UDP简单穿越(英文=SimpleTraversal of UDP over NATs ;简称:STUN)服务器/通过Relay方式穿越NAT服务器(英文:Traversal Using Relay NAT ;简称:TURN)发起 STUN 绑定请求(英文:Binding Requests),服务器在STUN绑定响应(英文:Binding Response)中携带NAT穿越候选地址返回给主叫端。
[0009](2)主叫端向被叫端发起Invite请求,并在Invite的SDP中携带本端的候选地址。
[0010](3)被叫端收到主叫端的Invite后,保存主叫端的候选地址并向STUN/TURN服务器发起STUN绑定请求获取本端的候选地址。
[0011](4)被叫端向主叫端发200ok响应消息,并在响应消息的SDP中携带本端的候选地址。
[0012](5)主叫端向被叫端发送确认消息(英文!Acknowledgement ;简称:ACK)。
[0013](6)王叫端在发送ACK后启动连通性检测和协商,被叫端在收到ACK后启动连通性检测和协商。
[0014](7)连通性检测结束并协商出点对点通道后,主被叫开始通过该通道收发媒体包(rtp、rtCp),主叫端的用户和被叫端的用户即能够行通话。
[0015]在上述过程中,在步骤(4)、(5)结束后,主被叫端的回铃音结束,主被叫端的通话建立,但此时主被叫端正在进行步骤(6)所示的连通性检测和协商,主叫端和被叫端之间还未进行媒体包的收发,所以主叫端的用户和被叫端的用户不能听到任何声音或者看到任何图像,也即此时段没有任何数据,需要在步骤(6)完成之后主叫端与被叫端才能进行交换数据,也就是说,在基于点对点通道的VoIP中,由于需要进行点对点通道的连通性检测与协商,所以在通话建立后存在一个无数据交换的时间段,对用户而言,在这个时间段内听不到任何声音,也看不到任何图像,用户体验较差,尤其是在网络环境较差时,连通性检测耗时较长,这个时间段也会较长,从而会带给用户更差的用户体验。
[0016]因此,现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题。


【发明内容】

[0017]本发明实施例通过提供一种通信方法以及终端,用以解决现有技术中在通过点对点通道进行网络通话时存在的无数据交换的时间段的技术问题。
[0018]本发明实施例第一方面提供了一种通信方法,包括:
[0019]在第一终端与第二终端已建立通信连接时,所述第一终端通过非点对点通道与所述第二终端交换数据,并在所述第一终端与所述第二终端之间建立点对点通道;
[0020]在所述点对点通道建立后,所述第一终端启用所述点对点通道与所述第二终端交换数据;
[0021]所述第一终端对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理;
[0022]在所述第一数据流与所述第二数据流同步之后,所述第一终端停止在所述非点对点通道与所述第二终端交换数据。
[0023]结合第一方面,在第一种可能的实现方式中,所述在所述第一终端与所述第二终端间建立点对点通道,具体包括:
[0024]所述第一终端启动与所述第二终端的交互式连接建立ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。
[0025]结合第一方面,在第二种可能的实现方式中,所述第一终端对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理,具体包括:
[0026]所述第一终端根据通过所述非点对点通道接收到的第一组数据的序列号对所述第一组数据中的数据包进行排序,以及根据通过所述点对点通道接收到的第二组数据的序列号对所述第二组数据中的数据包进行排序;
[0027]所述第一终端在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。
[0028]结合第一方面,在第三种可能的实现方式中,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据后,所述方法还包括:
[0029]所述第一终端通过所述非点对点通道向所述第二终端发送第一心跳包,其中,所述第一心跳包用于保持所述非点对点通道。
[0030]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据后,所述方法还包括:
[0031]监测所述非点对点通道的通信质量与所述点对点通道的通信质量;
[0032]在所述点对点通道的通信质量低于所述非点对点通道的通信质量时,所述第一终端将与所述第二终端之间的数据交换通道切换为所述非点对点通道。
[0033]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述第一终端将所述数据交换通道从所述点对点通道切换为所述非点对点通道之后,所述方法还包括:
[0034]所述第一终端通过所述点对点通道向所述第二终端发送第二心跳包,其中,所述第二心跳包用于保持所述点对点通道。
[0035]结合第一方面,在第六种可能的实现方式中,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据之后,所述方法还包括:
[0036]所述第一终端通过所述非点对点通道向所述第二终端发送关闭消息,所述关闭消息用于通知所述第二终端关闭所述非点对点通道;
[0037]所述第一终端关闭所述非点对点通道。
[0038]本发明实施例第二方面还提供一种终端,包括:
[0039]连接模块,用于与第二终端建立通信连接,以及在所述通信连接建立后,与所述第二终端建立点对点通道;
[0040]媒体控制模块,用于在所述连接模块与所述第二终端已建立通信连接时,通过非点对点通道与所述第二终端交换数据,并在所述点对点通道建立后,启用所述点对点通道与所述第二终端交换数据;以及对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理,并在所述第一数据流与所述第二数据流同步之后,停止在所述非点对点通道与所述第二终端交换数据。
[0041]结合第二方面,在第一种可能的实现方式中,所述连接模块在所述终端与所述第二终端之间建立点对点通道具体包括:用于启动所述终端与所述第二终端之间的ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。
[0042]结合第二方面,在第二种可能的实现方式中,所述媒体控制模块对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理具体包括:所述媒体控制模块用于根据通过所述非点对点通道接收到的第一组数据的序列号对所述第一组数据中的数据包进行排序,以及根据通过所述点对点通道接收到的第二组数据的序列号对所述第二组数据中的数据包进行排序,并在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。
[0043]结合第二方面,在第三种可能的实现方式中,所述终端还包括通道协调控制模块,所述通道协调控制模块用于在所述媒体控制模块停止在所述非点对点通道与所述第二终端交换数据后,通过所述非点对点通道向所述第二终端发送第一心跳包,其中,所述第一心跳包用于保持所述非点对点通道。
[0044]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述媒体控制模块还用于在停止在所述非点对点通道与所述第二终端交换数据时,监测所述非点对点通道的通信质量与所述点对点通道的通信质量,并在所述点对点通道的通信质量低于所述非点对点通道的通信质量时,将与所述第二终端之间的数据交换通道切换为所述非点对点通道。
[0045]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述通道协调控制模块还用于在所述媒体控制模块将所述数据交换通道从所述点对点通道切换为所述非点对点通道之后,通过所述点对点通道向所述第二终端发送第二心跳包,其中,所述第二心跳包用于保持所述点对点通道。
[0046]结合第二方面,在第六种可能的实现方式中,所述媒体控制模块还用于在所述媒体控制模块停止在所述非点对点通道与所述第二终端交换数据之后,通过所述非点对点通道向所述第二终端发送关闭消息,所述关闭消息用于通知所述第二终端关闭所述非点对点通道,并关闭所述非点对点通道。
[0047]本发明实施例第三方面还提供一种终端,包括:
[0048]总线;以及连接到总线的处理器、存储器和接口,其中所述接口用于连与另一终端通信;所述存储器用于存储指令,所述处理器执行所述指令用于在终端与第二终端已建立通信连接时,通过非点对点通道与第二终端交换数据,并在终端与第二终端之间建立点对点通道,并在点对点通道建立后,启用所述点对点通道与所述第二终端交换数据;对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,停止在非点对点通道与第二终端交换数据。
[0049]结合第三方面,在第一种可能的实现方式中,所述处理器执行所述指令用于在终端与第二终端间建立点对点通道,包括:
[0050]启动与第二终端的交互式连接建立ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。
[0051]结合第三方面,在第二种可能的实现方式中,所述处理器执行所述指令在终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,具体包括:
[0052]根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序;
[0053]在第一组数据与第二组数据存在有N个序列号相同且连续的数据包时,确定第一数据流与第二数据流同步完成,其中,N为预设的整数值。
[0054]结合第三方面,在第三种可能的实现方式中,所述处理器还用于在停止在非点对点通道与第二终端交换数据后,通过非点对点通道向第二终端发送第一心跳包,其中,第一心跳包用于保持非点对点通道。
[0055]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器还用于在停止在非点对点通道与第二终端交换数据后,监测非点对点通道的通信质量与点对点通道的通信质量;
[0056]在点对点通道的通信质量低于非点对点通道的通信质量时,将与第二终端之间的数据交换通道切换为非点对点通道。
[0057]结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理器还用于在将数据交换通道从点对点通道切换为非点对点通道之后,通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。
[0058]结合第三方面,在第六种可能的实现方式中,所述处理器还用于在停止在非点对点通道与第二终端交换数据之后,终端通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道;终端关闭非点对点通道。
[0059]本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0060]第一终端与第二终端先通过非点对点通道交换数据,消除了在建立点对点通道时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验。

【专利附图】

【附图说明】
[0061]图1为现有技术中使用ICE技术的VoIP点对点通话流程图;
[0062]图2为本发明实施例提供的通信方法的流程图;
[0063]图3为第一终端与第二终端建立通信连接的示意图;
[0064]图4为本发明实施例提供的第一终端与第二终端建立通信连接后非点对点通道和点对点通道的数据流示意图;
[0065]图5为本发明实施例提供的对第一数据流和第二数据流进行同步处理的示意图;
[0066]图6为本发明实施例提供的终端的功能结构图;
[0067]图7为本发明实施例提供的终端的实体结构图。

【具体实施方式】
[0068]本发明实施例通过提供一种通信方法以及终端,用以解决现有技术中在通过点对点通道进行网络通话时存在的无数据交换的时间段的技术问题。
[0069]通过上述部分可以看出,由于在第一终端与第二终端已建立通信连接时,启用了非点对点通道与第二终端交换数据,在点对点通道建立后,对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,第一终端才通过点对点通道与第一终端交换数据,消除了在通过点对点通道进行网络通话时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验,同时避免了网络电话由非点对点通道切换为点对点通道时会出现的网络抖动,进一步提高了网络电话的用户体验。
[0070]为了更好地理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0071]请参考图2,图2是本发明实施例提供的通信方法的流程图,如图2所示,该方法包括:
[0072]S1:在第一终端与第二终端已建立通信连接时,第一终端通过非点对点通道与第二终端交换数据,并在第一终端与第二终端之间建立点对点通道。
[0073]第一终端与第二终端建立通信连接的过程可参考图3所述实施例来实现。与现有技术不同的是,本发明实施例在第一终端与第二终端在建立通信连接后,不仅要在第一终端与第二终端之间建立点对点通道,还要启用非点对点通道与第二终端交换数据。
[0074]其中,在第一终端与第二终端之间建立点对点通道的具体过程可包括:第一终端启动与第二终端的ICE连通性检测与协商,通过ICE连通性检测和协商建立第一终端与第二终端之间的点对点通道。ICE连通性检测与协商是现有技术,这里不再赘述。
[0075]S2:在点对点通道建立后,第一终端启用点对点通道与所述第二终端交换数据,并对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理;
[0076]其中,第一终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理的具体实现过程如下:
[0077]第一终端根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序。第一终端在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。
[0078]在具体实现时,可参考图4以及图5所示的实施例。
[0079]S3:在第一数据流与第二数据流同步之后,第一终端停止在非点对点通道与第二终端交换数据。
[0080]通过上述部分可以看出,由于在第一终端与第二终端已建立通信连接时,启用了非点对点通道与第二终端交换数据,在点对点通道建立后,对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,第一终端才通过点对点通道与第一终端交换数据,消除了在建立点对点通道时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验,同时避免了网络电话由非点对点通道切换为点对点通道时会出现的网络抖动,进一步提高了网络电话的用户体验。
[0081]请参考图3,图3是第一终端与第二终端建立通信连接的示意图,如图3所示,第一终端可以通过如下步骤与第二终端建立通信连接:
[0082](I)第一终端向第二终端发起呼叫后首先向STUN/TURN服务器发起STUN绑定请求,服务器在STUN绑定响应中携带NAT穿越候选地址返回给第一终端。
[0083](2)第一终端向第二终端发起Invite请求,并在Invite的SDP中携带本端的候选地址。
[0084](3)第二终端收到第一终端的Invite后,保存第一终端的候选地址并向STUN/TURN服务器发起STUN绑定请求获取本端的候选地址。
[0085](4)第二终端向第一终端发200ok响应消息,并在响应消息的SDP中携带本端的候选地址。
[0086](5)第一终端向第二终端发ACK。
[0087]在步骤(5)之后,第一终端与第二终端即已经建立了通信连接,第一终端与第二终端之间经过了 3次握手,第一终端与第二终端之间即可以通过非点对点通道如SIP通道等等,进行数据交换,此过程与现有技术中的过程是一致的,在此就不再赘述了。
[0088]在第一终端与第二终端建立通信连接时,本发明实施例提供的通信方法即进入步骤SI,即:在第一终端与第二终端已建立通信连接时,第一终端通过非点对点通道与第二终端交换数据,并在第一终端与第二终端间建立点对点通道。
[0089]在步骤SI中,第一终端通过非点对点通道与第二终端交换数据,具体来讲,即在第一终端向第二终端发送ACK后启动媒体包收发,当然,第二终端在收到第一终端发送的ACK后也启动媒体包收发,这样,第一终端即能够通过非点对点通道与第二终端交换数据。
[0090]可以看出,第一终端与第二终端先通过非点对点通道交换数据,消除了在通过点对点通道进行网络通话时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验。
[0091]在步骤SI之后,本发明实施例提供的信息处理方法进入步骤S2,即:第一终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理。
[0092]具体来讲,在点对点通道建立后,第一终端即开始通过点对点通道与第二终端交换数据,当然了,此时可以适当降低终端发送媒体包的码率和帧率,以降低同步的难度,接着分别为非点对点通道和点对点通道建立同步缓冲区,缓冲区的长度为可接收丢包数的阈值,请参考图4,图4是本发明实施例提供的第一终端与第二终端建立通信连接后非点对点通道和点对点通道的数据流示意图,如图4所示,第一终端可以对第一数据流Al和第二数据流Pl进行同步,当然,在具体实施过程中,第二终端也会对第三数据流A2和第四数据流P2进行同步,在此就不再赘述了。
[0093]请继续参考图5,图5是本发明实施例提供的对第一数据流和第二数据流进行同步处理的示意图,如图5所示,第一终端将两个通道接收到的数据分别存入各自通道对应的缓冲区,并根据媒体包的序列号(英文:Sequence Number ;简称:SEQ号)对非点对点通道接收到的第一组数据中的数据包以及对点对点通道接收到的第二组数据中的数据包进行排序。
[0094]具体来讲,对第二终端发送给第一终端的数据包而言,每个数据包的SEQ号是固定的,但其会被复制成两份,第二终端分别通过非点对点通道发给第一终端并存放在非点对点通道缓冲区,并对存放在非点对点通道缓冲区内的数据包进行排序,以及通过点对点通道发给第一终端并存放在点对点通道缓冲区,并对存放在点对点通道缓冲区内的数据包进行排序。
[0095]然后对非点对点通道缓冲区和点对点通道缓冲区内的媒体包进行比较,当存在N个SEQ号相同且连续的媒体包时,即确定非点对点通道的第一数据流和点对点通道的第二数据流同步完成,其中,N为预设值的整数值,预设的整数值可以是第一终端与第二终端通信时所能够接受的最大连续丢包数目。当然了,在实际应用中,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,将N设置为合适的数值,以满足实际情况的需要,在此就不再赘述了。
[0096]本实施例中所介绍的同步处理过程是在第一终端处进行的,在具体实施过程中,第二终端也会对通过非点对点通道接收到的数据和通过点对点通道接收到的数据进行类似的同步处理,在此就不再赘述了。
[0097]需要说明的是,在对非点对点通道的第一数据流和点对点通道的第二数据流进行同步处理的过程中,第一终端或第二终端使用的数据(也即其呈现给用户的数据)依然可以是通过非点对点通道交换的数据。
[0098]在非点对点通道的第一数据流和点对点通道的第二数据流同步完成之后,本发明实施例提供的通信方法进入步骤S3,即:在点对点通道建立后,第一终端停止在非点对点通道与第二终端交换数据,并通过点对点通道与第二终端交换数据。
[0099]在步骤S3中,第一终端通过点对点通道与第二终端交换数据包括以下两种情况:
[0100]第一种:第一终端关闭非点对点通道。
[0101]在第一终端通过点对点通道与第二终端交换数据之后,本发明实施例提供的通信方法还包括:第一终端通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道;第一终端关闭非点对点通道。
[0102]具体来讲,在非点对点通道的第一数据流与点对点通道的第二数据流同步完成后,第一终端向第二终端发送用于关闭点对点通道的关闭消息,例如是携带同步结束标识的消息,第二终端在接收到该消息后即能够停止在非点对点通道上收发媒体包;第一终端在发送完关闭消息后,关闭本端的非点对点通道,这样第一终端即可以通过点对点通道与第二终端交换数据。
[0103]第二种:第一终端保持非点对点通道。
[0104]在第一终端通过点对点通道与第二终端交换数据时,本发明实施例提供的通信方法还包括:第一终端通过非点对点通道向点对点通道发送第一心跳包,其中,该第一心跳包用于保持非点对点通道。
[0105]具体来讲,在非点对点通道的第一数据流与点对点通道的第二数据流同步完成后,第一终端可以通过非点对点通道向第二终端发送停止消息,第二终端在接收到该停止消息后即停止在非点对点通道收发媒体包。在第一终端停止通过非点对点通道与第二终端交换媒体包时,第一终端通过非点对点通道向第二终端发送第一心跳包,该第一心跳包用于保持非点对点通道,第二终端在接收到该第一心跳包后,即会保持非点对点通道不被关闭。
[0106]在第一终端通过点对点通道与第二终端交换数据,且保持非点对点通道不被关闭时,为了进一步提高第一终端与第二终端间的通信质量,从而给用户以更好的用户体验,本发明实施例提供的通信方法还包括:监测非点对点通道的通信质量和点对点通道的点对点通道质量,并在点对点通道的通信质量低于非点对点通道的通信质量时,第一终端将与第二终端之间的数据交换通道切换为非点对点通道。
[0107]例如,可以通过丢包率等参数来监测非点对点通道的通信质量和点对点通道的通信质量,比如,非点对点通道的丢包率小于点对点通道的丢包率,则非点对点通道的通信质量高于点对点通道的通信质量,在第一终端根据这些参数确定当前所使用的点对点通道的通信质量低于非点对点通道的通信质量时,第一终端即可以将与第二终端之间的数据交换通道切换为非点对点通道,具体可以是第一终端向第二终端发送信息,通知第二终端停止通过点对点通道收发媒体包并通过非点对点通道收发媒体包,并且第一终端本身也停止通过点对点通道收发媒体包,并通过非点对点通道收发媒体包,这样第一终端与第二终端之间的数据交换通道即由通信质量较差的点对点通道切换到了通信质量较优的非点对点通道,从而提高了第一终端与第二终端之间的通信质量。
[0108]当然了,在第一终端与第二终端之间的数据交换通道由点对点通道切换为非点对点通道之后,本发明实施例提供的通信方法还包括:第一终端通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。
[0109]具体来讲,也即在第一终端与第二终端之间的数据交换通道由点对点通道切换为非点对点通道之后,第一终端继续监测非点对点通道的通信质量和点对点通道的通信质量,并且可以在非点对点通道的通信质量低于第点对点通道的通信质量的时候,第一终端将与第二终端之间的数据交换通道切换为点对点通道,从而保证第一终端与第二终端之间的通信质量维持在一个相对较高的水平,从而进一步提高网络通话的用户体验,在此就不再赘述了。
[0110]通过上述部分可以看出,由于采用了在第一终端与第二终端已建立通信连接时,第一终端通过非点对点通道与第二终端交换数据,并在第一终端与第二终端之间建立点对点通道,并在点对点通道建立后,通过点对点通道与第二终端交换数据,并对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,通过点对点通道与第二终端交换数据的技术方案,第一终端与第二终端先通过非点对点通道交换数据,在点对点通道建立后,对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,第一终端才通过点对点通道与第一终端交换数据,消除了在通过点对点通道进行网络通话时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验,同时避免了网络电话由非点对点通道切换为点对点通道时会出现的网络抖动,进一步提高了网络电话的用户体验。
[0111]基于同一发明构思,本发明实施例还提供一种终端600,请参考图6,图6是本发明实施例提供的终端的功能模块图,如图6所示,该终端600包括:
[0112]连接模块601,用于与第二终端建立通信连接,以及在该通信连接建立后,与第二终端建立点对点通道。
[0113]媒体控制模块602,用于在连接模块601与第二终端已建立通信连接时,通过非点对点通道与第二终端交换数据;以及在点对点通道建立后,启用点对点通道与所述第二终端交换数据;对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,停止在非点对点通道与第二终端交换数据。
[0114]在具体实施过程中,连接模块601具体用于启动与第二终端之间的ICE连通性检测和协商,通过ICE连通性检测和协商来建立点对点通道。其中,基于ICE连通性检测和协商建立点对点通道过程是现有技术,这里不再赘述。
[0115]在具体实施过程中,媒体控制模块602对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理具体包括:媒体控制模块602用于根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序,并在第一组数据与第二组数据存在有N个序列号相同且连续的数据包时,确定第一数据流与第二数据流同步完成,其中,N为预设的整数值。
[0116]在具体实施过程中,图6所示的终端600还可以包括通道协调控制模块603,通道协调控制模块603用于在媒体控制模块停止在非点对点通道与第二终端交换数据后,通过非点对点通道向第二终端发送第一心跳包,其中,第一心跳包用于保持非点对点通道。
[0117]在具体实施过程中,媒体控制模块602还用于在停止在非点对点通道与第二终端交换数据后,监测非点对点通道的通信质量与点对点通道的通信质量,并在点对点通道的通信质量低于非点对点通道的通信质量时,将与第二终端之间的数据交换通道切换为非点对点通道。
[0118]在具体实施过程中,通道协调控制模块603还用于在媒体控制模块602将数据交换通道从点对点通道切换为非点对点通道之后,通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。
[0119]在具体实施过程中,媒体控制模块602还用于在媒体控制模块602停止在非点对点通道与第二终端交换数据之后,通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道,并关闭非点对点通道。
[0120]本发明实施例还提供一种终端700,请参考图7,图7是本发明实施例提供的终端的实体模块图,如图7所示,该终端700包括:总线740 ;以及连接到总线740的处理器710、存储器720和接口 730,其中该接口 730用于与另一终端通信;该存储器720用于存储指令,该处理器710用于执行存储器720中存储的指令,进行以下处理:用于在终端与第二终端已建立通信连接时,通过非点对点通道与第二终端交换数据,并在终端与第二终端之间建立点对点通道,并在点对点通道建立后,启用点对点通道与所述第二终端交换数据;并对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,停止在非点对点通道与第二终端交换数据。
[0121]在本发明实施例中,可选地,该处理器710在终端与第二终端间建立点对点通道,包括:
[0122]启动与第二终端的交互式连接建立ICE连通性检测和协商,通过该ICE连通性检测和协商建立与第二终端间的点对点通道。
[0123]在本发明实施例中,可选地,该处理器710用于在终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,具体包括:
[0124]根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序;
[0125]在第一组数据与第二组数据存在有N个序列号相同且连续的数据包时,确定第一数据流与第二数据流同步完成,其中,N为预设的整数值。
[0126]在本发明实施例中,可选地,该处理器710执还用于在终端停止在非点对点通道与第二终端交换数据后,通过非点对点通道向第二终端发送第一心跳包,其中,第一心跳包用于保持非点对点通道。
[0127]在本发明实施例中,可选地,该处理器710还用于在停止在非点对点通道与第二终端交换数据后,监测非点对点通道的通信质量与点对点通道的通信质量;
[0128]在点对点通道的通信质量低于非点对点通道的通信质量时,终端将与第二终端之间的数据交换通道切换为非点对点通道。
[0129]在本发明实施例中,可选地,该处理器710还用于在将数据交换通道从点对点通道切换为非点对点通道之后,通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。
[0130]在本发明实施例中,可选地,该处理器710还用于在停止在点对点通道与第二终端交换数据之后,通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道;并关闭非点对点通道。
[0131]本实施例中的终端与前述实施例中的通信方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的终端的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
[0132]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0133]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0134]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0135]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0136]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种通信方法,其特征在于,包括: 在第一终端与第二终端已建立通信连接时,所述第一终端通过非点对点通道与所述第二终端交换数据,并在所述第一终端与所述第二终端之间建立点对点通道; 在所述点对点通道建立后,所述第一终端启用所述点对点通道与所述第二终端交换数据; 所述第一终端对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理; 在所述第一数据流与所述第二数据流同步之后,所述第一终端停止在所述非点对点通道与所述第二终端交换数据。
2.如权利要求1所述的方法,其特征在于,所述在所述第一终端与所述第二终端间建立点对点通道,具体包括: 所述第一终端启动与所述第二终端的交互式连接建立ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。
3.如权利要求1所述的方法,其特征在于,所述第一终端对所述非点对点通道的第一数据流以及所述点对 点通道的第二数据流进行同步处理,具体包括: 所述第一终端根据通过所述非点对点通道接收到的第一组数据的序列号对所述第一组数据中的数据包进行排序,以及根据通过所述点对点通道接收到的第二组数据的序列号对所述第二组数据中的数据包进行排序; 所述第一终端在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。
4.如权利要求1所述的方法,其特征在于,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据后,所述方法还包括: 所述第一终端通过所述非点对点通道向所述第二终端发送第一心跳包,其中,所述第一心跳包用于保持所述非点对点通道。
5.如权利要求4所述的方法,其特征在于,在所述第一终端停止在通过所述非点对点通道与所述第二终端交换数据后,所述方法还包括: 监测所述非点对点通道的通信质量与所述点对点通道的通信质量; 在所述点对点通道的通信质量低于所述非点对点通道的通信质量时,所述第一终端将与所述第二终端之间的数据交换通道切换为所述非点对点通道。
6.如权利要求5所述的方法,其特征在于,在所述第一终端将所述数据交换通道从所述点对点通道切换为所述非点对点通道之后,所述方法还包括: 所述第一终端通过所述点对点通道向所述第二终端发送第二心跳包,其中,所述第二心跳包用于保持所述点对点通道。
7.如权利要求1所述的方法,其特征在于,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据之后,所述方法还包括: 所述第一终端通过所述非点对点通道向所述第二终端发送关闭消息,所述关闭消息用于通知所述第二终端关闭所述非点对点通道; 所述第一终端关闭所述非点对点通道。
8.—种终端,其特征在于,包括:连接模块,用于与第二终端建立通信连接,以及在所述通信连接建立后,与所述第二终端建立点对点通道;媒体控制模块,用于在所述连接模块与所述第二终端已建立通信连接时,通过非点对点通道与所述第二终端交换数据;在所述点对点通道建立后,启用所述点对点通道与所述第二终端交换数据;对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理,并在所述第一数据流与所述第二数据流同步之后,停止在所述非点对点通道与所述第二终端交换数据。
9.如权利要求8所述的终端,其特征在于,所述连接模块在所述终端与所述第二终端之间建立点对点通道具体包括:所述连接模块用于启动所述终端与所述第二终端之间的ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。
10.如权利要求8所述的终端,其特征在于,所述媒体控制模块对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理具体包括:所述媒体控制模块用于根据通过所述非点对点通道接收到的第一组数据的序列号对所述第一组数据中的数据包进行排序,以及根据通过所述点对点通道接收到的第二组数据的序列号对所述第二组数据中的数据包进行排序,并在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。
11.如权利要求8所述的终端,其特征在于,所述终端还包括通道协调控制模块,所述通道协调控制模块用于在所述媒体控制模块停止在所述非点对点通道与所述第二终端交换数据后,通过所述非点对点通道向所述第二终端发送第一心跳包,其中,所述第一心跳包用于保持所述非点对点通道。
12.如权利要求11所述的终端,其特征在于,所述媒体控制模块还用于在停止所述非点对点通道与所述第二终端交换数据后,监测所述非点对点通道的通信质量与所述点对点通道的通信质量,并在所述点对点通道的通信质量低于所述非点对点通道的通信质量时,将与所述第二终端之间的数据交换通道切换为所述非点对点通道。
13.如权利要求12所述的终端,其特征在于,所述通道协调控制模块还用于在所述媒体控制模块将所述数据交换通道从所述点对点通道切换为所述非点对点通道之后,通过所述点对点通道向所述第二终端发送第二心跳包,其中,所述第二心跳包用于保持所述点对点通道。
14.如权利要求8所述的终端,其特征在于,所述媒体控制模块还用于在停止在所述非点对点通道与所述第二终端交换数据之后,通过所述非点对点通道向所述第二终端发送关闭消息,所述关闭消息用于通知所述第二终端关闭所述非点对点通道,并关闭所述非点对点通道。
【文档编号】H04L29/12GK104052743SQ201410268035
【公开日】2014年9月17日 申请日期:2014年6月16日 优先权日:2014年6月16日
【发明者】贾哲, 张伟 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1