Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing our own STUN/TURN server for WebRTC Application [duplicate]

I am working on a webrtc application and have to implement following TURN server.

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

I am following this tutorial.

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

and it says to reference the TURN server as follows, in javascript code where RTCPeerConnection is created.

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

I am little confused, why are we referencing to Google's public STUN server. I thought RFC5766 TURN server has STUN inside it.

Is RFC5766 only TURN server? and not STUN server? Can't we implement our own STUN server rather using one provided by Google?

Sorry for such naive question. I am new to WebRTC.

Thanks.

like image 750
Sam Fast Avatar asked Mar 06 '14 19:03

Sam Fast


People also ask

Do I need a STUN server for WebRTC?

Before establishing a peer-to-peer connection, it is essential for servers to identify the IP address for each participant. WebRTC applications use STUN servers most of the time.


2 Answers

TURN it's an extension of STUN, so TURN server has also STUN features.

https://code.google.com/p/rfc5766-turn-server/ works also as a STUN, so you can try to write something like this:

var pc_config = {
    "iceServers": [{
        "url":"turn:my_username@<turn_server_ip_address>",
        "credential":"my_password"
    }]
};
    
pc_new = new webkitRTCPeerConnection(pc_config);
like image 187
Rubycon Avatar answered Oct 18 '22 23:10

Rubycon


Recently I was capturing my Kurento WebRTC server packets and realized that it has been using this www.stunprotocol.org domain for STUN requests. A tool named stuntman can create a simple STUN server for you.

Just follow these on a Linux host:

  1. sudo apt-get update
  2. sudo apt-get install stuntman-server
  3. stunserver --mode full --primaryinterface 100.101.102.103
    (which the 100.101.102.103 should be replaced by your IP address)
  4. Open This Link to test your STUN server.

e.g. STUN or TURN URI:

stun:100.101.102.103:3478

By this procedure I've mentioned, everything goes well on my machine.

like image 3
M. Rostami Avatar answered Oct 19 '22 00:10

M. Rostami