WebRTC

Bellen, videobellen, chatten en bestanden uitwisselen via de browser

WebRTC

WebRTC (Web Real-Time Communication) is een opensourceprotocol om web applicaties voor spraak- en videogesprekken en p2p-bestandsuitwisseling te bouwen die puur op je web browser is gebaseerd. Er is dus geen software van 3e vereist en ook niet een software installatie/update of plugin vereist.

Dit betekent volgens velen een nieuw front in digitale communicatie in het gevecht om een vrij en open web zonder beperkingen. Daarom Sping is al sinds de Lancering in 2011 fan van WebRTC, we leggen graag uit waarom!

Wat is WebRTC

Real-Time Communicatie (RTC) via de webbrowser is vaak een moeizame exercitie. Om via een browser omgeving te kunnen communiceren, moet de gebruiker eerst een plug-in zoals Adobe Flash of een specifieke browser extensie downloaden en installeren. Alleen dit downloaden en installeren kan al een complex, tijdrovend en foutgevoelig proces zijn. En dan is het nog maar de vraag of interoperabiliteits problemen een goede verbinding niet in de weg staan. Toepassingen zoals Skype en Apple FaceTime hebben weer de beperking dat er alleen communicatie mogelijk is met de personen in de contactlijst en dat aan beide kanten van de verbinding dezelfde applicatie aanwezig moet zijn.

Industriestandaard

Veel van deze problemen moeten tot het verleden behoren met WebRTC, een standaard die momenteel wordt onderhouden door het World Wide Web Consortium (W3C) en de Internet Engineering Task Force (IETF). Deze opkomende standaard stelt software ontwikkelaars in staat om – met behulp van eenvoudige JavaScript API’s en HTML5 – web applicaties voor spraak- en videogesprekken en p2p-bestandsuitwisseling te bouwen die direct in de browser zijn te gebruiken. Zo moet het mogelijk zijn om zonder de installatie van plug-ins of software van derden een videochat op te zetten tussen browsers

  • Behoud van de standaard door de W3C en IETF

  • Eenvoudig te implementeren door Javascript API’s en HTML5

  • Geen software installaties en plug-ins nodig

RTC Transformatie

WebRTC moet de manier waarop we online communiceren drastisch veranderen. “WebRTC vormt het nieuw front in de lange oorlog voor een open web zonder beperkingen[1]”, zo is dan ook de stellige overtuiging van JavaScript-uitvinder Brendan Eich. Of zoals Phil Edholm, een blogger en consultant met een jarenlange ervaring in de communicatie-industrie, het enkele jaren geleden al verwoordde: “Samen met HTML5 kan WebRTC zorgen voor een transformatie van realtime communicatie vergelijkbaar met wat de originele browser heeft gedaan voor informatie.[2]”

WebRTC is de nieuwe industrie standaard en dit komt door:

  • Bijna alle devices die op het internet zijn aangesloten kunnen een WebRTC applicatie gebruiken zonder software installaties of plug-ins.
  • Naast het gemak geeft WebRTC ook vrijheid ipv gebondenheid aan een applicatie.
  • Zodra de combinatie met HTML5 word gemaakt, heeft WebRTC het potentieel de RTC revolutie te veroorzaken.

Architectuur

Een groot onderdeel van WebRTC is de manier waarop het is gemaakt. De Architectuur van de software maakt het uniek, omdat de architecten ‘digital real time communication freedom’ als ijkpunt hadden. En dit zie je terug in elk onderdeel van de software, van encryptie tot en met het gemak waarmee de api’s opgezet kunnen worden. Hierdoor proberen ze de software voor iedereen toegankelijk en veilig te maken met het optimale behoud van vrijheid.

Onafhankelijkheid

Een groot voordeel van WebRTC is dat de communicatie niet meer afhankelijk is van client software of plug-ins of van een leverancier of communicatieplatform. Ieder apparaat met een browser – of dat nu een smartphone, tablet of zelfs een smart-tv is – kan deelnemen aan de realtime communicatie. En zoals we verderop nog zullen zien, is zelfs de aanwezigheid van een WebRTC-geschikte webbrowser geen strikte vereiste; de mogelijkheden om te communiceren via WebRTC kunnen ook zijn geïntegreerd in bijvoorbeeld een bedrijfsapplicatie of mobiele app.

JavaScript API’s

De enige voorwaarde voor het succesvol opzetten van een verbinding is dat alle ‘peers’ die aan een gesprek deelnemen een fundamentele set aan Real-time Transport Protocol (RTP)- en Application Programming Interface (API)-standaarden ondersteunen.

Binnen de browser gaat een groot deel van de complexiteit schuil achter een drietal JavaScript API’s:

  • MediaStream/getUserMedia. Deze API zorgt ervoor dat een webpagina of applicatie toegang krijgt tot bijvoorbeeld de camera en microfoon van de gebruiker, en dat de audio- en videostreams worden gesynchroniseerd.
  • RTCPeerConnection. Dit is het component binnen WebRTC dat de audio- en videocommunicatie tussen ‘peers’ (webbrowsers) afhandelt. Deze API ondersteunt functionaliteiten zoals signaalverwerking, codec handling, bandbreedtebeheer en security. De rol van RTCPeerConnection komt duidelijk naar voren in onderstaand architectuurdiagram.
  • RTCDataChannel. Deze API maakt WebRTC geschikt voor het uitwisselen van data anders dan audio en video, en dat met een lage latency en een hoge doorvoer. De use cases voor deze API zijn onder andere gaming, remote-desktopapplicaties die direct vanuit de browser zijn te gebruiken, chat en de uitwisseling van bestanden. Om te komen tot een consistente werkwijze is de opzet van de RTCDataChannel API met opzet gelijk aan die van WebSockets. Het grote verschil tussen RTCDataChannel en WebSockets is dat RTCDataChannel direct tussen browsers werkt en daardoor sneller is dan WebSockets, zelfs als een relay-server nodig is om zaken als firewalls en Network Address Translation te omzeilen.

Encryptie

WebRTC stelt encryptie verplicht voor zowel de media als de data.

WebRTC stelt encryptie verplicht voor zowel de media als de data. De gebruikten encryptiemethoden zijn https voor de signaling, het Secure Real-Time Transport Protocol (SRTP) voor de audio en video en Datagram Transport Layer Security (DTLS) voor de data. Ook op het vlak van ‘connection establishment’ omarmt WebRTC een aantal geavanceerde technologieën die ervoor moeten zorgen dat de verbinding ook onder ongunstige netwerkomstandigheden succesvol kan worden opgezet.

Usecases

Websites met ingebedde communicatiemogelijkheden. Door voice, video en berichten- en bestandsuitwisseling te integreren in een website kan bijvoorbeeld een webshop eenvoudiger contact onderhouden met zijn klanten. Een klant kan met een druk op de knop een videoverbinding opzetten met een support- of salesmedewerker.

(Zakelijke) applicaties met ingebedde communicatiemogelijkheden. In dit geval is de ‘conversatie’ slechts een onderdeel van een groter geheel.

Mobiele clients voor Voice over IP en Unified Communications waardoor zakelijke communicatie ook beschikbaar komt op de smartphones en tablets die door de werknemers worden meegenomen (Bring Your Own Device).

Applicaties die de tools bieden voor het opzetten van bijvoorbeeld videovergaderingen, webinars, presentaties, et cetera.

Ondersteuning

WebRTC vereenvoudigt de manier waarop bedrijven met elkaar en met klanten communiceren en verkleint de afhankelijkheid van het huidige ecosysteem van hardware, carriers en serviceproviders. Met WebRTC komt de kracht van communicatie te liggen in de handen van de webdevelopers die met behulp van de geschetste HTML5- en JavaScript API’s realtime multimedia-applicaties kunnen ontwikkelen. De verwachting is dan ook dat er een rijk ecosysteem ontstaat van interoperabele WebRTC-applicaties en -diensten.
WebRTC wordt inmiddels ondersteund door een hele reeks leveranciers van onder andere developertools, telco- en mediagateways en call center-, unified communications en video-oplossingen. Hieronder bevinden zich ook leveranciers die oplossingen bieden om WebRTC middels ‘service enablers’ te integreren binnen de zakelijk Unified Communications-omgeving. Een voorbeeld hiervan is Pexip waar wij ruime ervaring mee hebben voor onze projecten voor VisionsConnected.

WebRTC Wizards

Volgens Disruptive Analysis gaat het aantal apparaten dat gebruik kan maken van WebRTC spectaculair toenemen. Volgens dit advies- en onderzoeksbureau waren er in het eerste kwartaal van 2014 ruim 1 miljard ‘WebRTC-devices’ in de handen van gebruikers. Begin 2017 zal dat aantal zijn gestegen naar ruim 5 miljard[1].
Eind 2016 zal het aantal WebRTC-devices zijn gestegen naar 3,5 miljard (Bron: Disruptive Analysis).
SPING is voorbereid op deze stormachtige ontwikkelingen rondom WebRTC. Binnen SPING hebben we diepgaande kennis opgebouwd rondom WebRTC en al diverse implementaties en integraties verzorgd. Graag denken we mee over de WebRTC-toepassing die waarde toevoegt aan uw business.

Browsers

WebRTC word ondersteund door meer dan 70% van de Web browsers.
De belangrijkste voorwaarde voor een succes van WebRTC is echter dat er voldoende browsers zijn die de nieuwe standaard ondersteunen zodat er een ‘kritische massa’ is die gebruik kan maken van de nieuwe technologie. De kritische massa die nodig is om de manier waarop we communiceren definitief te veranderen, lijkt inmiddels bereikt. WebRTC werd al ondersteund door de populaire webbrowsers Google Chrome, Mozilla Firefox en Opera die in juni 2017 samen meer dan 70% procent van de markt voor desktopbrowsers in bezit hadden[2]. Daar komt bij dat Chrome ook de standaard browser is op tablets en smartphones met een recente versie van Google’s mobiele besturingssysteem Android.
Inmiddels ondersteunt ook Microsoft (Edge) WebRTC en zal Apple (Safari voor MacOS en iOS) op korte termijn volgen.
Daarbij bezigt Microsoft zich ook met het vergelijkbare Object Real-Time Communications (ORTC) Naar verluidt streeft Google, dat ook heeft meegeschreven aan ORTC, ernaar om ORTC te integreren in versie 1.1 van WebRTC. Deze ontwikkelingen zullen de snelheid van acceptatie verder verhogen.
Een overzicht van de browsers die WebRTC ondersteunen vind je op http://iswebrtcreadyyet.com

Cases

Proof of Concept voor bellen via WebRTC in aanvulling op VoIP

Vacatures

Met 26+ wizards over de vloer zijn we klein genoeg is er weinig hiërarchie of overbodige meetings. Je krijgt veel vrijheid en verantwoordelijkheid, maar dat moet je ook aankunnen. Daarom zoeken we alleen naar de allerbesten!