Définition
WebRTC est un ensemble de normes web et de protocoles qui permettent aux navigateurs et aux applications d'envoyer de l'audio, de la vidéo et des données en temps réel directement entre appareils. Il gère le chiffrement, la traversée des réseaux et le transport des médias.
Lire le guide complet : WebRTC ou WebSocket pour l'IA vocale en temps réel
Comment fonctionne WebRTC
WebRTC, ce sont deux ensembles de spécifications : une API JavaScript du W3C et un groupe de protocoles de l’IETF dont la RFC 8825 donne un aperçu. Ensemble, ils permettent à une page de capter un microphone, d’établir une connexion et d’y envoyer de l’audio.
L’établissement d’une connexion comporte trois parties. La signalisation est la façon dont les deux côtés échangent offres et réponses, et WebRTC la laisse à l’application, chaque application utilisant donc son propre serveur. ICE trouve un chemin réseau entre les deux côtés, y compris à travers les routeurs domestiques et les pare-feu, en recourant à des serveurs auxiliaires appelés STUN et TURN quand un chemin direct est bloqué. Les médias circulent ensuite en UDP, chiffrés par DTLS et SRTP, et transportent de l’audio codé en Opus. La RFC 7874 exige que les terminaux WebRTC prennent en charge Opus et G.711.
Les navigateurs ajoutent des fonctions utiles pour la voix : annulation d’écho, suppression de bruit et contrôle automatique du gain, appliqués au microphone avant l’envoi. Ils s’adaptent aussi à la perte de paquets et à la gigue sans que l’application ait à intervenir.
Pourquoi c’est important pour les agents vocaux
Un agent vocal joint les appelants de deux manières. Les appels téléphoniques arrivent par le PSTN et un trunk SIP, avec de l’audio de téléphonie à bande étroite. Les appels depuis un site web ou une application mobile peuvent utiliser WebRTC et conserver un audio à large bande, ce qui aide la reconnaissance et sonne mieux.
Le compromis est opérationnel. WebRTC fonctionne en UDP et se remet des pertes sans attendre, ce qui convient à une latence faible, mais il exige une signalisation et souvent des serveurs TURN, qui coûtent de l’argent et ajoutent des pièces mobiles. Un WebSocket transporte l’audio en TCP, ce qui est plus simple à construire et peut se bloquer en cas de perte de paquets. Le guide les compare en détail.
Un agent vocal dans une application ne reçoit pas non plus de numéro de téléphone : l’identification de l’appelant et le routage par numéro ne s’appliquent donc pas. C’est l’application qui identifie l’utilisateur.
Exemple
Une configuration illustrative : une page de support comporte un bouton Parlez-nous. Un clic demande l’autorisation d’utiliser le microphone, ouvre une connexion WebRTC vers le serveur de l’agent et diffuse de l’audio Opus à 48 kHz dans les deux sens. Le même agent répond aussi au numéro de téléphone de l’entreprise par un trunk SIP à 8 kHz.