问题标签 [stun]
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.
node.js - 为什么 webrtc blob 地址位于信令服务器上?
我使用了easyrtc 工具包(http://easyrtc.com/)(为nodejs 编写)在我的办公网络中设置了一个聊天系统。我没有做太多来实现这个设置,只是使用了工具包提供的演示。该应用程序托管在办公室内的 VM 上,而工具包的默认 ICE 配置提到位于办公室防火墙外的 STUN 和 TURN 服务器。
系统运行良好,但我有疑问。在与坐在办公室网络中另一台计算机上的同事发起 webrtc 视频聊天后,我对他的视频进行了“检查元素”。我期待 blob 地址位于他的 IP 地址,因为我相信我们已经在我们之间创建了点对点连接。但是 IP 地址原来是托管应用程序的 VM 的 IP 地址。为什么会这样?
这里 10.30.23.56 是虚拟机的地址。虽然视频来自我同事的网络摄像头。
google-chrome - ICE 连接状态保持为“正在检查”
我正在尝试从 sipml5 向 voIP 软电话拨打电话,在信令完成后,我面临的问题是 ICE 连接状态仍然为“正在检查”,并且正在重新传输请求/响应(绑定成功)。
我使用 Chrome 版本 33.0.1750.146(二进制)。我相信这个版本将包含 libjingle 补丁(port.cc、port.h 和 basicportallocator.cc)。
出于测试目的,我已使用 PJNATH ICEdemo 用于冰回答日志已于 2014 年 3 月 4 日上传到 - https://code.google.com/p/webrtc/issues/detail?id=2613
请帮我找到解决方案。
webrtc - 为 WebRTC 应用程序实现我们自己的 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 服务器如下。
我有点困惑,为什么我们要引用 Google 的公共 STUN 服务器。我以为 RFC5766 TURN 服务器里面有 STUN。
RFC5766 只是 TURN 服务器吗?而不是 STUN 服务器?我们不能使用 Google 提供的 STUN 服务器来实现我们自己的 STUN 服务器吗?
抱歉这么幼稚的问题。我是 WebRTC 的新手。
谢谢。
ios - iOS 目标 c 套接字 p2p 连接与 NAT 后面的对等点
我必须在位于 NAT 后面(在不同网络中)的两个对等方之间在 iOS(Objective-C)中实现套接字通信。有什么技术可以让我实现这一目标吗?基本上我正在寻找一些 STUN、TURN 实现,它可以让我找出外部 IP/端口地址。
在此先感谢,列昂尼德
ios7 - iOS7 PJSIP 音频问题 3G
尝试在 iOS 应用程序中使用 PjSip 时遇到音频问题。
问题 1. 如果我启用 STUN,我发现音频在 WiFi 上运行良好,但在 3G 网络上绝对没有音频。
问题 2. 如果我禁用 STUN,它可以通过 WiFi 工作。但是在 3G 上,我只在拨出电话时收到音频,但在来电时绝对没有音频。
我已尝试按照http://trac.pjsip.org/repos/wiki/Audio_Problems/Getting_Around_Nat中的建议禁用 VAD ,但没有任何改进我正在使用从主干创建的最新版本的 pjsip。我的代码或多或少基于虹吸管应用程序。
在这方面的任何帮助将不胜感激。
sockets - 在多种设备类型上通过防火墙和 NAT 进行 p2p 传输的方法
我正在构建一个系统,该系统依赖于中央服务器将第一个用户(在移动或桌面应用程序上)的 IP 地址和端口发送给第二个用户(在移动或桌面应用程序上)。第二个用户与第一个用户建立P2P加密连接,使用中心服务器发送的IP地址和端口,直接发送一个大文件(理想情况下,实际文件不经过中心服务器)。
即使用户在不同的防火墙/NATs 和移动或桌面设备上,该系统也需要工作,而不需要用户手动打开端口。
我一直在研究 NAT Traversal Protocol (Teredo IPv6)、libjingle(Google 的开源套件)、STUN、直接套接字连接和用户之间的直接 VPN。
如果我正确地接近这个,我很困惑。所有这些选项都会独立解决这个问题吗?还是我接近这个错误?即使在 IPv4 路由器后面,直接 IPv6 连接会直接出来吗?
networking - rfc 4787 中 UDP 的 UNSAF 方法
我正在阅读 rfc 4787,作者提到了 UNSAF 方法。什么是 UNSAF 方法?
stun - 关于眩晕服务器的困惑
我需要的是,我将打开一个在端口(本地机器) UDP
中侦听的服务器,并且可以向我发送数据包。我的机器没有. 基本上我需要.X
machine(public IP)
UDP
public IP
stun
我正在测试stuntman
服务器/客户端项目。我在服务器(公共 IP)中运行 stuntman-server。在我的系统中运行客户端(本地 ip)。我要求为端口映射 ip/ 9999
port。
Stun 服务器返回一个 IP 和端口。然后我做了什么,UDP
在我的本地系统中打开一个服务器(使用java)并开始监听9999
端口并发送一条UDP
消息,由stun服务器返回other machine (which has public IP)
。mapped IP/port
但我无法接收任何数据。您可以假设我的服务器/客户端代码(用 java 编写)在本地网络中运行良好。
流动:
java - 使用 Java 和 ICE(交互式连接建立)协议的 NAT/防火墙穿越
我的目标其实很简单。我想通过 Internet 创建 java p2p 连接。有了这个连接,我想做音频/视频聊天。我知道那里有足够的解决方案,但我需要自己的。最好的办法是为它提供一个工作库,其中包含良好的源代码、示例、文档和教程。但所有这些几乎是不可能找到的。我现在搜索了将近 1 周的时间来寻找解决方案,但只找到了使用 ICE、STUN 和 TURN 的库。但是我需要在 java 中建立连接的工作示例,但几乎一无所获。希望您能理解我的问题,以便我可以快速继续建立有效的 p2p 连接,例如 skype ;)
UpNp 不是一个选项,因为许多路由器不支持它。我已经找到但我无法开始工作的解决方案:ice4j、stunt、stun4j、jxta 和对我来说最有希望的一个 icedjava:https ://java.net/projects/siptools/pages/IcedJava
太感谢了!
php - 如何使用 PHP 套接字进行 NAT
我正在尝试使 php 中的点对点应用程序以与 Skype 工作方式相同的方式工作。它适用于内部地址,但是当我尝试将数据发送到我的外部地址时,消息永远不会到达那里。显然我错过了一些地址转换,但我不知道如何使用 PHP 套接字来做到这一点。可能吗?
这是我目前接收消息的代码,我首先运行它以等待一些消息:
然后当它等待时,我运行这段代码来发送一条消息:
但它发送并退出,但第一个脚本仍在等待......现在已经有一段时间了,有人可以帮我吗?
- 编辑 -
好的,所以我已经实现了一个 stun 服务器并为它设置了端口转发,如下所示:
并更改了我的第一个脚本以从 stun 服务器获取其 ip/端口:
它可以从 stun 服务器获取信息并等待另一个连接,但是当我在我的第二个脚本中使用该信息时,第一个脚本仍然没有收到任何消息.. 还有我遗漏的另一个步骤吗?