Невозможно получить кандидата ICE TCP Relay с сервера Coturn - PullRequest
0 голосов
/ 02 октября 2019

В настоящее время я пытаюсь настроить сервер TURN, используя Coturn на CentOS 7 для приложения WebRTC. Я бы хотел, чтобы приложение передавало данные по TCP из-за строгих настроек брандмауэра, которые использует моя организация. Я тестирую сбор кандидатов ICE с помощью инструмента WebRTC Trickle ICE (https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/),, но единственным кандидатом-ретранслятором, которого я получаю, является кандидат-ретранслятор UDP.

Это имеет место, даже если яукажите «? transport = tcp» в URL-адресе сервера TURN (например, turn: server-ip-address : 3478? transport = tcp). После просмотра захвата Wireshark я заметил, что, хотя мой WebRTCклиент подключается к серверу TURN через TCP, атрибут 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
...