WebRTC (Web Real-Time Communication) és un projecte gratuït i de codi obert que proporciona comunicació en temps real (RTC) a navegadors web i aplicacions mòbils a través d'interfícies de programació d'aplicacions (API). Permet la comunicació i la transmissió d'àudio i vídeo dins de les pàgines web permetent la comunicació directa entre iguals, eliminant la necessitat d'instal·lar complements o descarregar aplicacions natives.
Amb el suport d'Apple, Google, Microsoft, Mozilla i Opera, les especificacions WebRTC han estat publicades pel World Wide Web Consortium (W3C) i l'Internet Engineering Task Force (IETF).
ICE, STUN i TURN són les tècniques de travessia NAT que s'utilitzen per connectar-se a companys remots.
Història El maig de 2010, Google va comprar Global IP Solutions o GIPS, una empresa de programari de VoIP i videoconferència que havia desenvolupat molts components necessaris per a RTC, com ara còdecs i tècniques de cancel·lació d'eco. Google va publicar la tecnologia GIPS de codi obert i va col·laborar amb els organismes d'estàndards pertinents de l'IETF i el W3C per garantir el consens de la indústria. El maig de 2011, Google va llançar un projecte de codi obert per a la comunicació en temps real basada en navegadors conegut com a WebRTC. Això ha anat seguit d'un treball continu per estandarditzar els protocols rellevants a l'IETF i les API del navegador al W3C.
El gener de 2011, Ericsson Labs va crear la primera implementació de WebRTC utilitzant una biblioteca WebKit modificada. L'octubre de 2011, el W3C va publicar el seu primer esborrany de l'especificació. Les fites de WebRTC inclouen la primera videotrucada entre navegadors (febrer de 2013), les primeres transferències de dades entre navegadors (febrer de 2014) i, a partir de juliol de 2014, Google Hangouts ja utilitzava "més o menys" WebRTC.
L'esborrany de l'API del W3C es va basar en el treball preliminar realitzat al WHATWG. Es va anomenar API ConnectionPeer i es va crear una implementació del concepte de preestàndards a Ericsson Labs. El grup de treball WebRTC espera que aquesta especificació evolucioni significativament en funció de:
Resultats dels intercanvis en curs en el grup associat RTCWEB a l'IETF per definir el conjunt de protocols que, juntament amb aquest document, defineixen les comunicacions en temps real als navegadors web. Tot i que no hi ha cap protocol de senyalització obligatori, SIP sobre WebSockets (RFC 7118) s'utilitza sovint en part a causa de l'aplicabilitat de SIP a la majoria dels escenaris de comunicació previstos, així com a la disponibilitat de programari de codi obert com ara JsSIP. Problemes de privadesa que sorgeixen en exposar capacitats locals i fluxos locals Discussions tècniques dins del grup, en particular sobre la implementació de canals de dades Experiència adquirida a través de l'experimentació inicial Comentaris d'altres grups i individus
El novembre de 2017, l'especificació WebRTC 1.0 va passar de ser Esborrany de Treball a Recomanació Candidata.
El gener de 2021, l'especificació WebRTC 1.0 va passar de recomanació candidata a recomanació.
Disseny Els components principals de WebRTC inclouen diverses API de JavaScript:
getUserMedia adquireix els suports d'àudio i vídeo (per exemple, accedint a la càmera i el micròfon d'un dispositiu). RTCPeerConnection permet la comunicació d'àudio i vídeo entre iguals. Realitza el processament de senyals, la gestió de còdecs, la comunicació entre iguals, la seguretat i la gestió de l'amplada de banda. RTCDataChannel permet la comunicació bidireccional de dades arbitràries entre iguals. Les dades es transporten mitjançant SCTP sobre DTLS. Utilitza la mateixa API que WebSockets i té una latència molt baixa.
L'API de WebRTC també inclou una funció d'estadístiques:
getStats permet a l'aplicació web recuperar un conjunt d'estadístiques sobre les sessions WebRTC. Aquestes dades estadístiques es descriuen en un document separat del W3C.
L'API de WebRTC no inclou cap disposició per a la senyalització, és a dir, descobrir els companys als quals connectar-se i determinar com establir connexions entre ells. Les aplicacions utilitzen l'establiment de connectivitat interactiva per a les connexions i són responsables de gestionar les sessions, possiblement basant-se en qualsevol dels següents protocols: Session Initiation Protocol, Extensible Messaging and Presence Protocol (XMPP), Message Queuing Telemetry Transport, Matrix o un altre protocol. La senyalització pot dependre d'un o més servidors.
RFC 7478 requires implementations to provide PCMA/PCMU (RFC 3551), Telephone Event as DTMF (RFC 4733), and Opus (RFC 6716) audio codecs as minimum capabilities. The PeerConnection, data channel and media capture browser APIs are detailed in the W3C specification.
El W3C està desenvolupant ORTC (Object Real-Time Communications) per a WebRTC.
Aplicacions WebRTC permet als navegadors transmetre fitxers directament entre ells, reduint o eliminant completament la necessitat d'allotjament de fitxers al servidor. WebTorrent utilitza un transport WebRTC per permetre l'intercanvi de fitxers entre iguals mitjançant el protocol BitTorrent al navegador. Alguns llocs web de compartició de fitxers l'utilitzen per permetre als usuaris enviar fitxers directament entre ells als seus navegadors, tot i que això requereix que el carregador mantingui la pestanya oberta fins que s'hagi descarregat el fitxer. Algunes CDN, com ara Peer5, propietat de Microsoft, utilitzen l'ample de banda del client per carregar contingut multimèdia a altres iguals connectats, permetent que cada igual actuï com a servidor perimetral.
Tot i que inicialment es va desenvolupar per a navegadors web, WebRTC té aplicacions per a dispositius que no són de navegador, incloent-hi plataformes mòbils i dispositius IoT. Alguns exemples són la telefonia VoIP basada en navegador, també anomenada telèfons al núvol o telèfons web, que permet fer i rebre trucades des d'un navegador web, substituint el requisit de descarregar i instal·lar un softphone.
Suport WebRTC és compatible amb els següents navegadors (llista incompleta; s'especifica la versió més antiga compatible):
PC d'escriptori Microsoft Edge 12+ Google Chrome 28+ Mozilla Firefox 22+ Safari 11+ Òpera 18+ Vivaldi 1.9+ Valent Android Google Chrome 28+ (activat per defecte des de la versió 29) Mozilla Firefox 24+ Opera Mobile 12+ ChromeOS Firefox OS BlackBerry 10 iOS MobileSafari/WebKit (iOS 11+) Tizen 3.0
Compatibilitat amb còdecs en tots els navegadors WebRTC estableix un conjunt estàndard de còdecs que tots els navegadors compatibles han d'implementar (subratllat). Alguns navegadors també poden ser compatibles amb altres còdecs.
Compatibilitat de còdecs de vídeo Nom del còdecPerfilCompatibilitat del navegadorLínia de base restringida (CB)Chrome, Edge, Firefox, Safari (12.1+) -Chrome (52+), Edge, Firefox, SafariVP9 -Chrome (48+), FirefoxAV1 -Chrome (113+), Firefox (136+) Compatibilitat de còdecs d'àudio Nom del còdecCompatibilitat del navegadorChrome, Firefox, SafariChrome, Firefox, SafariChrome, Firefox, SafariG.722Chrome, Firefox, SafariiLBCChrome, SafariiSACChrome, Safari
Referències
Categoria:Estàndards Categoria:Internet