标签: turn

适用于iOS iPhone的ICE,STUN,TURN库

我需要在两个用户之间建立P2P UDP和TCP连接.他们都是NAT的背后.一点研究让我想到了STUN,TURN和ICE.

  1. 有没有支持相同的开源iOS(库)?

  2. iPhone中的FaceTime也使用ICE,STUN,TURN到NAT遍历,iOS SDK也暴露了这样的API吗?

  3. 我在resiprocate源代码(www.resiprocate.org)中找到了nICRr代码,我可以在Mac OS X上测试STUN部分.有没有人尝试过使用相同的iOS 4.0或更高版本?

谢谢,罗德尼

iphone nat stun turn

4
推荐指数
1
解决办法
3813
查看次数

NAT遍历 - 使用STUN成功的可能性

我正在开发一个P2P应用程序,我需要使用STUN和/或TURN进行NAT遍历.我已经研究了仅使用STUN时出现的问题(基本上它并不总是有效,因为它是基于UDP的,有些防火墙不会那样 - 根据我的问题,原因并不那么有趣),而且我一直在看关于使用STUN和TURN进行回退的建议(ICE方案).

但在我看到的每个地方,我只看到人们STUN"不太可能一直工作".我正在寻找的是一些具体的数字/统计数据.我可能会尝试自己生成它们,但我没有足够的客户端来获取重要的样本.

所以我想知道是否有人可以对使用STUN进行NAT遍历的成功率进行统计.如果我没有使用TURN作为后备,有多少对等点无法连接?

voip p2p nat stun turn

4
推荐指数
1
解决办法
929
查看次数

测试TURN服务器的简单方法

我正在看这个站点,该站点应该是测试TURN服务器的表(根据此答案)。

plugin.temasys.com.sg/demo/samples/web/content/peerconnection/trickle-ice/index.html

我输入了服务器信息,但找不到任何可确定服务器是否正常工作的信息。即使没有选择服务器,“候选冰”部分也看起来相同。

我的TURN服务器安装在Amazon EC2上。我遵循了coturn存储库中的安装说明:

github.com/coturn/coturn/blob/master/INSTALL

以下是执行命令从此处启动TURN服务器时在服务器中获得的内容:

RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Server
Version Coturn-4.2.1.2 'Monza'
0:
Max number of open files/sockets allowed for this process: 4096
0:
Due to the open files/sockets limitation,
max supported number of TURN Sessions possible is: 2000 (approximately)
0:

==== Show him the instruments, Practical Frost: ====

0: TLS supported
0: DTLS supported
0: AEAD supported
0: Redis supported
0: PostgreSQL supported
0: MySQL supported
0: MongoDB is not supported
0: OpenSSL …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services webrtc turn

3
推荐指数
2
解决办法
5852
查看次数

PubNub webrtc仅适用于本地网络

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

phone.receive(function(session){
    session.connected(function(session){
        $("#vid-box").append(session.video); //outputs black screen
    });

    session.ended(function(session) {alert("Call ended: "+session.number});
});
Run Code Online (Sandbox Code Playgroud)

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

javascript stun webrtc pubnub turn

3
推荐指数
1
解决办法
1132
查看次数

通过TCP的WebRTC媒体?

我是WebRTC的新手。

我了解到转弯服务器。

下面的内容用于为Webrtc应用程序配置Turn Server在TCP上运行。

在webrtc应用程序中打开服务器配置示例:-

{

       url: ‘turn:192.158.29.39:3478?transport=tcp’,  
       credential: ‘JZEOEt2V3Qb0y27GRntt2u2PAYA=’,
       username: ‘28224511:1379330808?

}
Run Code Online (Sandbox Code Playgroud)

?transport = tcp的含义是它可以像他们所说的那样在TCP协议上工作。

我的问题是

轮流服务器基于TCP方式工作,它仅用于在其上基于TCP的轮流服务器之间建立连接,或者用于通过使用TCP协议的轮流服务器传输WebRTC媒体。TCP数据包用于哪个目的?

是否可以通过TCP数据包传输WebRTC媒体?

media tcp webrtc turn server

3
推荐指数
1
解决办法
2299
查看次数

在 Ubuntu 16.04.3 x64 TLS 上安装 CoTurn 4.5.0.6 不起作用

我正在尝试在 Digital Ocean Ubuntu 16.04.3 LTS 上安装 CoTurn 4.5.0.6。我无法使用,sudo apt-get install coturn因为它安装了 4.5.0.3 版。我也无法安装 Ubuntu 17.10,因为我需要长期支持 (TLS)。

我使用 Ubuntu 16.04.3 LTS 在 Digital Ocean 上创建了一个 Droplet。然后我下载了 CoTurn:

wget https://github.com/coturn/coturn/archive/4.5.0.6.tar.gz
Run Code Online (Sandbox Code Playgroud)

我打开它:

tar xvfz 4.5.0.6.tar.gz
Run Code Online (Sandbox Code Playgroud)

进入文件夹:

cd coturn-4.5.0.6
Run Code Online (Sandbox Code Playgroud)

安装所需的库和实用程序:

sudo apt-get install libssl-dev
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev
sudo apt-get install libevent-dev
sudo apt-get install libpq-dev
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
sudo apt-get install libhiredis-dev
Run Code Online (Sandbox Code Playgroud)

最后一个报错:E: Unable to locate package libhiredis-dev

在那之后运行: …

ubuntu stun webrtc turn coturn

3
推荐指数
1
解决办法
5819
查看次数

回退到 TURN 的连接的预期百分比是多少?

假设我已经建立了WebRTC视频聊天网站,有些握手后的连接(ICE Candidates)会直接p2p,有些会使用STUN服务器,有些会使用“最后手段”TURN服务器来建立连接。与直接连接和 STUN 连接(免费)相比,基于 TURN 服务器的连接非常昂贵,因为所有流量实际上都必须经过 TURN 服务器。

我们如何估计需要通过 TURN 的随机用户连接百分比?想象一下,我们对预期观众知之甚少,除了大多数观众在美国。我相信这一定很难算,但我目前的估计在1%到99%之间,这个范围太宽了,至少可以缩小范围吗?

webrtc turn

3
推荐指数
1
解决办法
1181
查看次数

即使我们确切地知道连接的路由,缓存 ICE 候选者和 sdp 是否也不起作用?

我知道在 P2P 和更动态的环境中缓存 ICE 候选者和 sdp 并不是一个好的做法,因为你缓存的东西可能无法申请下一个 WebRTC 连接。但是,在我们确切知道连接路线应该如何的情况下呢?

更具体,

  1. 假设我们有 1 个 TURN 服务器(没有负载平衡,因此没有内部路由)
  2. 以及 2 个具有固定 IP 的对等点,希望不时使用 WebRTC 连接。

在这种情况下,我们确切地知道对等点的 IP 是什么,并且我们确切地知道 TURN 服务器的 IP 是什么(假设它不会改变),是否可以缓存 ICE 候选(TURN)和 SDP 或SDP 的部分只是为了绕过 ICE 候选者和 SDP 交换部分?

javascript ice stun webrtc turn

3
推荐指数
1
解决办法
1412
查看次数

TURN 服务器如何向 NAT 后面的对等方发送数据?

我知道 TURN 中有 a client、 aTURN serverpeer(s)。客户端本身在 TURN 服务器上创建一个分配,之后relayed transport address将 a 返回给客户端,以便将数据发送到一个或多个对等点。

我了解客户端如何绕过其 NAT,但是我在 RFC5766 中没有看到任何有关对等方本身如何能够通过其 NAT 从 TURN 服务器接受 UDP 的内容(否则无论是否通过 TURN,它都将是主动提供的) UDP)。对等点必须首先联系 TURN 服务器。

我缺少一个步骤吗?是否relayed transport address发送到对等方,以便在 TURN 服务器与其对等方之间进行通信之前可以开始 UDP 打洞?

stun webrtc turn

3
推荐指数
1
解决办法
2188
查看次数

STUN 服务器地址不兼容 | 错误代码=701:

我已经安装了 TURN 服务器,服务器代码中的一切工作正常。日志文件中没有错误。只是一个警告说明

 0: WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided
Run Code Online (Sandbox Code Playgroud)

但是TURN服务器运行在服务器上。

这是我检查时显示的内容 lsof -i :3478

turnserve 999 root   15u  IPv4 446811411      0t0  TCP domain.com:stun (LISTEN)
turnserve 999 root   23u  IPv4 446811417      0t0  TCP domain:stun (LISTEN)
turnserve 999 root   24u  IPv4 446810998      0t0  UDP domain.com:stun
turnserve 999 root   25u  IPv4 446810999      0t0  UDP domain.com:stun
Run Code Online (Sandbox Code Playgroud)

当我在Trickle ICE 中检查 STUN 时,它会引发错误

The server stun:xxx.xxx.xxx.xxx:3478 returned an error with code=701:
STUN server address is …
Run Code Online (Sandbox Code Playgroud)

stun webrtc turn coturn

3
推荐指数
1
解决办法
6649
查看次数

标签 统计

turn ×10

webrtc ×8

stun ×7

coturn ×2

javascript ×2

nat ×2

amazon-ec2 ×1

amazon-web-services ×1

ice ×1

iphone ×1

media ×1

p2p ×1

pubnub ×1

server ×1

tcp ×1

ubuntu ×1

voip ×1