2014-03-06 6 views
19

Я работаю над приложением webrtc и должен реализовать следующий сервер TURN.Реализация нашего собственного сервера STUN/TURN для приложения WebRTC

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:[email protected]<turn_server_ip_address>", "credential":"my_password"}]}; 

pc_new = new webkitRTCPeerConnection(pc_config); 

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

Является ли только RFC5766 только сервером TURN? а не сервер STUN? Не можем ли мы реализовать собственный STUN-сервер, используя тот, который предоставляется Google?

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

Спасибо.

ответ

14

TURN это расширение 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); 
20

Просто добавив на ответ Игоря,

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

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

This project evolved from rfc5766-turn-server project (https://code.google.com/p/rfc5766-turn-server/). There are many new advanced TURN specs which are going far beyond the original RFC 5766 document. This project takes the code of rfc5766-turn-server as the starter, and adds new advanced features to it.

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

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

sudo apt-get install coturn 

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

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 слушателю
  • -u - учетные данные, которые будут использоваться
  • -r - область по умолчанию будет использоваться, необходимо для TURN REST API

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

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

работает как шарм! – Ernest

+3

Что означает «someRealm»? – Loint

+1

Что означает «someRealm»? –

Смежные вопросы