问题标签 [coturn]

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 投票
5 回答
36768 浏览

video-streaming - 在 Ubuntu 上为 WebRTC 安装 TURN 服务器

如何在我的 ubuntu 12.04 上安装 TURN 服务器?可以分享教程吗?我阅读了本教程:为 WebRTC 应用程序实现我们自己的 STUN/TURN 服务器。但我不明白的是如何在我的 ubuntu 12.04 上安装自己的 TURN 服务器?

我目前正在使用类似下面的代码来创建RTCPeerConnection

我想填充上面代码的参数以使用不同的网络。

当我想安装转服务器时,我得到

我用过apt-get install resiprocate-turn-server。我还使用了这个https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html教程。

0 投票
2 回答
2288 浏览

javascript - 如何使用 coturn (stun/turn) 服务器在 Web 应用程序中建立对等连接

我正在构建一个用于凸轮广播的网络应用程序。我将 Django 用于 Web 应用程序,并将 coturn 用作(STUN/TURN)信号服务器。我的目标是使用 WebRTC 来实现。

我不知道如何将一个对等点连接到信令服务器以便其他对等点可以访问。所以我需要知道的是如何建立“PeerConnection”。在 Web 应用程序中,我有我需要的一切(我认为):user.id、共享密钥、信令服务器 IP 和端口,......但我不知道如何将它混合到 HTML JS 脚本中以连接 coturn 服务器。

我已阅读 coturn 服务器文档并搜索了一些示例,但找不到这部分的示例。

任何人都可以给我一个例子吗?

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 投票
1 回答
5431 浏览

webrtc - 无法访问 Coturn Web 界面

我在 Centos-7-x64 上有一个正在运行的 coturn 实例,如果我通过浏览器访问它,我可以看到:

TURN 服务器
使用 https 连接进行管理会话

在检查文档后,我发现了这一点:

使用 turnadmin 实用程序将管理员用户添加到数据库。如果您添加了这些用户,那么他们将能够通过 HTTPS 从您的浏览器连接到 TURN 服务器端口,并使用 Web 界面执行管理任务

所以我使用以下命令创建了一个管理员用户:

我可以看到运行时列出的用户:

但是,当我尝试连接到https://my.ip.adrss:3478时,我看不到承诺的管理员。

我在这里想念什么?

0 投票
1 回答
1385 浏览

webrtc - 如何强制通过 coturn 传输用户媒体流

如果我的 kurento 媒体服务器 (S1) 设置在公共服务器上,并且用户 A 可以连接到 S1,但速度很慢!我想买一台用户A快速连接H1的主机(H1)!服务器 H1 快速连接到 S1!所以我认为在 H1 上安装 coturn 作为媒体中继。我可以在H1上安装coturn,并通过H1的coturn强制传输用户A媒体流吗?

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 投票
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 投票
2 回答
4696 浏览

ubuntu - ubuntu 中的 TURN 服务器不工作

对于视频通话,我使用的是 Phonertc(基于 Webrtc)

我在 Ubuntu 14.04.3 LTS 中设置了 turnserver 我按照https://github.com/coturn/rfc5766-turn-server/的说明进行操作


我从http://turnserver.open-sys.org/downloads/v3.2.5.9/下载了turnserver-3.2.5.9-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz 并根据提供的说明进行设置.

安装后我更改 /etc/turnserver.conf 并取消注释以下行:

在 etc/turnuserdb.conf 我添加了普通的用户名和密码

当我使用命令'turnserver'运行turnserver时,它将日志打印为

我在客户端设置了冰服务器

在这里,当用户从移动设备呼叫时,网络用户应该看到来自移动设备的视频。它在 wifi 网络上运行良好现在问题是当我尝试从 3g 网络或 4g 网络呼叫时,将建立呼叫但没有数据传输(视频)。屏幕变黑。

我还尝试检查不同的链接以检查我的转向服务器是否正在运行。 测试TURN服务器的简单方法 ,它说turnserver没有运行。

如果我的转向服务器真的没有运行或者在眩晕和转向之间切换不起作用,我会感到困惑。

0 投票
2 回答
5362 浏览

javascript - iceConnectionState 已断开连接(通过 Internet 使用时)

以前有人问过这个问题,但我还没有找到答案。我基本上遇到了与此处此处描述的相同的问题。

我正在尝试使用 PeerJS 建立 webRTC 连接。它在局域网中完美运行,但我无法让它在互联网上运行。我使用 coturn 作为 TURN 服务器,但到目前为止这还没有解决问题。Chromium 控制台打印出以下内容:

我正在使用的对等对象如下所示:

coturn 在使用 turnserver -L [server ip] 启动 turnserver 时,会打印出以下内容:

最后,因为我猜这可能是一个安全问题,我的 iptables 配置目前看起来像这样:

任何人都知道如何让这个东西工作?任何帮助将不胜感激!

编辑:原来我的 TURN 配置的 JSON 很乱。我的新对等对象现在看起来像这样:

这给了我更多关于 TURN 服务器的反馈(所以我想我正朝着正确的方向前进)——但问题仍然存在。


EDIT2: 嗯,它变得相当奇怪。这似乎是某种跨浏览器兼容性问题。使用 mido 建议的 TURN 服务器测试工具,我在 Firefox 中得到的结果与在 Chromium 中不同。我打算使用 Chromium,因为它的信息亭模式对我的应用程序来说非常方便。但回到回合服务器。在 Firefox 中,使用用户帐户时,一切似乎都运行良好: github 测试页面的输出:

但是,允许匿名访问 TURN 服务器并尝试在没有用户名和密码的情况下登录,绝对没有任何反应。

Chromium 中的不同故事:提供用户名和密码后,会发生以下情况:

...当 TURN 服务器上的终端一遍又一遍地打印出 401 错误消息时。在我看来,使用铬时凭据永远不会到达服务器。401 错误消息表明用户名为空。

我真的可以用 Chromium 来做那件事。有没有人知道如何让它工作?

0 投票
1 回答
1590 浏览

webrtc - NAT 后面的 coTurn 服务器

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