Aller au contenu

Présentation de la conférence OSCC 2024 « Voice WebRTC pour OpenSimulator »

De OSWiki

Présentation de la conférence OSCC 2024 de Robert Adams connu sous le nom de Misterblue Wave dans le monde virtuel.(Source : https://youtu.be/nL78fieIFYg)

Introduction

Cette présentation concerne les développeurs et les propriétaires de simulateurs ou de grille OpenSimulator. Pour les utilisateurs, il n'y aura pas de changements dans les viewers.

Il s'agira ici de :

  1.  donner des détails sur la mise en œuvre de la voice WebRTC par Second Life.
  2. décrire la voice WebRtc basée sur Janus-gateway pour OpenSimulator : os-webrtc-janus

Second Life remplace Vivox

Jusqu’à présent Second Life utilisait Vivox et Opensimulator utilisait un support « gratuit » de Vivox. Mais, suite à une mise à jour, Vivox a abandonné certaines fonctionnalités et SecondLife a décidé de le remplacer. Liden Lab a mis en place ses propres serveurs pour le chat vocal spatial et non spatiale. Une solution basée sur les protocoles WebRtc a été développée.

Ainsi, les  viewers tiers devraient supporter la voice Vivox et WebRTC. Beaucoup pensent ne supporter que la voice WebRtc laissant OpenSimulator sans solution de chat vocal.

Qu'est ce que WebRtc ?

WebRTC est un ensemble de standards permettant de créer des flux audio/vidéo/de données en temps réel entre les navigateurs. Il est probablement basé sur plus de 10 standards / normes parmi lesquelles il y a :

  • RTP : protocole de communication informatique permettant le transport de données soumises à des contraintes de temps réel, tels que des flux média audio ou vidéo.
  • SDP: protocole de communication de description de paramètres d'initialisation d'une session de diffusion en flux.
  • SIP : protocole de communication standard ouvert de gestion de sessions souvent utilisé dans les télécommunications multimédia (son, image, etc.). Il est depuis 2007 le plus courant pour la téléphonie par internet (la VoIP).
  • ICE(en) : est une technique utilisée dans les réseaux informatiques pour trouver des moyens permettant à deux ordinateurs de communiquer entre eux de la manière la plus directe possible dans un réseau pair-à-pair. Cela est le plus souvent utilisé pour des médias interactifs tels que la voix sur protocole Internet (VoIP), les communications pair-à-pair, la vidéo et la messagerie instantanée.
  • STUN : protocole client-serveur permettant à un client UDP situé derrière un routeur NAT (ou de multiples NAT) de découvrir son adresse IP publique ainsi que le type de routeur NAT derrière lequel il est. Ces informations sont utilisées pour échanger correctement des données UDP avec l'extérieur d'un réseau NAT.
  • TURN(en) : protocole qui aide à traverser les traducteurs d'adresses réseau (NAT) ou les pare-feu pour les applications multimédias. Il peut être utilisé avec le protocole TCP et le protocole UDP. Il est particulièrement utile pour les clients sur des réseaux masqués par des dispositifs NAT symétriques.

Flux entre deux navigateurs

Dans un réseau étendu

Dans un réseau local

Avantages de l'Utilisation d'un Mixer dans la Communication Audio

Avantages :

  1. Réduction de la Charge de Calcul : les viewers n'ont plus besoin de traiter chaque flux audio individuellement.
  2. Optimisation de la Bande Passante : en centralisant le traitement audio, le mixer peut réduire le nombre de flux audio envoyés à chaque viewer.
  3. Protection des données  : les viewers ne voient pas les données des autres viewers.

Qu'est ce que Janus-Gateway  ?

  • C'est un projet open source pour les serveur WebRTC Site officiel Janus-gateway sur Github
  • Il dispose d'un plugin « audio-bridge » pour les « salles de conférence ».
  • Plusieurs personnes rejoignent des « salles » et entendent tout le monde.
  • Il possède des fonctions de positionnement permettant le déplacement en stéréo.

Second Life et WebRtc

Les protocoles

Linden Lab a été très généreux en publiant les protocoles :

Voice WebRtc

WebRTC Voice sur Second Life, le point de vue d'un développeur

WebRTC utilisé par Second Life

Les deux architectures d'os-webrtc-janus

  • Première solution : serveur de grille et serveur Janus éxécutés parallèlement. Ainsi la grille fournit un mixeur audio aux viewers .
  • Deuxième solution : la région peut exécuter son propre serveur Janus et avoir son propre mixeur audio. Cela peut permettre de conserver des éléments localement pour des raisons de sécurité et ne pas dépendre du service de grille.
  • 🏗️