Куренто: Конфигурация TURN на стороне клиента

Как я понял из моего предыдущего вопроса: Куренто: STUN / TURN

Сервер TURN, настроенный из webrtcendpoint.conf.ini, используется только для обмена ледяными кандидатами. Также мы можем указать только один TURN-сервер в webrtcendpoint.conf.ini, потому что я заметил, что если я предоставляю 2 или более TRUN-серверов в webrtcendpoint.conf.ini Kurento media server service не запускается, это правильно?

Также есть ли способ проверить, какой сервер STUN / TURN используется на медиасервере Kurento и между двумя одноранговыми узлами?

STUN / TURN, который мы предоставляем в conferenceroom.js, будет использоваться для фактического потока мультимедиа / канала связи между одноранговыми узлами. Это верно ?

Если мы предоставим несколько серверов TURN в conferenceroom.js, тогда для потока мультимедиа между двумя одноранговыми узлами будет выбрано оптимальное / самое быстрое время отклика сервера TURN? То же, что и время ответа, полученное по этой ссылке.

Также я заметил, что если серверы TURN, указанные в webrtcendpoint.conf.ini и conferenceroom.js, различаются, мы не можем видеть видео удаленных участников, но если оба сервера TURN одинаковы, то я могу видеть видео удаленных участников. Это верно ?

Изменить 1:

В примере с групповым вызовом у нас есть onExistingParticipants() и onNewParticipants(), где мы можем определить iceServers в receiveVideo() и onExistingParticipants(), так что произойдет, если мы укажем TURN-сервер t1 в kurentoUtils.WebRtcPeer.WebRtcPeerSendOnly() и TURN-сервер t2 в kurentoUtils.WebRtcPeer.WebRtcPeerRecvOnly() тогда будут ли эти два сервера TURN связываться друг с другом в виде цепочки ретрансляции?


person Sagar Pilkhwal    schedule 30.05.2016    source источник


Ответы (1)


Сервер TURN, настроенный из webrtcendpoint.conf.ini, используется только для обмена ледяными кандидатами. Также мы можем указать только один TURN-сервер в webrtcendpoint.conf.ini, потому что я заметил, что если я предоставляю 2 или более TRUN-сервера в webrtcendpoint.conf.ini, служба медиасервера Kurento не запускается, это правильно?

Он используется для сбора кандидатов, а при необходимости и в качестве видеорелейной передачи. Вам, вероятно, KMS не понадобится, поскольку вы управляете местом, где он развернут. Если вы можете использовать только STUN, что является желаемым способом, то сервер ретрансляции не будет использоваться.

Можно настроить только один сервер,

Также есть ли способ проверить, какой сервер STUN / TURN используется на медиасервере Kurento и между двумя одноранговыми узлами?

Да, у WebRtcEndpoint есть методы для этого

  • getStunServerPort()
  • getStunServerAddress()
  • getTurnUrl()

STUN / TURN, который мы предоставляем в файле conferenceroom.js, будет использоваться для фактического потока мультимедиа / медиаплеера между одноранговыми узлами. Это верно ?

Он будет использоваться для сбора кандидатов в вашем клиенте. Кроме того, если ваш клиент находится за NAT, которому необходимо использовать сервер ретрансляции, он будет использовать сервер, настроенный в conferenceroom.js. Имейте в виду, что путь мультимедиа может быть несимметричным: в то время как мультимедиа, идущие от client-> kms, могут не использовать сервер ретрансляции, мультимедиа, идущие от KMS-> client, могут быть связаны с условиями сети в местоположении вашего клиента.

Если мы предоставим несколько серверов TURN в файле conferenceroom.js, тогда для потока мультимедиа между двумя одноранговыми узлами будет выбрано оптимальное / самое быстрое время отклика сервера TURN? То же, что и время ответа по этой ссылке.

Да, кандидаты проверяются и выбирается лучший.

Также я заметил, что если сервер TURN, представленный в webrtcendpoint.conf.ini и conferenceroom.js, отличается, мы не можем видеть видео удаленных участников, но если оба сервера TURN одинаковы, то я могу видеть удаленные видео участников. Это верно ?

Этого не должно быть, если только один ХОД работает, а другой - нет.


РЕДАКТИРОВАТЬ

Серверы TURN не будут обмениваться медиа между собой. При необходимости они будут использоваться в качестве ретранслятора с другим одноранговым узлом. Процесс

  • Каждый одноранговый узел собирает кандидатов: хост, srflx (STUN) и ретранслятор (TURN). Кроме того, если сервер TURN отличается, кандидаты на ретрансляцию также будут другими.
  • Кандидаты отправляются другому партнеру.
  • Каждый кандидат исследуется индивидуально, и выбирается лучший.

Поскольку все носители проходят через KMS, именно KMS будет отправлять медиафайлы на сервер ретрансляции. Имейте в виду, что KMS всегда находится между одноранговыми узлами. Это было бы

кмс-> t2-> клиент клиент-> t1-> кмс

Даже если бы соединение было браузером с браузером, серверы TURN не могли бы связываться напрямую, поскольку они действовали бы как ретранслятор для мультимедиа, отправляемого от одного однорангового узла к другому. Вот бы это было

клиент1-> t2-> клиент2 клиент2-> t1-> клиент1

person igracia    schedule 30.05.2016
comment
спасибо за ваш ответ, я пытаюсь заставить использовать сервер TURN в обоих направлениях потока мультимедиа. Также, если я предоставлю сервер TURN из разных мест мира, и если кто-то попытается присоединиться к этой группе, вызовите сервер TURN, используемый / выделенный кандидатами ICE, будет ближайшим к пользователю. можно ли этого достичь, указав список серверов TURN в conferenceroom,js ?? - person Sagar Pilkhwal; 30.05.2016
comment
the TURN servers would not communicate directly, as they would act as relay for the media sent from one server to the other означает ли это, что два сервера TURN могут ретранслировать друг друга? Также не могли бы вы сказать, где используется TURN-сервер в webrtcendpoint.conf.ini, когда мы указываем TURN-серверы в conferenceroom.js - person Sagar Pilkhwal; 30.05.2016
comment
Это была опечатка. Серверы Turn не обмениваются мультимедийными данными, они действуют как ретрансляторы для мультимедийных данных, отправляемых от одноранговых узлов. Как четко указано в другом вашем вопросе, конфигурации STUN / TURN не передаются, если вы этого не сделаете. Одноранговые узлы (а KMS - это просто еще один одноранговый узел) могут иметь разные конфигурации STUN / TURN. - person igracia; 30.05.2016
comment
Привет, если я предоставлю 4 URL-адреса сервера TURN в файле conferenceroom.js, а затем перейду к консольному доступу с помощью команды telnet 127.0.0.1 5766, а затем запустил команду ps, я могу увидеть, как количество сеансов увеличивается на 2 серверах TURN. Любая идея, почему это происходит ? приветствуется любая помощь - person Sagar Pilkhwal; 02.06.2016
comment
ps дает вам количество сеансов? Это количество процессов в вашей системе, AFAIK. - person igracia; 03.06.2016