CN104521211A - 一种会话连接建立的方法、装置和*** - Google Patents

一种会话连接建立的方法、装置和*** Download PDF

Info

Publication number
CN104521211A
CN104521211A CN201380000701.9A CN201380000701A CN104521211A CN 104521211 A CN104521211 A CN 104521211A CN 201380000701 A CN201380000701 A CN 201380000701A CN 104521211 A CN104521211 A CN 104521211A
Authority
CN
China
Prior art keywords
terminal
session setup
ice
candidate site
conversational response
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.)
Granted
Application number
CN201380000701.9A
Other languages
English (en)
Other versions
CN104521211B (zh
Inventor
李世涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Electric Technology Co. Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104521211A publication Critical patent/CN104521211A/zh
Application granted granted Critical
Publication of CN104521211B publication Critical patent/CN104521211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及计算机、通信领域,尤其涉及一种会话连接建立的方法、装置和***,通过对现有技术中候选地址对匹配过程的改进,从而提高了连接测试的效率;其中方法包括:会话发起终端向所在网络中的STUN/TURN服务器发送搜集请求;所述会话发起终端接收所述STUN/TURN服务器发送的针对所述收集请求的搜集响应,所述搜集响应中携带所述会话发起终端的一个或多个候选地址和所述STUN/TURN服务器对ICE中继网络管理的支持信息;所述会话发起终端向会话响应终端发送呼叫请求;接收所述会话响应终端的呼叫响应,所述会话发起终端根据搜集到的所述STUN/TURN服务器对ICE中继网络管理的支持信息,匹配自己的候选地址和所述会话响应终端的候选地址,生成一组或多组候选地址对。

Description

一种会话连接建立的方法、 装置和***
技术领域
本发明涉及计算机、 通信领域, 尤其涉及一种会话连接建立的方法、 装置和***。
背景技术
交互式连接建立 (interactive connectivity establishment, ICE)是一种通过综合运用网络地 址转换 (Network Address Translator, NAT)会话传输应用 (Session Traversal Utilities for NAT, STUN)和基于中继的 NAT传输 (Traversal Using Relay NAT , TURN)两种传输技术的数据传 输框架, ICE框架能够在实现 NAT穿越过程中弥补两种技术在各自单独实现过程中存在的 固有的缺陷。 ICE可以被任何请求 /问答模式的协议利用, 例如: 通过会话描述协议 (Session Description Protocol, SDP)来完成相关功能的定义和实现。
当一个通过 ICE框架协商完成的会话连接在会话过程中某个终端发生网络切换, 如: 建立会话连接中的会话发起终端从 wifi网络切换到 3G网络; 此时该会话发起终端的网络 环境发生变化,例如:该会话发起终端信号所经过的会话连接网络中的 NAT设备发生改变。 现有的恢复会话连接的方法是双方会话终端重新进行 ICE的协商, 该 ICE的协商包括候选 地址搜集、 候选地址交互和连接测试等步骤, 所述候选地址交互包括对方会话终端的候选 地址的获取, 以及双方会话终端将候选地址匹配生成候选地址对过程。 这个重新进行 ICE 的协商过程会耗费较长的时间。 于是现有技术提出使用网络管理的改进方法, 该网络管理 方式主要通过省去地址交互以及缩短连接测试前的准备过程的手段来加快 ICE的重新协商 过程(ICE的重新协商过程即会话链路重新建立过程)。 上述网络管理方式包括两种: 一种 网络管理方式是 ICE普通网络管理方式, 该方式主要是要求建立会话的双方终端都要支持 ICE普通网络管理方式(或者描述为建立会话的双方终端都具备有 ICE普通网络管理能力), 并在建立所述会话的某一方终端要进行网络切换时应用; 另一种网络管理方式是 ICE中继 网络管理方式, 该方式主要是要求进行网络切换的会话终端 (可以是会话发起终端或会话 响应终端)和该会话终端所在网络中的 STUN/TUR 服务器具备 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/TUR 服务器支持 ICE中继网络管理便可以实现。 ICE 中继网络管理主要原理是: 以图 1为例, 在候选地址搜集过程 S101-S104中, 用户终端 A (会话发起终端)在向 STUN/TUR 服务器发送搜集候选地址的初始请求中添加一个值为 空的 MOBILITY-TICKET字段, STUN/TUR 服务器在向用户终端 A分配中继地址的同时 还向用户终端 A返回 MOBILITY-TICKET字段,并为所述 MOBILITY-TICKET字段分配一 个值。 假设用户终端 A和用户终端 B建立的会话使用的是该中继地址, 当在会话过程中用 户终端 A发生了网络切换,此时用户终端 A可以向该 STUN/TUR 服务器发起新的候选地 址搜集请求, 所述新的候选地址搜集请求中携带该分配有值的 MOBILITY-TICKET字段, STUN/TUR 服务器会根据该 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/TUR 服务器发送搜集自身候选地址的初 始请求。 在 STU 协议中该初始请求又被称为是 Binding请求。 用户终端 A在该初始请求 中添加标识名为 MOBILITY-TICKET的字段,该字段表明用户终端 A支持 ICE中继网络管 理, 此时用户终端 A添加的 MOBILITY-TICKET字段的值为空, 此时该初始清求的发送地 址为用户终端 A所在主机的地址及分配的端口号,目的地址为 STUN/TURN服务器的地址。
S102、 初始请求通过 NAT设备转发给 STUN/TUR 服务器。 该初始请求的发送地址 在经过 NAT设备转发时, 被替换成了当前 NAT设备的服务器映射地址, 所述服务器映射 地址是 NAT设备给用户终端 A分配的 (服务器映射地址也被称为 NAT地址), 并转发给 STUN/TUR 月艮务器。
5103、 STUN/TURN服务器向用户终端 A回复初始响应, 其中携带上述 NAT地址及 STUN/TUR 服务器为用户终端 A 分配的中继地址。 由于收到的初始请求中携带有
MOBILITY-TICKET字段, 如果 STUN/TUR 服务器也支持 ICE中继网络管理, 则在初始 响应中也携带一个 MOBILITY-TICKET字段, 并为 MOBILITY-TICKET字段赋值。
5104、该初始响应通过 NAT设备转发后到达用户终端 A,此时用户终端 A就搜集到了 其候选地址并进行保存。所述候选地址包括用户终端 A自身的主机地址(也称为私有地址) 和初始响应中的 NAT地址和中继地址, 用户终端 A还需要保存服务器为其分配的
MOBILITY-TICKET字段的值。
5105、用户终端 A向用户终端 B发送呼叫请求,所述呼叫请求携带用户终端 A搜集到 的自身所有候选地址。
5106、 该呼叫请求通过 NAT设备转发到用户终端 B。
S107、 用户终端 B在收到该呼叫请求后进行自己的候选地址的搜集, 其候选地址的搜 集过程同用户终端 A侧的类似。
5108、用户终端 B向用户终端 A发送呼叫响应。用户终端 B将搜集到的自身所有候选 地址携带在呼叫响应中发送给用户终端 A。
5109、 该呼叫响应经过 NAT设备转发到用户终端 A; S110、 用户终端 A在收到用户终端 B的呼叫响应后进行连接测试。 在进行连接测试之 前, 用户终端 A会根据双方候选地址本身的优先级进行候选地址的匹配, 生成包含有不同 优先级的候选地址对。 用户终端 A需要按照优先级逐个使用候选地址对向用户终端 B发送 连接测试请求, 并在连接测试请求中都携带有 MOBILITY-SUPPORT字段, 该参数用来协 商用户终端 A和用户终端 B的 ICE普通网络管理。
S 111、 该连接测试清求通过 NAT设备转发(对于中继地址的连接测试请求还需要通过 STUN/TUR 服务器的的转发)。 其中, 有些候选地址对的连接测试请求可以被转发到用户 终端 B, 而有些候选地址对的连接测试请求将无法转发到用户终端 B;
5112、 对于可以收到连接测试清求的用户终端 A的候选地址, 用户终端 B向该用户终 端 A候选地址回复连接性测试响应, 如果用户终端 B也支持 ICE普通网络管理方式, 则用 户终端 B会在连接性测试响应中携带赋值后的 MOBILITY- SUPPORT字段; 本例子中由于 用户终端 B不支持 ICE普通网络管理, 则在连接测试响应中的 MOBILITY-SUPPORT字段 没有被赋值;
5113、 该链接测试响应通过 NAT设备(对于中继地址还需要通过 STUN/TURN服务 器的转发)转发到用户终端 A;
其中, 步骤 S110-S113 , 按照私有地址、 NAT地址和中继地址三者的优先级从高到底 顺序匹配双方的候选地址生成具有优先级的候选地址对, 并依次进行候选地址对的连接测 试; 整个测试的示意图如图 2A所示, 其中地址 ll(host)为用户终端 A的私有地址; 地址 12(reflx)为用户终端 A的 NAT地址, 地址 13(relay)为用户终端的中继地址。
可以看到现有技术中包括使用 ICE中继网络管理和 ICE普通网络管理的方案, 但现有 技术中在进行连接测试时过程比较繁瑣, 资源损耗较大。
发明内容
本发明提供了一种会话连接建立的方法、 装置和***, 通过对现有技术中候选地址对 匹配过程的改进, 从而提高了连接测试的效率; 其中, 具体包括:
本发明的第一方面, 提供的一种会话连接建立的方法, 包括:
会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求,所述搜集请求包括: 指示对所述会话发起终端的候选地址搜集和所述 STUN/TURN服务器对 ICE中继网络管理 的支持信息的搜集的信息;
所述会话发起终端接收所述 STUN/TUR 服务器发送的针对所述收集请求的搜集响应, 所述搜集响应中携带所述会话发起终端的一个或多个候选地址和所述 STUN/TUR 服务器 对 ICE中继网络管理的支持信息;
所述会话发起终端向会话响应终端发送呼叫请求, 所述呼叫请求中携带搜集到的所述 会话发起终端的候选地址中的至少一个候选地址;
接收所述会话响应终端的呼叫响应, 所述呼叫响应中携带所述会话响应终端的一个或 者多个候选地址;
所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持 信息, 匹配自己的候选地址和所述会话响应终端的候选地址, 生成一组或多组候选地址对; 所述会话发起终端根据所述一组或多组候选地址对向所述会话响应终端发送连接测试 请求,并在成功完成连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。
结合第一方面的第一种可能的实现方式中, 所述会话发起终端向会话响应终端发送呼 叫请求之前, 还包括:
所述会话发起终端根据 ICE普通网络管理的支持信息判断自己是否支持 ICE普通网络 管理, 所述 ICE普通网络管理的支持信息存储于会话发起终端中;
当判断结果是所述会话发起终端自己不支持 ICE普通网络管理时, 则在确认所述会话 发起终端和所述 STUN/TUR 服务器同时支持 ICE中继网络管理后, 所述呼叫请求中携带 搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 所述会话发起终端在所 述呼叫请求中仅携带所述会话发起终端的中继候选地址;
当判断结果是所述会话发起终端自己支持 ICE普通网络管理时, 所述呼叫请求中携带 搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 所述会话发起终端在所 述呼叫请求中携带所述会话发起终端的所有候选地址和所述会话发起终端对 ICE普通网络 管理的支持信息。
结合第一方面或结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中, 所述接收所述会话响应终端的呼叫响应, 所述呼叫响应中携带所述会话响应终端的一个或 者多个候选地址, 还包括:
所述呼叫响应中还包括所述会话响应终端对 ICE普通网络管理的支持信息; 则所述会话发起终端根据搜集到的所述 STUN/TURN服务器对 ICE中继网络管理的支 持信息, 匹配自己的候选地址和所述会话响应终端的候选地址, 生成一组或多组候选地址 对, 具体包括: 所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持 信息、 所述会话发起终端对 ICE普通网络管理的支持信息和所述会话响应终端对 ICE普通 网络管理的支持信息, 匹配自己搜集到的候选地址和所述会话响应终端的候选地址, 生成 具有优先级的一组或多组候选地址对。
结合第一方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述会话发起 终端根据搜集到的所述 STUN/TURN服务器对 ICE中继网络管理的支持信息、 所述会话发 起终端对 ICE普通网络管理的支持信息和所述会话响应终端对 ICE普通网络管理的支持信 息, 匹配自己搜集到的候选地址和所述会话响应终端的候选地址, 生成具有优先级的一组 或多组候选地址对, 具体为:
所述会话发起终端判断自己和所述会话响应终端是否都支持 ICE普通网络管理; 在判断结果为双方都支持 ICE普通网络管理时, 按照双方的候选地址的优先级属性匹 配成具有优先级的一组或多组候选地址对; 在判断结果为双方并非满足都支持 ICE普通网 络管理条件时, 确认所述会话发起终端和所述 STUN/TURN服务器都支持 ICE中继网络管 理, 则将所述会话发起终端的中继地址和所述会话响应终端的候选地址按照候选地址的优 先级属性匹配成具有优先级的一组或多组候选地址对。
结合第一方面或结合第一方面的上述几种可能的实现方式, 在第四种可能的实现方式 种中, 所述会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求和 /或会话发起 终端向会话响应终端发送呼叫请求和 /或匹配自己的候选地址和所述会话响应终端的候选 地址, 是在会话发起终端确认自身有网络切换需求后才进行。
本发明的第二方面, 提供一种会话连接建立的方法, 包括:
会话响应终端接收会话发起终端的呼叫请求, 所述呼叫请求携带所述会话发起终端的 一个或多个候选地址;
所述会话响应终端根据所述呼叫请求搜集所述会话响应终端的候选地址和所述会话响 应终端对 ICE普通网络管理的支持信息;
所述会话响应终端向所述会话发起终端发送呼叫响应, 所述呼叫响应携带所述会话响 应终端搜集到的候选地址和所述会话响应终端对 ICE普通网络管理的支持信息;
所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选 地址, 生成一组或多组候选地址对;
所述会话响应终端根据所述一组或多组候选地址对向所述会话发起终端发送连接测试 请求,并在成功完成连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。 结合第二方面的第一种可能的方案, 所述接收所述会话发起终端的呼叫请求中还携带 有所述会话发起终端对 ICE普通网络管理的支持信息, 则所述会话响应终端匹配自己在所 述呼叫响应中携带的候选地址和所述会话发起终端的候选地址, 生成一组或多组候选地址 对, 具体包括:
所述会话响应终端根据所述呼叫请求中携带的会话发起终端对 ICE普通网络管理的支 持信息和所述会话响应终端自身的 ICE普通网络管理的支持信息, 确定会话发起终端和会 话响应终端两者是否都支持 ICE普通网络管理;
当两者不满足都支持 ICE普通网络管理时, 则在确定所述会话发起终端侧支持 ICE中 继网络管理时, 所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起 终端的候选地址中的中继候选地址, 生成具有优先级的一组或多组候选地址对。
结合第二方面或第二方面的第一种可能的方案, 在第三种可能的方案中, 所述会话响 应终端根据所述呼叫请求搜集自身的候选地址外, 还搜集所述会话响应终端所在网络中的
STUN/TUR 服务器对 ICE中继网络管理的支持信息, 则所述会话响应终端向所述会话发 起终端发送所述呼叫响应, 所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话 响应终端对 ICE普通网络管理的支持信息, 具体包括:
所述会话响应终端判断所述会话发起终端和所述会话响应终端是否都支持 ICE普通网 络管理;
在判断结果为两者不满足都支持 ICE普通网络管理时, 并在确认所述会话响应终端侧 支持 ICE中继网络管理时, 所述会话响应终端向所述会话发起终端发送呼叫响应, 所述呼 叫响应携带所述会话响应终端搜集到的中继地址和会话响应终端对 ICE普通网络管理的支 持信息。
结合第二方面或结合第二方面的上述几种可能的实现方式, 在第四种可能的实现方式 种中, 所述会话响应终端根据所述呼叫请求搜集自身的候选地址和 /或所述会话响应终端向 所述会话发起终端发送呼叫响应和 /或所述会话响应终端匹配自己在呼叫响应中携带的候 选地址和所述会话发起终端的候选地址, 是在会话发起终端确认自身有网络切换需求后才 进行。
本发明的第三方面, 提供了一种会话连接建立的会话发起终端, 包括:
候选地址搜集发送模块, 用于向所述会话发起终端所在网络中的 STUN/TUR 服务器 发送搜集请求, 所述搜集请求包括: 指示对会话发起终端的候选地址搜集和所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息的搜集的信息;
候选地址搜集接收模块, 用于接收所述 STUN/TUR 服务器发送的针对所述收集请求 的搜集响应, 所述搜集响应中携带会话发起终端的一个或多个候选地址和所述 STUN/TUR 服务器对 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/TUR 服务器发送搜集请求; 和 / 或,
呼叫请求发送模块向会话响应终端发送呼叫请求; 和 /或,
候选地址匹配模块匹配自己的候选地址和所述会话响应终端的候选地址; 都是在切换 需求判断模块确认自身有网络切换需求后才进行。
本发明的第四方面, 提供了一种会话连接建立的会话响应终端, 包括:
呼叫请求接收模块, 用于接收会话发起终端的呼叫请求, 所述呼叫请求携带所述会话 发起终端的一个或多个候选地址;
候选地址搜集模块, 用于根据所述呼叫请求搜集所述会话响应终端的候选地址; 呼叫响应发送模块, 用于向所述会话发起终端发送呼叫响应, 所述呼叫响应携带所述 候选地址搜集模块搜集到所述会话响应终端的候选地址和所述会话响应终端对 ICE普通网 络管理的支持信息; 候选地址匹配模块, 用于匹配在所述呼叫响应中携带的候选地址和所述会话发起终端 的候选地址, 生成一组或多组候选地址对;
连接测试模块, 用于根据所述一组或多组候选地址对向所述会话发起终端发送连接测 试请求, 并在成功完成双方连接测试后, 建立所述会话发起终端和所述会话响应终端的会 话连接。
结合第四方面的第一种可能的方案中, 所述接收会话发起终端的呼叫请求中还携带有 所述会话发起终端对 ICE普通网络管理的支持信息, 则所述候选地址匹配模块还包括: 第一判断子模块, 用于根据所述呼叫请求中携带的所述会话发起终端对 ICE普通网络 管理的支持信息, 确定所述会话发起终端和所述会话响应终端两者是否都支持 ICE普通网 络管理;
第一匹配子模块, 用于当所述第一判断子模块确定两者不是都支持 ICE普通网络管理 时, 则在确定所述会话发起终端侧支持 ICE中继网络管理时, 所述会话响应终端匹配自己 在呼叫响应中携带的候选地址和所述会话发起终端的中继候选地址生成具有优先级的一组 或多组候选地址对。
结合第四方面或结合第四方面的第一种可能的方案, 在第二种可能的方案中, 所述候 选地址搜集模块根据所述呼叫请求搜集自身的候选地址外, 还搜集所述会话响应终端所在 网络中的 STUN/TUR 服务器对 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/TUR 服务器。 在本发 明的各实施例中 NAT_A和 NAT_B是可选的,并且用户终端 A侧和 /或用户终端 B侧的 NAT 设备的数量也是不受限定的, 不局限于图 3所示的一个 NAT_A和/或一个 NAT_B。 其中根 据具体的应用环境 NAT设备可以是: GGSN、 无线路由器或普通的网关等等。 本发明中 STUN/TUR 服务器可以是如图 3所示用户终端 A和用户终端 B共同使用一个; 可选的, 用户终端 B和用户终端 A拥有各自终端侧的 STUN/TUR 服务器;在本发明中仅以用户终 端 A和用户终端 B公用一个 STUN/TUR 服务器为例。本领域技术人员能够容易根据所列 举的实施例中推出在上述用户终端 A和用户终端 B拥有各自终端侧的 STUN/TUR 服务器 情况。 在本发明中 STUN/TUR 服务器并不限定是单独的设备实体, 其自身也可以在已有 的服务器中实现,甚至是可以集成在用户终端 A和 /或用户终端 B的终端上。本发明中用户 终端 A和用户终端 B的终端实体可以是手机、 个人电脑、 平板电脑、 电子书或者其他智能 设备。 本***所使用的协议也不局限于本发明提到的 STU 协议、 SDP协议和 SIP协议, 还可以是拥有和本发明中各实施例流程和处理方式类似的请求 /问答模式的其他协议或者 规范。
在本***实施例中,若用户终端 A所在的网络侧部署有 NAT设备时,相应的用户终端 A在与其所在的网络侧的 STUN/TUR 服务器通信的过程中, STUN/TUR 服务器会获取 到 NAT设备为用户终端 A所分配的服务器映射地址(也称为 NAT地址)。如果在用户终端 A侧部署有多个 NAT设备时, 所述为用户终端 A所分配的 NAT地址为用户终端 A侧直接 与 STUN/TURN服务器相连的 NAT设备 (即用户终端 A侧最后与 STUN/TURN服务器通 信的 NAT设备) 为用户终端 A所分配的地址。 STUN/TUR 服务器可以在用户终端 A和 / 或用户终端 B进行候选地址搜集时, 为其分配中继地址和 /或从 NAT设备中获取到的 NAT 地址。 在本发明中, 将用户终端的本地地址 (也称为私有地址)和服务器映射地址(也称 为 NAT地址)统称为非中继地址; 中继地址则指 STU /TU RN服务器为用户终端分配的 地址。
在接下来的具体实施例中, 对于 SDP信息中携带的非中继地址通常都是以同时包含了 私有地址和 NAT地址作为具体情况; 若不是同时包含的请况, 会具体的描述为携带私有地 址或 NAT地址。
实施例二
本发明提供的会话发起终端侧的一种会话连接建立的方法, 本方法可以在实施例一所 描述的***之上实现, 但是并不局限于实施例一所描述的***。 其中会话发起终端和会话 响应终端可以是个人电脑、 笔记本、 超极本、 平板电脑或智能手机; 还可是云端的某个操 作***, 甚至可以是云端提供的浏览器(这里可以认为该浏览器具备了普通终端所要求的 诸多功能); 还可以是 M2M领域内的智能终端 (其功能配置可能有别于现有的终端, 具有 更高的定制性)。 该方法包括:
S201、 会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求, 所述搜集请 求包括: 指示对会话发起终端的候选地址搜集和 STUN/TURN服务器对 ICE中继网络管理 的支持信息的搜集的信息。
会话发起终端进行自身候选地址的搜集过程,主要是通过在会话发起终端中默认设置有 的 STUN/TURN服务器地址向 STUN/TUR 服务器发送用于自身候选地址搜集的搜集请求; 所述候选地址由会话发起终端所在的网络架构所决定, 可能的网络架构包括:
第一种网络架构, 会话发起终端经过一个或多个 NAT 设备转接而最终连接到
STUN/TUR 服务器,此时,会话发起终端的候选地址包括以下几种: 1 )最邻近 STUN/TURN 服务器的 NAT设备为会话发起终端分配的地址, 在本发明中也筒称为 NAT地址; 2 )会话 发起终端的主机地址, 在本发明中也被称为会话发起终端的私有地址; 3 ) STUN/TURN服 务器为会话发起终端分配的地址, 在本发明中也被称为中继地址。
第二种网络架构, 会话发起终端不经由 NAT设备而直接连接服务器, 此时, 会话发起 终端的主机地址不再是上述私有地址, 而是具体呈现为互联网为会话发起终端分配的广域 网地址, 并且此时会话发起终端不再具有 NAT地址; 但是即便是第二种网络架构中, 会话 发起终端仍然可以拥有 STUN/TURN服务器为其分配的中继地址。
本发明将重点以第一种网络架构作为主要实现网络环境来描述,而本领域的技术人员能 够依据该实现容易的将其扩展到第二种网络架构中实现。
在结合本实施例二的第一种可选的方案中, 所述会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求, 还包括: 所述会话发起终端在确认自己不支持 ICE普 通网络管理, 而支持 ICE中继网络管理时, 在向所在网络中的 STUN/TUR 服务器发送的 搜集请求中携带类型标识, 所述类型标识指示 STUN/TURN服务器仅返回中继地址。
提出所述第一种可选的方案是因为: 会话发起终端优选的在进行会话建立过程中选取
ICE普通网络管理方式或 ICE中继网络管理方式中的一种方式, 因此, 在会话发起终端根 据自身的 ICE普通网络管理的支持信息确定自己不支持 ICE普通网络管理时, 则优选的会 选择 STUN/TURN服务器支持的 ICE中继网络管理(在所述第一种可选的方案中, 默认会 话发起终端所在网络中的 STUN/TURN服务器就是支持中继网络管理的);对于在发起初始 请求前便已确认不会采用的 ICE普通网络管理, 自然没有必要获取相应的非中继地址, 而 可以直接要求 STUN/TUR 服务器返回中继地址。从而减少了 NAT地址在网络带宽上的占 用, 也可以减少后续会话发起终端和会话响应终端匹配候选地址对时所占用的计算资源。
优选的,在执行所述第一种可选的方案之前会话发起终端首先确定自身有网络切换需求 后才进行所述第一种可选的方案。
其中,确定自身有网络切换需求具体包括: 用户在用户终端中设置的在进入特定网域中 或者满足特定条件时是具有网络切换需求的, 所述特定网域包括: wifi 网域; 所述满足特 定条件包括: 用户针对某次特定的通话对网络切换需求进行设置; 或根据会话响应终端自 身的移动的频繁程度达到指定值时。
用户针对某次特定的通话对网络切换需求进行设置举例为: 用户在一个拥有免费 wifi 的网络中进行通信, 但是随时有可能移动出该 wifi区域, 所以此时的通话可以设定会有网 络切换需求。
在本实施例中, 搜集 STUN/TUR 服务器对 ICE中继网络管理的支持信息的方式, 可 以直接使用背景技术中在搜集请求中携带 MOBILITY-TICKET的字段方式, 并通过搜集响 应中 MOBILITY-TICKET字段赋值内容来获取 STUN/TURN服务器对 ICE中继网络管的支 持信息。
所述结合本实施例二的第一种可选的方案里的搜集请求可以是基于 STUN 协议中的 Binding请求(在背景技术中也称为初始请求) 消息的基础上实现, 具体为在 Binding请求 消息的消息属性 ( Message Attributes ) 中增设一个字段, 例如: 该字段名可以定义为 SUPPORTING-MANNAGE ,并可以定义 SUPPORTING-MANNAGE字段内容为 normal时, 则 STUN/TUR 服务器返回属于会话发起终端的可用于 ICE普通网络管理的候选地址; SUPPORTING-MANNAGE内容为 relay时, 则服务器仅返回属于会话发起终端的支持 ICE 中继网络管理的候选地址; 默认的在 SUPPORTING-MANNAGE内容为空时, 则服务器返 回会话发起终端的所有候选地址。
其中, 定义该 SUPPORTING-MANNAGE 字段内容为空的处理方式是为了与现有的方 案兼容。
S202、 会话发起终端接收 STUN/TUR 服务器的搜集响应, 所述搜集响应中携带会话 发起终端的一个或多个候选地址和 STUN/TURN服务器对 ICE中继网络管理的支持信息。
结合第一种可选的方案的第一种可能, 步骤 S202具体执行为: STUN/TURN服务器在 接收到发自会话发起终端的搜集请求, 并根据该搜集请求中类型标识确认会话发起终端只 要求返回中继地址时, 则将自身为会话发起终端分配的中继地址和对 ICE中继网络管理的 支持信息携带在搜集响应中发送给会话发起终端; 可选的, 由于在第一种可选的方案中, 默认 STUN/TURN服务器支持 ICE中继网络管理方式, 因此, 可以只携带上述中继地址, 而可以省略上述 STUN/TUR 服务器对 ICE中继网络管理的支持信息。
结合第一种可选的方案的第二种可能, 其中, 相对于会话发起终端 STUN/TUR 服务 器并非默认就支持 ICE中继网络管理; 则步骤 S202具体执行为: STUN/TUR 服务器在接 收到发自会话发起终端的搜索请求后, 根据该搜索请求中类型标识确认会话发起终端只要 求返回中继地址时, 首先确认 STUN/TUR 服务器自身是否支持 ICE中继网络管理, 若确 认结果为支持 ICE中继网络管理则将自身为会话发起终端分配的中继地址和自身对 ICE中 继网络管理的支持信息携带在搜集响应中发送给会话发起终端; 若确认结果为不支持 ICE 中继网络管理则将会话发起终端的候选地址(这里的候选地址包括中继地址和 NAT地址) 和自身对 ICE中继网络管理的支持信息(即 STUN/TUR 服务器不支持 ICE中继网络管理) 携带在搜集响应中发送给会话发起终端。
S203、 会话发起终端向会话响应终端发送呼叫请求, 所述呼叫请求中携带搜集到的会 话发起终端的候选地址中的至少一个候选地址。
在本实施二的主方案中,所述呼叫请求是不需要携带会话发起终端的候选地址对于网络 管理的支持信息;而直接利用 SDP协议中的会话属性行承载所述会话发起终端的候选地址, 并通过呼叫请求发送给会话响应终端。 以便于会话响应终端在搜集到自身的候选地址后, 结合呼叫请求中会话发起终端的候选地址生成候选地址对,用于后续双方的连接测试过程。
在结合本实施例二的第二种可选的方案中,所述会话发起终端向会话响应终端发送呼叫 请求, 之前, 还包括:
所述会话发起终端根据 ICE普通网络管理的支持信息判断自己是否支持 ICE普通网络 管理, 所述 ICE普通网络管理的支持信息存储于会话发起终端中;
当判断结果是所述会话发起终端自己不支持 ICE普通网络管理时, 则在确认所述会话 发起终端和所述 STUN/TUR 服务器同时支持 ICE中继网络管理后, 所述呼叫请求中携带 搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 会话发起终端在所述呼 叫请求中仅携带会话发起终端的中继候选地址;
当判断结果是所述会话发起终端自己支持 ICE普通网络管理时, 所述呼叫请求中携带 搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 所述会话发起终端在所 述呼叫请求中携带会话发起终端的所以候选地址和所述会话发起终端对 ICE普通网络管理 的支持信息。
在结合本实施例二的第三种可选的方案中,会话发起终端向所述会话响应终端发送呼叫 请求,所述呼叫请求中携带搜集到的所述会话发起终端的候选地址中的至少一个候选地址, 还包括: 所述呼叫请求还携带了所述会话发起终端对 ICE普通网络管理的支持信息和 /或会 话发起终端侧对 ICE中继网络管理的支持信息, 所述会话发起终端侧对 ICE中继网络管理 的支持信息包括所述会话发起终端和所述 STUN/TUR 服务器两者对 ICE中继网络管理的 支持信息。
会话响应终端在接收到所述第三种可选的方案中的呼叫请求后,在第一种可能的情况下: 会话响应终端确定会话发起终端和会话响应终端双方都支持 ICE普通网络管理后, 会 话响应终端选择自身的所有候选地址和自身对 ICE普通网络管理的支持信息携带在呼叫响 应中返回给会话发起终端;
会话响应终端在接收到所述第三种可选的方案中的呼叫请求后,在第二种可能的情况下: 会话响应终端在发送搜集请求之前,确定会话发起终端和会话响应终端双方不满足都支 持 ICE普通网络管理的条件时, 向服务器发送仅搜集自身的中继地址和 STUN/TUR 服务 器对中继网络管理的支持信息; 将所述搜集到的中继地址携带在呼叫响应中返回给会话发 起终端。
上述第二种可能情况中,优选的还包括:会话响应终端确定自身存在网络切换需求后才 执行所述第二种可能情况。
上述第二种可能情况的处理, 是考虑了 ICE普通网络管理在出现会话双方没有都支持 ICE普通网络管理条件情况下 ICE普通网络管理便不能在会话发起终端和 /或会话响应终端 发生网络切换时起作用, 上述第二种可能情况下只有会话响应终端的中继地址支持的 ICE 中继网络管理, 并能够在会话响应终端发生网络切换时起作用, 因此, 在上述二种可能情 况下选择在呼叫响应中只携带会话响应终端的中继地址在 ICE框架是最优的, 带来的进一 步有益效果是减少了会话双方匹配候选地址对、 计算候选地址对的优先级和非中继地址在 网络中传递所占用的带宽。
需要进一步补充的是,所述结合本实施例二的第一种可选方案和所述结合本实施例二的 第二种可选的方案, 两种可选方案是可以结合使用的, 因为他们所改进的是在信令流程的 不同步骤上, 可以一同作用于实施例提高效率; 同样的结合本实施例二的第一种可选方案 和所述结合本实施例二的第三种可选的方案, 两种可选的方案也是可以结合使用的; 还有 结合本实施例二的第一种可选的方案、 第二种可选的方案和所述结合本实施例二的第三种 可选的方案, 两种可选的方案也是可以结合使用的。
其中, 最明显的就是, 在第一种可选的方案中成功的通过搜集请求仅获取到 STUN/TUR 服务器为会话发起终端分配的中继地址时, 在步骤 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" 0 该会话 属性行 " 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/TUR 服务器对 ICE中继网络管理的支持信 息, 匹配自己候选地址和所述会话响应终端的候选地址生成一组或多组候选地址对。
在本实施例中所述会话发起终端根据搜集到的 STUN/TUR 服务器对 ICE中继网络管 理的支持信息, 匹配自己的候选地址和所述会话响应终端的候选地址, 生成一组或多组候 选地址对, 具体包括:
确认会话发起终端和 STUN/TUR 服务器都支持 ICE中继网络管理, 则将会话发起终 端的中继地址和会话响应终端的候选地址按照候选地址的优先级属性匹配生成具有优先级 的一组或多组候选地址对。 优选的, 此时无须匹配会话发起终端的非中继地址和会话响应 的候选地址, 从而减少了后续需要进行候选地址对连接测试的数量。
在结合本实施例二第二种可选的方案中, 当判断结果是会话发起终端不支持 ICE普通 网络管理时,则在确认会话发起终端和 STUN/TUR 服务器同时支持 ICE中继网络管理后; 此时执行 S205匹配候选地址对时,会话发起终端直接用自身的中继地址匹配呼叫响应中的 候选地址, 生成一个或多个候选地址对。
在结合本实施例二第四种可选的方案, S205中会话发起终端根据搜集到的 STUN/TURN 服务器对 ICE中继网络管理的支持信息, 匹配自己的候选地址和会话响应终端的候选地址 生成一组或多组候选地址对, 具体包括:
所述会话发起终端根据搜集到的 STUN/TURN服务器对 ICE中继网络管理的支持信息、 会话发起终端对 ICE普通网络管理的支持信息和会话响应终端对 ICE普通网络管理的支持 信息, 匹配自己搜集到的候选地址和接收自会话响应终端的候选地址生成具有优先级的一 组或多组候选地址对。
在本实施例的第五种可选的方案中,优选的会话发起终端判断自己和会话响应终端是否 都支持 ICE普通网络管理;
在判断结果为双方都支持 ICE普通网络管理时, 按照双方的候选地址的优先级属性匹 配成具有优先级的一组或多组候选地址对; 在判断结果为双方并非满足都支持 ICE普通网 络管理条件时, 确认会话发起终端和 STUN/TUR 服务器都支持 ICE中继网络管理, 则将 会话发起终端的中继地址和会话响应终端的候选地址按照候选地址的优先级属性匹配成具 有优先级的一组或多组候选地址对。
通过对 ICE框架的分析, 其中, ICE普通网络管理的优先级高于 ICE中继网络管理。 并结合背景技术中介绍的 ICE普通网络管理和 ICE中继网络管理自身的原理, 得出用于会 话发起终端生成候选地址对的关系表 1 , 表 1 中给出了会话发起终端和会话响应终端的候 选地址对网络管理支持的几种可能的情况。
表 1
会话响应终端侧: 会话响应终端侧:
支持: ICE普通网络管理 不支持: ICE普通网络管理 会话发起终端侧: I II
支持: ICE普通网络管理 会话发起终端使用可用于 会话发起终端只能选择使用可 支持: ICE中继网络管理 ICE普通网络管理和可用于 用于 ICE中继网络管理的候选地
ICE中继网络管理的候选地 址生成具有优先级的候选地址 址与会话响应终端的候选地 对
址生成具有优先级的候选地
址对, 且前者生成的候选地
址对优先级高于后者
会话发起终端侧: III IV
不支持: ICE普通网络管理 会话发起终端只能选择中继 会话发起终端只能选择可用于 支持: ICE中继网络管理 地址生成具有优先级的候选 ICE中继网络管理的候选地址生
地址对 成具有优先级的候选地址对 会话发起终端侧: V VI
支持: ICE普通网络管理 会话发起终端只能选择可用 会话发起终端无法使用上述两 不支持: ICE中继网络管理 于 ICE普通网络管理的候选 种网络管理方式, 而采用现有技
地址生成具有优先级的候选 术生成候选地址对
地址对
在实际情况中, 除了上述优先级外, 还要考虑会话发起终端自身的特殊需求, 比如会 话发起终端的隐私要求或会话发起终端侧的 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/TUR 服务器; 或者是上述 1 )、 2 )种环境都存在的情况等等均可以基于本实施例公 开的内容通过调整候选地址和 /或 STUN/TUR 服务器间的通信来完成。本实施例的会话建 立流程的具体包括:
在本实施例中优选的完成了用户终端 A确定自身有网络切换需求的过程后才执行本实 施例的流程, 该判断可以是在用户终端 A搜集自身候选地址之前完成。
所述确认自身有网络切换需求具体包括:
会话发起终端中设置有在进入特定网域中或者满足特定条件时是具有网络切换需求的 , 所述特定网域包括: wifi 网域; 所述满足特定条件包括: 针对某次特定的通话对网络切换 需求进行设置, 或根据会话响应终端自身的移动的频繁程度达到指定值时。
S301、用户终端 A搜集自身的候选地址和 STUN/TURN服务器对 ICE中继网络管理的 支持信息。
其中, 搜集自身的候选地址包括实施例二中的向 STUN/TUR 服务器发送搜集请求和 接收 STUN/TUR 服务器返回的搜集响应。 在本实施例中, 所述搜集请求包括: 指示对会 话发起终端的候选地址搜集和 STUN/TUR 服务器对 ICE中继网络管理的支持信息的搜集 的信息; STUN/TUR 服务器对 ICE中继网络管理的支持信息, 主要是通过在初始请求中 添加 STUN/TURN服务器识别的 MOBILITY-TICKET字段,使得 STUN/TUR 服务器在初 始清求中识别出 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普通网络管理的标识。
为了具体说明如何添加支持网络管理的标识, 首先引用 RFC 5389中定义的在 SDP中 用于传递候选地址的消息格式,字段分部示意图如图 10所示,在标准中其各个字段定义为: candidate-attribute = "candidate" ":" foundation SP component-id SP
transport SP
priority SP
connection-address SP ; from RFC 4566
port ; ort from RFC 4566
SP cand-type
[SP rel-addr]
[SP rel-port]
*(SP extension-att-name SP
extension-att-value)
其中, RFC 5246定义了现有技术中一个候选地址可以携带的所有参数 , 包括地址支持 的类" candidate" , 传输的协议" transport" , 地址的优先级 "priority" , 默认连接地址 "connection-address" , 地址端口 "port"等。 一个具体的候选地址由 SDP信息中的会话属性行 ( "a"行)携带, 其展现形式如下:
a=candidate: l 1 UDP 2130706431 10.0.1.1 8998 typ host
a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ 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=Dodo 2890844730 2890844731 IN IP4 host.example_b.com
s=
c=IN IP4 215.75.211.130
t=0 0
m=audio 8076 RTP/AVP 0
a=candidate: l 1 UDP 2130706431 10.0.1.21 8998 typ host normal
a=candidate:2 1 UDP 1694498815 211.25.21.30 45664 typ srflx normal
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ 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"则是存储在用户终端 上的。其中"&=。&^1(^6: 1 1 UDP 2130706431 10.0.1.21 8998 typ host normal" , 最后的 "normal"标识, 表明用户终端 A的私有地址可以用于 ICE 普通网络管理; "a=candidate:2 1 UDP 1694498815 211.25.21.30 45664 typ srflx normal"最后 的" normal"标识, 表明用户终端 A 的搜集到的 NAT 地址可以用于 ICE普通网络管理; "a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ relay both"最后的 "both"标识, 表明用户终端 A搜集到的由 STUN/TUR 服务器分配的中继地址即可以用于 ICE中继网络 管理也可以用于 ICE普通网络管理。 本实施例中, ICE中继网络管理并不需要双方进行能 力协商, 所以本实施例中也可以不添加该 ICE中继网络管理标识。
本实施例中, 除了上述在会话属性行("a" 行)最后扩展字段方式外, 结合本实施例 三的第一种可选的方案中, 可以使用单独的会话属性行("a" 行)来实现呼叫请求携带会 话发起终端的一个或多个候选地址对于网络管理的支持信息, 如:
v=0
o=Dodo 2890844730 2890844731 IN IP4 host.example_b.com
s=
c=IN IP4 215.75.211.130
t=0 0
m=audio 8076 RTP/AVP 0
a=ICE-mobile-ability: both
a=candidate:l 1 UDP 2130706431 10.0.1.21 8998 typ host
a=candidate:2 1 UDP 1694498815 211.25.21.30 45664 typ srflx
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ relay
其中, 添加了一个新的 "a= ICE-mobile-ability" 的会话属性行, 该会话属性行的取值 可以确定为 normal、 relay或 both。 当 ICE-mobile-ability的值为 normal时,表明用户终端 A 支持 ICE普通网络管理; 当 ICE-mobile-ability的值为 relay时,表明用户终端 A侧支持 ICE 中继网络管理, 其中, 用户终端 A侧包括: 用户终端 A和用户终端 A 所在的网络中的 STUN/TUR 服务器;当 ICE-mobile-ability的值为 both时,表明不仅用户终端 A侧支持 ICE 中继网络管理, 而且用户终端 A还支持 ICE普通网络管理; 当 SDP信息中不包含 "a= ICE-mobile-ability" 的会话属性行时, 表明该用户终端 A并不支持网络管理, 所在网络管 理包括 ICE中继网络管理和 ICE普通网络管理。
S303、 该呼叫请求被 NAT_A设备和 NAT_B设备转发到用户终端 B。 5304、 用户终端 B在接收到呼叫请求后, 开始搜集其自身的候选地址和所述候选地址 对网络管理的支持信息, 该搜集过程和用户终端 A类似。
5305、 用户终端 B生成呼叫响应消息。
由于用户终端 B不具备 ICE普通网络管理能力,所以构成呼叫响应消息的 SDP信息中 用于携带非中继地址的会话属性行最后设置为 non标识, 表明用户终端 B的非中继地址不 可用于 ICE普通网络管理(即用户终端 B不支持 ICE普通网络管理); 而用于携带中继地 址的会话属性行最后设置 relay标识, 表明用户终端 B的中继地址可用于 ICE中继网络管 理(即用户终端 B和用户终端 B所在网络的 STUN/TUR 服务器支持 ICE中继网络管理;)。 用户终端 B用于在呼叫响应消息中携带自身候选地址可用于的网络管理的信息方式和 S302 中用户终端 A用于在呼叫请求消息中携带自身候选地址可用于的网络管理的信息方式相同。
在结合本实施例三的第一种可选的方案中, 可以通过在呼叫响应消息的 SDP信息中包 含" a= ICE-mobile-ability: relay"的会话属性行表明用户终端 B侧支持 ICE中继网络管理,但 用户终端 B不支持 ICE普通网络管理。
5306、 该呼叫响应被 NAT_B设备和 NAT_A设备转发到用户终端 A。
对应实施例二中步骤 S205的内容, 在本实施中具体被执行为步骤 S307。
5307、用户终端 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地址、中级地址从高到低优先级, 得到最终的候选地址对的优先级。 该结论适用于本发明的其他各实施例。
5308、用户终端 A依据所述一组或多组候选地址对的优先级依次向用户终端 B发送连 接测试请求。
由于用户终端 A已经通过呼叫响应获知用户终端 B不具备 ICE普通网络管理能力, 因 此,在向用户终端 B发送的连接测试请求中便不必像 S110那样携带 MOBILITY- SUPPORT 字段 (用来完成用户终端 A和用户终端 B双方的 ICE普通网络管理的协商;)。
5309、该用户终端 A的连接测试请求通过 NAT_A设备、 STUN/TUR 服务器和 NAT_B 设备转发给用户终端 B (需要注意的是, 若用户终端 A需要进行的连接测试请求的候选地 址对均是非中继地址时, 则 S309的转发过程不需要 STUN/TUR 服务器转发)。
5310、 用户终端 B接收连接测试请求, 并从该链接测试请求中提取其携带的候选地址 对; 然后, 用户终端 B将依据此提取自连接测试的候选地址对向用户终端 A发送连接测试 响应。
在可选的方案中, 该连接测试请求也可以是从用户终端 B发出, 其具体执行过程, 仅 需要把步骤 S308-S310中的原成本执行主体用户终端 A和用户终端 B进行交换。 本可选的 方案多用于在用户终端 B具有才艮据用户终端 A的候选地址和用户终端 B的候选地址,以及 双方对网络管理的支持信息主动完成塞选和匹配的能力的情况下。 其中塞选即用户终端 B 确定自己具有网络切换需求后, 有针对性的是选择可用于 ICE中继网络管理的候选地址来 和呼叫请求中携带的候选地址进行匹配, 还是选择可用于 ICE普通网络管理的候选地址来 和呼叫请求中携带的候选地址进行匹配。
在可选的方案中, 候选地址对的生成按照本实施例的方式来完成, 而后续的连接测试 过程(包括连接测试请求的发送以及连接测试响应接收等)仍就按照现有的 ICE框架来完 成。由于,现有 ICE框架进行连接测试的顺序依照的就是候选地址对的优先级顺序, 因此, 在本实例生成了具有不同优先级的候选地址对后, 可以正常的应用现有 ICE框架来完成连 接测试过程。
S31 用户终端 B发送的连接测试响应经过 NAT_B设备、 STUN/TUR 服务器和 NAT A设备转发到用户终端 A (需要注意的是, 若用户终端 B返回的连接测试响应中携带 的候选地址对均是非中继地址时, 则 S311的转发过程不需要经过 STUN/TUR 服务器)。
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所有候选地址。
实施例三的扩展实施例 α)
在用户终端 Α既拥有 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(l)中收到的来自用户终端 B的呼叫响应中将携带如下信息: (这是基于本发明***结构示意图 3中的参数来陈述的)
a=candidate:l 1 UDP 3134126431 192.168.1.25 8678 typ host normal
a=candidate:2 1 UDP 2494367815 202.205.21.30 33664 typ relay normal
a=candidate:3 1 UDP 1984498123 215.75.211.130 45633 typ srflx normal
此时, 原 S307将被执行为 S307(l), 具体如下:
S307(l)-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(l)、 用户终端 B接收连接测试请求, 并从该链接测试请求中提取其携带的候选地 址对; 然后, 用户终端 B将依据此提取自连接测试的候选地址对向用户终端 A发送连接测 试响应。 该连接测试响应中携带 MOBILITY-SUPPORT字段和相应的值。 在 S311(l)返回连 接测试响应超时表明该非中继地址的连接测试结果失败时, 则用户终端 A会继续依照候选 地址对的优先级, 选择下一优先级的候选地址对进行后序连接测试。
此时, 原 S312将被执行为 S312(1), 具体如下:
S312(l)、 成功完成连接测试后, 建立会话发起终端和会话响应终端的会话连接。 本实 施例中用户终端 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:l 1 UDP 3134126431 192.168.1.25 8678 typ host normal
a=candidate:2 1 UDP 2494367815 202.205.21.30 33664 typ srflx normal
a=candidate:3 1 UDP 1984498123 215.75.211.130 45633 typ relay normal
在用户终端 B不支持 ICE普通网络管理时(这里艮设用户终端 B不支持 ICE中继网络 管理, 因为, 用户终端 B是否支持 ICE中继网络管理并非本实施例所关注的), S305(2)中 接收到的呼叫响应中将携带如下信息(这是基于本发明***结构示意图 3的参数来陈述的): a=candidate:l 1 UDP 3134126431 192.168.1.25 8678 typ host non
a=candidate:2 1 UDP 2494367815 202.205.21.30 33664 typ srflx non a=candidate:3 1 UDP 1984498123 215.75.211.130 45633 typ 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普通网络管理,因此 S 110中的 MOBILITY-SUPPORT 标识在本扩展实施例 (4 ) 中不再需要携带。
通过上述不同情况方案的补充, 结合本实施例能够更全面的将本发明应用到各种实际 情况中, 使其涵盖用户终端 A和用户终端 B对于是否具有网络管理能力的各种情况, 并对 于其中的特定情况做了方案的优化, 如扩展实施例 (2)中跳过对于用户终端 B的候选地址是 否支持网络管理的分析, 进一步筒化了信令交互和操作复杂程度。
实施例四 本实施例是本发明一种会话连接建立的方法, 在另一个方面上, 本实施例和实施例二 的第四种可选的方案是分别就会话响应终端和会话发起终侧端两角度撰写的, 本实施例可 以作为一个单独的改进方案实现, 也可以和实施例二结合为一个方案来实现。 所述结合即 可以是实施例二中的会话发起终端在本实施例中是以会话响应终端身份存在, 还可以是本 实施例中的会话响应终端就是实施例二中会话响应终端的存在。 其过程具体包括:
5401、 会话响应终端接收所述会话发起终端的呼叫请求, 所述呼叫请求携带会话发起 终端的一个或多个候选地址。
所述呼叫请求中包含了会话发起终端搜集到的属于会话发起终端的一个或多个候选地 址, 使得会话响应终端在搜集到自身的候选地址后能够依据候选地址的优先级排序, 组合 出不同优先级的候选地址对, 用来进行会话响应终端侧后续的连接测试的过程。
5402、 会话响应终端根据所述呼叫请求搜集会话响应终端的候选地址和会话响应终端 对 ICE普通网络管理的支持信息。
在结合本实施例四的第一种可选的方案中: 在步骤 S401里, 所述接收所述会话发起终 端的呼叫请求中还携带有所述会话发起终端对 ICE普通网络管理的支持信息,则所述会话响 应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址生成具有优 先级的一组或多组候选地址对, 具体包括: 会话响应终端根据所述呼叫请求中携带的会话 发起终端对 ICE普通网络管理的支持信息和会话响应终端自身的 ICE普通网络管理的支持 信息,确定会话发起终端和会话响应终端两者是否都支持 ICE普通网络管理; 当两者不满足 都支持 ICE普通网络管理时, 则在确定会话发起终端侧支持 ICE中继网络管理时, 所述会话 响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址中的中继 候选地址生成具有优先级的一组或多组候选地址对。
之所以提出结合本实施例四的第一种可选的方案, 是因为会话响应终端在收到呼叫请 求中发现会话发起终端只支持 ICE中继网络管理时,会话响应终端实际上就获知了两条信息: 1、根据本发明实施例二的第四种可选的方案改进后的会话发起终端会在收到会话响应终端 的呼叫响应后只利用会话发起终端的中继地址和呼叫响应中携带的候选地址匹配生成候选 地址对; 因此, 可以进一步通过在会话响应终端侧预先感知这一匹配动作, 从而可以减少 会话响应终端生成的无效候选地址对(即会话发起终端不会采用的候选地址对); 进一步提 高后续连接测试的效率。
在结合本实施例四的第二种可选的方案中: 在步骤 S401里, 在所述接收所述会话发起 终端的呼叫请求中还携带有所述会话发起终端对 ICE普通网络管理的支持信息时,则所述搜 集自身的候选地址具体包括:
会话响应终端根据所述呼叫请求中携带的会话发起终端对 ICE普通网络管理的支持信 息确定会话发起终端和会话响应终端不满足同时支持 ICE普通网络管理,而会话响应终端自 身支持 ICE中继网络管理时; 则会话响应终端在向所在网络中的 STUN/TUR 服务器发送的 搜集请求中携带会话响应终端对 ICE普通网络管理支持信息和会话响应终端对 ICE中继网 络管理的支持信息, 以便于 STUN/TUR 服务器在判断自身支持 ICE中继网络管理时, 向会 话发起终端仅返回其自身的中继地址。
可知,在实施例四中基于会话响应终端侧的方法中,对于向 STUN/TUR 服务器搜集候 选地址的过程可以模仿实施例二中的搜集过程, 因此, 上述搜集请求中可以像实施例二中 描述一样只携带会话响应终端对 ICE中继网络管理的支持信息和 /或在搜集请求中携带要求 STUN/TUR 服务器仅返回中继地址的类型标识; 对应在实施例二中 STUN/TUR 服务器针 对上述搜集请求中的信息的判断过程也可以运用于本实施例四的搜集过程中来; 基于上述 技术手段的描述, 本领域技术人员能够进行可能方式的扩展, 以实现在搜集请求过程中减 少候选地址占用网络带宽, 和后续过程中筒化匹配的目的。 相关描述可见实施例二的步骤 S205中的描述。
结合本实施例四的第三种可选的方案中: 所述会话响应终端根据所述呼叫请求搜集自 身的候选地址外, 还搜集会话响应终端所在网络中的 STUN/TURN服务器对 ICE中继网络管理 的支持信息, 则所述会话响应终端向会话发起终端发送呼叫响应, 所述呼叫响应携带所述 会话响应终端搜集到的候选地址和会话响应终端对 ICE普通网络管理的支持信息, 具体包括: 会话响应终端判断会话发起终端和会话响应终端是否都支持 ICE普通网络管理; 在判断 结果为两者不满足都支持 ICE普通网络管理时,并在确认会话响应终端侧支持 ICE中继网络管 理时, 会话响应终端向会话发起终端发送呼叫响应, 所述呼叫响应携带所述会话响应终端 搜集到的中继地址和会话响应终端对 ICE普通网络管理的支持信息。
在判断结果为两者都支持 ICE普通网络管理时, 会话响应终端向会话发起终端发送呼叫 响应, 所述呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对 ICE普通网 络管理的支持信息。
结合本实施例四的第一种可选的方案中, 匹配搜集到的一个或多个候选地址对网络管 理的支持信息和所述呼叫请求中携带的会话发起终端对 ICE普通网络管理的支持信息之前, 优选的还包括判断会话响应终端具有网络切换需求时, 然后再执行所述结合本实施例四的 第一种可选方案。
结合本实施例的第二种可选的方案中,所述会话响应终端搜集自身的候选地址以及所述 候选地址对网络管理的支持信息之前, 优选的还包括判断会话响应终端具有网络切换需求 时, 然后再执行所述结合本实施例四的第二种可选方案。
针对上述结合本实施例四的第一种可选的方案、第二种可选的方案和第三种可选的方案 中提到的 "判断会话响应终端具有网络切换需求" 过程, 相应的设置会话响应终端自身具 有网络切换需求具体包括:
用户在会话响应终端中设置的在进入特定网域中或者满足特定条件时是具有网络切换 需求的, 所述特定网域包括: wifi 网域; 所述满足特定条件包括: 或用户针对某次特定的 通话对网络切换需求进行设置;或根据会话响应终端自身的移动的频繁程度达到指定值时。
5403、 会话响应终端向会话发起终端发送呼叫响应, 所述呼叫响应携带会话响应终端 的搜集到的候选地址和会话响应终端对 ICE普通网络管理的支持信息。
所述呼叫响应携带会话响应终端的候选地址和会话响应终端对 ICE普通网络管理的支 持信息, 以便于会话发起终端根据自身对网络管理的支持信息(所述网络管理包括 ICE中继 网络管理和 ICE普通网络管理)和所述呼叫响应中携带的会话响应终端对 ICE普通网络管理 的支持信息, 利用会话发起终端和会话响应终端双方的候选地址生成具有优先级的一组或 多组候选地址对。
5404、 会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的 候选地址生成具有优先级的一组或多组候选地址对。
5405、 会话响应终端根据所述一组或多组候选地址对的优先级向会话发起终端发送 连接测试请求。
5406、 在成功完成连接测试后, 建立会话发起终端和会话响应终端的会话连接。
本实施例, 从会话响应终端侧出发阐述了本发明的发明点, 通过在呼叫响应中携带会 话响应终端所搜集的候选地址和所述会话响应终端对 ICE普通网络管理的支持信息。以便于 会话发起终端能够根据会话发起终端自身对网络管理的支持信息和会话响应终端对 ICE普 通网络管理的支持信息, 利用会话发起终端和会话响应终端的候选地址生成具有优先级的 候选地址对, 从而能够更高效的进行后续的连接测试, 减少了大量冗余的连接测试过程。
实施例五 在本发明中, 基于会话响应终端的改进并不局限于实施例四所描述的内容。 实施例四 是在会话发起终端经过本发明改进后的前提下实现的。 而本发明所应用的实际情况中, 可 能存在会话发起终端就是现有技术中的会话发起终端, 或者还可以是不具备本发明实施例 二的第三种可选的方案的功能的会话发起终端, 而会话响应终端却拥有本发明实施例二中 对于会话发起终端和会话响应终端双方对于网络管理分析的功能, 所述网络管理分析为在 参考表 2情况下做出的有利于减少连接测试中信令交互的方法。 则本实例五提供了一种在 上述只有会话响应终端单侧应用了本发明改进的实施例, 其流程包括:
S401 \ 会话响应终端接收所述会话发起终端的呼叫请求, 所述呼叫请求中包含了会话 发起终的一个或多个候选地址。
本实施例五中所述呼叫请求中不包含所述会话发起终端对网络管理的支持信息。 在本 实施例中对应的候选地址在 SDP信息中表现形式具体为:
a=candidate:l 1 UDP 2130706431 10.0.1.21 8998 typ host
a=candidate:2 1 UDP 1694498815 211.25.21.30 45664 typ srflx
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ relay
本实施例中会话响应终端可以根据呼叫请求中仅携带了候选地址, 而不包含相应候选 地址的网络管理支持信息 ( 即对应携带候选地址的会话属性行不携带扩展的 ICE-mobile-ability字段相应的标识), 判断出会话发起终端不具备本发明实施例二提出的改 进方案的功能。
S402,、 会话响应终端搜集自身的候选地址以及所述候选地址对 ICE普通网络管理和 ICE中继网络管理的支持信息。
该步骤 S402'的细化如图 7所述, 具体包括:
S501、 会话响应终端搜集自身的候选地址以及所述候选地址对网络管理的支持信息; 本实施例中, 会话响应终端所搜集到的包括: STUN/TUR 服务器为会话响应终端分 配的中继地址以及 STUN/TUR 服务器对 ICE中继网络管理的支持信息; 非中继地址及会 话响应终端对 ICE普通网络管理的支持信息。
S502、会话响应终端确定自身是否有网络切换需求。判断结果为没有网络切换需求时, 则执行 S503; 在判断结果为会话响应终端有网络切换需求时, 则执行 S504。
对于 "判断会话响应终端具有网络切换需求"过程, 相应的设置会话响应终端自身具有 网络切换需求具体包括: 用户在会话响应终端中设置的在进入特定网域中或者满足特定条件时是具有网络切换 需求的, 所述特定网域包括: wifi 网域; 所述满足特定条件包括: 或用户针对某次特定的 通话对网络切换需求进行设置;或根据会话响应终端自身的移动的频繁程度达到指定值时。
5503、 会话响应终端在生成的呼叫响应中携带非中继地址和中继地址(本实施例中, 呼叫响应中可选的还可以携带 ICE普通网络管理支持的信息和 /或 ICE中继网络管理的支持 的信息)。
5504、 会话响应终端判断自身和 STUN/TUR 服务器是否满足都支持 ICE中继网络管 理的条件, 在判断结果为是时执行 S505; 在判断结果为否时执行 S506。
5505、 会话响应终端在生成的呼叫响应中仅携带搜集到的中继地址(本实施例中, 可 选的呼叫响应中还携带会话响应终端对 ICE中继网络管理的支持的信息)。
5506、 会话响应终端在生成的呼叫响应中携带非中继地址和中继地址(本实施例中, 可选的呼叫响应中还可以携带会话响应终端 ICE普通网络管理支持的信息和 ICE中继网络 管理的支持的信息);
S403 '、 会话响应终端向会话发起终端发送呼叫响应。
S404'、会话响应终端根据呼叫响应中携带的候选地址和所述会话请求中携带的会话发 起终端的候选地址生成具有优先级的一组或多组候选地址对。
S405,、 会话响应终端依据所述一组或多组候选地址对的优先级依次向会话发起终端发 送连接测试请求。
S406,、 在成功完成连接测试后, 建立会话发起终端和会话响应终端的会话连接。 在结合本实施例第一种可选方案中, 步骤 S502的判断会话响应终端是否有网络切换需 求可以在步骤 S501的搜集会话响应终端的候选地址之前执行, 类似于如结合实施例四的第 三种可选方案描述。 此时, 若判断会话响应终端没有网络切换需求时, 则后续的执行的过 程和现有技术没有什么区别在此不再赘述; 若判断会话响应终端有网络切换需求时, 则向 STUN/TUR 服务器发送的搜索候选地址请求中要求服务器仅返回中继地址和 STUN/TUR 服务器对 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的字段, 该字段 的取值定义为 normaK relay > both或 ηοη» 并设置在 ICE-mobile-ability的值为 normal时, 确定该候选地址可用于 ICE普通网络管理方式; 当 ICE-mobile-ability的值为 relay时, 表 明该候选地址可用于 ICE中继网络管理方式; 当 ICE-mobile-ability的值为 both时, 表明该 候选地址可以同时用于 ICE 普通网络管理方式和 ICE 中继网络管理方式; 当 ICE-mobile-ability的值为 non时, 表明该地址并不可用于上述两种网络管理。 在本实施例 中, SDP信息中携带网络管理信息的具体实现为:
a=candidate:l 1 UDP 2130706431 10.0.1.21 8998 typ host normal
a=candidate:2 1 UDP 1694498815 211.25.21.30 45664 typ srflx normal
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ 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时,表明用户终端 Α支持 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" , 确定用户终端 Α同时支持 ICE普通网络管理和 ICE 中继网络管理。
而本实施例中优选的已经判断了会话响应终端的用户终端 B有网络切换需求前提下, 由于用户终端 B不支持 ICE普通网络管理, 而仅支持 ICE中继网络管理(实施例四的第三 种可选的方案在本实施例中的实现), 所以用户终端 B优选使用 ICE中继网络管理。 则只 需要返回携带用户终端 B的中继地址和会话响应终端对 ICE普通网络管理的支持信息的连 接测试响应给用户终端 A即可;
基于本实施例的第二种可选的方案中, 用户终端 B在向 STUN/TUR 服务器发送用于 搜集自身候选地址的初始请求时, 可以在该初始请求中扩展使用一个新的字段, 该字段的 名字可以是 SUPPORTING-MANNAGE, 当其出现在请求中时, 表明用户希望搜集到的地 址类型, STUN/TUR 服务器在响应消息中只返回 SUPPORTING-MANNAGE字段中对应 的地址类型, SUPPORTING-MANNAGE字段的取值可以定义为: normal, relay或 all。 可 选的, 除采用 all标识用以让 STUN/TUR 服务器返回搜集到的用户终端 B的所有候选地 址外, 还可以采用该 SUPPORTING-MANNAGE字段内容为空, 也表示让 STUN/TUR 服 务器将能搜集到的所有地址类型都携带在响应消息中。
所述初始请求可以是基于 STU 协议中的 Binding请求上实现, 具体为在 Binding请求 的消息属性(Message Attributes ) 中增设一个 SUPPORTING-MA AGE字段, 并可以定 义其内容为 normal时,要求 STUN/TURN服务器仅返回会话响应终端的支持 ICE普通网络 管理的候选地址; 其内容为 relay时,要求 STUN/TUR 服务器仅返回会话响应终端的可用 于 ICE中继网络管理的候选地址; 其内容为 all时, 要求 STUN/TURN服务器返回会话响 应终端的所有候选地址。
S604、用户终端 B向用户终端 A发送呼叫响应, 并在呼叫响应的 SDP信息中只添加用 户终端 B获取到的中继地址和用户终端 B对 ICE普通网络管理的支持信息; 其在 SDP信 息中具体表现为:
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ relay relay
S605、 呼叫响应经过 NAT_B设备和 NAT_A设备的转发, 被转发给用户终端 A;
S606、用户终端 B向用户终端 A发送连接测试请求。在发送连接测试之前,因为在 S604 中用户终端 B已经确定只向用户终端 A发送中继地址作为候选地址, 于是, 用户终端 B根 据自身的中继地址和用户终端 A的候选地址生成具有优先级的候选地址对。 并依据所述候 选地址对的优先级依次向用户终端 A发送连接测试清求。
S607、 用户终端 B的连接测试请求经过 NAT_B设备、 STU /TR 服务器和 NAT_A设 备的转发, 最后转发给用户终端 A;
5608、 用户终端 A生成连接测试响应, 以告知用户终端 B连接测试通过。
5609、 用户终端 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
用户终端 B 用户终端 B 用户终端 B 支持: ICE普通网络管理 不支持: ICE普通网络管理 支持: ICE普通网络 支持: ICE中继网络管理 支持: ICE中继网络管理 管理
不支持: ICE中继网 络管理
用户终端 A I II III 支持: ICE普通网络管理 用户终端 B使用可用于 用户终端 B只选择中继地 用户终端 B只选择 支持: ICE中继网络管理 ICE普通网络管理和可用 址和用户终端 A的候选地 使用非中继地址和 于 ICE中继网络管理的候 址生成候选地址对 用户终端 A的候选 选地址生成具有优先级的 地址生成候选地址 候选地址对, 且前者生成 对
的候选地址对优先级高于
后者
用户终端 A IV V VI 不支持: 用户终端 B只选择中继地 用户终端 B只选择中继地 用户终端 B无法使
ICE普通网络管理 址和用户终端 A的候选地 址和用户终端 A的候选地 用上述两种网络管 支持: 址生成候选地址对 址生成候选地址对 理方式
ICE中继网络管理
用户终端 A VII VIII IX 支持: 用户终端 B只选择使用非 用户终端 B只选择中继地 用户终端 B只选择
ICE普通网络管理 中继地址和用户终端 A的 址和用户终端 A的候选地 使用非中继地址和 不支持: 候选地址生成候选地址对 址生成候选地址对 用户终端 A的候选
ICE中继网络管理 地址生成候选地址 对 用户终端 A XI XII XIII 不支持: 用户终端 B只选择使用中 用户终端 B只选择使用中 用户终端 B无法使
ICE普通网络管理 继地址和用户终端 A的候 继地址和用户终端 A的候 用上述两种网络管 不支持: 选地址生成候选地址对 选地址生成候选地址对 理
ICE中继网络管理
实施例七
本实施例是结合实施例三和实施例六中的一种情况做为本实施例的环境, 并在前面的 基础上进一步增加局域网优先级的判断, 这并不表明实施例三和实施例六中没有考虑局域 网情况, 而是为了突出各实施例的说明重点, 将其作为不同实施例来描述。 毫无疑问的, 本实施例七所涉及的局域网优先级判断也同样属于实施例二的细化, 而由于会话发起终端 和会话响应终端在匹配候选地址对时候所采用的技术手段是相似或者说相同的, 因此, 本 实施例七同样可以推出实施例四在本情况下的实现。 从用户终端 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/TUR 服务器发送仅搜集 STUN/TURN服务器为用户终 端 A分配的中继地址的初始请求。 其中, 由于私有地址是用户终端 A自己知道的, 通过搜 集请求用户终端 A进一步获知了其中继地址以及该中继地址对 ICE中继网络管理的支持信 息。
S702、用户终端 A发送呼叫请求。 并按照实施例三中步骤 S302的方式为所述候选地址 分配对应支持的网络管理标识。 其呼叫请求中的 "a"行信息具体呈现如下:
a=candidate:l 1 UDP 2130706431 10.0.1.21 8998 typ host
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ 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:l 1 UDP 2130706431 10.0.1.25 8968 typ host lan
a=candidate:3 1 UDP 1294498217 215.75.211.130 4324 typ 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。
5710、 连接性测试响应通过 NAT_A设备转发到用户终端 A。
5711、 用户终端 C使用自身生成的基于私有地址的候选地址对, 向用户终端 A发起连 接测试请求。
S712、 NAT_A设备将连接测试转发给用户终端 A。
5713、 用户终端 A将收到连接测试请求中携带的用户终端 A的私有地址, 携带在连接 测试响应中发送给用户终端 B。
5714、用户终端 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连接;
5802、 用户终端 A的 JS使用 updatelce()接口通知浏览器 A开始 ICE协商流程, 在该 updatelce()中扩展增加网络切换需求, 即告知浏览器 A用户终端 A在通话中有网络管理的 需求。 接口定义为:
updatelce (optional RTCConfiguration? configuration = null, optional MediaConstraints? constraints = null);
其中 MediaConstraints参数中有 IceTransports的类型, 类型的取值有 "TURN" 表明只 使用中继地址进行通信 (比如隐私性的需求), 在该类型中还可以扩展取值, 比如命名为 "ICE-mobility" , 表明用户有网络管理的需求, 希望尽量选择能支持网络管理的候选地址 对优先进行连接测试;
5803、 浏览器 A收到 ICE更新接口 updatelce()后开始启动 ICE协商流程, 首先需要同 STUN/TUR 服务器交互进行候选地址的搜集, 该过程同实施例三中的步骤 S301相似;
5804、 浏览器 A使用 ICE回调接口 ICEcallback()向用户终端 A的 JS反馈搜集到的候 选地址,对于搜集的候选地址相应的关联上用户终端 A是否支持 ICE普通网络管理的标识, 对于搜集的中继地址相应的关联上用户终端 A是否支持 ICE中继网络管理和 /或 ICE普通 网络管理的标识。 其关联方法同实施例三中步骤 S302中描述的添加方法相似;
5805、 用户终端 A的 JS将从浏览器 A收到的用户终端 A的候选地址以及其他媒体信 息封装成 SDP协议格式的信息(筒称 SDP信息), 并携带在呼叫请求消息中, 通过 NAT设 备、 STUN/TUR 服务器发向用户终端 B;
S806、 用户终端 B进行本地候选地址搜集, 并在呼叫响应消息中携带搜集到的所有候 选地址, 同时也在候选地址里添加是否可用于网络管理的标识, 该步骤同实施例二中图 5 的 S305相似;
S807、 用户终端 A的 JS收到呼叫响应后, 解析其中的 SDP信息, 获取所述 SDP信息 中包含的用户终端 B的候选地址信息, JS将用户终端 B的候选地址和该候选地址是否可用 于网络管理的信息通过 addIceCandidate()函数或类似函数通道反馈给用户终端 A浏览器;
5808、 用户终端 A的 JS通过 S804和 S806获知用户终端 A和用户终端 B对网络管理 的支持情况, 本实施例中用户终端 A和用户终端 B双方都支持 ICE普通网络管理;
5809、用户终端 A的浏览器和用户终端 B进行 ICE的连接测试,确认最终通信的地址, 该过程同实施例二(图 5 ) 中的第 S307~S311步相似, 本例中用户终端 A侧使用非中继地 址进行通信;
5810、 由于用户终端 A发生网络切换, 接入信息发生改变。 例如用户终端 A从 wifi接 入点切换到 3G接入点;
5811、 用户终端 A的 JS在呼叫建立过程中获知用户终端 A和用户终端 B都支持 ICE 普通网络管理且用户终端 A使用是非中继地址进行通信, 此时用户终端 A的 JS只需要等 待浏览器使用 ICE普通网络管理方式完成会话的恢复;
5812、 用户终端 A浏览器使用 ICE普通网络管理方式完成会话的恢复;
5813、 用户终端 A浏览器使用 ICEcallback或其他功能类似方法向用户终端 A的 JS反 馈 ICE重协商后的地址;
S814、 发送更新请求, 并携带 SDP包括更新成功的地址信息;
5815、 更新应答;
5816、 完成 ICE重协商过程。
本实施例从实际应用的角度, 结合了浏览器和 javascript的相关接口函数来应用本发明 的发明构思, 对于本发明如何实现以及实现的领域做了更全面的分析。
实施例九
本实施例是本发明提供的一种建立会话连接方法中的会话发起终端的装置描述, 主要 是针对实施例二中描述的方法而设计, 所述终端的结构关系图如图 13所示终端 200, 其模 块具体包括:
候选地址搜集发送模块 201 , 用于向所在网络中的 STUN/TUR 服务器发送搜集请求, 所述搜集请求包括: 指示对会话发起终端的候选地址搜集和 STUN/TUR 服务器对 ICE中 继网络管理的支持信息的搜集的信息;
候选地址搜集接收模块 202, 用于接收 STUN/TUR 服务器的搜集响应, 所述搜集响应 中携带会话发起终端的一个或多个候选地址和 STUN/TURN服务器对 ICE中继网络管理的 支持信息; 呼叫请求发送模块 203 , 用于向会话响应终端发送呼叫请求, 所述呼叫请求中携带搜集 到的会话发起终端的候选地址中的至少一个候选地址;
呼叫响应接收模块 204, 用于接收所述会话响应终端的呼叫响应, 所述呼叫响应中携带 所述会话响应终端的一个或者多个候选地址;
候选地址匹配模块 206 ,用于根据搜集到的 STUN/TURN服务器对 ICE中继网络管理的 支持信息, 匹配会话发起终端的候选地址和所述会话响应终端的候选地址生成一组或多组 候选地址对;
连接测试模块 208,用于会话发起终端根据所述一组或多组候选地址对的优先级向会话 响应终端发送连接测试请求, 在成功完成双方的连接测试后, 建立会话发起终端和会话响 应终端的会话连接。
本实施例优选的,候选地址匹配模块 206和网络管理判断模块 207都属于处理模块 205 的子模块,而处理模块 205提供与候选地址搜集发送模块 201和候选地址搜集接收模块 202 的接口连接, 并负责将接收到的信息传递给相应的模块。
结合本实施例九的第一种可选的方案,本实施例的终端还包括: 网络管理判断模块 207, 用于根据 ICE普通网络管理的支持信息判断会话发起终端是否支持 ICE普通网络管理, 所 述 ICE普通网络管理的支持信息在进行会话连接建立前便保存在会话发起终端中;
当判断结果是会话发起终端不支持 ICE普通网络管理时, 则在确认会话发起终端侧支 持 ICE中继网络管理后, 呼叫请求发送模块向会话响应终端发送仅携带中继候选地址的呼 叫请求; 其中, 会话发起终端侧支持 ICE中继网络管理包括: 会话发起终端和会话发起终 端所在网络中的 STUN/TUR 服务器都支持 ICE中继网络管理;
当判断结果是会话发起终端支持 ICE普通网络管理时, 则呼叫请求发送模块在向会话 响应终端发送呼叫请求, 所述呼叫请求中携带会话发起终端的各候选地址和会话发起终端 对 ICE普通网络管理的支持信息。
结合本实施例九的第二种可选的方案中, 所述呼叫响应接收模块 204接收到的呼叫响 应中还包括所述会话响应终端对 ICE普通网络管理的支持信息时, 所述候选地址匹配模块 具体用于:
根据搜集到的 STUN/TUR 服务器对 ICE中继网络管理的支持信息、 会话发起终端对 ICE普通网络管理的支持信息和会话响应终端对 ICE普通网络管理的支持信息, 匹配候选 地址搜集接收模块 202搜集到的候选地址和所述会话响应终端的候选地址生成具有优先级 的一组或多组候选地址对。
结合本实施例九的第三种可选的方案中, 所述候选地址匹配模块, 还包括: 第一判断子模块 2061 , 用于判断会话发起终端和会话响应终端是否满足都支持 ICE普 通网络管理;
第一匹配子模块 2062, 用于在判断结果为双方都支持 ICE普通网络管理时, 按照双方 的候选地址的优先级属性匹配成具有优先级的一组或多组候选地址对, 并在会话发起终端 根据所述一组或多组候选地址对的优先级向会话响应终端发送连接测试请求时携带 MOBILITY-SUPPORT标识, 用于和会话响应终端进行 ICE普通网络管理的协商;
第二匹配子模块 2063 , 用于在判断结果为双方并非都支持 ICE普通网络管理时, 确认 会话发起终端和 STUN/TUR 服务器都支持 ICE中继网络管理, 则将会话发起终端的中继 地址和会话响应终端的候选地址按照候选地址的优先级属性匹配成具有优先级的一组或多 组候选地址对。
结合本实施例九的第四种可选的方案中, 所述终端还包括切换需求判断模块 209, 其中, 会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求, 是在切换需 求判断模块确认会话发起终端有网络切换需求后才进行。
所述确认自身有网络切换需求具体包括: 切换需求判断模块在进入特定网域中或者满 足特定条件时是具有网络切换需求的, 所述特定网域包括: 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/TUR 服务器发送搜集请求,所述搜集请求包括: 指示对会话发起终端的候选地址搜集和 STUN/TUR 服务器对 ICE中继网络管理的支持信 息的搜集的信息;
会话发起终端接收 STUN/TUR 服务器的搜集响应, 所述搜集响应中携带会话发起终 端的一个或多个候选地址和 STUN/TURN服务器对 ICE中继网络管理的支持信息;
会话发起终端向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的会话发起终 端的候选地址中的至少一个候选地址;
接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者 多个候选地址;
会话发起终端根据搜集到的 STUN/TUR 服务器对 ICE中继网络管理的支持信息, 匹 配自己的候选地址和所述会话响应终端的候选地址生成一组或多组候选地址对;
会话发起终端根据所述一组或多组候选地址对向会话响应终端发送连接测试请求, 并 在成功完成双方的连接测试后, 建立会话发起终端和会话响应终端的会话连接。
本实施的终端除上述能够完成的基本功能外, 应用程序 3041还可以存储有实施例二中 的可选方案的程序, 而处理器 301也能响应的实现对应可选方案的方法, 在此不再赘述。
本领域技术人员不难通过实施例九中揭示的终端各模块的功能, 将其转化为本实施例 中通过应用程序 3041和处理器 301来实现的方案, 因此, 不再赘述。
实施例十一
本实施例是本发明提供的一种建立会话连接的会话响应终端的装置描述, 主要是针对 实施例四中描述的方法而设计, 所述终端的结构关系图如图 15所示终端 400, 其模块具体 包括:
呼叫请求接收模块 401 , 用于接收所述会话发起终端的呼叫请求, 所述呼叫请求携带会 话发起终端的一个或多个候选地址;
候选地址搜集模块 402, 用于根据所述呼叫请求搜集自身的候选地址;
呼叫响应发送模块 403 , 用于向会话发起终端发送呼叫响应, 所述呼叫响应携带所述会 话响应终端搜集到的候选地址和会话响应终端对 ICE普通网络管理的支持信息;
候选地址匹配模块 404, 用于匹配呼叫响应发送模块 403在呼叫响应中携带的候选地址 和所述会话发起终端的候选地址生成具有优先级的一组或多组候选地址对;
连接测试模块 405,用于根据所述一组或多组候选地址对的优先级向会话发起终端发送 连接测试请求,并在成功完成连接测试后,建立会话发起终端和会话响应终端的会话连接。
结合本实施例十一的第一种可选的方案中, 所述接收所述会话发起终端的呼叫请求中 还携带有所述会话发起终端对 ICE普通网络管理的支持信息, 则候选地址匹配模块 404还 包括:
第一判断子模块 4041 , 用于才艮据所述呼叫请求中携带的会话发起终端对 ICE普通网络 管理的支持信息, 确定会话发起终端和会话响应终端两者是否都支持 ICE普通网络管理; 第一匹配子模块 4042, 用于当两者不是都支持 ICE普通网络管理时, 则在确定会话发 起终端侧支持 ICE中继网络管理时, 所述会话响应终端匹配呼叫响应发送模块 403在呼叫 响应中携带的候选地址和所述会话发起终端的候选地址中的中继候选地址生成具有优先级 的一组或多组候选地址对。
结合本实施例十一的第二种可选的方案中, 所述候选地址搜集模块根据所述呼叫请求 搜集自身的候选地址外, 还搜集会话响应终端所在网络中的 STUN/TUR 服务器对 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-volatile memory ), 例如至少一个磁盘存储器。 通过至少一个网络接口 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/TUR 服务器发送搜集请求, 所述搜集请求包括: 指示对会话发起终端的候选地 址搜集和 STUN/TUR 服务器对 ICE 中继网络管理的支持信息的搜集的信息; 并接收 STUN/TUR 服务器的搜集响应, 所述搜集响应中携带会话发起终端的一个或多个候选地 址和 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 > 或技术 领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述, 但本发明并不 限于此。 在不脱离本发明的精神和实质的前提下, 本领域普通技术人员可以对本发明的实 施例进行各种等效的修改或替换, 而这些修改或替换都应在本发明的涵盖范围内。

Claims (18)

  1. 权 利 要 求
    1、 一种会话连接建立的方法, 其特征在于, 包括:
    会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求,所述搜集请求包括: 指示对所述会话发起终端的候选地址搜集和所述 STUN/TURN服务器对 ICE中继网络管理 的支持信息的搜集的信息;
    所述会话发起终端接收所述 STUN/TUR 服务器发送的针对所述收集请求的搜集响应, 所述搜集响应中携带所述会话发起终端的一个或多个候选地址和所述 STUN/TUR 服务器 对 ICE中继网络管理的支持信息;
    所述会话发起终端向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的所述会 话发起终端的候选地址中的至少一个候选地址;
    接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述会话响应终端的一个或者 多个候选地址;
    所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持 信息, 匹配自己的候选地址和所述会话响应终端的候选地址, 生成一组或多组候选地址对; 所述会话发起终端根据所述一组或多组候选地址对向所述会话响应终端发送连接测试 请求,并在成功完成连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。
  2. 2、 根据权利要求 1所述的方法, 其特征在于, 所述会话发起终端向会话响应终端发送呼叫 请求之前, 还包括:
    所述会话发起终端根据 ICE普通网络管理的支持信息判断自己是否支持 ICE普通网络 管理, 所述 ICE普通网络管理的支持信息存储于会话发起终端中;
    当判断结果是所述会话发起终端自己不支持 ICE普通网络管理时, 则在确认所述会话 发起终端和所述 STUN/TUR 服务器同时支持 ICE中继网络管理后, 所述呼叫请求中携带 搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 所述会话发起终端在所 述呼叫请求中仅携带所述会话发起终端的中继候选地址;
    当判断结果是所述会话发起终端自己支持 ICE普通网络管理时, 所述呼叫请求中携带 搜集到的会话发起终端的候选地址中的至少一个候选地址具体为: 所述会话发起终端在所 述呼叫请求中携带所述会话发起终端的所有候选地址和所述会话发起终端对 ICE普通网络 管理的支持信息。 3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述接收所述会话响应终端的呼叫响应, 所述呼叫响应中携带所述会话响应终端的一个或者多个候选地址, 还包括:
    所述呼叫响应中还包括所述会话响应终端对 ICE普通网络管理的支持信息;
    则所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支 持信息, 匹配自己的候选地址和所述会话响应终端的候选地址, 生成一组或多组候选地址 对, 具体包括:
    所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持 信息、 所述会话发起终端对 ICE普通网络管理的支持信息和所述会话响应终端对 ICE普通 网络管理的支持信息, 匹配自己搜集到的候选地址和所述会话响应终端的候选地址, 生成 具有优先级的一组或多组候选地址对。
  3. 4、 根据权利要求 3所述的方法, 其特征在于, 所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息、 所述会话发起终端对 ICE普通网络管 理的支持信息和所述会话响应终端对 ICE普通网络管理的支持信息,匹配自己搜集到的候选 地址和所述会话响应终端的候选地址,生成具有优先级的一组或多组候选地址对,具体为: 所述会话发起终端判断自己和所述会话响应终端是否都支持 ICE普通网络管理; 在判断结果为双方都支持 ICE普通网络管理时, 按照双方的候选地址的优先级属性匹 配成具有优先级的一组或多组候选地址对; 在判断结果为双方并非满足都支持 ICE普通网 络管理条件时, 确认所述会话发起终端和所述 STUN/TURN服务器都支持 ICE中继网络管 理, 则将所述会话发起终端的中继地址和所述会话响应终端的候选地址按照候选地址的优 先级属性匹配成具有优先级的一组或多组候选地址对。
  4. 5、 根据权利要求 1或 2所述的方法, 其特征在于, 所述会话发起终端根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息, 匹配自己的候选地址和所述会话响应 终端的候选地址, 生成一组或多组候选地址对, 具体包括:
    确认会话发起终端和 STUN/TUR 服务器都支持 ICE中继网络管理, 则将会话发起终 端的中继地址和会话响应终端的候选地址按照候选地址的优先级属性匹配, 生成具有优先 级的一组或多组候选地址对。 6、 根据权利要求 1-5任一所述的方法, 其特征在于, 所述会话发起终端向所述会话响应终 端发送呼叫请求, 所述呼叫请求中携带搜集到的所述会话发起终端的候选地址中的至少一 个候选地址, 还包括:
    所述呼叫请求还携带了所述会话发起终端对 ICE普通网络管理的支持信息和 /或会话发 起终端侧对 ICE中继网络管理的支持信息, 所述会话发起终端侧对 ICE中继网络管理的支 持信息包括所述会话发起终端和所述 STUN/TUR 服务器两者对 ICE中继网络管理的支持 信息。 7、 根据权利要求 1-6任一所述的方法, 其特征在于, 所述会话发起终端向所在网络中的 STUN/TUR 服务器发送搜集请求, 还包括:
    所述会话发起终端在确认自己不支持 ICE普通网络管理,而支持 ICE中继网络管理时, 在向所在网络中的 STUN/TUR 服务器发送的搜集请求中携带类型标识, 所述类型标识指 示 STUN/TURN服务器仅返回中继地址。
  5. 8、 根据权利要求 1-7所述的方法, 其特征在于, 会话发起终端向所在网络中的 STUN/TURN 服务器发送搜集请求和 /或会话发起终端向会话响应终端发送呼叫请求和 /或匹配自己的候 选地址和所述会话响应终端的候选地址, 是在会话发起终端确认自身有网络切换需求后才 进行。
  6. 9、 根据权利要求 8所述的方法, 其特征在于, 所述确认自身有网络切换需求具体包括: 所述会话发起终端中设置有在进入特定网域中或者满足特定条件时是具有网络切换需 求的, 所述特定网域包括: wifi 网域; 所述满足特定条件包括: 针对某次特定的通话对网 络切换需求进行设置, 或根据会话响应终端自身的移动的频繁程度达到指定值时。
  7. 10、 根据权利要求 1-9所述的方法, 其特征在于, 所述会话发起终端具体为浏览器, 则所 述方法具体包括:
    所述浏览器发送搜集请求, 并将搜集响应中的候选地址和所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息传递给 Javascript; 其中, javascrip运行于浏览器中; Javascript根据所述浏览器和所述会话响应终端各自对 ICE普通网络管理和 ICE中继网 络管理的支持信息, 生成具有优先级的候选地址对, 并返回给浏览器;
    所述浏览器完成后续的连接测试和会话建立过程。 11、 一种会话连接建立的方法, 其特征在于, 包括:
    会话响应终端接收会话发起终端的呼叫请求, 所述呼叫请求携带所述会话发起终端的 一个或多个候选地址;
    所述会话响应终端根据所述呼叫请求搜集所述会话响应终端的候选地址和所述会话响 应终端对 ICE普通网络管理的支持信息;
    所述会话响应终端向所述会话发起终端发送呼叫响应, 所述呼叫响应携带所述会话响 应终端搜集到的候选地址和所述会话响应终端对 ICE普通网络管理的支持信息;
    所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选 地址, 生成一组或多组候选地址对;
    所述会话响应终端根据所述一组或多组候选地址对向所述会话发起终端发送连接测试 请求,并在成功完成连接测试后,建立所述会话发起终端和所述会话响应终端的会话连接。
  8. 12、 根据权利要求 11所述的方法, 其特征在于, 所述接收所述会话发起终端的呼叫请求中 还携带有所述会话发起终端对 ICE普通网络管理的支持信息,则所述会话响应终端匹配自己 在所述呼叫响应中携带的候选地址和所述会话发起终端的候选地址, 生成一组或多组候选 地址对, 具体包括:
    所述会话响应终端根据所述呼叫请求中携带的会话发起终端对 ICE普通网络管理的支 持信息和所述会话响应终端自身的 ICE普通网络管理的支持信息, 确定会话发起终端和会话 响应终端两者是否都支持 ICE普通网络管理;
    当两者不满足都支持 ICE普通网络管理时,则在确定所述会话发起终端侧支持 ICE中继网 络管理时, 所述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端 的候选地址中的中继候选地址, 生成具有优先级的一组或多组候选地址对。
  9. 13、 根据权利要求 11或 12所述方法, 其特征在于, 所述会话响应终端根据所述呼叫请求搜 集自身的候选地址外, 还搜集所述会话响应终端所在网络中的 STUN/TURN服务器对 ICE中继 网络管理的支持信息, 则所述会话响应终端向所述会话发起终端发送所述呼叫响应, 所述 呼叫响应携带所述会话响应终端搜集到的候选地址和会话响应终端对 ICE普通网络管理的 支持信息, 具体包括:
    所述会话响应终端判断所述会话发起终端和所述会话响应终端是否都支持 I CE普通网 络管理;
    在判断结果为两者不满足都支持 ICE普通网络管理时, 并在确认所述会话响应终端侧支 持 ICE中继网络管理时, 所述会话响应终端向所述会话发起终端发送呼叫响应, 所述呼叫响 应携带所述会话响应终端搜集到的中继地址和会话响应终端对 ICE普通网络管理的支持信 息。
  10. 14、 根据权利要求 11所述的方法, 其特征在于, 在所述接收所述会话发起终端的呼叫请求 中还携带有所述会话发起终端对 ICE普通网络管理的支持信息时,则所述搜集所述会话响应 终端的候选地址和所述会话响应终端对 ICE普通网络管理的支持信息具体包括:
    所述会话响应终端根据所述呼叫请求中携带的所述会话发起终端对 ICE普通网络管理 的支持信息确定所述会话发起终端和所述会话响应终端不满足同时支持 ICE普通网络管理, 而所述会话响应终端自身支持 ICE中继网络管理时;
    则所述会话响应终端在向所在网络中的 STUN/TUR 服务器发送的搜集请求中携带所 述会话响应终端对 ICE普通网络管理支持信息和所述会话响应终端对 ICE中继网络管理的 支持信息, 以便于所述 STUN/TURN服务器在判断自身支持 ICE中继网络管理时, 向所述 会话发起终端仅返回其自身的中继地址。
  11. 15、 根据权利要求 11-14任一所述的方法, 其特征在于, 所述会话响应终端根据所述呼叫请 求搜集自身的候选地址和 /或所述会话响应终端向所述会话发起终端发送呼叫响应和 /或所 述会话响应终端匹配自己在呼叫响应中携带的候选地址和所述会话发起终端的候选地址, 是在会话发起终端确认自身有网络切换需求后才进行。
  12. 16、 根据权利要求 15所述的方法, 其特征在于, 所述确认自身有网络切换需求具体包括: 会话响应终端中设置有在进入特定网域中或者满足特定条件时是具有网络切换需求的, 所述特定网域包括: wifi 网域; 所述满足特定条件包括: 针对某次特定的通话对网络切换 需求进行设置, 或根据会话响应终端自身的移动的频繁程度达到指定值时。
  13. 17、 一种会话连接建立的会话发起终端, 其特征在于, 包括:
    候选地址搜集发送模块, 用于向所述会话发起终端所在网络中的 STUN/TUR 服务器 发送搜集请求, 所述搜集请求包括: 指示对会话发起终端的候选地址搜集和所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息的搜集的信息;
    候选地址搜集接收模块, 用于接收所述 STUN/TUR 服务器发送的针对所述收集请求 的搜集响应, 所述搜集响应中携带会话发起终端的一个或多个候选地址和所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息;
    呼叫请求发送模块,用于向会话响应终端发送呼叫请求,所述呼叫请求中携带搜集到的 会话发起终端的候选地址中的至少一个候选地址;
    呼叫响应接收模块,用于接收所述会话响应终端的呼叫响应,所述呼叫响应中携带所述 会话响应终端的一个或者多个候选地址;
    候选地址匹配模块, 用于根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理 的支持信息, 匹配会话发起终端的候选地址和所述会话响应终端的候选地址, 生成一组或 多组候选地址对;
    连接测试模块,用于根据所述一组或多组候选地址对向会话响应终端发送连接测试请求 , 在成功完成双方的连接测试后, 建立所述会话发起终端和所述会话响应终端的会话连接。 18、 根据权利要求 17所述的会话发起终端, 其特征在于, 所述会话发起终端还包括:
    网络管理判断模块, 用于根据 ICE普通网络管理的支持信息判断所述会话发起终端是 否支持 ICE普通网络管理, 所述 ICE普通网络管理的支持信息存储于会话发起终端中; 当判断结果是所述会话发起终端不支持 ICE普通网络管理时, 则在确认所述会话发起 终端侧支持 ICE中继网络管理后, 所述呼叫请求发送模块向所述会话响应终端发送仅携带 中继候选地址的呼叫请求; 其中, 所述会话发起终端侧支持 ICE中继网络管理包括: 所述 会话发起终端和所述会话发起终端所在网络中的 STUN/TURN服务器都支持 ICE中继网络 管理;
    当判断结果是所述会话发起终端支持 ICE普通网络管理时, 则所述呼叫请求发送模块 在向所述会话响应终端发送呼叫请求, 所述呼叫请求中携带会话发起终端的所有候选地址 和所述会话发起终端对 ICE普通网络管理的支持信息。
  14. 19、 根据权利要求 17或 18所述的终端, 其特征在于, 所述呼叫响应接收模块接收到的所述 呼叫响应中还包括所述会话响应终端对 ICE普通网络管理的支持信息时, 所述候选地址匹配 模块具体用于:
    根据搜集到的所述 STUN/TUR 服务器对 ICE中继网络管理的支持信息、 所述会话发 起终端对 ICE普通网络管理的支持信息和所述会话响应终端对 ICE普通网络管理的支持信 息, 匹配自己搜集到的候选地址和所述会话响应终端的候选地址生成具有优先级的一组或 多组候选地址对。
  15. 20、 根据权利要求 19所述的终端, 其特征在于, 所述候选地址匹配模块, 还包括:
    第一判断子模块,用于判断所述会话发起终端和所述会话响应终端是否满足都支持 ICE 普通网络管理;
    第一匹配子模块, 用于在所述第一判断子模块的判断结果为双方都支持 ICE普通网络 管理时, 按照双方的候选地址的优先级属性匹配, 生成具有优先级的一组或多组候选地址 对;
    第二匹配子模块, 用于在所述第一判断子模块的判断结果为双方并非满足都支持 ICE 普通网络管理时, 确认所述会话发起终端和所述 STUN/TURN服务器都支持 ICE中继网络 管理, 则将会话发起终端的中继地址和会话响应终端的候选地址按照候选地址的优先级属 性匹配, 生成具有优先级的一组或多组候选地址对。
  16. 21、 根据权利要求 17-20所述的会话发起终端, 其特征在于, 所述会话发起终端还包括切换 需求判断模块,
    其中, 候选地址搜集发送模块向所在网络中的 STUN/TUR 服务器发送搜集请求; 和 / 或,
    呼叫请求发送模块向会话响应终端发送呼叫请求; 和 /或 ,
    候选地址匹配模块匹配自己的候选地址和所述会话响应终端的候选地址;都是在切换需 求判断模块确认自身有网络切换需求后才进行。 22、 一种会话连接建立的会话响应终端, 其特征在于, 包括:
    呼叫请求接收模块,用于接收会话发起终端的呼叫请求,所述呼叫请求携带所述会话发 起终端的一个或多个候选地址;
    候选地址搜集模块, 用于根据所述呼叫请求搜集所述会话响应终端的候选地址; 呼叫响应发送模块, 用于向所述会话发起终端发送呼叫响应, 所述呼叫响应携带所述 候选地址搜集模块搜集到所述会话响应终端的候选地址和所述会话响应终端对 ICE普通网 络管理的支持信息;
    候选地址匹配模块,用于匹配在所述呼叫响应中携带的候选地址和所述会话发起终端的 候选地址, 生成一组或多组候选地址对;
    连接测试模块,用于根据所述一组或多组候选地址对向所述会话发起终端发送连接测试 请求, 并在成功完成双方连接测试后, 建立所述会话发起终端和所述会话响应终端的会话 连接。 23、 根据权利要求 22所述的会话响应终端, 其特征在于, 所述接收会话发起终端的呼叫请 求中还携带有所述会话发起终端对 ICE普通网络管理的支持信息,则所述候选地址匹配模块 还包括:
    第一判断子模块, 用于根据所述呼叫请求中携带的所述会话发起终端对 ICE普通网络管 理的支持信息, 确定所述会话发起终端和所述会话响应终端两者是否都支持 ICE普通网络管 理;
    第一匹配子模块, 用于当所述第一判断子模块确定两者不是都支持 ICE普通网络管理时 , 则在确定所述会话发起终端侧支持 ICE中继网络管理时, 所述会话响应终端匹配自己在呼叫 响应中携带的候选地址和所述会话发起终端的中继候选地址生成具有优先级的一组或多组 候选地址对。
  17. 24、 根据权利要求 22或 23所述的会话响应终端, 其特征在于, 所述候选地址搜集模块根据 所述呼叫请求搜集自身的候选地址外, 还搜集所述会话响应终端所在网络中的 STUN/TURN 服务器对 ICE中继网络管理的支持信息, 则所述呼叫响应发送模块还包括:
    第二判断子模块, 用于判断所述会话发起终端和所述会话响应终端是否都支持 ICE普通 网络管理;
    所述呼叫响应发送模块, 还用于在所述第二判断子模块的判断结果为两者不是都支持 ICE普通网络管理时, 并确认所述会话响应终端侧支持 ICE中继网络管理时, 所述呼叫响应发 送模块向会话发起终端发送呼叫响应, 所述呼叫响应携带所述候选地址搜集模块搜集到的 中继地址和所述会话响应终端对 ICE普通网络管理的支持信息。
  18. 25、 根据权利要求 22-24所述的会话响应终端, 其特征在于, 所述会话响应终端还包括切换 需求判断模块,
    其中,候选地址搜集模块根据所述呼叫请求搜集所述会话响应终端的候选地址;和 /或, 呼叫响应发送模块向所述会话发起终端发送呼叫响应; 和 /或 ,
    候选地址匹配模块匹配在所述呼叫响应中携带的候选地址和所述会话发起终端的候选 地址; 都是在切换需求判断模块确认自身有网络切换需求后才进。
CN201380000701.9A 2013-05-28 2013-05-28 一种会话连接建立的方法、装置和*** Active CN104521211B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/076331 WO2014190487A1 (zh) 2013-05-28 2013-05-28 一种会话连接建立的方法、装置和***

Publications (2)

Publication Number Publication Date
CN104521211A true CN104521211A (zh) 2015-04-15
CN104521211B CN104521211B (zh) 2018-04-27

Family

ID=51987848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000701.9A Active CN104521211B (zh) 2013-05-28 2013-05-28 一种会话连接建立的方法、装置和***

Country Status (2)

Country Link
CN (1) CN104521211B (zh)
WO (1) WO2014190487A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110545248A (zh) * 2018-05-28 2019-12-06 中国电信股份有限公司 通信方法和边缘接入控制设备
CN111787590A (zh) * 2018-07-20 2020-10-16 Oppo广东移动通信有限公司 会话管理方法、终端设备和网络设备
CN111836133A (zh) * 2020-07-16 2020-10-27 鸣飞伟业技术有限公司 一种语音程控交换***
CN113014562A (zh) * 2015-06-25 2021-06-22 微软技术许可有限责任公司 用于建立媒体会话的方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671944A (zh) * 2020-12-18 2021-04-16 杭州叙简科技股份有限公司 一种基于webrtc和ice探测的音视频交互方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123582A (zh) * 2007-09-21 2008-02-13 中兴通讯股份有限公司 一种私网终端间的通讯方法
CN101179581A (zh) * 2007-12-13 2008-05-14 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
CN101242360A (zh) * 2008-03-13 2008-08-13 中兴通讯股份有限公司 一种基于优先级队列的网络地址转换方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100521663C (zh) * 2006-04-18 2009-07-29 华为技术有限公司 点对点通信中穿越网络地址转换的方法
EP2079222A1 (en) * 2008-01-10 2009-07-15 Alcatel Lucent An address translator traversal method for SIP signaling messages by temporary use of TCP transport protocol
CN102457580B (zh) * 2010-10-18 2016-06-08 中兴通讯股份有限公司 Nat穿越方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123582A (zh) * 2007-09-21 2008-02-13 中兴通讯股份有限公司 一种私网终端间的通讯方法
CN101179581A (zh) * 2007-12-13 2008-05-14 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
CN101242360A (zh) * 2008-03-13 2008-08-13 中兴通讯股份有限公司 一种基于优先级队列的网络地址转换方法及***

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014562A (zh) * 2015-06-25 2021-06-22 微软技术许可有限责任公司 用于建立媒体会话的方法和装置
CN113014562B (zh) * 2015-06-25 2024-01-05 微软技术许可有限责任公司 用于建立媒体会话的方法和装置
CN110545248A (zh) * 2018-05-28 2019-12-06 中国电信股份有限公司 通信方法和边缘接入控制设备
CN110545248B (zh) * 2018-05-28 2022-03-01 中国电信股份有限公司 通信方法和边缘接入控制设备
CN111787590A (zh) * 2018-07-20 2020-10-16 Oppo广东移动通信有限公司 会话管理方法、终端设备和网络设备
CN111787590B (zh) * 2018-07-20 2022-09-06 Oppo广东移动通信有限公司 会话管理方法、终端设备和网络设备
CN111836133A (zh) * 2020-07-16 2020-10-27 鸣飞伟业技术有限公司 一种语音程控交换***
CN111836133B (zh) * 2020-07-16 2022-03-01 鸣飞伟业技术有限公司 一种语音程控交换***

Also Published As

Publication number Publication date
CN104521211B (zh) 2018-04-27
WO2014190487A1 (zh) 2014-12-04

Similar Documents

Publication Publication Date Title
CN101141420B (zh) 私网与公网进行数据通信的方法及***
CN101945043B (zh) 基于IPv6的下一代互联网拓扑发现***及实现方法
CN102845123B (zh) 虚拟私云的连接方法及隧道代理服务器
CN102571587B (zh) 报文转发方法和设备
CN104521211A (zh) 一种会话连接建立的方法、装置和***
CN107277883A (zh) 在多网络切片的网络中路由消息的方法、设备及***
CN104092789B (zh) 会话感知的网络地址转换穿透方法
CN108141409B (zh) 通信***、地址通知装置、通信控制装置、终端、通信方法以及程序
CN102045409B (zh) 网络穿透方法及网络通讯***
CN101848235A (zh) 一种支持nat穿越的实时多媒体数据p2p传输方案
CN101262447B (zh) 一种***终端设备建立nat穿越通道的方法
CN105185085A (zh) 数据通信***、方法及装置
CN101895590A (zh) 基于udt实现nat穿越的***和方法
CN104618243A (zh) 路由方法、装置及***、网关调度方法及装置
CN110460641A (zh) 数据传输方法、装置及***
CN106550058A (zh) 网络地址转换穿透方法以及使用该方法的***
CN103347099B (zh) 一种数据交互的方法、装置及***
CN105207909A (zh) 一种发送信息的方法和网络装置
CN107347202A (zh) 一种终端在网络切片架构下的初始接入方法及装置
CN104272860B (zh) 用于通信网络中的有效信令消息处理的方法和设备
CN103685007A (zh) 一种边缘设备报文转发时的mac学习方法及边缘设备
CN106357443B (zh) 一种网络配置的方法及设备
CN109769242A (zh) 通信方法、***、MMTel以及计算机可读存储介质
CN103561481A (zh) X2接口的自建立方法及装置
CN109660459B (zh) 一种物理网关及其复用ip地址的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171206

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Applicant after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: Huawei Technologies Co., Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Pan Yuping

Inventor after: Liu Guolin

Inventor after: Li Guoqing

Inventor after: Wang Xiaojie

Inventor after: Jiang Zhuofei

Inventor after: Wang Jianshe

Inventor after: Yu Jiang

Inventor after: Ma Jinge

Inventor before: Li Shitao

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171220

Address after: 100040 Building No. 1, courtyard No. 6, Shijingshan District, Beijing, Beijing

Applicant after: Datang Electric Technology Co. Ltd.

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Applicant before: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

GR01 Patent grant
GR01 Patent grant