När jag granskade mina plug-in i Firefox så hittade jag något oväntat. Ett tillägg från Cisco som installeras som standard av Mozilla för att uppfylla krav på H264 i WebRTC…
Men vad är WebRTC, och varför är det installerat i min webbläsare?
WebRTC är ingenting nytt, det är bara så att jag inte uppmärksammat det tidigare. Det är ett öppet protokoll för att utbyta media (ljud, bild, etc) mellan webbläsare direkt (P2P) utan krav på extra plug-in eller andra installationer. All funktionalitet från Skype (exempelvis) är redan installerat i webbläsaren!
Detta skall göra det möjligt att exempelvis skapa videokonferenser på en vanlig enkel webbsida där man inte bara kan titta på varandra och samtala, utan även dela texter, filer och skrivbord. I praktiken skall allt som man normalt behöver en speciell programvara och speciella protokoll och drivrutiner för, kunna göras direkt i webbläsaren med inbyggd säkerhet redan från start.
Det som gör detta intressant för mig är att det inte bara är Open Source, utan även att det fungerar på alla operativsystem, inklusive mobil. I alla fall så länge man inte använder Microsofts webbläsare (Edge i Windows 10 skall ha stöd för WebRTC och Apple WebKit håller på att utveckla stöd.).
Det är framför allt Google och Mozilla (Chrome och Firefox) som är drivande i detta jätteprojekt där som sagt även Cisco är med. Att inte Microsoft är med kan delvis bero på att de redan investerat massor i och med uppköpet av Skype och skapandet av tjänster som exempelvis Lync. Nya Skype byggs dock även det i ett webbgränssnitt och webbläsaren Edge har enligt utsago stöd för WebRTC, så vi går mot en tillvaro där alla webbläsare kommer att ha stöd för det som standard.
Läs mer om WebRTC på https://webrtc.org/
Var finns WebRTC?
Varför finns det då inte fler tjänster med WebRTC som skapar möjlighet att kommunicera med varandra direkt från webbläsaren?
En av de invändningar som man skall ta på största allvar är oron över att WebRTC faktiskt skapar tunnlar direkt mellan webbläsare, rakt genom brandväggar och liknande. Jag är personligen inte speciellt orolig för detta, så länge man litar på sina anställda. WebRTC upprättar en säker anslutning där båda parter måste godkänna anslutningen och användningen av exemeplvis kamera och mikrofon (tjänsten fungerar endast via https). Man skall också komma ihåg att genom att stänga ned WebRTC så hindrar man inte de anställda från att bära med sig ett USB minne med data eller program in och ut från kontoret… Läser man på lite så har WebRTC bättre förutsättningar för säkerhet än de flesta VoIP lösningar som finns på marknaden redan, utvecklare kan dock alltid skapa ”dåliga” säkerhetslösningar i implementeringen av olika tekniker. Jag tycker också att man måste ta ett helhetsgrepp om säkerhet på en arbetsplats och inte bara stoppa det som är enkelt. Speciellt inte när det nu exempelvis är i princip omöjligt att köpa ett nytt LG kylskåp som inte har wifi (http://www.lg.com/us/ces).
Det finns massor av sidor som använder WebRTC, men ingen som jag direkt reagerar på när jag läser en lista på http://www.webrtcworld.com/webrtc-list.aspx. Kanske skulle prova om jag kan skapa en egen sida…
Övrigt
Lite märkligt är det även när man hittar https://www.openwebrtc.org/. Är inte WebRTC Open Source? När man tittar närmare så är jag inte så säker. De skriver att WebRTC är ”free and open”, men licensvilkoren säger inget om källkoden… Hur som helst anger man att OpenWebRTC skall följa den standard som tas fram av WebRTC, så vill man absolut använda öppen källkod så bör man kunna göra det via OpenWebRTC. Det är för övrigt Ericsson Research som håller i koden för OpenWebRTC.
Bygga själv
Hur bär man sig då åt om man vill bygga in WebRTC, eller OpenWebRTC på en webbsida? Det är kanske lite krångligare än vad jag först trodde, men det borde inte vara speciellt svårt. All funktionalitet finns redan inbyggd i webbläsaren, så det ”enda” en tjänst behöver tillhandahålla är ett sätt för klienterna att ”skaka hand” och ett gränssnitt för att sedan börja utbyta information.
Det finns lite demo appar på https://webrtc.github.io/samples/ där man kan testa ganska mycket av funktionaliteten i ett enkelt gränssnitt.