一种会话连接建立的方法、装置和系统
技术领域
本发明涉及计算机、通信领域,尤其涉及一种会话连接建立的方法、装置和系统。
背景技术
交互式连接建立(interactive connectivity establishment,ICE)是一种通过综合运用网络地址转换(Network Address Translator,NAT)会话传输应用(SessionTraversal Utilities for NAT,STUN)和基于中继的NAT传输(Traversal Using RelayNAT,TURN)两种传输技术的数据传输框架,ICE框架能够在实现NAT穿越过程中弥补两种技术在各自单独实现过程中存在的固有的缺陷。ICE可以被任何请求/问答模式的协议利用,例如:通过会话描述协议(Session Description Protocol,SDP)来完成相关功能的定义和实现。
当一个通过ICE框架协商完成的会话连接在会话过程中某个终端发生网络切换,如:建立会话连接中的会话发起终端从wifi网络切换到3G网络;此时该会话发起终端的网络环境发生变化,例如:该会话发起终端信号所经过的会话连接网络中的NAT设备发生改变。现有的恢复会话连接的方法是双方会话终端重新进行ICE的协商,该ICE的协商包括候选地址搜集、候选地址交互和连接测试等步骤,所述候选地址交互包括对方会话终端的候选地址的获取,以及双方会话终端将候选地址匹配生成候选地址对过程。这个重新进行ICE的协商过程会耗费较长的时间。于是现有技术提出使用网络管理的改进方法,该网络管理方式主要通过省去地址交互以及缩短连接测试前的准备过程的手段来加快ICE的重新协商过程(ICE的重新协商过程即会话链路重新建立过程)。 上述网络管理方式包括两种:一种网络管理方式是ICE普通网络管理方式,该方式主要是要求建立会话的双方终端都要支持ICE普通网络管理方式(或者描述为建立会话的双方终端都具备有ICE普通网络管理能力),并在建立所述会话的某一方终端要进行网络切换时应用;另一种网络管理方式是ICE中继网络管理方式,该方式主要是要求进行网络切换的会话终端(可以是会话发起终端或会话响应终端)和该会话终端所在网络中的STUN/TURN服务器具备ICE中继网络管理能力,并在该会话终端要进行网络切换时应用。
ICE普通网络管理方式:要求通信的双方会话终端都支持ICE普通网络管理,当建立会话的某一终端发生网络切换时,使用ICE普通网络管理方式进行快速的切换。ICE普通网络管理主要原理是:以图1为例,用户终端A(会话发起终端)在S110中向用户终端B(会话响应终端)发送连接测试请求,在连接测试请求中会添加MOBILITY-SUPPORT参数,该参数用来协商双方的ICE普通网络管理的支持情况,如果用户终端B支持ICE普通网络管理,则在连接测试响应中也添加MOBILITY-SUPPORT参数,这样双方就能知道对方对ICE普通网络管理的支持情况。完成连接测试后,并选定最终连接地址后开始通信。当一方在通信过程中发生网络切换,例如:用户终端A发生网络切换,此时用户终端A需要在网络切换后搜集被分配的新的候选地址,并使用搜集到的新的候选地址向用户终端B的候选地址发送新的连接测试请求,并且用户终端A在新的连接测试请求中添加标识名为MOBILITY-EVENT的字段,用户终端B收到该携带MOBILITY-EVENT字段的新的连接测试请求后,根据该MOBILITY-EVENT字段确定用户终端A发生了网络切换,且正在使用ICE普通网络管理方式试图重新进行ICE的协商,此时用户终端B清空之前匹配候选 地址对所留下的匹配信息,并根据新的连接测试中携带的用户终端A的候选地址进行连接测试,并在连接测试成功后建立会话,避免了用户终端B对于自身候选地址的重新搜集。
ICE中继网络管理方式不要求通信的会话发起终端和会话响应终端双方都支持ICE中继网络管理,本方式只要求有网络切换需求的会话终端(会话发起终端或会话响应终端)及该会话终端所在的网络中的STUN/TURN服务器支持ICE中继网络管理便可以实现。ICE中继网络管理主要原理是:以图1为例,在候选地址搜集过程S101-S104中,用户终端A(会话发起终端)在向STUN/TURN服务器发送搜集候选地址的初始请求中添加一个值为空的MOBILITY-TICKET字段,STUN/TURN服务器在向用户终端A分配中继地址的同时还向用户终端A返回MOBILITY-TICKET字段,并为所述MOBILITY-TICKET字段分配一个值。假设用户终端A和用户终端B建立的会话使用的是该中继地址,当在会话过程中用户终端A发生了网络切换,此时用户终端A可以向该STUN/TURN服务器发起新的候选地址搜集请求,所述新的候选地址搜集请求中携带该分配有值的MOBILITY-TICKET字段,STUN/TURN服务器会根据该MOBILITY-TICKET字段中的值确定在用户终端A发生网络切换后,仍然为用户终端A分配在发生网络切换之前已经为用户终端A分配过的同一个中继地址;这样对于用户终端B(会话响应终端)来说,与用户终端B建立会话的用户终端A的对外地址(在本例子中即用户终端A的中继地址)在用户终端A发生网络切换前后没有发生改变,来自用户终端B的数据媒体还是可以通过该中继地址与发生网络切换后的用户终端A建立会话连接,从而使发生网络切换的用户终端A恢复和用户终端B之间的会话。
实现ICE框架的核心过程包括:自身候选地址搜集、对方候选地址获取、候选地址配对和连接测试四个过程。现有技术中一个基于ICE框架的会话建立的流程如图1所示,其中包括ICE普通网络管理和ICE中继网络管理的应用;不妨假设,用户终端A(会话发起终端)同时支持ICE普通网络管理方式和ICE中继网络管理方式,但用户终端B(会话响应终端)不支持ICE普通网络管理,用户终端A要求在ICE协商中选择可以满足网络管理的地址进行通信过程如下:
S101、用户终端A向其所在网络中的STUN/TURN服务器发送搜集自身候选地址的初始请求。在STUN协议中该初始请求又被称为是Binding请求。用户终端A在该初始请求中添加标识名为MOBILITY-TICKET的字段,该字段表明用户终端A支持ICE中继网络管理,此时用户终端A添加的MOBILITY-TICKET字段的值为空,此时该初始请求的发送地址为用户终端A所在主机的地址及分配的端口号,目的地址为STUN/TURN服务器的地址。
S102、初始请求通过NAT设备转发给STUN/TURN服务器。该初始请求的发送地址在经过NAT设备转发时,被替换成了当前NAT设备的服务器映射地址,所述服务器映射地址是NAT设备给用户终端A分配的(服务器映射地址也被称为NAT地址),并转发给STUN/TURN服务器。
S103、STUN/TURN服务器向用户终端A回复初始响应,其中携带上述NAT地址及STUN/TURN服务器为用户终端A分配的中继地址。由于收到的初始请求中携带有MOBILITY-TICKET字段,如果STUN/TURN服务器也支持ICE中继网络管理,则在初始响应中也携带一个MOBILITY-TICKET字段,并为MOBILITY-TICKET字段赋值。
S104、该初始响应通过NAT设备转发后到达用户终端A,此时用户终端A就搜集到了其候选地址并进行保存。所述候选地址包括用户终端A自身的主机地址(也称为私有地址)和初始响应中的NAT地址和中继地址,用户终端A还需要保存服务器为其分配的MOBILITY-TICKET字段的值。
S105、用户终端A向用户终端B发送呼叫请求,所述呼叫请求携带用户终端A搜集到的自身所有候选地址。
S106、该呼叫请求通过NAT设备转发到用户终端B。
S107、用户终端B在收到该呼叫请求后进行自己的候选地址的搜集,其候选地址的搜集过程同用户终端A侧的类似。
S108、用户终端B向用户终端A发送呼叫响应。用户终端B将搜集到的自身所有候选地址携带在呼叫响应中发送给用户终端A。
S109、该呼叫响应经过NAT设备转发到用户终端A;
S110、用户终端A在收到用户终端B的呼叫响应后进行连接测试。在进行连接测试之前,用户终端A会根据双方候选地址本身的优先级进行候选地址的匹配,生成包含有不同优先级的候选地址对。用户终端A需要按照优先级逐个使用候选地址对向用户终端B发送连接测试请求,并在连接测试请求中都携带有MOBILITY-SUPPORT字段,该参数用来协商用户终端A和用户终端B的ICE普通网络管理。
S111、该连接测试请求通过NAT设备转发(对于中继地址的连接测试请求还需要通过STUN/TURN服务器的的转发)。其中,有些候选地址对的连接测试请求可以被转发到用户终端B,而有些候选地址对的连接测试请求将无法转发到用户终端B;
S112、对于可以收到连接测试请求的用户终端A的候选地址,用户终端B向该用户终端A候选地址回复连接性测试响应,如果用户终端B也支持ICE普通网络管理方式,则用户终端B会在连接性测试响应中携带赋值后的MOBILITY-SUPPORT字段;本例子中由于用户终端B不支持ICE普通网络管理,则在连接测试响应中的MOBILITY-SUPPORT字段没有被赋值;
S113、该链接测试响应通过NAT设备(对于中继地址还需要通过STUN/TURN服务器的转发)转发到用户终端A;
其中,步骤S110-S113,按照私有地址、NAT地址和中继地址三者的优先级从高到底顺序匹配双方的候选地址生成具有优先级的候选地址对,并依次进行候选地址对的连接测试;整个测试的示意图如图2A所示,其中地址11(host)为用户终端A的私有地址;地址12(reflx)为用户终端A的NAT地址,地址13(relay)为用户终端的中继地址。
可以看到现有技术中包括使用ICE中继网络管理和ICE普通网络管理的方案,但现有技术中在进行连接测试时过程比较繁琐,资源损耗较大。
发明内容
本发明提供了一种会话连接建立的方法、装置和系统,通过对现有技术中候选地址对匹配过程的改进,从而提高了连接测试的效率;其中,具体包括:
本发明的第一方面,提供的一种会话连接建立的方法,包括:
会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求,所述搜集请求包括:指示对所述会话发起终端的候选地址搜集和所述STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息;
所述会话发起终端接收所述STUN/TURN服务器发送的针对所述收集请求的搜集响应,所述搜集响应中携带所述会话发起终端的一个或多个候选地址 和所述STUN/TURN服务器对ICE中继网络管理的支持信息;
所述会话发起终端向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的所述会话发起终端的候选地址中的至少一个候选地址;
接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址;
所述会话发起终端根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址,生成一组或多组候选地址对;
所述会话发起终端根据所述一组或多组候选地址对向所述会话响应终端发送连接测试请求,并在成功完成连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。
结合第一方面的第一种可能的实现方式中,所述会话发起终端向会话响应终端发送呼叫请求之前,还包括:
所述会话发起终端根据ICE普通网络管理的支持信息判断自己是否支持ICE普通网络管理,所述ICE普通网络管理的支持信息存储于会话发起终端中;
当判断结果是所述会话发起终端自己不支持ICE普通网络管理时,则在确认所述会话发起终端和所述STUN/TURN服务器同时支持ICE中继网络管理后,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址具体为:所述会话发起终端在所述呼叫请求中仅携带所述会话发起终端的中继候选地址;
当判断结果是所述会话发起终端自己支持ICE普通网络管理时,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 所述会话发起终端在所述呼叫请求中携带所述会话发起终端的所有候选地址和所述会话发起终端对ICE普通网络管理的支持信息。
结合第一方面或结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址,还包括:
所述呼叫响应中还包括所述会话响应终端对ICE普通网络管理的支持信息;
则所述会话发起终端根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址,生成一组或多组候选地址对,具体包括:
所述会话发起终端根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息、所述会话发起终端对ICE普通网络管理的支持信息和所述会话响应终端对ICE普通网络管理的支持信息,匹配自己搜集到的候选地址和所述会话响应终端的候选地址,生成具有优先级的一组或多组候选地址对。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述会话发起终端根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息、所述会话发起终端对ICE普通网络管理的支持信息和所述会话响应终端对ICE普通网络管理的支持信息,匹配自己搜集到的候选地址和所述会话响应终端的候选地址,生成具有优先级的一组或多组候选地址对,具体为:
所述会话发起终端判断自己和所述会话响应终端是否都支持ICE普通网络管理;
在判断结果为双方都支持ICE普通网络管理时,按照双方的候选地址的优 先级属性匹配成具有优先级的一组或多组候选地址对;在判断结果为双方并非满足都支持ICE普通网络管理条件时,确认所述会话发起终端和所述STUN/TURN服务器都支持ICE中继网络管理,则将所述会话发起终端的中继地址和所述会话响应终端的候选地址按照候选地址的优先级属性匹配成具有优先级的一组或多组候选地址对。
结合第一方面或结合第一方面的上述几种可能的实现方式,在第四种可能的实现方式种中,所述会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求和/或会话发起终端向会话响应终端发送呼叫请求和/或匹配自己的候选地址和所述会话响应终端的候选地址,是在会话发起终端确认自身有网络切换需求后才进行。
本发明的第二方面,提供一种会话连接建立的方法,包括:
会话响应终端接收会话发起终端的呼叫请求,所述呼叫请求携带所述会话发起终端的一个或多个候选地址;
所述会话响应终端根据所述呼叫请求搜集所述会话响应终端的候选地址和所述会话响应终端对ICE普通网络管理的支持信息;
所述会话响应终端向所述会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的候选地址和所述会话响应终端对ICE普通网络管理的支持信息;
所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址,生成一组或多组候选地址对;
所述会话响应终端根据所述一组或多组候选地址对向所述会话发起终端发送连接测试请求,并在成功完成连接测试后,建立所述会话发起终端和所述 会话响应终端的会话连接。
结合第二方面的第一种可能的方案,所述接收所述会话发起终端的呼叫请求中还携带有所述会话发起终端对ICE普通网络管理的支持信息,则所述会话响应终端匹配自己在所述呼叫响应中携带的候选地址和所述会话发起终端的候选地址,生成一组或多组候选地址对,具体包括:
所述会话响应终端根据所述呼叫请求中携带的会话发起终端对ICE普通网络管理的支持信息和所述会话响应终端自身的ICE普通网络管理的支持信息,确定会话发起终端和会话响应终端两者是否都支持ICE普通网络管理;
当两者不满足都支持ICE普通网络管理时,则在确定所述会话发起终端侧支持ICE中继网络管理时,所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址中的中继候选地址,生成具有优先级的一组或多组候选地址对。
结合第二方面或第二方面的第一种可能的方案,在第三种可能的方案中,所述会话响应终端根据所述呼叫请求搜集自身的候选地址外,还搜集所述会话响应终端所在网络中的STUN/TURN服务器对ICE中继网络管理的支持信息,则所述会话响应终端向所述会话发起终端发送所述呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对ICE普通网络管理的支持信息,具体包括:
所述会话响应终端判断所述会话发起终端和所述会话响应终端是否都支持ICE普通网络管理;
在判断结果为两者不满足都支持ICE普通网络管理时,并在确认所述会话响应终端侧支持ICE中继网络管理时,所述会话响应终端向所述会话发起终端 发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的中继地址和会话响应终端对ICE普通网络管理的支持信息。
结合第二方面或结合第二方面的上述几种可能的实现方式,在第四种可能的实现方式种中,所述会话响应终端根据所述呼叫请求搜集自身的候选地址和/或所述会话响应终端向所述会话发起终端发送呼叫响应和/或所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址,是在会话发起终端确认自身有网络切换需求后才进行。
本发明的第三方面,提供了一种会话连接建立的会话发起终端,包括:
候选地址搜集发送模块,用于向所述会话发起终端所在网络中的STUN/TURN服务器发送搜集请求,所述搜集请求包括:指示对会话发起终端的候选地址搜集和所述STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息;
候选地址搜集接收模块,用于接收所述STUN/TURN服务器发送的针对所述收集请求的搜集响应,所述搜集响应中携带会话发起终端的一个或多个候选地址和所述STUN/TURN服务器对ICE中继网络管理的支持信息;
呼叫请求发送模块,用于向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址;
呼叫响应接收模块,用于接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址;
候选地址匹配模块,用于根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址,生成一组或多组候选地址对;
连接测试模块,用于根据所述一组或多组候选地址对向会话响应终端发送连接测试请求,在成功完成双方的连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。
结合第三方面的第一种可能的方案中,所述会话发起终端还包括:
网络管理判断模块,用于根据ICE普通网络管理的支持信息判断所述会话发起终端是否支持ICE普通网络管理,所述ICE普通网络管理的支持信息存储于会话发起终端中;
当判断结果是所述会话发起终端不支持ICE普通网络管理时,则在确认所述会话发起终端侧支持ICE中继网络管理后,所述呼叫请求发送模块向所述会话响应终端发送仅携带中继候选地址的呼叫请求;其中,所述会话发起终端侧支持ICE中继网络管理包括:所述会话发起终端和所述会话发起终端所在网络中的STUN/TURN服务器都支持ICE中继网络管理;
当判断结果是所述会话发起终端支持ICE普通网络管理时,则所述呼叫请求发送模块在向所述会话响应终端发送呼叫请求,所述呼叫请求中携带会话发起终端的所有候选地址和所述会话发起终端对ICE普通网络管理的支持信息。
结合第三方面或结合第三方面的第一种可能的方案,在第二种可能的方案中,所述呼叫响应接收模块接收到的所述呼叫响应中还包括所述会话响应终端对ICE普通网络管理的支持信息时,所述候选地址匹配模块具体用于:
根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息、所述会话发起终端对ICE普通网络管理的支持信息和所述会话响应终端对ICE普通网络管理的支持信息,匹配自己搜集到的候选地址和所述会话响应终端的候选地址生成具有优先级的一组或多组候选地址对。
结合第三方面的第二种可能的方案,在第三种可能的方案中,所述候选地址匹配模块,还包括:
第一判断子模块,用于判断所述会话发起终端和所述会话响应终端是否满足都支持ICE普通网络管理;
第一匹配子模块,用于在所述第一判断子模块的判断结果为双方都支持ICE普通网络管理时,按照双方的候选地址的优先级属性匹配,生成具有优先级的一组或多组候选地址对;
第二匹配子模块,用于在所述第一判断子模块的判断结果为双方并非满足都支持ICE普通网络管理时,确认所述会话发起终端和所述STUN/TURN服务器都支持ICE中继网络管理,则将会话发起终端的中继地址和会话响应终端的候选地址按照候选地址的优先级属性匹配,生成具有优先级的一组或多组候选地址对。
结合第三方面或结合第三方面的上述几种可能的实现方式,在第四种可能的实现方式种中,所述会话发起终端还包括切换需求判断模块,
其中,候选地址搜集发送模块向所在网络中的STUN/TURN服务器发送搜集请求;和/或,
呼叫请求发送模块向会话响应终端发送呼叫请求;和/或,
候选地址匹配模块匹配自己的候选地址和所述会话响应终端的候选地址;都是在切换需求判断模块确认自身有网络切换需求后才进行。
本发明的第四方面,提供了一种会话连接建立的会话响应终端,包括:
呼叫请求接收模块,用于接收会话发起终端的呼叫请求,所述呼叫请求携带所述会话发起终端的一个或多个候选地址;
候选地址搜集模块,用于根据所述呼叫请求搜集所述会话响应终端的候选地址;
呼叫响应发送模块,用于向所述会话发起终端发送呼叫响应,所述呼叫响应携带所述候选地址搜集模块搜集到所述会话响应终端的候选地址和所述会话响应终端对ICE普通网络管理的支持信息;
候选地址匹配模块,用于匹配在所述呼叫响应中携带的候选地址和所述会话发起终端的候选地址,生成一组或多组候选地址对;
连接测试模块,用于根据所述一组或多组候选地址对向所述会话发起终端发送连接测试请求,并在成功完成双方连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。
结合第四方面的第一种可能的方案中,所述接收会话发起终端的呼叫请求中还携带有所述会话发起终端对ICE普通网络管理的支持信息,则所述候选地址匹配模块还包括:
第一判断子模块,用于根据所述呼叫请求中携带的所述会话发起终端对ICE普通网络管理的支持信息,确定所述会话发起终端和所述会话响应终端两者是否都支持ICE普通网络管理;
第一匹配子模块,用于当所述第一判断子模块确定两者不是都支持ICE普通网络管理时,则在确定所述会话发起终端侧支持ICE中继网络管理时,所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的中继候选地址生成具有优先级的一组或多组候选地址对。
结合第四方面或结合第四方面的第一种可能的方案,在第二种可能的方案中,所述候选地址搜集模块根据所述呼叫请求搜集自身的候选地址外,还搜集 所述会话响应终端所在网络中的STUN/TURN服务器对ICE中继网络管理的支持信息,则所述呼叫响应发送模块还包括:
第二判断子模块,用于判断所述会话发起终端和所述会话响应终端是否都支持ICE普通网络管理;
所述呼叫响应发送模块,还用于在所述第二判断子模块的判断结果为两者不是都支持ICE普通网络管理时,并确认所述会话响应终端侧支持ICE中继网络管理时,所述呼叫响应发送模块向会话发起终端发送呼叫响应,所述呼叫响应携带所述候选地址搜集模块搜集到的中继地址和所述会话响应终端对ICE普通网络管理的支持信息。
结合第三方面或结合第而方面的上述几种可能的实现方式,在第三种可能的实现方式种中,所述会话响应终端还包括切换需求判断模块,
其中,候选地址搜集模块根据所述呼叫请求搜集所述会话响应终端的候选地址;和/或,
呼叫响应发送模块向所述会话发起终端发送呼叫响应;和/或,
候选地址匹配模块匹配在所述呼叫响应中携带的候选地址和所述会话发起终端的候选地址;都是在切换需求判断模块确认自身有网络切换需求后才进。
本发明结合会话发起终端自身候选地址对应的网络管理的支持信息生成候选地址对,从而能够更高效的进行连接测试,完成会话发起终端和会话响应终端的之间的会话连接建立。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1、本发明提供的现有技术中的一个基于ICE框架会话建立的流程信令图;
图2A、本发明提供的现有技术中会话发起终端侧的候选地址的连接测试的示意图;
图2B、本发明提供的实施例中会话发起终端侧的候选地址的连接测试的示意图;
图3、本发明提供的一个ICE框架的系统结构示意图;
图4、本发明提供的会话发起终端侧的一种会话连接建立的方法的流程示意图;
图5、本发明提供的一种基于ICE框架的建立会话连接的信令图;
图6、本发明提供的会话响应终端侧的一种会话连接建立方法的流程示意图;
图7、本发明提供的一种改进后的会话响应终端搜集自身的候选地址的流程示意图;
图8、本发明提供的一种基于ICE框架的建立会话连接的信令图;
图9、本发明提供的一种基于ICE框架的建立会话连接的信令图;
图10、本发明提供的SDP协议中用于携带候选地址的会话属性行各字段的功能示意图;
图11、本发明提供的一种改进的能够携带候选地址对于网络管理的支持信息的会话属性行各字段的功能示意图;
图12、本发明提供的将本发明会话连接建立方法应用到浏览器中实现的信令图。
图13、本发明提供的一种可应用到本发明各实施例的会话发起终端的结构示意图;
图14、本发明提供的一种可应用到本发明各实施例的会话发起终端的结构示意图;
图15、本发明提供的一种可应用到本发明各实施例的会话响应终端的结构示意图;
图16、本发明提供的一种可应用到本发明各实施例的会话响应终端的结构示意图;
图17、本发明提供的一种建立会话连接的智能手机终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。本发明中网络管理包含了网络切换。本发明将私有地址和NAT地址统称为非中继地址,用来和中继地址区别开。
本发明中在需要对支持ICE普通网络管理进行的连接测试请求也会如背景技术中提到的S110-S113所述在连接测试请求中携带MOBILITY-SUPPORT 字段,由于ICE普通网络管理方法和ICE中继网络管理方法是现有技术,因此,下面各实施例中对于涉及具体的ICE普通网络管理和ICE中继网络管理的内容没有做具体的陈述,而是通过概括的描述如“使用ICE普通网络管理”方式表述。本领域技术人员能够根据本发明中各实施例已公开的内容结合具体的ICE普通网络管理和ICE中继网络管理将本发明的内容运用到实践中。
本实施例的方法可以是通过原生App应用安装在终端上实现,也可以是作为终端中的系统模块一部分实现,还可以是以控件或者脚本的形式在终端种实现;因此,本发明的方法在终端中实现时可能会遇到终端自身不具备ICE普通网络管理和/或ICE中继网络管理的情况。
本发明各实施例中描述的可选的方案仅仅是为了更清楚的列举出可能的组合方案,而并非是对本发明包含的技术方案的限定,在权利要求书和已经罗列出的各实施例中的具体实现内容,本领域技术人员能够在不经过创造性思考过程而得出的其他可选的方案也在本发明的保护范围之内。
实施例一
本发明提供的一个基于ICE框架的系统实施例,本发明后续的方法实施例都能运行在该系统之上,所述系统的结构示意图如图3所示。其中包括用户终端A(会话发起终端)、用户终端A所在的网络侧(也简称用户终端A侧)的NAT设备(NAT_A)、用户终端B侧的NAT设备(NAT_B)、用户终端B(会话响应终端)和STUN/TURN服务器。在本发明的各实施例中NAT_A和NAT_B是可选的,并且用户终端A侧和/或用户终端B侧的NAT设备的数量也是不受限定的,不局限于图3所示的一个NAT_A和/或一个NAT_B。其中根据具体的应用环境NAT设备可以是:GGSN、无线路由器或普通的网关等等。本发明中STUN/TURN服务器可以是如图3所示用户终端A和用户终端B共同使用一 个;可选的,用户终端B和用户终端A拥有各自终端侧的STUN/TURN服务器;在本发明中仅以用户终端A和用户终端B公用一个STUN/TURN服务器为例。本领域技术人员能够容易根据所列举的实施例中推出在上述用户终端A和用户终端B拥有各自终端侧的STUN/TURN服务器情况。在本发明中STUN/TURN服务器并不限定是单独的设备实体,其自身也可以在已有的服务器中实现,甚至是可以集成在用户终端A和/或用户终端B的终端上。本发明中用户终端A和用户终端B的终端实体可以是手机、个人电脑、平板电脑、电子书或者其他智能设备。本系统所使用的协议也不局限于本发明提到的STUN协议、SDP协议和SIP协议,还可以是拥有和本发明中各实施例流程和处理方式类似的请求/问答模式的其他协议或者规范。
在本系统实施例中,若用户终端A所在的网络侧部署有NAT设备时,相应的用户终端A在与其所在的网络侧的STUN/TURN服务器通信的过程中,STUN/TURN服务器会获取到NAT设备为用户终端A所分配的服务器映射地址(也称为NAT地址)。如果在用户终端A侧部署有多个NAT设备时,所述为用户终端A所分配的NAT地址为用户终端A侧直接与STUN/TURN服务器相连的NAT设备(即用户终端A侧最后与STUN/TURN服务器通信的NAT设备)为用户终端A所分配的地址。STUN/TURN服务器可以在用户终端A和/或用户终端B进行候选地址搜集时,为其分配中继地址和/或从NAT设备中获取到的NAT地址。在本发明中,将用户终端的本地地址(也称为私有地址)和服务器映射地址(也称为NAT地址)统称为非中继地址;中继地址则指STUN/TUNRN服务器为用户终端分配的地址。
在接下来的具体实施例中,对于SDP信息中携带的非中继地址通常都是 以同时包含了私有地址和NAT地址作为具体情况;若不是同时包含的请况,会具体的描述为携带私有地址或NAT地址。
实施例二
本发明提供的会话发起终端侧的一种会话连接建立的方法,本方法可以在实施例一所描述的系统之上实现,但是并不局限于实施例一所描述的系统。其中会话发起终端和会话响应终端可以是个人电脑、笔记本、超极本、平板电脑或智能手机;还可是云端的某个操作系统,甚至可以是云端提供的浏览器(这里可以认为该浏览器具备了普通终端所要求的诸多功能);还可以是M2M领域内的智能终端(其功能配置可能有别于现有的终端,具有更高的定制性)。该方法包括:
S201、会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求,所述搜集请求包括:指示对会话发起终端的候选地址搜集和STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息。
会话发起终端进行自身候选地址的搜集过程,主要是通过在会话发起终端中默认设置有的STUN/TURN服务器地址向STUN/TURN服务器发送用于自身候选地址搜集的搜集请求;所述候选地址由会话发起终端所在的网络架构所决定,可能的网络架构包括:
第一种网络架构,会话发起终端经过一个或多个NAT设备转接而最终连接到STUN/TURN服务器,此时,会话发起终端的候选地址包括以下几种:1)最邻近STUN/TURN服务器的NAT设备为会话发起终端分配的地址,在本发明中也简称为NAT地址;2)会话发起终端的主机地址,在本发明中也被称为会话发起终端的私有地址;3)STUN/TURN服务器为会话发起终端分配的地址,在本发明中也被称为中继地址。
第二种网络架构,会话发起终端不经由NAT设备而直接连接服务器,此时,会话发起终端的主机地址不再是上述私有地址,而是具体呈现为互联网为会话发起终端分配的广域网地址,并且此时会话发起终端不再具有NAT地址;但是即便是第二种网络架构中,会话发起终端仍然可以拥有STUN/TURN服务器为其分配的中继地址。
本发明将重点以第一种网络架构作为主要实现网络环境来描述,而本领域的技术人员能够依据该实现容易的将其扩展到第二种网络架构中实现。
在结合本实施例二的第一种可选的方案中,所述会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求,还包括:所述会话发起终端在确认自己不支持ICE普通网络管理,而支持ICE中继网络管理时,在向所在网络中的STUN/TURN服务器发送的搜集请求中携带类型标识,所述类型标识指示STUN/TURN服务器仅返回中继地址。
提出所述第一种可选的方案是因为:会话发起终端优选的在进行会话建立过程中选取ICE普通网络管理方式或ICE中继网络管理方式中的一种方式,因此,在会话发起终端根据自身的ICE普通网络管理的支持信息确定自己不支持ICE普通网络管理时,则优选的会选择STUN/TURN服务器支持的ICE中继网络管理(在所述第一种可选的方案中,默认会话发起终端所在网络中的STUN/TURN服务器就是支持中继网络管理的);对于在发起初始请求前便已确认不会采用的ICE普通网络管理,自然没有必要获取相应的非中继地址,而可以直接要求STUN/TURN服务器返回中继地址。从而减少了NAT地址在网络带宽上的占用,也可以减少后续会话发起终端和会话响应终端匹配候选地址对时所占用的计算资源。
优选的,在执行所述第一种可选的方案之前会话发起终端首先确定自身有网络切换需求后才进行所述第一种可选的方案。
其中,确定自身有网络切换需求具体包括:用户在用户终端中设置的在进入特定网域中或者满足特定条件时是具有网络切换需求的,所述特定网域包括:wifi网域;所述满足特定条件包括:用户针对某次特定的通话对网络切换需求进行设置;或根据会话响应终端自身的移动的频繁程度达到指定值时。
用户针对某次特定的通话对网络切换需求进行设置举例为:用户在一个拥有免费wifi的网络中进行通信,但是随时有可能移动出该wifi区域,所以此时的通话可以设定会有网络切换需求。
在本实施例中,搜集STUN/TURN服务器对ICE中继网络管理的支持信息的方式,可以直接使用背景技术中在搜集请求中携带MOBILITY-TICKET的字段方式,并通过搜集响应中MOBILITY-TICKET字段赋值内容来获取STUN/TURN服务器对ICE中继网络管的支持信息。
所述结合本实施例二的第一种可选的方案里的搜集请求可以是基于STUN协议中的Binding请求(在背景技术中也称为初始请求)消息的基础上实现,具体为在Binding请求消息的消息属性(Message Attributes)中增设一个字段,例如:该字段名可以定义为SUPPORTING-MANNAGE,并可以定义SUPPORTING-MANNAGE字段内容为normal时,则STUN/TURN服务器返回属于会话发起终端的可用于ICE普通网络管理的候选地址;SUPPORTING-MANNAGE内容为relay时,则服务器仅返回属于会话发起终端的支持ICE中继网络管理的候选地址;默认的在SUPPORTING-MANNAGE内容为空时,则服务器返回会话发起终端的所有候选地址。
其中,定义该SUPPORTING-MANNAGE字段内容为空的处理方式是为了与现有的方案兼容。
S202、会话发起终端接收STUN/TURN服务器的搜集响应,所述搜集响应中携带会话发起终端的一个或多个候选地址和STUN/TURN服务器对ICE中继网络管理的支持信息。
结合第一种可选的方案的第一种可能,步骤S202具体执行为:STUN/TURN服务器在接收到发自会话发起终端的搜集请求,并根据该搜集请求中类型标识确认会话发起终端只要求返回中继地址时,则将自身为会话发起终端分配的中继地址和对ICE中继网络管理的支持信息携带在搜集响应中发送给会话发起终端;可选的,由于在第一种可选的方案中,默认STUN/TURN服务器支持ICE中继网络管理方式,因此,可以只携带上述中继地址,而可以省略上述STUN/TURN服务器对ICE中继网络管理的支持信息。
结合第一种可选的方案的第二种可能,其中,相对于会话发起终端STUN/TURN服务器并非默认就支持ICE中继网络管理;则步骤S202具体执行为:STUN/TURN服务器在接收到发自会话发起终端的搜索请求后,根据该搜索请求中类型标识确认会话发起终端只要求返回中继地址时,首先确认STUN/TURN服务器自身是否支持ICE中继网络管理,若确认结果为支持ICE中继网络管理则将自身为会话发起终端分配的中继地址和自身对ICE中继网络管理的支持信息携带在搜集响应中发送给会话发起终端;若确认结果为不支持ICE中继网络管理则将会话发起终端的候选地址(这里的候选地址包括中继地址和NAT地址)和自身对ICE中继网络管理的支持信息(即STUN/TURN服务器不支持ICE中继网络管理)携带在搜集响应中发送给会话发起终端。
S203、会话发起终端向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址。
在本实施二的主方案中,所述呼叫请求是不需要携带会话发起终端的候选地址对于网络管理的支持信息;而直接利用SDP协议中的会话属性行承载所述会话发起终端的候选地址,并通过呼叫请求发送给会话响应终端。以便于会话响应终端在搜集到自身的候选地址后,结合呼叫请求中会话发起终端的候选地址生成候选地址对,用于后续双方的连接测试过程。
在结合本实施例二的第二种可选的方案中,所述会话发起终端向会话响应终端发送呼叫请求,之前,还包括:
所述会话发起终端根据ICE普通网络管理的支持信息判断自己是否支持ICE普通网络管理,所述ICE普通网络管理的支持信息存储于会话发起终端中;
当判断结果是所述会话发起终端自己不支持ICE普通网络管理时,则在确认所述会话发起终端和所述STUN/TURN服务器同时支持ICE中继网络管理后,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址具体为:会话发起终端在所述呼叫请求中仅携带会话发起终端的中继候选地址;
当判断结果是所述会话发起终端自己支持ICE普通网络管理时,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址具体为:所述会话发起终端在所述呼叫请求中携带会话发起终端的所以候选地址和所述会话发起终端对ICE普通网络管理的支持信息。
在结合本实施例二的第三种可选的方案中,会话发起终端向所述会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的所述会话发起终端的候选地 址中的至少一个候选地址,还包括:所述呼叫请求还携带了所述会话发起终端对ICE普通网络管理的支持信息和/或会话发起终端侧对ICE中继网络管理的支持信息,所述会话发起终端侧对ICE中继网络管理的支持信息包括所述会话发起终端和所述STUN/TURN服务器两者对ICE中继网络管理的支持信息。
会话响应终端在接收到所述第三种可选的方案中的呼叫请求后,在第一种可能的情况下:
会话响应终端确定会话发起终端和会话响应终端双方都支持ICE普通网络管理后,会话响应终端选择自身的所有候选地址和自身对ICE普通网络管理的支持信息携带在呼叫响应中返回给会话发起终端;
会话响应终端在接收到所述第三种可选的方案中的呼叫请求后,在第二种可能的情况下:
会话响应终端在发送搜集请求之前,确定会话发起终端和会话响应终端双方不满足都支持ICE普通网络管理的条件时,向服务器发送仅搜集自身的中继地址和STUN/TURN服务器对中继网络管理的支持信息;将所述搜集到的中继地址携带在呼叫响应中返回给会话发起终端。
上述第二种可能情况中,优选的还包括:会话响应终端确定自身存在网络切换需求后才执行所述第二种可能情况。
上述第二种可能情况的处理,是考虑了ICE普通网络管理在出现会话双方没有都支持ICE普通网络管理条件情况下ICE普通网络管理便不能在会话发起终端和/或会话响应终端发生网络切换时起作用,上述第二种可能情况下只有会话响应终端的中继地址支持的ICE中继网络管理,并能够在会话响应终端发生网络切换时起作用,因此,在上述二种可能情况下选择在呼叫响应中只携带会 话响应终端的中继地址在ICE框架是最优的,带来的进一步有益效果是减少了会话双方匹配候选地址对、计算候选地址对的优先级和非中继地址在网络中传递所占用的带宽。
需要进一步补充的是,所述结合本实施例二的第一种可选方案和所述结合本实施例二的第二种可选的方案,两种可选方案是可以结合使用的,因为他们所改进的是在信令流程的不同步骤上,可以一同作用于实施例提高效率;同样的结合本实施例二的第一种可选方案和所述结合本实施例二的第三种可选的方案,两种可选的方案也是可以结合使用的;还有结合本实施例二的第一种可选的方案、第二种可选的方案和所述结合本实施例二的第三种可选的方案,两种可选的方案也是可以结合使用的。
其中,最明显的就是,在第一种可选的方案中成功的通过搜集请求仅获取到STUN/TURN服务器为会话发起终端分配的中继地址时,在步骤S203,具体的,可以选择会话发起终端的中继地址携带在呼叫请求中直接向会话响应终端,从而避免第二种可选的方案中的判断过程。而在第一种可选的方案中通过搜集请求获取到会话发起终端所有候选地址时,可以进一步结合第二种可选的方案和/后第三种可选的方案来完成,但是此时可以省略第二种可选的方案中的判断过程,而是直接利用第一种可选的方案中的判断的结果。
在可选的方案中,步骤S203中发送的呼叫请求中携带背景技术中S112所述的MOBILITY-SUPPORT标识方式,从而在呼叫响应中获取会话响应终端对于ICE普通网络管理的支持信息。当然,也可以是通过自定义的扩展字段来实现,在此不再赘述。
S204、接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话 响应终端的一个或者多个候选地址。
在结合本实施例二的第四种可选的方案中,所述呼叫响应中还包括所述会话响应终端对ICE普通网络管理的支持信息;
在结合本实施例二的第四种可选的方案中,所述呼叫响应中携带会话响应终端所搜集的一个或多个候选地址以及会话响应终端对ICE普通网络管理的支持信息和/或ICE中继网络管理的支持信息的方式可以是多样的,下面将具体的列举几种方式:
第一种方式,通过在SDP协议的会话属性行("a"行)增加一个用来明确是否支持网络管理的字段如图11所示,其中,SDP协议中用于携带候选地址的会话属性行各字段的功能示意图如图10所示;其实现具体为在"a"行最后增加标识名为ICE-mobile-ability的字段,该字段的取值可以确定为normal、relay或both标识。并设置在ICE-mobile-ability的值为normal时,表明该候选地址可用于ICE普通网络管理;当ICE-mobile-ability的值为relay时,表明该候选地址可用于ICE中继网络管理;当ICE-mobile-ability的值为both时,表明该候选地址可同时用于ICE中继网络管理和ICE普通网络管理;当ICE-mobile-ability的值为non时表明该候选地址不可用于网络管理(即ICE普通网络管理和ICE中继网络管理都不支持)。当然,在未来技术发展中如果有新的基于ICE框架的网络管理方式产生,也可以通过在ICE-mobile-ability字段中扩展对应所述新的网络管理方式的取值,来实现本发明的功能的扩展。
第二种方式,在SDP协议的会话属性行中增设用于承载所述网络管理的支持信息的属性行,表现为,在呼叫响应中的SDP信息中增加:“a=ICE-mobile-ability:normal”。该会话属性行“ICE-mobile-ability”字段的取 值可以确定为normal、relay或both。当ICE-mobile-ability的值为normal时,表明会话响应终端的候选地址可用于ICE普通网络管理;当ICE-mobile-ability的值为relay时,表明会话响应终端的中继地址可用于ICE中继网络管理;当ICE-mobile-ability的值为both时,表明会话响应终端的中继地址可用于ICE中继网络管理,且会话响应终端的所有候选地址可用于ICE普通网络管理。
第三种方式,在XMPP协议中增设代表网络管理的支持信息的标签,所述标签可以为:“<script>var ICE-mobile-ability=normal;</script>”。该会话属性行“ICE-mobile-ability”字段的取值可以确定为normal、relay或both。当ICE-mobile-ability的值为normal时,表明会话响应终端的候选地址可用于ICE普通网络管理;当ICE-mobile-ability的值为relay时,表明会话响应终端的中继地址可用于ICE中继网络管理;当ICE-mobile-ability的值为both时,表明会话响应终端的中继地址可用于ICE中继网络管理,且会话响应终端的候选地址可用于ICE普通网络管理。
本领域技术人员,能够根据上述揭示的内容,将所述携带网络管理的支持信息的方法拓展到其他可能运用到本发明中的协议里。
S205、会话发起终端根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己候选地址和所述会话响应终端的候选地址生成一组或多组候选地址对。
在本实施例中所述会话发起终端根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址,生成一组或多组候选地址对,具体包括:
确认会话发起终端和STUN/TURN服务器都支持ICE中继网络管理,则将 会话发起终端的中继地址和会话响应终端的候选地址按照候选地址的优先级属性匹配生成具有优先级的一组或多组候选地址对。优选的,此时无须匹配会话发起终端的非中继地址和会话响应的候选地址,从而减少了后续需要进行候选地址对连接测试的数量。
在结合本实施例二第二种可选的方案中,当判断结果是会话发起终端不支持ICE普通网络管理时,则在确认会话发起终端和STUN/TURN服务器同时支持ICE中继网络管理后;此时执行S205匹配候选地址对时,会话发起终端直接用自身的中继地址匹配呼叫响应中的候选地址,生成一个或多个候选地址对。
在结合本实施例二第四种可选的方案,S205中会话发起终端根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和会话响应终端的候选地址生成一组或多组候选地址对,具体包括:
所述会话发起终端根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息、会话发起终端对ICE普通网络管理的支持信息和会话响应终端对ICE普通网络管理的支持信息,匹配自己搜集到的候选地址和接收自会话响应终端的候选地址生成具有优先级的一组或多组候选地址对。
在本实施例的第五种可选的方案中,优选的会话发起终端判断自己和会话响应终端是否都支持ICE普通网络管理;
在判断结果为双方都支持ICE普通网络管理时,按照双方的候选地址的优先级属性匹配成具有优先级的一组或多组候选地址对;在判断结果为双方并非满足都支持ICE普通网络管理条件时,确认会话发起终端和STUN/TURN服务器都支持ICE中继网络管理,则将会话发起终端的中继地址和会话响应终端的 候选地址按照候选地址的优先级属性匹配成具有优先级的一组或多组候选地址对。
通过对ICE框架的分析,其中,ICE普通网络管理的优先级高于ICE中继网络管理。并结合背景技术中介绍的ICE普通网络管理和ICE中继网络管理自身的原理,得出用于会话发起终端生成候选地址对的关系表1,表1中给出了会话发起终端和会话响应终端的候选地址对网络管理支持的几种可能的情况。
表1
在实际情况中,除了上述优先级外,还要考虑会话发起终端自身的特殊需求,比如会话发起终端的隐私要求或会话发起终端侧的NAT设备只允许中继地址通信等等。其中,所述隐私要求比如:用户终端不希望外网知道其私有地址;会话发起终端侧的NAT设备只允许中继地址通信的如:有些NAT设备对于通过其自身的地址有限定,不允许非中继地址通过,而只允许中继地址通过 的情况。这些特殊情况都能在明白本发明的实现方案后很容易的结合到本发明中实现,因此没有一一作陈述。
S206、话发起终端根据所述一组或多组候选地址对向会话响应终端发送连接测试请求。
当没有接收到连接测试响应或连接测试响应超时或连接测试响应为报错时,则表明连接测试不成功;并在还有其他候选地址对没有完成连接测试时,逐一进行连接测试,直到有一组候选地址成功完成连接测试为止。
在结合本实施例二的第五种可选的方案后,S206具体实现为当没有接收到连接测试响应或连接测试响应超时或连接测试响应为报错时,则表明连接测试不成功;并在还有其他候选地址对没有完成连接测试时,按照候选地址对的优先级逐一进行连接测试,直到有一组候选地址成功完成连接测试为止。
S207、在成功完成双方连接测试后,建立会话发起终端和会话响应终端的会话连接。
这里成功完成连接测试,具体为会话发起终端针对某一组候选地址对向会话响应终端发送连接测试请求和接收到连接测试响应,还包括会话响应终端针对同样一组候选地址对向会话发起终端发送的连接测试请求,并成功收到会话发起终端的连接测试响应,此时,才算成功完成了会话发起终端和会话响应终端间的连接测试的过程,并依据成功完成连接测试的候选地址对建立会话连接。
本实施例,从会话发起终端侧的角度阐述说明了本发明的核心发明点,通过对呼叫响应中携带的候选地址和所述候选地址对应的网络管理的支持信息,进一步结合会话发起终端自身候选地址对应的网络管理的支持信息生成候选 地址对,从而能够更高效的进行连接测试。克服了现有技术在进行连接测试时过程比较繁琐,较大的可能性造成非必要的候选地址对(或者说不可能被后续建立会话连接所采用的候选地址对)参与到连接测试过程中来,资源损耗较大的问题。
实施例三
本实施例是本发明在会话发起终端侧的运用,是实施例二结合具体应用环境下的描述,其会话建立的信令流程图如图5所示。本实施例是基于SDP协议实现,但本领域技术人员可以根据本发明中揭示的技术内容,将该方法运用到基于同一ICE框架的其他不同多媒体信令协议中,比如:XMPP协议。本实施例中的用户终端A,即实施例二中的会话发起终端,同时具备ICE普通网络管理和ICE中继网络管理能力;用户终端B,即实施例二中的会话响应终端,用户终端B不具有ICE普通网络管理能力,但是具有ICE中继网络管理能力;其中,STUN/TURN服务器具备ICE中继网络管理的能力;本实施例中对网络管理的支持情况对应表1中的情况II。本实施例中用户终端A和用户终端B拥有各自网络侧的NAT设备即NAT_A和NAT_B,并且双方共用一个STUN/TURN服务器。本实施例的方法还可以运用到更为多样的ICE环境,如:1)用户终端A和/或用户终端B的网络侧没有NAT设备或者有多个NAT设备;2)用户终端A和用户终端B各自网络侧拥有独立的STUN/TURN服务器;或者是上述1)、2)种环境都存在的情况等等均可以基于本实施例公开的内容通过调整候选地址和/或STUN/TURN服务器间的通信来完成。本实施例的会话建立流程的具体包括:
在本实施例中优选的完成了用户终端A确定自身有网络切换需求的过程后才执行本实施例的流程,该判断可以是在用户终端A搜集自身候选地址之前 完成。
所述确认自身有网络切换需求具体包括:
会话发起终端中设置有在进入特定网域中或者满足特定条件时是具有网络切换需求的,所述特定网域包括:wifi网域;所述满足特定条件包括:针对某次特定的通话对网络切换需求进行设置,或根据会话响应终端自身的移动的频繁程度达到指定值时。
S301、用户终端A搜集自身的候选地址和STUN/TURN服务器对ICE中继网络管理的支持信息。
其中,搜集自身的候选地址包括实施例二中的向STUN/TURN服务器发送搜集请求和接收STUN/TURN服务器返回的搜集响应。在本实施例中,所述搜集请求包括:指示对会话发起终端的候选地址搜集和STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息;STUN/TURN服务器对ICE中继网络管理的支持信息,主要是通过在初始请求中添加STUN/TURN服务器识别的MOBILITY-TICKET字段,使得STUN/TURN服务器在初始请求中识别出MOBILITY-TICKET字段后,在MOBILITY-TICKET字段中携带自身对ICE中继网络管理的支持信息。具体如:S101和S104中所描述。
用户终端A还根据ICE普通网络管理的支持信息判断自己是否支持ICE普通网络管理,所述ICE普通网络管理的支持信息存储于会话发起终端中;所述ICE普通网络管理的支持信息可以是记录在文本中的数据,也可以是用户终端A通过对配置参数获取或者通过响应端口的调用来获取。
S302、用户终端A向用户终端B发送呼叫请求,所述呼叫请求中携带有SDP信息,呼叫请求中的SDP信息携带有用户终端A搜集到的用户终端A的 所有候选地址。
在结合实施例二的第三种可选的方案中,其中,呼叫请求还携带了会话发起终端的一个或多个候选地址对于网络管理的支持信息具体在本实施例实现为:对于呼叫请求的SDP信息中用于携带有非中继地址的会话属性行后添加支持ICE普通网络管理的标识,对于呼叫请求的SDP信息中用于携带有中继地址的会话属性行后则添加同时支持ICE中继网络管理和ICE普通网络管理的标识。
为了具体说明如何添加支持网络管理的标识,首先引用RFC5389中定义的在SDP中用于传递候选地址的消息格式,字段分部示意图如图10所示,在标准中其各个字段定义为:
其中,RFC5246定义了现有技术中一个候选地址可以携带的所有参数,包括地址支持的类"candidate",传输的协议"transport",地址的优先级"priority",默认连接地址"connection-address",地址端口"port"等。一个具体的候选地址由SDP信息中的会话属性行("a"行)携带,其展现形式如下:
a=candidate:11UDP213070643110.0.1.18998typ host
a=candidate:21UDP1694498815192.0.2.345664typ srflx raddr
本实施例通过在SDP协议的会话属性行("a"行)增加一个用来明确该候选地址是否可用于网络管理(ICE普通网络管理和/或ICE中继网络管理)的字段,具体为在"a"行最后增加命名为ICE-mobile-ability的字段,该字段的取值可以确定为normal、relay或both标识。并设置在ICE-mobile-ability的值为normal时,表明用户终端A支持ICE普通网络管理(即表明该候选地址可用于ICE普通网络管理);当ICE-mobile-ability的值为relay时,表明用户终端A和用户终端A所在的网络中的STUN/TURN服务器其都支持ICE中继网络管理;当ICE-mobile-ability的值为both时,表明用户终端侧即支持ICE中继网络管理也支持ICE普通网络管理;当ICE-mobile-ability的值为non时,表明用户终端A侧并不支持网络管理(即该候选地址对于ICE普通网络管理和ICE中继网络管理都不可用)。当然,在未来技术发展中如果有新的基于ICE框架的网络管理方式产生,也可以通过在ICE-mobile-ability标识中扩展对应所述新的网络管理方式的取值,来实现本发明的功能的扩展。图11为增加了ICE-mobile-ability标识后会话属性行("a"行)各标识字段对应含义的示意图。
参考实施例一提供的本发明的系统示意图1中候选地址参数,经过本发明扩展后的来自用户终端A的呼叫请求,具体呈现如下:
v=0
o=Dodo28908447302890844731IN IP4host.example_b.com
s=
c=IN IP4215.75.211.130
t=00
m=audio8076RTP/AVP0
a=candidate:11UDP213070643110.0.1.218998typ host normal
a=candidate:21UDP1694498815211.25.21.3045664typ srflx normal
a=candidate:31UDP1294498217215.75.211.1304324typ relay both
其中的”10.0.1.21”、”211.25.21.30”和”215.75.211.130”是由用户终端A通过S301所搜集的候选地址,而”211.25.21.30”和”215.75.211.130”是携带在搜集响应中返回给用户终端A的,”10.0.1.21”则是存储在用户终端A上的。其中“a=candidate:11UDP213070643110.0.1.218998typ host normal”,最后的”normal”标识,表明用户终端A的私有地址可以用于ICE普通网络管理;“a=candidate:21UDP1694498815211.25.21.3045664typ srflx normal”最后的”normal”标识,表明用户终端A的搜集到的NAT地址可以用于ICE普通网络管理;“a=candidate:31UDP1294498217215.75.211.1304324typ relay both”最后的”both”标识,表明用户终端A搜集到的由STUN/TURN服务器分配的中继地址即可以用于ICE中继网络管理也可以用于ICE普通网络管理。本实施例中,ICE中继网络管理并不需要双方进行能力协商,所以本实施例中也可以不添加该ICE中继网络管理标识。
本实施例中,除了上述在会话属性行(“a”行)最后扩展字段方式外,结合本实施例三的第一种可选的方案中,可以使用单独的会话属性行(“a”行)来实现呼叫请求携带会话发起终端的一个或多个候选地址对于网络管理的支持信息,如:
v=0
o=Dodo28908447302890844731IN IP4host.example_b.com
s=
c=IN IP4215.75.211.130
t=00
m=audio8076RTP/AVP0
a=ICE-mobile-ability:both
a=candidate:11UDP213070643110.0.1.218998typ host
a=candidate:21UDP1694498815211.25.21.3045664typ srflx
a=candidate:31UDP1294498217215.75.211.1304324typ relay
其中,添加了一个新的“a=ICE-mobile-ability”的会话属性行,该会话属性行的取值可以确定为normal、relay或both。当ICE-mobile-ability的值为normal时,表明用户终端A支持ICE普通网络管理;当ICE-mobile-ability的值为relay时,表明用户终端A侧支持ICE中继网络管理,其中,用户终端A侧包括:用户终端A和用户终端A所在的网络中的STUN/TURN服务器;当ICE-mobile-ability的值为both时,表明不仅用户终端A侧支持ICE中继网络管理,而且用户终端A还支持ICE普通网络管理;当SDP信息中不包含“a=ICE-mobile-ability”的会话属性行时,表明该用户终端A并不支持网络管理,所在网络管理包括ICE中继网络管理和ICE普通网络管理。
S303、该呼叫请求被NAT_A设备和NAT_B设备转发到用户终端B。
S304、用户终端B在接收到呼叫请求后,开始搜集其自身的候选地址和所述候选地址对网络管理的支持信息,该搜集过程和用户终端A类似。
S305、用户终端B生成呼叫响应消息。
由于用户终端B不具备ICE普通网络管理能力,所以构成呼叫响应消息的SDP信息中用于携带非中继地址的会话属性行最后设置为non标识,表明用户终端B的非中继地址不可用于ICE普通网络管理(即用户终端B不支持ICE普通网络管理);而用于携带中继地址的会话属性行最后设置relay标识,表明用户终端B的中继地址可用于ICE中继网络管理(即用户终端B和用户终端B所在网络的STUN/TURN服务器支持ICE中继网络管理)。用户终端B用于在呼叫响应消息中携带自身候选地址可用于的网络管理的信息方式和S302中用 户终端A用于在呼叫请求消息中携带自身候选地址可用于的网络管理的信息方式相同。
在结合本实施例三的第一种可选的方案中,可以通过在呼叫响应消息的SDP信息中包含”a=ICE-mobile-ability:relay”的会话属性行表明用户终端B侧支持ICE中继网络管理,但用户终端B不支持ICE普通网络管理。
S306、该呼叫响应被NAT_B设备和NAT_A设备转发到用户终端A。
对应实施例二中步骤S205的内容,在本实施中具体被执行为步骤S307。
S307、用户终端A收到来自用户终端B的呼叫响应,根据自身和用户终端B两者对于网络管理的支持信息进行配对,并生成具有优先级的候选地址对,用于连接测试。
步骤S307的过程具体为:
用户终端A根据该呼叫响应中对应的携带非中继地址的会话属性行(”a=candidate”行)中的的ICE-mobile-ability字段内容为”non”标识,而携带中继地址的会话属性行(”a=candidate”行)中的的ICE-mobile-ability字段中有”relay”标识,判断出用户终端B不支持ICE普通网络管理,但是用户终端B侧支持ICE中继网络管理。
在基于本实施例的第一种可选的方案中上述判断过程为:用户终端A根据呼叫响应的SDP信息中携带有“a=ICE-mobile-ability:relay”的会话属性行来判断用户B不支持ICE普通网络管理,但用户终端B侧支持ICE中继网络管理。
由于用户终端A有网络切换需求,用户终端A优先选择能支持网络管理能力的候选地址对进行连接测试,可以结合表1分析得到:用户终端A仅选择 由自身的中继地址和用户终端B的候选地址生成具有优先级的一组或多组候选地址对。
假设用户终端B返回了其搜集到的用户终端B的私有地址、NAT地址和中继地址,则按照上述生成的具有优先级的候选地址对为:1)用户终端A的中继地址<--->用户终端B的私有地址、2)用户终端A的中继地址<--->用户终端B的NAT地址和3)用户终端A的中继地址<--->用户终端B的中继地址,以上三组候选地址对的优先级排序为从高到低,用户终端A侧的连接测试示意图如图2B所示。
可选的,用户终端B的候选地址也与用户终端A的非中继地址生成候选地址对,且该候选地址对仅在上述由用户终端A的中继地址和用户终端B生成的候选地址对在连接测试结果为失败之后才进行连接测试。这里描述的可选的情况,是为了完善方案,通常情况下用户终端A的中继地址与用户终端B所生成的候选地址对连接测试成功的可能性高于用户终端A的非中继地址与用户终端B所生成的候选地址对的连接测试成功的可能性。
其实,通过上述候选地址对的生成可以知道,本发明中生成的候选地址对的优先级包含了两个参考因素:
因素1,根据网络管理之间优先级得到第一级优先级,此时主要依据的是在用户终端A同时能实现ICE普通网络管理和ICE中继网络管理情况下,ICE普通网络管理的优先级高于ICE中继网络管理。具体:如表1中各I、II、...、VI情况中所描述。
因素2,根据候选地址自身的优先级得到第二级优先级,并在判断出所述第一级优先级后,在基于第一级优先级的基础上根据私有地址、NAT地址、中 级地址从高到低优先级,得到最终的候选地址对的优先级。该结论适用于本发明的其他各实施例。
S308、用户终端A依据所述一组或多组候选地址对的优先级依次向用户终端B发送连接测试请求。
由于用户终端A已经通过呼叫响应获知用户终端B不具备ICE普通网络管理能力,因此,在向用户终端B发送的连接测试请求中便不必像S110那样携带MOBILITY-SUPPORT字段(用来完成用户终端A和用户终端B双方的ICE普通网络管理的协商)。
S309、该用户终端A的连接测试请求通过NAT_A设备、STUN/TURN服务器和NAT_B设备转发给用户终端B(需要注意的是,若用户终端A需要进行的连接测试请求的候选地址对均是非中继地址时,则S309的转发过程不需要STUN/TURN服务器转发)。
S310、用户终端B接收连接测试请求,并从该链接测试请求中提取其携带的候选地址对;然后,用户终端B将依据此提取自连接测试的候选地址对向用户终端A发送连接测试响应。
在可选的方案中,该连接测试请求也可以是从用户终端B发出,其具体执行过程,仅需要把步骤S308-S310中的原成本执行主体用户终端A和用户终端B进行交换。本可选的方案多用于在用户终端B具有根据用户终端A的候选地址和用户终端B的候选地址,以及双方对网络管理的支持信息主动完成塞选和匹配的能力的情况下。其中塞选即用户终端B确定自己具有网络切换需求后,有针对性的是选择可用于ICE中继网络管理的候选地址来和呼叫请求中携带的候选地址进行匹配,还是选择可用于ICE普通网络管理的候选地址来和呼叫 请求中携带的候选地址进行匹配。
在可选的方案中,候选地址对的生成按照本实施例的方式来完成,而后续的连接测试过程(包括连接测试请求的发送以及连接测试响应接收等)仍就按照现有的ICE框架来完成。由于,现有ICE框架进行连接测试的顺序依照的就是候选地址对的优先级顺序,因此,在本实例生成了具有不同优先级的候选地址对后,可以正常的应用现有ICE框架来完成连接测试过程。
S311、用户终端B发送的连接测试响应经过NAT_B设备、STUN/TURN服务器和NAT_A设备转发到用户终端A(需要注意的是,若用户终端B返回的连接测试响应中携带的候选地址对均是非中继地址时,则S311的转发过程不需要经过STUN/TURN服务器)。
S312、成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。本实施例中用户终端A的中继地址<--->用户终端B的NAT地址的候选地址对,在用户终端A和用户终端B分别依此候选地址对发起连接测试请求时,均能收到对方的连接测试响应,表明成功完成连接测试。用户终端A选择该候选地址对建立与用户终端B的会话连接。
本实施例总结了,在现有技术中为实现用户终端A和用户终端B的网络切换需求,会在网络切换时做大量的连接测试;为减少网络切换时进行连接测试所占用的网络延时,现有技术又提出了ICE普通网络管理和ICE中继网络管理。但是实际网络中用户终端和各网络节点对于这两种网络管理的支持能力并不相同,有可能都支持、有可能只支持其中某一个或者两种网络管理都不支持。而ICE普通网络管理的支持的确认是在连接测试步骤中(所述连接测试步骤,如图1中所示的步骤如S110-S113),现有方法无法在网络连接测试前知道会话 响应终端是否支持ICE普通网络管理,因此,在会话响应终端不支持ICE普通网络管理情况下,额外的浪费连接测试请求。针对上述存在问题,本实施例中采用的通过扩展SDP信息中用来描述候选地址的”a”行的字段,增设了网络管理标识,使得用户终端A能够在发送连接测试之前,更确切的可以说是在生成用于连接测试的候选地址对前,便获知用户终端B是否支持ICE普通网络管理,从而有效的减少了无效的连接测试,节约了网络带宽。这里所说的无效的连接测试,包括但不限定为经过测试后而不会使用到其测试结果的情况。
还要说明的是,本实施例中S302中呼叫请求里的候选地址对网络管理的支持信息在本实施例中并非是必须的(是可以去掉的),它的作用主要是在和本发明的实施例六结合在一起作为一个完整系统方案时才体现出来。
本领域的技术人员都知道,实际情况中会话发起终端或者会话响应终端所搜集的候选地址中可能只包含其中的某一个候选地址;可能还因为会话发起终端或者会话响应终端的某种需求,在会话请求中只携带了私有地址或NAT地址中的某一个。在本实施例中对于缺少了某一种候选地址情况,则相应的在SDP信息中去掉该缺少的候选地址对应的会话属性行(“a”行),在此不再赘述。
本实施例中仅列举了用户终端A同时具有ICE中继网络管理的能力和ICE普通网络管理的能力,而用户终端B仅支持ICE中继网络管理的能力情况下的方案。而用户终端A和用户终端B实际对于上述两种网络管理的支持情况的组合除本实施例列举情况外,还包含了如表1所示的其他五种情况。下面将结合本实施例的主要步骤逐一对所述表1情况作分析,其中由于用户终端B是否支持ICE中继网络管理只与用户终端B侧的网络有关,用户终端B是否支持 ICE中继网络管理在本实施例及其相关扩展实施例中不作考虑;默认的用户终端B在呼叫响应中返回其搜集到的所有候选地址,默认的在匹配用户终端A的候选地址和用户终端B的候选地址时候,也是使用用户终端B所有候选地址。
实施例三的扩展实施例(1)
在用户终端A既拥有ICE中继网络管理的能力(即用户终端A支持ICE中继网络管理)又拥有ICE普通网络管理的能力,且用户终端B拥有ICE普通网络管理能力情况下:
根据表1的结论I,用户终端A使用可用于ICE普通网络管理和可用于ICE中继网络管理的候选地址与用户终端B的候选地址生成具有优先级的候选地址对,且其中由可用于ICE普通网络管理的用户终端A的候选地址与用户终端B的候选地址生成的候选地址对优先级高于由可用于ICE中继网络管理的用户终端A的候选地址与用户终端B的候选地址生成的候选地址对的优先级,因此在扩展实施例(1)中会优先进行可用于ICE普通网络管理的候选地址对的连接测试,并仅在所述可用于ICE普通网络管理的候选地址对的连接测试失败情况才进行可用于ICE中继网络管理的候选地址对的连接测试。
接着,通过将扩展实施例标识“(1)”和原实施例三中的步骤标识结合方式,来陈述实施例三的扩展实施例(1)中相对于实施例三的步骤的主要不同地方。其它步骤内容只需适应性修改,这里不再赘述。在S305(1)中收到的来自用户终端B的呼叫响应中将携带如下信息:(这是基于本发明系统结构示意图3中的参数来陈述的)
a=candidate:11UDP3134126431192.168.1.258678typ host normal
a=candidate:21UDP2494367815202.205.21.3033664typ relay normal
a=candidate:31UDP1984498123215.75.211.13045633typ srflx normal
此时,原S307将被执行为S307(1),具体如下:
S307(1)-S309、当用户终端A收到来自用户终端B的呼叫响应后,根据自身和用户终端B两者的候选地址对于网络管理的支持信息,生成具有优先级的候选地址对,并根据所述候选地址对的优先级依次向用户终端B发送连接测试请求。其过程具体为:
用户终端A根据该呼叫响应中携带的非中继地址所在的会话属性行(“a=candidate”行)中扩展的ICE-mobile-ability字段的内容为“normal”确认用户终端B的候选地址可用于ICE普通网络管理。由于用户终端A有网络切换需求,该网络切换需求要求用户终端A优先选择可用于网络管理的候选地址建立会话连接,实际中ICE普通网络管理的优先级高于ICE中继网络管理,所以用户终端A优先选择自身可用于ICE普通网络管理的候选地址与用户终端B的候选地址生成具有优先级的一组或多组候选地址对,用户终端A依据所述候选地址对的优先级向会话响应终端发送连接测试请求。
此时的连接测试请求,还需要采用S110-S112所述技术,通过在连接测试请求中携带MOBILITY-SUPPORT字段和在连接测试响应中携带MOBILITY-SUPPORT字段的值来为后续用户终端A在发生网络切换时,利用ICE普通网络管理方式完成ICE重协商做准备工作(即完成用户终端A和用户终端B的ICE普通网络管理协商)。在实施例三中,由于其进行连接测试时不涉及ICE普通网络管理,所以并不需要上述S110-S112描述的ICE普通网络管理能力协商的过程。本领域技术人员也可以容易想到,该ICE普通网络管理能力协商的过程能够进一步结合到用户终端A的呼叫请求中实现,即在发送呼叫请求时便携带MOBILITY-SUPPORT字段,似的在发送呼叫请求和接收呼叫响 应阶段便完成用户终端A和用户终端B的ICE普通网络管理的协商。但是这样会给现有协议带来较大的改变,在本发明中仅为可选方案。
S310(1)、用户终端B接收连接测试请求,并从该链接测试请求中提取其携带的候选地址对;然后,用户终端B将依据此提取自连接测试的候选地址对向用户终端A发送连接测试响应。该连接测试响应中携带MOBILITY-SUPPORT字段和相应的值。在S311(1)返回连接测试响应超时表明该非中继地址的连接测试结果失败时,则用户终端A会继续依照候选地址对的优先级,选择下一优先级的候选地址对进行后序连接测试。
此时,原S312将被执行为S312(1),具体如下:
S312(1)、成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。本实施例中用户终端A的NAT地址<--->用户终端B的NAT地址的候选地址对,在用户终端A和用户终端B分别依此发起连接测试请求时,均能收到对方的连接测试响应,表明成功完成连接测试。用户终端A选择该的候选地址对建立与用户终端B的会话连接。
当然本扩展实施例(1)在针对会话属性行的扩展方式中,除了采用上述实施例三所采用的方式外,还可以采用实施例三中的第一种可选方案。其过程类似实施例三,在此不再赘述。
实施例三的扩展实施例(2)
在用户终端A仅支持ICE中继网络管理,而不支持ICE普通网络管理情况下,此时,用户终端B对于ICE普通网络管理包括支持的或不支持的情况。将用扩展实施例标识“(2)”和原实施例三中的步骤标识结合的方式,来陈述实施例三的扩展实施例(2)中相对于实施例三的步骤的主要不同地方。其它步骤内容只需要适应性修改,这里不再赘述。在S305(2)中接收到的来自用户终端B 的呼叫响应中,对应”a”行所携带的用户终端B的候选地址有所不同,根据表1中III和IV的结论,具体表现为:
在用户终端B支持ICE普通网络管理时(这里假设用户终端B不支持ICE中继网络管理,因为,用户终端B是否支持ICE中继网络管理并非本实施例所关注的),S305(2)中接收到的呼叫响应中将携带如下信息(这是基于本发明系统结构示意图3的参数来陈述的):
a=candidate:11UDP3134126431192.168.1.258678typ host normal
a=candidate:21UDP2494367815202.205.21.3033664typ srflx normal
a=candidate:31UDP1984498123215.75.211.13045633typ relay normal
在用户终端B不支持ICE普通网络管理时(这里假设用户终端B不支持ICE中继网络管理,因为,用户终端B是否支持ICE中继网络管理并非本实施例所关注的),S305(2)中接收到的呼叫响应中将携带如下信息(这是基于本发明系统结构示意图3的参数来陈述的):
a=candidate:11UDP3134126431192.168.1.258678typ host non
a=candidate:21UDP2494367815202.205.21.3033664typ srflx non
a=candidate:31UDP1984498123215.75.211.13045633typ relay non
原S307将被执行为S307(2)如下:
S307(2)、当用户终端A收到来自用户终端B的呼叫响应后,根据自身和用户终端B两者的候选地址可用于的网络管理的信息,生成具有优先级的候选地址对,并根据所述优先级依次根据候选地址对向用户终端B发送连接测试请求。其过程具体为:
根据该呼叫响应中候选地址所在的会话属性行(“a=candidate”行)中的ICE-mobile-ability字段的内容为”normal”确认用户终端B的候选地址可用于ICE普通网络管理;若所述ICE-mobile-ability字段内容为”non”确认用户终端B 不可用于ICE普通网络管理。由于用户终端A有网络切换需求,用户终端A优选选择可用于网络管理的候选地址建立通信,由于用户终端A不支持ICE普通网络管理,所以用户终端A选择可用于ICE中继网络管理的中继地址与用户终端B的候选地址生成候选地址对,并向用户终端B发送连接测试请求。
原S312将被执行为S312(2)如下:
S312(2)中用户终端A接收到来自用户终端B的连接测试响应后,从该连接测试响应中得知所述中继地址的连接测试通过时,则在S312(2)中最后协商使用的通信地址是该通过连接测试的中继地址。
当然本扩展实施例(2)在针对会话属性行的扩展方式中,除了采用上述实施例三所采用的方式外,还可以采用实施例三中的第一种可选方案。其过程类似实施例三,在此不再赘述。
在结合本扩展实施例(2)的第一种可选方案中,用户终端A在确认自己仅能支持ICE中继网络管理后,在确认用户终端A只具有有ICE中继网络管理能力后,可以跳过对呼叫响应中携带的用户终端B对网络管理是否支持的分析,直接采用可用于ICE中继网络管理的中继地址进行连接测试。也就是步骤S307(2)可选的执行为:
S307(2)’、当用户终端A收到来自用户终端B的呼叫响应后,由于自身只具有ICE中继网络管理的能力,于是直接使用自己的中继地址和用户终端B所返回的候选地址生成具有优先级的候选地址对,用于连接测试(而无需分析用户终端B的候选地址是否可用于网络管理的信息)。
实施例三的扩展实施例(3)
在用户终端A的候选地址可用于ICE普通网络管理,而不可用于ICE中继网络管理,且用户终端B支持ICE普通网络管理情况下,根据表1中V的 结论:
此时,实施例三中步骤S307将被执行为S307(3),具体如下:
S307(3)、当用户终端A收到来自用户终端B的呼叫响应后,根据自身和用户终端B两者对于网络管理的支持信息,生成具有优先级的候选地址对,并根据所述优先级依次根据候选地址对向用户终端B发送连接测试请求。其过程具体为:
根据该呼叫响应中非中继地址所在的会话属性行(“a=candidate”行)中的ICE-mobile-ability字段的内容为“normal”确认用户终端B的候选地址可用于ICE普通网络管理;由于用户终端A有网络切换需求,用户终端A需要尽量选择能可用于网络管理(包括ICE中继网络管理和ICE普通网络管理)的候选地址建立通信。由于用户终端A和用户终端B都支持ICE普通网络管理,所以用户终端A选择可以用于ICE普通网络管理的候选地址与用户终端B的候选地址生成具有优先级的候选地址对。
原S312将被执行为S312(3)如下:
S312(3)、用户终端A接收到来自用户终端B的连接测试响应,并从该连接测试响应中得知用户终端A的NAT地址<--->用户终端B的NAT地址的连接测试通过时,则在S312(3)中最后协商使用的通信地址是该通过连接测试的候选地址对。
当然本扩展实施例(3)在针对会话属性行的扩展方式中,除了采用上述实施例三所采用的方式外,还可以采用实施例三中的第一种可选方案。其过程类似实施例三,在此不再赘述。
实施例三的扩展实施例(4)
在用户终端A仅支持ICE普通网络管理,而根据呼叫响应确认用户终端B 不支持ICE普通网络管理时,如表1中VI结论,无法采用任一所述网络管理方式,则按照现有方法进行连接测试,具体为本实施例中步骤S307及其之后的步骤按照步骤S110-S113来完成。并且因为已经确认用户终端B不支持ICE普通网络管理,因此S110中的MOBILITY-SUPPORT标识在本扩展实施例(4)中不再需要携带。
通过上述不同情况方案的补充,结合本实施例能够更全面的将本发明应用到各种实际情况中,使其涵盖用户终端A和用户终端B对于是否具有网络管理能力的各种情况,并对于其中的特定情况做了方案的优化,如扩展实施例(2)中跳过对于用户终端B的候选地址是否支持网络管理的分析,进一步简化了信令交互和操作复杂程度。
实施例四
本实施例是本发明一种会话连接建立的方法,在另一个方面上,本实施例和实施例二的第四种可选的方案是分别就会话响应终端和会话发起终侧端两角度撰写的,本实施例可以作为一个单独的改进方案实现,也可以和实施例二结合为一个方案来实现。所述结合即可以是实施例二中的会话发起终端在本实施例中是以会话响应终端身份存在,还可以是本实施例中的会话响应终端就是实施例二中会话响应终端的存在。其过程具体包括:
S401、会话响应终端接收所述会话发起终端的呼叫请求,所述呼叫请求携带会话发起终端的一个或多个候选地址。
所述呼叫请求中包含了会话发起终端搜集到的属于会话发起终端的一个或多个候选地址,使得会话响应终端在搜集到自身的候选地址后能够依据候选地址的优先级排序,组合出不同优先级的候选地址对,用来进行会话响应终端侧后续的连接测试的过程。
S402、会话响应终端根据所述呼叫请求搜集会话响应终端的候选地址和会话响应终端对ICE普通网络管理的支持信息。
在结合本实施例四的第一种可选的方案中:在步骤S401里,所述接收所述会话发起终端的呼叫请求中还携带有所述会话发起终端对ICE普通网络管理的支持信息,则所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址生成具有优先级的一组或多组候选地址对,具体包括:会话响应终端根据所述呼叫请求中携带的会话发起终端对ICE普通网络管理的支持信息和会话响应终端自身的ICE普通网络管理的支持信息,确定会话发起终端和会话响应终端两者是否都支持ICE普通网络管理;当两者不满足都支持ICE普通网络管理时,则在确定会话发起终端侧支持ICE中继网络管理时,所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址中的中继候选地址生成具有优先级的一组或多组候选地址对。
之所以提出结合本实施例四的第一种可选的方案,是因为会话响应终端在收到呼叫请求中发现会话发起终端只支持ICE中继网络管理时,会话响应终端实际上就获知了两条信息:1、根据本发明实施例二的第四种可选的方案改进后的会话发起终端会在收到会话响应终端的呼叫响应后只利用会话发起终端的中继地址和呼叫响应中携带的候选地址匹配生成候选地址对;因此,可以进一步通过在会话响应终端侧预先感知这一匹配动作,从而可以减少会话响应终端生成的无效候选地址对(即会话发起终端不会采用的候选地址对);进一步提高后续连接测试的效率。
在结合本实施例四的第二种可选的方案中:在步骤S401里,在所述接收所述会话发起终端的呼叫请求中还携带有所述会话发起终端对ICE普通网络 管理的支持信息时,则所述搜集自身的候选地址具体包括:
会话响应终端根据所述呼叫请求中携带的会话发起终端对ICE普通网络管理的支持信息确定会话发起终端和会话响应终端不满足同时支持ICE普通网络管理,而会话响应终端自身支持ICE中继网络管理时;则会话响应终端在向所在网络中的STUN/TURN服务器发送的搜集请求中携带会话响应终端对ICE普通网络管理支持信息和会话响应终端对ICE中继网络管理的支持信息,以便于STUN/TURN服务器在判断自身支持ICE中继网络管理时,向会话发起终端仅返回其自身的中继地址。
可知,在实施例四中基于会话响应终端侧的方法中,对于向STUN/TURN服务器搜集候选地址的过程可以模仿实施例二中的搜集过程,因此,上述搜集请求中可以像实施例二中描述一样只携带会话响应终端对ICE中继网络管理的支持信息和/或在搜集请求中携带要求STUN/TURN服务器仅返回中继地址的类型标识;对应在实施例二中STUN/TURN服务器针对上述搜集请求中的信息的判断过程也可以运用于本实施例四的搜集过程中来;基于上述技术手段的描述,本领域技术人员能够进行可能方式的扩展,以实现在搜集请求过程中减少候选地址占用网络带宽,和后续过程中简化匹配的目的。相关描述可见实施例二的步骤S205中的描述。
结合本实施例四的第三种可选的方案中:所述会话响应终端根据所述呼叫请求搜集自身的候选地址外,还搜集会话响应终端所在网络中的STUN/TURN服务器对ICE中继网络管理的支持信息,则所述会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对ICE普通网络管理的支持信息,具体包括:
会话响应终端判断会话发起终端和会话响应终端是否都支持ICE普通网络管理;在判断结果为两者不满足都支持ICE普通网络管理时,并在确认会话响应终端侧支持ICE中继网络管理时,会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的中继地址和会话响应终端对ICE普通网络管理的支持信息。
在判断结果为两者都支持ICE普通网络管理时,会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对ICE普通网络管理的支持信息。
结合本实施例四的第一种可选的方案中,匹配搜集到的一个或多个候选地址对网络管理的支持信息和所述呼叫请求中携带的会话发起终端对ICE普通网络管理的支持信息之前,优选的还包括判断会话响应终端具有网络切换需求时,然后再执行所述结合本实施例四的第一种可选方案。
结合本实施例的第二种可选的方案中,所述会话响应终端搜集自身的候选地址以及所述候选地址对网络管理的支持信息之前,优选的还包括判断会话响应终端具有网络切换需求时,然后再执行所述结合本实施例四的第二种可选方案。
针对上述结合本实施例四的第一种可选的方案、第二种可选的方案和第三种可选的方案中提到的“判断会话响应终端具有网络切换需求”过程,相应的设置会话响应终端自身具有网络切换需求具体包括:
用户在会话响应终端中设置的在进入特定网域中或者满足特定条件时是具有网络切换需求的,所述特定网域包括:wifi网域;所述满足特定条件包括:或用户针对某次特定的通话对网络切换需求进行设置;或根据会话响应终端自 身的移动的频繁程度达到指定值时。
S403、会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带会话响应终端的搜集到的候选地址和会话响应终端对ICE普通网络管理的支持信息。
所述呼叫响应携带会话响应终端的候选地址和会话响应终端对ICE普通网络管理的支持信息,以便于会话发起终端根据自身对网络管理的支持信息(所述网络管理包括ICE中继网络管理和ICE普通网络管理)和所述呼叫响应中携带的会话响应终端对ICE普通网络管理的支持信息,利用会话发起终端和会话响应终端双方的候选地址生成具有优先级的一组或多组候选地址对。
S404、会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址生成具有优先级的一组或多组候选地址对。
S405、会话响应终端根据所述一组或多组候选地址对的优先级向会话发起终端发送连接测试请求。
S406、在成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。
本实施例,从会话响应终端侧出发阐述了本发明的发明点,通过在呼叫响应中携带会话响应终端所搜集的候选地址和所述会话响应终端对ICE普通网络管理的支持信息。以便于会话发起终端能够根据会话发起终端自身对网络管理的支持信息和会话响应终端对ICE普通网络管理的支持信息,利用会话发起终端和会话响应终端的候选地址生成具有优先级的候选地址对,从而能够更高效的进行后续的连接测试,减少了大量冗余的连接测试过程。
实施例五
在本发明中,基于会话响应终端的改进并不局限于实施例四所描述的内 容。实施例四是在会话发起终端经过本发明改进后的前提下实现的。而本发明所应用的实际情况中,可能存在会话发起终端就是现有技术中的会话发起终端,或者还可以是不具备本发明实施例二的第三种可选的方案的功能的会话发起终端,而会话响应终端却拥有本发明实施例二中对于会话发起终端和会话响应终端双方对于网络管理分析的功能,所述网络管理分析为在参考表2情况下做出的有利于减少连接测试中信令交互的方法。则本实例五提供了一种在上述只有会话响应终端单侧应用了本发明改进的实施例,其流程包括:
S401’、会话响应终端接收所述会话发起终端的呼叫请求,所述呼叫请求中包含了会话发起终的一个或多个候选地址。
本实施例五中所述呼叫请求中不包含所述会话发起终端对网络管理的支持信息。在本实施例中对应的候选地址在SDP信息中表现形式具体为:
a=candidate:11UDP213070643110.0.1.218998typ host
a=candidate:21UDP1694498815211.25.21.3045664typ srflx
a=candidate:31UDP1294498217215.75.211.1304324typ relay
本实施例中会话响应终端可以根据呼叫请求中仅携带了候选地址,而不包含相应候选地址的网络管理支持信息(即对应携带候选地址的会话属性行不携带扩展的ICE-mobile-ability字段相应的标识),判断出会话发起终端不具备本发明实施例二提出的改进方案的功能。
S402’、会话响应终端搜集自身的候选地址以及所述候选地址对ICE普通网络管理和ICE中继网络管理的支持信息。
该步骤S402’的细化如图7所述,具体包括:
S501、会话响应终端搜集自身的候选地址以及所述候选地址对网络管理的 支持信息;
本实施例中,会话响应终端所搜集到的包括:STUN/TURN服务器为会话响应终端分配的中继地址以及STUN/TURN服务器对ICE中继网络管理的支持信息;非中继地址及会话响应终端对ICE普通网络管理的支持信息。
S502、会话响应终端确定自身是否有网络切换需求。判断结果为没有网络切换需求时,则执行S503;在判断结果为会话响应终端有网络切换需求时,则执行S504。
对于“判断会话响应终端具有网络切换需求”过程,相应的设置会话响应终端自身具有网络切换需求具体包括:
用户在会话响应终端中设置的在进入特定网域中或者满足特定条件时是具有网络切换需求的,所述特定网域包括:wifi网域;所述满足特定条件包括:或用户针对某次特定的通话对网络切换需求进行设置;或根据会话响应终端自身的移动的频繁程度达到指定值时。
S503、会话响应终端在生成的呼叫响应中携带非中继地址和中继地址(本实施例中,呼叫响应中可选的还可以携带ICE普通网络管理支持的信息和/或ICE中继网络管理的支持的信息)。
S504、会话响应终端判断自身和STUN/TURN服务器是否满足都支持ICE中继网络管理的条件,在判断结果为是时执行S505;在判断结果为否时执行S506。
S505、会话响应终端在生成的呼叫响应中仅携带搜集到的中继地址(本实施例中,可选的呼叫响应中还携带会话响应终端对ICE中继网络管理的支持的信息)。
S506、会话响应终端在生成的呼叫响应中携带非中继地址和中继地址(本实施例中,可选的呼叫响应中还可以携带会话响应终端ICE普通网络管理支持的信息和ICE中继网络管理的支持的信息);
S403’、会话响应终端向会话发起终端发送呼叫响应。
S404’、会话响应终端根据呼叫响应中携带的候选地址和所述会话请求中携带的会话发起终端的候选地址生成具有优先级的一组或多组候选地址对。
S405’、会话响应终端依据所述一组或多组候选地址对的优先级依次向会话发起终端发送连接测试请求。
S406’、在成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。
在结合本实施例第一种可选方案中,步骤S502的判断会话响应终端是否有网络切换需求可以在步骤S501的搜集会话响应终端的候选地址之前执行,类似于如结合实施例四的第三种可选方案描述。此时,若判断会话响应终端没有网络切换需求时,则后续的执行的过程和现有技术没有什么区别在此不再赘述;若判断会话响应终端有网络切换需求时,则向STUN/TURN服务器发送的搜索候选地址请求中要求服务器仅返回中继地址和STUN/TURN服务器对ICE中继管理的支持信息;生成的呼叫响应中携带所述中继地址,并以所述中继地址完成后续的候选地址对的生成和连接测试过程。
本实施例是对于实施例五在实际应用中可能遇到情况的扩展,具体包括将本发明的应用覆盖到会话发起终端仍然是背景技术(图1)中的用户终端A(不具有本发明设计的方案中提到的功能),而会话响应终端具备了本发明实施例四中所涉及的功能的环境下;于是,在本实施例中描述的情况下,保证了网络 切换需求的前提下,尽可能的减少了呼叫响应中所携带的候选地址,有效的减少了后续连接测试和候选地址对生成所需占用的计算机资源。
实施例六
本实施例是本发明在会话响应终端侧的运用,是实施例四结合具体应用环境下的描述。本实施例是基于SDP协议实现,但本领域技术人员可以根据本发明中揭示的技术内容,将该方法运用到基于同一ICE框架的其他不同多媒体信令协议中,比如:XMPP协议。本实施例可以作为一个单独的改进方案实现,也可以和实施例三结合为一个方案来实现,其中实施例三中的呼叫请求中不仅要携带会话发起终端的候选地址,还要携带会话发起终端对网络管理的支持信息。本实施例中用户终端A,也称为会话发起终端,同时支持ICE普通网络管理和ICE中继网络管理;用户终端B,也称为会话响应终端,不支持ICE普通网络管理,但是却支持ICE中继网络管理,并且被叫用户终端B有网络切换需求。通过本发明优化后的会话建立的部分流程,如图8所示:
S601~S602、用户终端B收到来自用户终端A的呼叫请求,根据该呼叫请求里候选地址所在的会话属性行(“a”行)所携带的网络管理的标识判断用户终端A具备ICE普通网络管理能力和ICE中继网络管理能力。
上述判断方式原理具体为:在”a”行最后增加命名为ICE-mobile-ability的字段,该字段的取值定义为normal、relay、both或non。并设置在ICE-mobile-ability的值为normal时,确定该候选地址可用于ICE普通网络管理方式;当ICE-mobile-ability的值为relay时,表明该候选地址可用于ICE中继网络管理方式;当ICE-mobile-ability的值为both时,表明该候选地址可以同时用于ICE普通网络管理方式和ICE中继网络管理方式;当ICE-mobile-ability的值为non时,表明该地址并不可用于上述两种网络管理。在本实施例中,SDP 信息中携带网络管理信息的具体实现为:
a=candidate:11UDP213070643110.0.1.218998typ host normal
a=candidate:21UDP1694498815211.25.21.3045664typ srflx normal
a=candidate:31UDP1294498217215.75.211.1304324typ relay both
其中,”normal”和”both”表明用户终端A的所有候选地址可用于ICE普通网络管理且其中继地址可用于ICE中继网络管理。
在实际实现中,除了上述在“a”行最后增加扩展字段的方式外,基于本实施例六的第一种可选的方案中,还可以使用单独的“a”行来实现确定用户终端是否支持ICE普通网络管理的能力或ICE中继网络管理能力,相比本实施例已经采用的方式具有更高的集成性,其实现具体为:
在呼叫请求的SDP信息中添加一个新的会话属性行:“a=ICE-mobile-ability:normal”,该会话属性行的取值可以定义为normal、relay、both或non。当ICE-mobile-ability的值为normal时,表明用户终端A支持ICE普通网络管理方式;当ICE-mobile-ability的值为relay时,表明用户终端A支持ICE中继网络管理方式;当ICE-mobile-ability的值为both时,表明用户终端A支持ICE普通网络管理方式且用户终端A支持ICE中继网络管理方式;当ICE-mobile-ability的值为non时,表明用户终端A不支持上述两种网络管理。
S603、用户终端B通过类似实施例三(图5)中的步骤S301方法搜集自身的候选地址。用户终端B根据收到的呼叫请求中各候选地址所在的会话属性行(“a”行)中的ICE-mobile-ability字段的内容确定用户终端A同时支持ICE普通网络管和ICE中继网络管理。
在基于本实施例的第一种可选的方案中,用户终端B根据收到的呼叫请求 中携带会话属性行“a=ICE-mobile-ability:both”,确定用户终端A同时支持ICE普通网络管理和ICE中继网络管理。
而本实施例中优选的已经判断了会话响应终端的用户终端B有网络切换需求前提下,由于用户终端B不支持ICE普通网络管理,而仅支持ICE中继网络管理(实施例四的第三种可选的方案在本实施例中的实现),所以用户终端B优选使用ICE中继网络管理。则只需要返回携带用户终端B的中继地址和会话响应终端对ICE普通网络管理的支持信息的连接测试响应给用户终端A即可;
基于本实施例的第二种可选的方案中,用户终端B在向STUN/TURN服务器发送用于搜集自身候选地址的初始请求时,可以在该初始请求中扩展使用一个新的字段,该字段的名字可以是SUPPORTING-MANNAGE,当其出现在请求中时,表明用户希望搜集到的地址类型,STUN/TURN服务器在响应消息中只返回SUPPORTING-MANNAGE字段中对应的地址类型,SUPPORTING-MANNAGE字段的取值可以定义为:normal,relay或all。可选的,除采用all标识用以让STUN/TURN服务器返回搜集到的用户终端B的所有候选地址外,还可以采用该SUPPORTING-MANNAGE字段内容为空,也表示让STUN/TURN服务器将能搜集到的所有地址类型都携带在响应消息中。
所述初始请求可以是基于STUN协议中的Binding请求上实现,具体为在Binding请求的消息属性(Message Attributes)中增设一个SUPPORTING-MANNAGE字段,并可以定义其内容为normal时,要求STUN/TURN服务器仅返回会话响应终端的支持ICE普通网络管理的候选地址;其内容为relay时,要求STUN/TURN服务器仅返回会话响应终端的可用 于ICE中继网络管理的候选地址;其内容为all时,要求STUN/TURN服务器返回会话响应终端的所有候选地址。
S604、用户终端B向用户终端A发送呼叫响应,并在呼叫响应的SDP信息中只添加用户终端B获取到的中继地址和用户终端B对ICE普通网络管理的支持信息;其在SDP信息中具体表现为:
a=candidate:31UDP1294498217215.75.211.1304324typ relay relay
S605、呼叫响应经过NAT_B设备和NAT_A设备的转发,被转发给用户终端A;
S606、用户终端B向用户终端A发送连接测试请求。在发送连接测试之前,因为在S604中用户终端B已经确定只向用户终端A发送中继地址作为候选地址,于是,用户终端B根据自身的中继地址和用户终端A的候选地址生成具有优先级的候选地址对。并依据所述候选地址对的优先级依次向用户终端A发送连接测试请求。
S607、用户终端B的连接测试请求经过NAT_B设备、STUN/TRN服务器和NAT_A设备的转发,最后转发给用户终端A;
S608、用户终端A生成连接测试响应,以告知用户终端B连接测试通过。
S609、用户终端A的连接测试响应经过NAT_B设备、STUN/TURN服务器和NAT_A设备的转发,被转发给用户终端B;
S610,最终在本例的协商中用户终端B选择中继地址进行通信,从而可以满足用户终端B网络管理的需求。
本实施例是以会话响应终端侧作为在考虑其自身是否有网络切换需求后,决定呼叫响应中所携带的候选地址;从本实施例自身角度考虑,可以减少用户 终端A所获取到的属于用户终端B的候选地址,相比实施例三不同,实施例三是通过减少无效候选地址对所占用的连接测试资源,而本实施例则是减少了用户终端A所需要测试的属于用户终端B的候选地址;当然实施例三方案和各可选的方案,和本实施例的方案以及相关的可选的方案是可以组合的,其有益效果也是可以叠加的,基于网络切换需求优化了网络切换时因为连接性测试所带来资源的浪费。
本实施例仅是列举了用户终端A在同时具有ICE普通网络管理和ICE中继网络管理能力,并且用户终端B只具有ICE中继网络管理能力情况下完成连会话建立的方法。
根据用户终端B具有网络切换需求、用户终端B对于网络管理的多种支持情况、用户终端A对于网络管理的多种支持情况和网络管理之间的优先级等因素考虑,类似表1的生成方法,制作用户终端B在各情况下生成候选地址对的参考表2。
用户终端B在步骤S603中,首先对接收到的呼叫请求分析,获取用户终端A的候选地址对网络管理支持的情况,其中,用户终端A的候选地址对网络管理支持的情况都被包含于表2的标有“用户终端A”第一列各项中,而本实施例中用户终端A的候选地址就是第一列、最后一行情况;然后,用户终端B根据自身搜集候选地址过程中获取的自身对于网络管理的支持情况,该情况包含在表2中标有“用户终端B”第一行各项中(其中,没有罗列用户终端B的候选地址不支持任何一种网络管理的情况)。进一步,在遇到如表2中的其他行项和列项的组合情况中,则依据表2中对应操作方法完成连接性测试,此处不再赘述。
表2
实施例七
本实施例是结合实施例三和实施例六中的一种情况做为本实施例的环境,并在前面的基础上进一步增加局域网优先级的判断,这并不表明实施例三和实施例六中没有考虑局域网情况,而是为了突出各实施例的说明重点,将其作为不同实施例来描述。毫无疑问的,本实施例七所涉及的局域网优先级判断也同 样属于实施例二的细化,而由于会话发起终端和会话响应终端在匹配候选地址对时候所采用的技术手段是相似或者说相同的,因此,本实施例七同样可以推出实施例四在本情况下的实现。从用户终端C的角度来说,本实施例是实施例二中的第四种可选方案的进一步扩展。在考虑双方候选地址对ICE普通网络管理和ICE中继网络管理的支持信息基础上,进一步,考虑了会话发起终端和会话响应终端存在于局域网的情况。本实施例中用户终端A,即实施例三和实施例六中的会话发起终端,只具有ICE中继网络管理能力;用户终端C,即实施例三和实施例六中的会话响应终端,只具有ICE中继网络管理能力。本实施例中用户终端A和用户终端B共同使用一个NAT设备即NAT_A,其中用户终端A和用户终端C属于同一个局域网。在本实施例中用户终端A和用户终端B都有网络切换需求,具体实现步骤如下:
S701、用户终端A搜集候选地址,该过程和实施例三中步骤S301相同。
用户终端A分析自身对网络管理的支持信息,确认自己只具有ICE中继网络管理,则在生成的呼叫请求中只携带用户终端A的中继地址和用户终端A对网络管理的支持信息;所述呼叫请求中还携带用户终端A的私有地址。其中私有地址是为了用于用户终端C判断自身是否和用户终端A属于同一个局域网使用。
结合本实施例七的第一种可选的方案中,该手机候选地址过程还可以采用结合实施例二的第一种可选的方案;向STUN/TURN服务器发送仅搜集STUN/TURN服务器为用户终端A分配的中继地址的初始请求。其中,由于私有地址是用户终端A自己知道的,通过搜集请求用户终端A进一步获知了其中继地址以及该中继地址对ICE中继网络管理的支持信息。
S702、用户终端A发送呼叫请求。并按照实施例三中步骤S302的方式为所述候选地址分配对应支持的网络管理标识。
其呼叫请求中的”a”行信息具体呈现如下:
a=candidate:11UDP213070643110.0.1.218998typ host
a=candidate:31UDP1294498217215.75.211.1304324typ relay relay
S703、该呼叫请求通过NAT_A设备转发到用户终端C;
S704、用户终端C开始搜集其自身的候选地址,该搜集过程和用户终端A类似,因此不再赘述;
S705、用户终端C分析自己和用户终端A双方的候选地址对于网络管理的支持情况。
用户终端C根据用户终端A各候选地址中的CE-mobile-ability标识的标识值获知用户终端A只支持ICE中继网络管理。进一步,确定私有地址的优先级高于中继地址连接测试优先级时,用户终端C在向用户终端A返回的呼叫响应中会同时携带包含了私有地址和中继地址的会话属性行(“a”行)。
会话连接上述优先级的判断方法优选的为:用户终端C核对NAT_A设备为用户终端A分配的NAT地址和NAT_A设备为用户终端C分配的NAT地址是否相同,若相同则表明其在局域网内概率较大;进一步还可以依据用户终端C和用户终端A的私有地址的值是否同一个路由器地址下,若在一个路由器地址下中则表明其在局域网内概率较大;优选的在满足上述两个条件中的一个或两个时,使得私有地址参与到生成的候选地址对中。
最后用户终端C利用自身的私有地址和搜集的中继地址生成呼叫响应,其中,私有地址所在的会话属性行的最后扩展一字段,并分配一字段表明用户终 端B的私有地址和用户终端A的私有地址在一个局域网内。
其具体实现方式可以通过扩展实施例三中的ICE-mobile-ability字段的取值,当取值为“lan”时,表明该私有地址和用户终端A的私有地址可能存在于一个局域网内。所述呼叫响应中的”a”行内容具体如下:
a=candidate:11UDP213070643110.0.1.258968typ host lan
a=candidate:31UDP1294498217215.75.211.1304324typ relay relay
S706、该呼叫响应通过NAT_A设备转发到用户终端A;
S707、当用户终端A收到来自用户终端C的呼叫响应后,根据自身和用户终端C两者对于网络管理的支持,生成连接测试请求。其过程具体为:
用户终端A根据呼叫响应中对应会话属性行(“a”行)的ICE-mobile-ability字段中有lan,判断用户终端C的私有地址和自身的私有地址较大可能或就是在一个局域网内;用户终端A根据呼叫响应中对应会话属性行(“a”行)的ICE-mobile-ability字段中有ICE中继网络管理的标识“relay”,判断用户终端C的中继地址支持ICE中继网络管理而不支持ICE普通网络管理。故用户终端A根据用户终端A和用户终端C各自的私有地址生成一组候选地址对,然后根据用户终端A的中继地址和用户终端C的中继地址生成一组候选地址对,用于后续的连接测试。其中基于私有地址的候选地址对的优先级高于基于中继地址的候选地址对的优先级,因此,会按照先进行基于私有地址的候选地址对的连接测试,并在该候选地址对的连接测试失败情况下,才进行基于中继地址的候选地址对的连接测试。
S708、所述基于私有地址的候选地址对的连接测试请求通过NAT_A设备设备将连接测试请求转发给用户终端C。
S709、用户终端C将收到连接测试请求中携带的用户终端C的候选地址, 携带在连接测试响应中发送给用户终端A。
S710、连接性测试响应通过NAT_A设备转发到用户终端A。
S711、用户终端C使用自身生成的基于私有地址的候选地址对,向用户终端A发起连接测试请求。
S712、NAT_A设备将连接测试转发给用户终端A。
S713、用户终端A将收到连接测试请求中携带的用户终端A的私有地址,携带在连接测试响应中发送给用户终端B。
S714、用户终端A和用户终端C协商,若用户终端A和用户终端C双方的基于私有地址的候选地址对的连接测试都成功,则不必进行用户终端A和用户终端C间的中继地址的连接测试,并利用用户终端A的私有地址和用户终端C的私有地址建立连接;否则,进行用户终端A和用户终端C双方的基于中继地址的候选地址对的连接测试,并在该中继地址的连接测试结果成功后,利用用户终端A的中继地址和用户终端C的中继地址建立连接。
本实施例是对于实施三和实施例六结合方案的进一步细化,引入了局域网内用户建立会话连接的优先级最高原则,从而优化了现有方案使其能够应用于更复杂的环境下。同时,保证了可能存在的最优连接可能情况。这对于朋友之间同时进入某个wifi领域时,此时,使用局域网模式既可以减少网络带宽负担,也能加快用户之间的传输体验。
实施例八
本实施例是本发明与浏览器结合后的一个应用,本实施例中用户终端A利用了rtcweb技术,即在浏览器上登录可以提供实时通信功能的网页,并在网页上发起ICE协商,并最终实现在浏览器上与用户终端B的会话建立。
本实例中,浏览器A是用户终端A使用的浏览器软件,用户终端A的JS 是运行在用户终端A浏览器上的javascript程序,该javascript能够提供业务能力。具体流程图如图12所述:
S801、用户终端A在浏览器A上发起一个面向用户终端B会话,首先用户终端A的JS和浏览器A之间先建立一个peerconnection连接;
S802、用户终端A的JS使用updateIce()接口通知浏览器A开始ICE协商流程,在该updateIce()中扩展增加网络切换需求,即告知浏览器A用户终端A在通话中有网络管理的需求。接口定义为:
updateIce(optional RTCConfiguration?configuration=null,optionalMediaConstraints?constraints=null);
其中MediaConstraints参数中有IceTransports的类型,类型的取值有“TURN”表明只使用中继地址进行通信(比如隐私性的需求),在该类型中还可以扩展取值,比如命名为“ICE-mobility”,表明用户有网络管理的需求,希望尽量选择能支持网络管理的候选地址对优先进行连接测试;
S803、浏览器A收到ICE更新接口updateIce()后开始启动ICE协商流程,首先需要同STUN/TURN服务器交互进行候选地址的搜集,该过程同实施例三中的步骤S301相似;
S804、浏览器A使用ICE回调接口ICEcallback()向用户终端A的JS反馈搜集到的候选地址,对于搜集的候选地址相应的关联上用户终端A是否支持ICE普通网络管理的标识,对于搜集的中继地址相应的关联上用户终端A是否支持ICE中继网络管理和/或ICE普通网络管理的标识。其关联方法同实施例三中步骤S302中描述的添加方法相似;
S805、用户终端A的JS将从浏览器A收到的用户终端A的候选地址以 及其他媒体信息封装成SDP协议格式的信息(简称SDP信息),并携带在呼叫请求消息中,通过NAT设备、STUN/TURN服务器发向用户终端B;
S806、用户终端B进行本地候选地址搜集,并在呼叫响应消息中携带搜集到的所有候选地址,同时也在候选地址里添加是否可用于网络管理的标识,该步骤同实施例二中图5的S305相似;
S807、用户终端A的JS收到呼叫响应后,解析其中的SDP信息,获取所述SDP信息中包含的用户终端B的候选地址信息,JS将用户终端B的候选地址和该候选地址是否可用于网络管理的信息通过addIceCandidate()函数或类似函数通道反馈给用户终端A浏览器;
S808、用户终端A的JS通过S804和S806获知用户终端A和用户终端B对网络管理的支持情况,本实施例中用户终端A和用户终端B双方都支持ICE普通网络管理;
S809、用户终端A的浏览器和用户终端B进行ICE的连接测试,确认最终通信的地址,该过程同实施例二(图5)中的第S307~S311步相似,本例中用户终端A侧使用非中继地址进行通信;
S810、由于用户终端A发生网络切换,接入信息发生改变。例如用户终端A从wifi接入点切换到3G接入点;
S811、用户终端A的JS在呼叫建立过程中获知用户终端A和用户终端B都支持ICE普通网络管理且用户终端A使用是非中继地址进行通信,此时用户终端A的JS只需要等待浏览器使用ICE普通网络管理方式完成会话的恢复;
S812、用户终端A浏览器使用ICE普通网络管理方式完成会话的恢复;
S813、用户终端A浏览器使用ICEcallback或其他功能类似方法向用户终端A的JS反馈ICE重协商后的地址;
S814、发送更新请求,并携带SDP包括更新成功的地址信息;
S815、更新应答;
S816、完成ICE重协商过程。
本实施例从实际应用的角度,结合了浏览器和javascript的相关接口函数来应用本发明的发明构思,对于本发明如何实现以及实现的领域做了更全面的分析。
实施例九
本实施例是本发明提供的一种建立会话连接方法中的会话发起终端的装置描述,主要是针对实施例二中描述的方法而设计,所述终端的结构关系图如图13所示终端200,其模块具体包括:
候选地址搜集发送模块201,用于向所在网络中的STUN/TURN服务器发送搜集请求,所述搜集请求包括:指示对会话发起终端的候选地址搜集和STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息;
候选地址搜集接收模块202,用于接收STUN/TURN服务器的搜集响应,所述搜集响应中携带会话发起终端的一个或多个候选地址和STUN/TURN服务器对ICE中继网络管理的支持信息;
呼叫请求发送模块203,用于向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址;
呼叫响应接收模块204,用于接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址;
候选地址匹配模块206,用于根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息,匹配会话发起终端的候选地址和所述会话响应终端的候选地址生成一组或多组候选地址对;
连接测试模块208,用于会话发起终端根据所述一组或多组候选地址对的优先级向会话响应终端发送连接测试请求,在成功完成双方的连接测试后,建立会话发起终端和会话响应终端的会话连接。
本实施例优选的,候选地址匹配模块206和网络管理判断模块207都属于处理模块205的子模块,而处理模块205提供与候选地址搜集发送模块201和候选地址搜集接收模块202的接口连接,并负责将接收到的信息传递给相应的模块。
结合本实施例九的第一种可选的方案,本实施例的终端还包括:网络管理判断模块207,用于根据ICE普通网络管理的支持信息判断会话发起终端是否支持ICE普通网络管理,所述ICE普通网络管理的支持信息在进行会话连接建立前便保存在会话发起终端中;
当判断结果是会话发起终端不支持ICE普通网络管理时,则在确认会话发起终端侧支持ICE中继网络管理后,呼叫请求发送模块向会话响应终端发送仅携带中继候选地址的呼叫请求;其中,会话发起终端侧支持ICE中继网络管理包括:会话发起终端和会话发起终端所在网络中的STUN/TURN服务器都支持ICE中继网络管理;
当判断结果是会话发起终端支持ICE普通网络管理时,则呼叫请求发送模块在向会话响应终端发送呼叫请求,所述呼叫请求中携带会话发起终端的各候选地址和会话发起终端对ICE普通网络管理的支持信息。
结合本实施例九的第二种可选的方案中,所述呼叫响应接收模块204接收到的呼叫响应中还包括所述会话响应终端对ICE普通网络管理的支持信息时,所述候选地址匹配模块具体用于:
根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息、会话发起终端对ICE普通网络管理的支持信息和会话响应终端对ICE普通网络管理的支持信息,匹配候选地址搜集接收模块202搜集到的候选地址和所述会话响应终端的候选地址生成具有优先级的一组或多组候选地址对。
结合本实施例九的第三种可选的方案中,所述候选地址匹配模块,还包括:
第一判断子模块2061,用于判断会话发起终端和会话响应终端是否满足都支持ICE普通网络管理;
第一匹配子模块2062,用于在判断结果为双方都支持ICE普通网络管理时,按照双方的候选地址的优先级属性匹配成具有优先级的一组或多组候选地址对,并在会话发起终端根据所述一组或多组候选地址对的优先级向会话响应终端发送连接测试请求时携带MOBILITY-SUPPORT标识,用于和会话响应终端进行ICE普通网络管理的协商;
第二匹配子模块2063,用于在判断结果为双方并非都支持ICE普通网络管理时,确认会话发起终端和STUN/TURN服务器都支持ICE中继网络管理,则将会话发起终端的中继地址和会话响应终端的候选地址按照候选地址的优先级属性匹配成具有优先级的一组或多组候选地址对。
结合本实施例九的第四种可选的方案中,所述终端还包括切换需求判断模块209,
其中,会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求, 是在切换需求判断模块确认会话发起终端有网络切换需求后才进行。
所述确认自身有网络切换需求具体包括:切换需求判断模块在进入特定网域中或者满足特定条件时是具有网络切换需求的,所述特定网域包括:wifi网域;所述满足特定条件包括:针对某次特定的通话对网络切换需求进行设置,或根据会话响应终端自身的移动的频繁程度达到指定值时。
本实施例,从会话发起终端侧的角度阐述说明了本发明的核心发明点,通过对呼叫响应中携带的候选地址和所述候选地址对应的网络管理的支持信息,进一步结合会话发起终端自身候选地址对应的网络管理的支持信息生成具有优先级的候选地址对,从而能够更高效的进行连接测试。克服了现有技术仅根据候选地址自身的优先级进行连接性测试,而脱离了网络管理方式自身的特性,减少了大量冗余的连接测试过程。
可以知道是实施例三和实施例七是在实施例二基础上的具体实现,因此通过所揭示的内容,实施例九也能够实现实施例三和实施例七中的方法,在此不再赘述。
实施例十
本实施例是本发明提供的一种建立会话连接的方法中会话发起终端的结构,相比实施例九所陈述的硬件结构,本实施例特点是其实现都是通过存储器304中的应用程序3041和处理器301配合完成。本实施例终端包括至少一个处理器304(例如CPU),至少一个网络接口303或者其他通信接口,存储器304,和至少一个通信总线302,用于实现这些装置之间的连接通信。处理器301用于执行存储器304中存储的可执行模块,例如计算机程序。存储器304可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不 稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口303(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
在一些实施方式中,存储器304存储了应用程序3041,应用程序3041可以被处理器301执行,这个程序包括:
会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求,所述搜集请求包括:指示对会话发起终端的候选地址搜集和STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息;
会话发起终端接收STUN/TURN服务器的搜集响应,所述搜集响应中携带会话发起终端的一个或多个候选地址和STUN/TURN服务器对ICE中继网络管理的支持信息;
会话发起终端向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址;
接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址;
会话发起终端根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址生成一组或多组候选地址对;
会话发起终端根据所述一组或多组候选地址对向会话响应终端发送连接测试请求,并在成功完成双方的连接测试后,建立会话发起终端和会话响应终端的会话连接。
本实施的终端除上述能够完成的基本功能外,应用程序3041还可以存储 有实施例二中的可选方案的程序,而处理器301也能响应的实现对应可选方案的方法,在此不再赘述。
本领域技术人员不难通过实施例九中揭示的终端各模块的功能,将其转化为本实施例中通过应用程序3041和处理器301来实现的方案,因此,不再赘述。
实施例十一
本实施例是本发明提供的一种建立会话连接的会话响应终端的装置描述,主要是针对实施例四中描述的方法而设计,所述终端的结构关系图如图15所示终端400,其模块具体包括:
呼叫请求接收模块401,用于接收所述会话发起终端的呼叫请求,所述呼叫请求携带会话发起终端的一个或多个候选地址;
候选地址搜集模块402,用于根据所述呼叫请求搜集自身的候选地址;
呼叫响应发送模块403,用于向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对ICE普通网络管理的支持信息;
候选地址匹配模块404,用于匹配呼叫响应发送模块403在呼叫响应中携带的候选地址和所述会话发起终端的候选地址生成具有优先级的一组或多组候选地址对;
连接测试模块405,用于根据所述一组或多组候选地址对的优先级向会话发起终端发送连接测试请求,并在成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。
结合本实施例十一的第一种可选的方案中,所述接收所述会话发起终端的呼叫请求中还携带有所述会话发起终端对ICE普通网络管理的支持信息,则候 选地址匹配模块404还包括:
第一判断子模块4041,用于根据所述呼叫请求中携带的会话发起终端对ICE普通网络管理的支持信息,确定会话发起终端和会话响应终端两者是否都支持ICE普通网络管理;
第一匹配子模块4042,用于当两者不是都支持ICE普通网络管理时,则在确定会话发起终端侧支持ICE中继网络管理时,所述会话响应终端匹配呼叫响应发送模块403在呼叫响应中携带的候选地址和所述会话发起终端的候选地址中的中继候选地址生成具有优先级的一组或多组候选地址对。
结合本实施例十一的第二种可选的方案中,所述候选地址搜集模块根据所述呼叫请求搜集自身的候选地址外,还搜集会话响应终端所在网络中的STUN/TURN服务器对ICE中继网络管理的支持信息,则所述呼叫响应发送模块403还包括:
第二判断子模块4031,用于判断会话发起终端和会话响应终端是否都支持ICE普通网络管理;
所述呼叫响应发送模块403,还用于在判断结果为两者不是都支持ICE普通网络管理时,并在确认会话响应终端侧支持ICE中继网络管理时,会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的中继地址和会话响应终端对ICE普通网络管理的支持信息。
所述呼叫响应发送模块403,还用于在判断结果为两者都支持ICE普通网络管理时,会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的各候选地址和会话响应终端对ICE普通网络管理的支持信息。
结合本实施例十一的第三种可选的方案中,所述终端还包括切换需求判断模块406,
其中,第一判断子模块4041的执行,是在切换需求判断模块406确认会话响应终端有网络切换需求后才进行,所述确认自身有网络切换需求具体包括:
在进入特定网域中或者满足特定条件时是具有网络切换需求的,所述特定网域包括:wifi网域;所述满足特定条件包括:针对某次特定的通话对网络切换需求进行设置,或根据会话响应终端自身的移动的频繁程度达到指定值时。
本实施例,从会话响应终端侧的角度阐述说明了本发明的核心发明点,通过对呼叫请求中携带的会话发起终端的候选地址和会话发起终端对网络管理的支持信息,进一步结合会话响应终端自身候选地址对应的网络管理的支持信息生成具有优先级的候选地址对,减少了冗余的连接测试过程,从而能够更高效的进行连接测试。
可以知道是实施例五、实施例六和实施例七是在实施例二基础上的具体实现,因此通过所揭示的内容,实施例十一也能够实现实施例五、实施例六和实施例七中的方法,在此不再赘述。
实施例十二
本实施例是本发明提供的另一个终端的结构,相比实施例十一所陈述的硬件结构,本实施例特点是其实现都是通过存储器504中的应用程序5041和处理器501配合完成。本实施例终端包括至少一个处理器502(例如CPU),至少一个网络接口503或者其他通信接口,存储器504,和至少一个通信总线502,用于实现这些装置之间的连接通信。处理器501用于执行存储器504中存储的可执行模块,例如计算机程序。存储器504可能包含高速随机存取存储器 (RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口503(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
在一些实施方式中,存储器504存储了程序5041,程序5041可以被处理器501执行,这个程序包括:
会话响应终端接收所述会话发起终端的呼叫请求,所述呼叫请求携带会话发起终端的一个或多个候选地址;
会话响应终端根据所述呼叫请求搜集会话响应终端的候选地址和会话响应终端对ICE普通网络管理的支持信息;
会话响应终端向会话发起终端发送呼叫响应,所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对ICE普通网络管理的支持信息;
会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址生成具有优先级的一组或多组候选地址对;
会话响应终端根据所述一组或多组候选地址对的优先级向会话发起终端发送连接测试请求,并在成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。
本实施的终端除上述能够完成的基本功能外,应用程序5041还可以存储有实施例四中的可选方案的程序,而处理器501也能相应的实现对应可选方案的方法,在此不再赘述。
本领域技术人员不难通过实施例十一中揭示的终端各模块的功能,将其转化为本实施例中通过应用程序5041和处理器501来实现的方案,因此,不再 赘述。
实施例十三
图17是本发明的实施例十在一个具体的智能手机终端中的应用,其中所述智能手机的硬件模块的主框架包括:一个或多个处理器601、内存602、I/O子系统603;基于所述主框架上还有配备有触摸传感器604、光学传感器605、其他输入输出设备606、射频电路607、音频电路608、接近传感器609、加速器610、扬声器611和麦克风612。上述硬件模块共同协作组成了一个当前流行的智能手机终端。
所述智能手机终端运行起来后,控制器6011和处理器6012和内存602中的各程序模块共同协作,来实现智能手机的各种功能;所述程序模块又包括:操作系统6021、通信模块6022、交互模块6023、图形模块6024、文本输入模块6025、GPS模块6026、应用模块6027和其他模块6028;而其中的应用模块6027正是在本发明的实施例十中的应用程序3041在本实施例的智能手机终端中的实现;
则实施例十中,处理器301执行应用程序3041的过程,在本实施例的实现具体为:
处理器6012执行应用模块6027中的候选搜集模块6027(a)对应的程序,向所在网络中的STUN/TURN服务器发送搜集请求,所述搜集请求包括:指示对会话发起终端的候选地址搜集和STUN/TURN服务器对ICE中继网络管理的支持信息的搜集的信息;并接收STUN/TURN服务器的搜集响应,所述搜集响应中携带会话发起终端的一个或多个候选地址和STUN/TURN服务器对ICE中继网络管理的支持信息;
处理器6012执行应用模块6027中的呼叫请求发送模块6027(b)对应的程 序,向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的会话发起终端的候选地址中的至少一个候选地址;
处理器6012执行应用模块6027中的呼叫响应接收模块6027(c)对应的程序,接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址;
处理器6012执行应用模块6027中的候选地址匹配模块6027(d)对应的程序,根据搜集到的STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址生成一组或多组候选地址对;
处理器6012执行应用模块6027中的连接测试模块6027(e)对应的程序,会话发起终端根据所述一组或多组候选地址对向会话响应终端发送连接测试请求;
处理器6012执行应用模块6027中的会话建立模块6027(f)对应的程序,在成功完成双方的连接测试后,建立会话发起终端和会话响应终端的会话连接。
本实施的终端除上述能够完成的基本功能外,处理器6012执行应用模块6027还可以完成实施例四中其他可选方案,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。