问题标签 [turn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
921 浏览

p2p - 什么类型的 NAT 组合需要 TURN 服务器?

根据:

https://en.wikipedia.org/wiki/Network_address_translation

有 4 种类型的 NAT 配置:

全锥、地址受限、端口受限和对称。

现在,假设我们在不同的网络上有客户端 A 和客户端 B,并且隐藏在各自独立的 NAT 后面。

如果他们想要 p2p 通信,“客户端 A NAT 类型”+“客户端 B NAT 类型”的哪些组合需要涉及 TURN 服务器(即无法通过 STUN 协议解决)?

例如,我会怀疑:

“client A NAT = Symmetric + client B NAT = Symmetric”需要一个 TURN 服务器。

其余的组合是什么?

0 投票
1 回答
1011 浏览

google-app-engine - 自定义服务器上的 AppRtc

我已经在我自己的 GAE 帐户上部署了来自 Google 的 apprtc ( https://github.com/webrtc/apprtc ) webrtc 示例项目。我发现开发者必须要自己的TURN服务器才能支持NAT穿越,不能使用谷歌的TURN服务器。

除了 TURN 之外,开发者还需要自己提供其他服务吗?

有免费的 TURN 服务器可以使用吗?

0 投票
1 回答
324 浏览

webrtc - 交互式连接建立 (ICE) 协议候选人的计算基础

我正在尝试计算候选冰的基础,我指的是RFC 5254第 4.1.1.3 节。
我已经阅读了 RFC 5254,但我无法理解如何计算候选人的基础。

ICE 协议中是否有任何算法可以计算候选者的基础。

0 投票
2 回答
211 浏览

webrtc - ICE 协议中 ice-options 的用户是什么?

为什么在 ICE 协议中使用 ICE 选项?

在 RFC 5245 中提到,它是一系列标识代理支持的选项的令牌。

代理支持哪些类型的选项?

默认情况下它是 google-ice 还是其他?

如果不是 google-ice,我该如何选择 ice-options?

0 投票
1 回答
3341 浏览

oauth - 如何使用 Coturn 和 oAuth 配置 WebRTC

我想将coturn 与 oAuth 一起使用。如果我理解正确,我需要做两件事:

  • 将 oAuth 令牌存储在 coturn 正在使用的数据库中
  • 发送ACCESS-TOKENUSERNAMESTUN 属性

第一点很清楚,但我需要如何更改我的 WebRTC 客户端才能实现第二点?

如果没有 oAuth,我会RTCPeerConnection像这样初始化我的:

WebRTC 1.0 草案定义了一个枚举,RTCIceCredentialType所以我认为我需要像这样更改我的配置:

使用 Wireshark 我看不到该ACESS-TOKEN属性。有什么想法或有人知道一个可行的例子吗?

0 投票
1 回答
344 浏览

webrtc - 使用 TURN 中继在 webrtc 中传输媒体

假设 A 想与 B 通信

通过向服务器 T1 发送 Allocate 请求,A 得到中继地址和端口为 R1:r1

同理,B发送Allocate请求转服务器T2,B得到中继地址和端口为R2:r2

现在A要向B发送媒体,然后A向R1:r1发送媒体,以R2:r2为目的地址,当turn server在R2:r2接收到​​媒体后,转发给B。就是webrtc中的媒体传输,以这种方式转发与否?

如果 A 不知道 B 的中继传输地址,那么 A 如何到达 B?

0 投票
1 回答
1256 浏览

webrtc - 在 WebRTC 中使用 Stun/Turn

我正在用 C 语言开发一个小型 webrtc 应用程序。我正在使用 sip 信令进行 webrtc 调用。我对 stun/turn/ice 的使用有以下疑问。

当我开始通话时,我会发送带有提议 (SDP) 的邀请。在 SDP 中,我们需要放置 ICE 候选人。

我有两种可能的情况。为了解释它,我将举一个例子。假设两个端点是AB。我有一个 sip 代理服务器说P。另外我有一个转弯服务器(支持眩晕和转弯),说它是T

情况 1
所有实体ABPT都在同一个专用网络中。这里需要 STUN 分辨率吗?如果是,那么我需要处理的所有眩晕请求/响应是什么?

案例 2
这里A在专用网络中。其他实体BPT在公共网络中。在这种情况下,我希望我们需要进行 STUN/TURN 解析。假设我从 STUN 开始,并获得了主持人和反身候选人。我在一些例子中看到,PermissionChannel Bind请求也被使用。如果我只使用 STUN(没有 TURN),在我得到主持人和反思候选人之后,我需要做任何额外的事情吗?

除此之外,是否有任何好的开源可用于 C 中使用 gnutls(无 openssl)的 stun/turn 客户端?

0 投票
1 回答
545 浏览

webrtc - 如何在 ICE 协议中验证对?

相关的 WebRTC,ICE 协议给出了哪对地址将用于地址对之间的直接媒体传输。

设 A 和 B 是两个端点

  1. 为了选择用于 A 和 B 之间直接通信的地址,A 首先收集候选者,对候选者属性进行编码,对 SDP 提议消息进行编码,并将其发送到另一个端点。

  2. 当 B 收到 A 的 offer 消息时,B 收集候选人,用自己的候选人列表对 SDP 回答消息进行编码,并将其发送给 A。

  3. 在此过程结束时,每个代理都有本地候选人和远程候选人的完整列表。它将它们配对,从而产生候选对。要查看哪对有效,每个代理使用 STUN req/resp 执行连接检查。

执行多少次连通性检查以提名有效的候选对?

关于 webRTC 调用,剩下的 ICE 连接检查是什么?

要为 webRTC 调用开发 ICE 模块,我必须遵循 RFC5245 中的每个步骤或其他任何内容?

0 投票
1 回答
2983 浏览

webrtc - 如何轻松测试来自我的 PC 的 WebRTC 请求是使用 TURN 服务器还是直接连接?

我对 WebRTC 工作原理的理解有点不稳定,但我知道如果我的设备无法与另一个对等方建立直接连接(由于 NAT、防火墙等),TURN 服务器将用作中继。

我是否可以使用公共服务来确定我的设备是使用 TURN 服务器还是直接连接到另一个对等方?

0 投票
2 回答
756 浏览

amazon-web-services - 在 AWS 上运行的 Turn-server 没有响应

我在这个问题上苦苦挣扎了将近一个月,我能够在 EC2 实例上设置一个 rfc5766-turn-server(v3.2.3.1) 而没有任何问题。

当 TURN 在 3478 上侦听时,一切正常,但在端口 80 上,它大部分时间都可以工作,但在某些时间间隔(不规律地发生)它变得无响应,即使重新启动该进程也不会改变任何东西。我在端口 3478 上并行运行的进程不会遇到这个问题。

80端口运行命令:

在端口 3478 上运行的命令:

我认为,这个问题更多地与 AWS 网络相关,较少涉及转向服务器,但话说回来,我对 AWS 或 TURN 服务器知之甚少。有没有人在端口 80 上遇到过这个问题。我相信在端口 80 上运行很重要,尤其是当对等方位于阻止大多数端口的公司防火墙后面时。

成功分配时的日志(我已通过 INTERNAL_IP 更改了 EC2 的内部 ip):

无响应时的日志(我注意到它仍然显示连接尝试,一个区别是,它显示对等连接的 IP,而不是成功场景中的 INTERNAL_IP):