问题标签 [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 回答
95 浏览

javascript - webrtc ice_server 从不注册为 ice 候选者

我正在构建一个 webrtc 客户端,我正在使用旋转和眩晕服务器。如果我要关闭防火墙,这是可行的。当我对 on ice 候选函数设置断点时,我看到我的 ice 服务器没有被添加为 ICE 候选函数。

这是代码:

但是当我在 onicecandidate 函数上设置断点时,只添加了默认候选者,而不是配置中的 ice 服务器。我正在使用最新版本的 Firefox。

有人有建议吗?

0 投票
1 回答
1041 浏览

javascript - EasyRTC / WebRtc - 3G 视频通话不起作用

我已经使用 EasyRTC 作为框架实现了一个有效的视频聊天应用程序。

如果我通过 Wi-Fi 互联网连接进行视频通话,一切正常。当我通过 3G 互联网连接进行视频通话时,我可以看到已连接用户的列表,但是当我开始对列出的用户进行视频通话时,我看不到任何视频或收听任何音频(但消息交换正在工作)。

移动数据网络运营商是否有可能限制视频通话的 p2p 流量?

0 投票
1 回答
1075 浏览

networking - STUN 和 TURN 说明

我需要在服务器和客户端之间建立连接,它们都可以位于任何类型的 NAT 之后。为此,我在 Internet 上有一个专用主​​机,其 IP 干净,用于托管 STUN/TURN 服务器。我不会使用 WebRTC,我只想使用 STUN/TURN 服务器在客户端和服务器之间进行消息传递。在阅读了 RFC、SO 等之后,我还有一些不清楚的问题:

  1. 在什么情况下使用 STUN?据我了解,STUN 仅用于全锥 NAT。在所有其他情况下,由于主机和/或端口限制,必须使用 TURN 服务器。那是对的吗?
  2. 看来我需要一个信令服务器来通知客户端服务器地址,反之亦然。但是一旦客户端/服务器向信令服务器发送消息,我就知道他们的外部主机:端口,所以我让每一方都知道对方的主机:端口,每一方都可以向这个信令服务器发送包含对等方的主机:端口数据的消息,信令服务器可以使用它来检测此消息是针对哪个对等点并将其转发给相应的对等点。乍一看,这个逻辑在我看来非常简单,我的信令服务器变成了一个 TURN 服务器——这就是 TURN 服务器的实现方式吗?但如果是这样,我不明白,为什么我需要像“coturn”、“reTurn”等这样的 TURN 服务器?我知道他们实现了 ICE,但是如果我的信令服务器从具体主机接收到消息:对等方的端口,这个 ICE 将如何工作,
  3. 在受限 NAT(端口、地址或对称)的情况下,客户端外部(公共)端口在路由器上打开多长时间以接收 UDP 数据报?我读到 TURN 客户端向服务器发送刷新消息以保持通道打开,这是客户端如何防止端口关闭的方式吗?
0 投票
1 回答
1590 浏览

webrtc - NAT 后面的 coTurn 服务器

我在我的应用程序中使用 coTurn 作为轮流服务器。使我的 Turn 服务器在 NAT 后面工作的最低配置是什么?我必须打开哪些端口才能在 NAT 后面工作?正如我所读到的,coturn 带有内置 STUN,所以我可以在我的应用程序中使用 STUN 地址而不是这里提到的默认谷歌 STUN https://github.com/coturn/coturn/wiki/CoturnConfig 如果是这样,我的配置应该是什么在 RTCPeerConnection 中的 javascript 对象中修改

0 投票
2 回答
1424 浏览

javascript - PubNub webrtc 仅在本地网络上工作

我之前问过一个关于这个的问题,但没有任何运气。我在遵循本教程时遇到问题https://www.pubnub.com/blog/2014-10-21-building-a-webrtc-video-and-voice-chat -应用程序/。我已经编写了代码,它在本地网络上完美运行,但是当我尝试连接远程客户端(即不在同一个网络上)时,代码不再工作。它只是显示一个黑屏,来自客户端的视频应该是。

我什至联系了 PubNub,但他们无法提供帮助。有人有什么想法吗?

0 投票
1 回答
206 浏览

webrtc - Does the order of entires in the iceServers array matter?

When instantiating an RTCPeerConnection, one of the configuration parameters is an array of ICE servers. Straight forward question: Does the order of servers in the array matter? Does the order indicate a preference in any way; should I put servers I'd prefer to be used first, or will the ICE discovery process try them all equally?

0 投票
2 回答
3304 浏览

stun - 手动将 TURN 用户 (Coturn) 插入数据库

我正在尝试为使用 Coturn 的项目设置 TURN 服务器,但我发现文档充其量是粗略的......

我意识到有一个turnadmin工具可以为你做这件事,但我更喜欢直接在我的数据库上运行查询。这是一个可能有许多用户的应用程序,他们的共享密钥 ( hmackeyin turnusers_lt) 可能会更改(为了不与应用程序共享密码,该应用程序使用“假”密码,该密码是某些易失性用户参数的哈希值,这些参数不是如此秘密)。

我可以从很少的文档中收集到hmackey是使用领域、用户名和密码计算的:

鉴于我的代码将知道这三个参数,我如何构建 hmac 哈希?例如在 PHP 中我有

$algo这里应该是SHA1,但是什么值会进入$data(例如用户/通行证的连接)和$key(例如领域)?

还有一个turn_secret表列出了领域的“值”,我猜这应该用作$key上面示例中的值,但是当我调用 turnadmin 时,添加和修改键仍然给出相同的结果。

本质上,我想做的是(伪代码):

...然后在客户端,我现在应该能够使用$name$coturn_pw作为my.realm.com.

还是我想太多了,我应该为我的应用程序使用通用用户,硬编码密码并让 Coturn 弄清楚谁在和谁说话?

0 投票
2 回答
990 浏览

webrtc - FreeSWITCH:无法从企业防火墙后面的浏览器(WebRTC)连接

我在公共域上运行 FreeSWITCH 服务器。我可以从我的浏览器(带有 sipjs 的 WebRTC)通过直接的 Internet 连接呼叫 FreeSWITCH 服务器。

我在只允许端口 443 上的 TCP 的防火墙上对其进行测试。我正在运行一个单独的 TURN 服务器。我正在尝试通过使用凭据指定 TURN 服务器来从我的浏览器进行连接。我无法使它工作。PeerConnection 即将关闭。

  1. FreeSWTICH 服务器不在防火墙后面
  2. 客户端(浏览器)在防火墙后面
  3. TURN 服务器可用

我必须在 FreeSWITCH 服务器或客户端(javascript)中进行任何配置以使其工作吗?

0 投票
2 回答
218 浏览

webrtc - 网络遍历服务令牌能否在多用户 WebRTC 会话中的对等方之间共享

我一直在与 twilio 支持工程师来回讨论这个问题,我不确定他们是否完全理解我的问题。我希望在生产 WebRTC 应用程序中使用过网络遍历服务的传道者/某人可以提供帮助。

我有一个 lambda 微服务,它使用 twilio-node 客户端库请求 twilio 网络遍历令牌(twilio 资源:令牌)。我想尽量减少野外令牌的数量,并计划在 webrtc 会话开始时有一个发起者,通过 lambda 服务请求令牌,然后将令牌带外发送给其他将成为参加 webrtc 会议。

在下一次调用中,发起者将检查令牌是否仍然处于活动状态,如果是,将使用相同的令牌,否则将请求新令牌。

这是我能做的吗?还是每个参与同一个 webrtc 会话的客户端都需要自己的一组令牌?

0 投票
1 回答
1251 浏览

webrtc - WebRTC 不能在 VPN 后面工作

视频聊天适用于大多数用户,但我无法与我网站的一位用户进行视频聊天。她看不见我,我也看不见她。

我没有任何详细信息,例如在 SDP 协商中失败的原因,或者她与我们的 TURN 服务器 (coturn) 的连接失败,但希望有人使它适用于 VPN 用户并对此问题有答案.