我试图弄清楚如何测试STUN/TURN服务器是否存活并正确响应连接.理想情况下,此测试将在外部机器上执行,以防万一STUN/TURN机器因此情况而停机,也应通过连接测试报告.
过去有没有人调查这个案子?建议采用什么解决方案?
我正在研究webrtc应用程序,必须实现以下TURN服务器.
https://code.google.com/p/rfc5766-turn-server/
我正在学习本教程.
http://www.dialogic.com/den/developer_forums/f/71/t/10238.aspx
它表示在创建RTCPeerConnection的javascript代码中如下引用TURN服务器.
var pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"},
{"url":"turn:<turn_server_ip_address>", "username":"my_username", "credential":"my_password"}]};
pc_new = new webkitRTCPeerConnection(pc_config);
Run Code Online (Sandbox Code Playgroud)
我有点困惑,为什么我们引用谷歌的公共STUN服务器.我以为RFC5766 TURN服务器里面有STUN.
RFC5766只有TURN服务器吗?而不是STUN服务器?我们不能实现自己的STUN服务器,而不是使用谷歌提供的服务器吗?
抱歉这样天真的问题.我是WebRTC的新手.
谢谢.
我需要在两个用户之间建立P2P UDP和TCP连接.他们都是NAT的背后.
除了jSTUN之外是否有任何Java解决方案(库),它似乎只能在UDP上运行.而TURN,ICE对于对称NAT问题要好得多.
我已经建立了coturn并成功运行它.IP:192.168.1.111.现在我遇到的问题是通过REST API获取Turn凭证. http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00根据该段落的要求格式应该是
GET /?service=turn&username=mbzrxpgjys
应该是JSON.现在我的问题是:
a)如何配置和命令TURN SERVER使其在REST API模式下运行?
b)如何以正确的格式编写http请求以便TURN SERVER正确回复?你能举个例子吗?
我想为我的 WebRTC 项目托管一个 TURN 服务器,但我不知道 'realm' 属性的作用。我看过 coturn 和 pion,他们似乎都要求我输入这个。有人可以解释它是什么吗?
如果我正在构建 WebRTC 应用程序并使用 Selective Forwarding Unit 媒体服务器,这是否意味着我将不需要 STUN / TURN 服务器?
据我了解,STUN 服务器用于客户端发现其公共 IP/端口,而 TURN 服务器用于在客户端无法通过 STUN 直接相互连接时在客户端之间中继数据。
我的问题是,如果我使用公共地址部署我的 SFU 媒体服务器,这是否消除了对 STUN 和 TURN 服务器的需求?由于数据将始终通过 SFU 中继,并且客户端/对等方实际上永远不会直接相互交谈?
但是,我注意到 Kurento(具有 SFU 功能的流行媒体服务器)的安装指南包含有关配置 STUN 或 TURN 服务器的部分。为什么需要 STUN 或 TURN 服务器?
实际上我想使用我自己的stun/Turn服务器实例,我想使用Amazon EC2.如果有人对此有任何想法,请与我分享创建步骤或任何参考链接.
我刚刚在亚马逊服务器上安装了rfc5766-turn-server(https://code.google.com/p/rfc5766-turn-server/),以便转发我的WebRTC呼叫.
由于身份验证用户名和密码将分发给WebRTC中的每个客户端,iceServers我如何确保只有我的客户使用我的TURN来转发他们的呼叫?
是否可以强制与 WebRTC 建立 TCP 隧道 (TLS) 连接?
我们正在为我们的业务开发 WebRTC 应用程序,但我们遇到了由内部网络引起的传入 UDP 流的一些重大问题。我们已经在使用 TURN 服务器,并且我们正在获得一堆 ICE 候选(甚至中继 UDP 的)。
问题是,正如我上面所说的,我们传入的 UDP 流量在这里工作不可靠(口吃,非常糟糕的图像质量,非常低的 fps)。这足以给浏览器留下印象,WebRTC 可以将其用于 PeerConnection,但实际结果在 UDP 上非常糟糕。
如果我阻止所有传出和传入的 UDP 流,我可以看到(在 Wireshark 中)WebRTC 通过使用我们的轮流服务器回退到 TCP 流量。
通过 TCP 连接,我们获得了非常好的结果(具有高帧率和非常好的图像质量)。
我已经尝试了几件事来强制 TCP:
我删除了 m=video 行中的 UDP 部分
m=视频 TLS/RTP/SAVPF 100 116 117 96
我已经从我的候选人名单中排除了每个 UDP 候选人
在每种情况下,我什至无法建立连接。
我可以做些什么来强制 WebRTC 中的 TCP 或者我们真的完全依赖浏览器吗?
分支这个问题WebRTC - 我需要指定多少个STUN/TURN服务器?
当提供多个TURN服务器时,WebRTC如何确定要使用哪些TURN服务器?