问题标签 [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 投票
0 回答
1506 浏览

webrtc - 缺少来自 TURN 服务器的中继候选人

刚刚安装了 coturn 服务器(https://github.com/coturn/rfc5766-turn-server/)。看起来我只得到 STUN 候选人,但没有 TURN。作为客户端,我使用节点的 webrtc-native。
我尝试使用公共 TURN 服务器并确实获得了“中继”候选人,但我的服务器无法获得任何候选人。
有什么我想念的吗?

0 投票
0 回答
785 浏览

webrtc - Turn Server 在 REST API 模式下的响应

我已经建立了 rfc5766-turnserver 并在网络浏览器中测试成功。IP:192.168.1.111,端口:3478。现在我想从服务器获取 JSON 响应。

这里说请求格式应该是

GET /?服务=转&用户名=mbzrxpgjys

并且响应应该是 JSON 之类的

在 WebRTC 演示 Apprtc 中,文件 constans.py 进行配置:

当应用程序发送请求时:“ http://192.168.1.111/turn.php?username=xxx&key=4080218913

除了 404 错误,没有返回任何内容。如果我将请求更改为“ http://192.168.1.111:3478/turn.php?username=xxx&key=4080218913”,我会得到一个 html 响应而不是 JSON。所以我想知道问题出在哪里?配置错误或请求格式?

很抱歉这个幼稚的问题,但它确实让我困惑了很多天。

谢谢

0 投票
7 回答
23331 浏览

rest - CoTURN:如何使用 TURN REST API?

我已经构建了 coturn 并成功运行它。ip:192.168.1.111。现在我面临的问题是通过 REST API 获得 Turn 凭证。 https://datatracker.ietf.org/doc/html/draft-uberti-behave-turn-rest-00根据段落请求格式应该是

GET /?service=turn&username=mbzrxpgjys

和响应应该是JSON。现在我的问题是:

a) 如何配置和命令 TURN SERVER 使其在REST API模式下运行?

b) 如何以正确的格式编写 http 请求以便TURN SERVER正确回复?你能给我举个例子吗?

0 投票
2 回答
1520 浏览

webrtc - 通过 80/443 tcp 进行 WebRTC 调谐

我尝试让 webRTC 应用程序在仅允许 80 和 443 tcp 端口的公司防火墙下工作,但 webRTC 使用随机端口(49152-65535)。我怎样才能到达?

0 投票
1 回答
2196 浏览

angularjs - WebRTC 和身份验证实现

好的,所以最近我一直需要使用 WebRTC 创建一个用于视频语音等的应用程序。

因此,在查看了一些库后,我发现 SimpleWebRTC 看起来非常方便: https ://github.com/andyet/SimpleWebRTC

所以我感兴趣的是如何实现 STUN/TURN 服务器?(如果有人能用简单的英语解释这些差异,那就太好了!)还有一种身份验证机制。目前,我的应用程序联系我的数据库并登录用户等,但 stun and turn 服务器将是私有的,并且不会以任何方式参与身份验证过程。

所以基本上:

  • 实施 STUN/TURN 的最佳方法是什么
  • 有什么认证机制吗?

请注意,这是针对混合应用程序的,因此我将为此使用 JavaScript/AngularJS。我选择 SimpleWebRTC 的主要原因。

谢谢!

0 投票
1 回答
1035 浏览

webrtc - WebRTC中关于TURN服务器的问题

我已经阅读了详细解释 TURN 协议的 RFC 5766。但是,在下载并安装开源 TURN 服务器 COTURN 后,我有一些基本问题无法解决。

TURN 服务器的客户端是什么?它是第一个发起 WebRTC 调用的浏览器吗?TURN 服务器为客户端创建分配,针对特定对等方。现在在 WebRTC 中,我们谈论点对点通信。在 RFC 中,它讨论了客户端-服务器-对等通信。客户端和服务器之间的所有请求/响应都是 TURN 驱动的,而对等方和 TURN 服务器之间的请求/响应只是转发到/来自客户端的 UDP 数据消息。

我的第二个问题更具体到 COTURN。“turn_secret”表中的“值”字段是什么?它在哪里/何时使用?通过使用 HMAC over(凭据、领域和用户名),iceservers 的“凭据”属性是否对应于 turnusers_lt 表中的 hmackey?在这一切中,“turn_secret”表的“值”字段在哪里?

0 投票
1 回答
1662 浏览

webrtc - 使用 resiprocate 时如何设置 FreeSwitch 和 STUN/TURN?

我将使用我的 kamilio/freeswitch 构建 webrtc android 客户端。

我正在使用 resiprocate 进行客户端之间的 p2p 连接。

使用 resiprocate 时如何设置 freeswitch 和 TURN 服务器?

0 投票
2 回答
4683 浏览

javascript - Coturn/turnserver:错误 437:不匹配的分配:错误的事务 ID (WebRTC)

我有这个结构:

  • 网络服务器:阿帕奇。它在局域网中。它位于具有公共静态 IP 的 PC(Windows 7)上。PC 在网络中。
  • 信号服务器:在同一台电脑上的虚拟机(VirtualBox Centos 6)中。
  • STUN/TURN 服务器:Coturn "4.5.0.4"。在同一台电脑上的虚拟机(VirtualBox Centos 6)中。
  • 客户 A:笔记本电脑,Vista。我使用三星手机和 USB 网络共享来获取(外部)互联网。手机使用“移动数据”连接到互联网。
  • 客户端 B:笔记本电脑、Windows 8(或 Windows 10)。我使用三星平板电脑和 USB 网络共享来获取(外部)互联网。平板电脑使用“移动数据”连接到互联网。

我像这样运行 coturn/turnserver:

我已经创建了端口转发:

我使用 coturn 的默认配置文件进行这些更改:

我创建了文件 server.crt 和 server.key 并且我知道它们是正确的,因为我可以使用需要它们与 https 一起运行的 Web 管理工具

我已经创建了管理员用户。我使用以下命令为用户“test4”创建了一个密钥:

我用它来创造他:

在客户端:

我从 coturn/turnserver 收到的消息是这样的:

我在这里想念什么?为什么我在控制台中得到“ICE failed”?

我在https://tools.ietf.org/id/draft-ietf-behave-turn-08.html中阅读了 关于

它说

437(分配不匹配):这表明客户端选择了一个 5 元组,服务器认为该 5 元组已在使用或最近在使用。可能发生这种情况的一种方式是,如果一个介入的 NAT 分配了一个最近被另一个分配使用的映射传输地址。客户端应该选择另一个客户端传输地址并重试分配请求(使用不同的事务 id)。在放弃此服务器之前,客户端应该尝试三个不同的客户端传输地址。一旦客户端放弃服务器,它不应该尝试在服务器上创建另一个分配 2 分钟。

这是什么意思?

更新

现在,当客户端 A 使用 Chrome“49.02623.112 m”(我无法再更新它,因为在 Vista 上)和客户端 B“50.0.2661.75 m”时,coturn 服务器可以正常工作几秒钟。我这样运行服务器(我不确定这是否有帮助。XXX.XX.XXX.XX 是服务器 VM 所在的 PC 的公共静态 IP,192.168.2.190 是内部 IP):

这些是日志消息:

0 投票
3 回答
459 浏览

webrtc - STUN 服务器在收到来自不同 STUN 代理的具有相同事务 ID 的请求时如何表现?

当一个 STUN 服务器收到来自两个不同 STUN 代理的具有相同事务 ID 的请求时,它应该如何表现?

0 投票
1 回答
450 浏览

webrtc - 我想在 Ubuntu 14.04 中设置 rfc5766-turn-server,谁能给我列出的所有步骤?我在 AWS EC2 中做

我已尝试在 AWS EC2 中安装和设置 rfc5766-turn-server 但无法执行此操作,因为我没有看到适当的工作流程或命令行,有人可以帮我解决这个问题吗?我需要在 Ubuntu 14.04 中进行设置