无法从Coturn服务器获取ICE TCP中继候选者

时间:2019-10-02 20:30:40

标签: tcp webrtc coturn

我目前正尝试在CentOS 7上使用Coturn为WebRTC应用程序设置TURN服务器。由于我的组织使用严格的防火墙设置,因此我希望该应用程序能够通过TCP进行中继。我正在使用WebRTC Trickle ICE工具(https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/)测试ICE候选者的收集,但是我返回的唯一中继候选者是UDP中继候选者。

即使我在TURN服务器URL中指定“?transport = tcp”(例如turn: server-ip-address :3478?transport = tcp),情况也是这样。在查看Wireshark捕获之后,我注意到,即使我的WebRTC客户端通过TCP连接到TURN服务器,分配请求中的REQUESTED-TRANSPORT属性仍然是UDP。有谁知道为什么会这样?如何配置我的Coturn服务器以返回TCP中继候选者?

我目前在turnserver.conf文件中使用以下配置...

    listening-port=3478
    alt-listening-port=3479
    lt-cred-mech
    user=test:test
    realm=test-realm
    fingerprint
    verbose
    no-tls
    no-dtls
    log-file=/var/log/turn/turn.log

...以及我的WebRTC客户端中的以下对等连接配置。

peerConn = new RTCPeerConnection({
    constraints: {
            audio: true,
            video: false
    },
    // Testing ICE candidate for coturn
    iceServers: [{
            urls: "turn:10.5.58.239:3478?transport=tcp",
            username: "test",
            credential: "test"
    }],
    iceTransportPolicy: "any"
});

这是我使用Trickle ICE工具返回的响应。

Time    Component   Type    Foundation  Protocol    Address Port    Priority
0.003   rtp host    547260449   udp 10.0.2.15   49165   126 | 30 | 255
0.349   rtp relay   3606296988  udp 10.5.58.239 56410   1 | 30 | 255
0.349   Done
0.355

0 个答案:

没有答案