web-dev-qa-db-fra.com

Installation d'un serveur TURN sur Ubuntu pour WebRTC

Comment puis-je installer un serveur TURN sur mon ubuntu 12.04? Pouvez-vous partager un tutoriel? J'ai lu ce tutoriel: Implémentation de notre propre serveur STUN/TURN pour l'application WebRTC . Mais ce que je ne comprends pas, c'est comment puis-je installer mon propre serveur TURN sur mon ubuntu 12.04?

J'utilise actuellement quelque chose comme le code suivant pour créer le RTCPeerConnection

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

const pc_new = new webkitRTCPeerConnection(pc_config);

Et je veux remplir les arguments du code ci-dessus pour travailler avec un réseau différent.

Lorsque je veux installer Turn Server, je reçois

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package resiprocate-turn-server

J'ai utilisé apt-get install resiprocate-turn-server. J'ai également utilisé ce https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html tutoriel.

15
Dvlpr

il est facile à installer sur les machines Linux, pas essayé dans d'autres OS.

manière simple:

Sudo apt-get install coturn

Si vous dites non, je veux le dernier tranchant, vous pouvez télécharger le code source depuis leur page de téléchargements en l'installant vous-même, exemple:

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.3/turnserver-4.5.0.3.tar.gz     # Download the source tar
tar -zxvf turn.tar.gz     # unzip
cd turnserver-*
./configure
make && make install 

exemple de commande pour exécuter le serveur TURN:

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

description de la commande:

  • -a - Utiliser un mécanisme d'identification à long terme
  • -o - Exécute le processus serveur en tant que démon
  • -v - Mode verbeux "modéré".
  • -n - pas de fichier de configuration
  • --no-dtls - Ne démarre pas les écouteurs DTLS
  • --no-tls - Ne démarre pas les écouteurs TLS
  • -u - informations d'identification utilisateur à utiliser
  • -r - domaine par défaut à utiliser, besoin de TURN REST API

vérifiez ceci wiki pour plus de détails et de configurations.

vous pouvez maintenant utiliser le serveur TURN dans votre application WebRTC comme:

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

Sur votre machine serveur ubuntu, installez, configurez et exécutez ne version packagée decoturn . Pour une configuration de base, faites

# set up
Sudo apt-get install --assume-yes coturn

# configure & run
USERNAME="some-username"
PASSWORD="some-password"
PORT=3478

# -n: use only commandline parameters, no config file
Sudo turnserver \
    -n \
    --verbose \
    --lt-cred-mech \
    --user $USERNAME:$PASSWORD \
    --realm "someRealm" \
    --no-dtls \
    --no-tls \
    --listening-port $PORT

Ajouter --daemon pour le faire fonctionner en arrière-plan. Voir https://github.com/coturn/coturn/wiki/turnserver pour la liste des options de turnserver et jetez un œil à leur exemple de fichier de configuration = si vous voulez en utiliser un avec -c CONFIGFILE à la place d'utiliser -n et en passant toutes les options sur la ligne de commande comme je l'ai fait ci-dessus.

Pour vérifier que cela fonctionne, dans Google Chrome, sur n'importe quelle page d'une origine sécurisée (par exemple stackoverflow.com), exécutez ceci dans la console développeur:

function checkTURNServer(turnConfig, timeout){ 

  return new Promise(function(resolve, reject){

    setTimeout(function(){
        if(promiseResolved) return;
        resolve(false);
        promiseResolved = true;
    }, timeout || 5000);

    var promiseResolved = false
      , myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection   //compatibility for firefox and chrome
      , pc = new myPeerConnection({iceServers:[turnConfig]})
      , noop = function(){};
    pc.createDataChannel("");    //create a bogus data channel
    pc.createOffer(function(sdp){
      if(sdp.sdp.indexOf('typ relay') > -1){ // sometimes sdp contains the ice candidates...
        promiseResolved = true;
        resolve(true);
      }
      pc.setLocalDescription(sdp, noop, noop);
    }, noop);    // create offer and set local description
    pc.onicecandidate = function(ice){  //listen for candidate events
      if(promiseResolved || !ice || !ice.candidate || !ice.candidate.candidate || !(ice.candidate.candidate.indexOf('typ relay')>-1))  return;
      promiseResolved = true;
      resolve(true);
    };
  });   
}

const USERNAME="some-username"
const PASSWORD="some-password"
const PORT=3478
const IP="10.11.0.115" // you will have to change this

console.log('TURN server reachable on TCP?', await checkTURNServer( {
    url: `turn:${IP}:${PORT}?transport=tcp`,
    username: USERNAME,
    credential: PASSWORD,
}))

console.log('TURN server reachable on UDP?', await checkTURNServer( {
    url: `turn:${IP}:${PORT}?transport=udp`,
    username: USERNAME,
    credential: PASSWORD,
}))

Tu devrais obtenir

TURN server reachable on TCP? true
TURN server reachable on UDP? true
3
masterxilo

Je pense que le guide est quelque peu dépassé.

Regardez ce serveur Google open source TURN.
Vraiment facile à installer et fonctionne très bien.
https://code.google.com/p/rfc5766-turn-server/

2
9dan

Ce lien fournira tous les détails concernant l'installation et la configuration du serveur TURN.

https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html

Le gars a un très bon référentiel pour les démos WebRtc.

1
Mhadonis

Installation de Turn Server

changer le package en fonction de votre serveur

wget http://turnserver.open-sys.org/downloads/v3.2.4.4/turnserver-3.2.4.4-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

tar -zxvf turnserver-3.2.4.4-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

wget http://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

tar -zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable/

./configure

make && make install

dpkg -i rfc5766-turn-server_3.2.4.4-1_AMD64.deb

cd /etc/

vi turnserver.conf

Ajouter ce qui suit pour transformer server.conf

listening-device=eth0
listening-ip=YOUR_IP_HERE
listening-port=3478
userdb=turnuserdb.conf
relay-device=eth0
realm=YOUR_REALM_IP_HERE
lt-cred-mech
log-file=/var/log/turnserver.log

Ajoutez le nom d'utilisateur et le mot de passe sur turnuserdb.conf

 vi turnuserdb.conf

dans le format suivant

testuser:pass0wrd

Pour démarrer Turn Server:

sh /data/start_turn_server.sh

Pour ajouter un nouvel utilisateur de virage:

sh /data/ addTurnUser.sh

Pour voir si Turn Server est en cours d'exécution:

ps aux | grep –I turn

La commande ci-dessus doit répertorier certains processus en tant que turnserver, si le serveur TURN fonctionne correctement.

0
Chathura Wijesinghe