2014-03-06 4 views
19

webrtc 응용 프로그램에서 작업 중이며 다음 TURN 서버를 구현해야합니다.WebRTC 응용 프로그램에 대한 자체 STUN/TURN 서버 구현

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

나는이 자습서를 수행하고있다.

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

는 그것을 다음 RTCPeerConnection가 생성 자바 스크립트 코드에서 TURN 서버를 참조하는 말했다.

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); 

Google의 공개 STUN 서버를 참조하는 이유는 조금 혼란 스럽습니다. RFC5766 TURN 서버에 STUN이 있다고 생각했습니다.

RFC5766은 TURN 서버입니까? STUN 서버가 아닌가요? Google이 제공하는 서버 대신 STUN 서버를 구현할 수 있습니까?

그런 순진한 질문에 사과드립니다. 나는 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

그냥 이고르의 대답에 추가

coturnrfc5766-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 -
  • 을 사용하는 사용자 자격 증명 - TLS 청취자에게
  • -u를 시작하지 마십시오

    var peerConnectionConfig = { 
        iceServers: [{ 
        urls: YOUR_IP:3478, 
        username: 'test', 
        password: 'test' 
        }] 
    } 
    
    : -
  • -r 기본 영역은

지금 당신이로의 WebRTC 응용 프로그램에서 TURN 서버를 사용할 수 있습니다 TURN의 REST API에 필요한, 사용되는 0

+0

은 매력처럼 작동합니다! – Ernest

+3

"someRealm"은 무엇을 의미합니까? – Loint

+1

"someRealm"은 무엇을 의미합니까? configure를 실행 –

관련 문제