2

我目前正在尝试在 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
4

0 回答 0