TURN server and SFU

Alesia Bondar

New Member
Добрый вечер, подскажите, пожалуйста, как подключить терн сервер при использовании сфу.
Раньше прописывали таким образом:
Code:
Flashphoner.createSession({urlServer: url, mediaOptions: {"iceServers": [ { 'url': 'turn:test.flashphoner.com:3478?transport=tcp', 'credential': 'coM77EMrV7Cwhyan', 'username': 'flashphoner' } ]}})
 

Max

Administrator
Staff member
Добрый день.
Добрый вечер, подскажите, пожалуйста, как подключить терн сервер при использовании сфу.
Данный функционал не тестировался с TURN серверами. Однако, Вы можете попробовать указать настройки для объекта RTCPeerConnection, который используется при создании WebRTC соединения. Например, в примере SFU Two Way Streaming это можно сделать так:
Code:
const connect = function(state) {
    //create peer connection
    let connectionConfig = {
        iceServers: [
            {
                url: 'turn:192.168.0.1:3478?transport=tcp',
                credential: 'password1',
                username: 'username1'
            }
        ],
        iceTransportPolicy: "relay"
    };
    let pc = new RTCPeerConnection(connectionConfig);
    //get config object for room creation
    const roomConfig = getRoomConfig(mainConfig);
    roomConfig.pc = pc;
    ...
    // connect to server and create a room if not
    const session = sfu.createRoom(roomConfig);
    ...
}
 

Alesia Bondar

New Member
Добрый вечер, не могли бы вы проверить терн с сфу?
Показывает такую ошибку
Uncaught (in promise) DOMException: Failed to construct 'RTCPeerConnection': ICE server parse failed
 

Max

Administrator
Staff member
Проверили, публикация и проигрывание треков через TURN работает с последними сборками WCS (5.2.1494) и SFU SDK (2.0.135). Модифицировали пример SFU Two Way Streaming:
Code:
    //create peer connection
    let connectionConfig = {
        iceServers: [
            {
                urls: 'turn:wcs:3478?transport=tcp',
                credential: 'coM77EMrV7Cwhyan',
                username: 'flashphoner'
            }
        ],
        iceTransportPolicy: "relay"
    };
    pc = new RTCPeerConnection(connectionConfig);
    ...
Здесь используется встроенный TURN сервер с настройками по умолчанию (порт 3478, логин и пароль из документации)
Ошибка, о которой Вы пишете, не воспроизводится. Проверьте, пожалуйста, нет ли у Вас опечаток или пропущенных символов в параметрах ICE сервера. Если явных ошибок нет, а браузер продолжает показывать ошибку разбора ICE параметров, пришлите пример кода, используя эту форму.
 
Top