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

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

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

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

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

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

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

pc_new = new webkitRTCPeerConnection(pc_config);

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

Это RFC5766 только включить сервер? и не оглушить сервер? Не можем ли мы реализовать наш собственный сервер STUN, а использовать тот, который предоставлен Google?

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

спасибо.

2 ответов


TURN это расширение оглушения, поэтому TURN server также имеет функции оглушения.

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

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

pc_new = new webkitRTCPeerConnection(pc_config);

просто добавляя к ответу Игоря,

coturn форк 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 

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

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

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

описание:

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

теперь вы можете использовать сервер TURN в приложении WebRTC как:

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