2. Sommaire
● WebRTC c’est quoi ?
● En tant qu’utilisateur, comment je l’utilise ?
● En tant que développeur, comment je m’en sers ?
● En tant que technicien, comment je debug ?
3. WEBRTC c’est quoi ?
● Technologie permettant d’avoir des communications temps réel dans un navigateur
web (Javascript API)
○ https://fr.wikipedia.org/wiki/WebRTC
● Créer par Google en 2011
● Normalisé 1.0 https://www.w3.org/TR/webrtc/
● Supporté par différents navigateur web comme
○ Chromium, Chrome
○ Firefox
○ Edge
○ Opéra
● Pas de protocol établi, chacun est libre de son implémentation
● Permet au navigateur d’avoir accès au micro, haut parleur de l’ordinateur
● Permet de monter une session SRTP dans le navigateur web pour le flux média temps
réel
● Permet d’avoir des statistiques sur le média
● API web : https://developer.mozilla.org/fr/docs/Web/API/WebRTC_API
4. WEBRTC
● Composants principaux
○ getUserMedia : caméra,
micro
○ RTCPeerConnection :
négociation, encodage,
décodage
○ RTCDataChannel :
échange de données
entre navigateurs
● Autres APIs
○ getStats
○ getDisplayMedia
○ MediaRecorder
● SRTP
○ Chiffrement des flux média
● STUN, TURN, SDP, ICE, DTLS
5. ICE, dur comme de la glace ;)
● ICE : Permet de trouver comment deux
ordinateurs peuvent parler ensemble.
● STUN : Permet de découvrir votre
adresse IP publique
● TURN : Inclus la traversé du média
● NAT : Traduction d’une adresse publique
vers une ip privé
● Ice candidate : Information de l’adresse
IP et du port pour passer le média
Plus d’infos : Très bonne définition ici
6. SDP - Session Description Protocol
● Permet de décrire une session média dans un appel VOIP
● L’anatomie est très bien décrite ici : https://webrtchacks.com/sdp-anatomy/
8. SFU, MCU, P2P ??? Comment on s’y retrouve ?
● SFU : Selective Forwardings Units
● MCU : Multiple Control Unit
● P2P : Peer to peer
9. Et la sécurité ?
E2E : Webrtc insertable streams
Permet de chiffrer de bout en bout
le média.
Très récent dans le webrtc,
fonctionne à partir d’échange de
clefs.
10. En tant qu’utilisateur, on parle de quoi ?
Pour l’utilisateur ça sert à quoi ?
Grâce au webrtc on a des services comme :
● google meet
● jitsi
● bigblue buttons
● Microsoft teams
● Wazo ;)
● etc …
On embarque de la communication temps réel dans la navigateur web, voix,
vidéo ou texte sans plugin sans télécharger des addons et cela améliore très
largement l’expérience utilisateur.
11. En tant que Développeur, comment ça marche ?
Développer des applications de
communications temps réel dans
un navigateur web :
● Télécommunications
● Jeux vidéo
● …
Principalement en Javascript.
12. En tant que technicien, comment je debug ?
On ouvre la console debug webrtc :
Chrome => chrome://webrtc-internals