Подтвердить что ты не робот

Реализация нашего собственного сервера STUN/TURN для приложения WebRTC

Я работаю над приложением webrtc и должен реализовать следующий сервер TURN.

https://code.google.com/p/rfc5766-turn-server/

Я следую этому уроку.

http://www.dialogic.com/den/developer_forums/f/71/t/10238.aspx

и он говорит ссылаться на сервер TURN следующим образом, в коде javascript, где создается RTCPeerConnection.

var pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"},
  {"url":"turn:<turn_server_ip_address>", "username":"my_username", "credential":"my_password"}]};

pc_new = new webkitRTCPeerConnection(pc_config);

Я немного запутался, почему мы ссылаемся на общедоступный сервер STUN Google. Я думал, что сервер RFC5766 TURN имеет STUN внутри.

RFC5766 только сервер TURN? а не STUN сервер? Разве мы не можем реализовать свой собственный сервер STUN, а не использовать один из предоставленных Google?

Извините за такой наивный вопрос. Я новичок в WebRTC.

Благодарю.

4b9b3361

Ответ 1

Включите расширение STUN, поэтому сервер TURN также имеет функции STUN.

https://code.google.com/p/rfc5766-turn-server/ работает также как STUN, поэтому вы можете попытаться написать что-то вроде этого:

var pc_config = {"iceServers": [{"url":"turn:[email protected]<turn_server_ip_address>", "credential":"my_password"}]};

pc_new = new webkitRTCPeerConnection(pc_config);

Ответ 2

Просто добавив к Игорю ответ,

coturn является fork rfc5766-turn-server, основные функциональные возможности такие же, с дополнительными функциями и к которым добавляются новые функции, поэтому Я бы посоветовал вам использовать его вместо этого.

в собственных словах автора:

Этот проект возник из проекта rfc5766-turn-server (https://code.google.com/p/rfc5766-turn-server/). Существует много новых расширенных спецификаций TURN, которые выходят далеко за рамки исходного документа RFC 5766. Этот проект принимает код rfc5766-turn-server как стартер и добавляет к нему новые расширенные функции.

Что касается установки, ее легко установить в Linux-устройствах, не пробовав в других операционных системах.

простой способ:

sudo apt-get install coturn

Если вы скажете "нет", я хочу новейшую режущую кромку, вы можете загрузить исходный код со своей страницы загрузки самостоятельно, например:

sudo -i     # ignore if you already in admin mode
apt-get update && apt-get install libssl-dev libevent-dev libhiredis-dev make -y    # install the dependencies
wget -O turn.tar.gz http://turnserver.open-sys.org/downloads/v4.5.0.6/turnserver-4.5.0.6.tar.gz     # Download the source tar
tar -zxvf turn.tar.gz     # unzip
cd turnserver-*
./configure
make && make install 

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

пример команды для запуска сервера TURN:

sudo turnserver -a -o -v -n  --no-dtls --no-tls -u test:test -r "someRealm"

описание команды:

  • -a - Использовать механизм долгосрочных полномочий.
  • -o - запустить серверный процесс как демон
  • -v - "Умеренный" подробный режим.
  • -n - нет файла конфигурации
  • - no-dtls - Не запускать слушатели DTLS
  • - no-tls - Не запускать прослушиватели TLS
  • -u - учетные данные пользователя, которые будут использоваться
  • -r - область по умолчанию для использования, требуется для API TURN REST

теперь вы можете использовать сервер TURN в своем приложении WebRTC следующим образом:

var peerConnectionConfig = {
  iceServers: [{
    urls: YOUR_IP:3478,
    username: 'test',
    password: 'test'
  }]
}