WebRTC Stefan Otto Samling: UNINETT sanntid og ecampus Oslo: 2. - 4. Desember 2014
Agenda Lync utviklingsplattform WebRTC WebRTC: Work done by Uninett i år Pause Nye ideer og framtidsplaner Diskusjon / Feedback
Lync utviklingsplattform Hvorfor utvikle imot lync? Integrasjonsløsninger Videorom løsninger Sentralbord Nettleser Utvide bruk av lync: Interaktive e-learning Videostrømning Semiautomatisert videoopptak...
Lync utviklingsplattform Lync mobile Lync desktop klient Lync web app My web app UCWA JS OM UCWA UCWA Media plugin HTTP UCWA Audio Video Presence... Video Presence... SIP UCMA Audio SIP Lync server UCWA Media plugin
Plattformstøtte UCWA Mobile plattformer (WindowsPhone, ios, Android) UCWA JS OM (jlync) Audio/video bare med plugin Windows 7, 8(Desktop), 8.1 (Desktop), MacOS X > 10.6 UCWA JS OM med WebRTC støtte Plattform uavhengig
WebRTC Kommunisere via web med noen eller noe i sanntid Transport av lyd, video og/eller data Nettleser API Kommunikasionsprotokoller Codecs
The big picture Signalering (f.eks. SIP/xmpp/text) Lyd / bilde / data peer 1 peer 2
Standardisering Web Application Signaling partner ( node.js / xmpp-server / SIP-server /? ) Browser Ikker definert! Web Application (Javascript/HTML/CSS) Standardisering WebRTC API Browser Browser WebRTC stack Network protocols Browser WebRTC stack
Standardisering Web Application SDP offer Browser SDP answer Web Application (Javascript/HTML/CSS) Standardisering WebRTC API Browser Browser WebRTC stack Network protocols Browser WebRTC stack
Demo http://cjb.github.io/serverless-webrtc/serverless-webrtc.html
WebRTC Nettleser API Tilgang til mic & cam Etablere kommunikasjonskanaler Sende og ta imot audio & video strømmer Sende og ta imot vilkårlig data
Mic and cam navigator.getusermedia() > MediaStream: MediaStream MediaStreamTrack video cam + mic input MediaStreamTrack Audio (stereo) left right output <video> / RTCPeerConnection
Use case guitar tuner http://www.freetuner.co/
Use case - ascii-camera http://idevelop.ro/ascii-camera/
Use case Gesture Control http://iambrandonn.github.io/webcamswi per
WebRTC API Web Application (Javascript/HTML/CSS) Web Application (Javascript/HTML/CSS) Browser Browser WebRTC stack Browser Browser WebRTC stack
WebRTC API Web-utviklere må ikke bryr seg om: Nettwerkprotokoller (ICE,STUN,TURN,UDP,TCP) Kryptering (SRTP,DTLS) Autmatisert jitter buffer Codecs Audio (G.711, Opus, EAC, Comfort Noise, FEC) Video ( VP8, H264 )?
Nettleser-støtte http://iswebrtcready.com
Microsoft http://status.modern.ie/webrtcobjectrtcapi
Microsoft 14.11.2014: Skype for web Beta (fortsatt plugin basert) Internet Explorer: Støtte for ortc (WebRTC1.1) Video codec H.264 Støtte i Lync?
Plattform-støtte Nettleser: Desktop (Chrome, Firefox, Opera, (IE) eller plugin basert Safari) Android (Chrome, Firefox) FirefoxOS Native Applikasjoner Desktop (WebRTC SDK fra google (Windows, MacOS, Linux), OpenWebRTC(Ericsson), PhoneGap) ios (PhoneGap, OpenWebRTC(Ericsson), WebRTC SDK port til ObjectiveC) Android (PhoneGap, webview, peerconnection.java, OpenWebRTC(Ericsson), WebRTC SDK ) Embedded (PhoneGap, WebRTC SDK må man portere selv!)
WebRTC standardisering status Working draft Video codec VP8 / H264 ferdig?! Video constraints nesten ferdig Recording API in progress ID / Auth in progress WebRTC1.0 WebRTC1.1 (ortc) Kompatibilitet til 1.0? VP9 / H265?
Ideal verden Not defined signaling mechanism (f.eks. SIP/xmpp/text) Web Application Browser A Media / data Web Application Browser B
Bak NAT med STUN Not defined signaling mechanism (f.eks. SIP/xmpp/text) NAT Web Application Browser A NAT STUN STUN media / data Web Application Browser B
Bak brannmur med TURN Not defined signaling mechanism (f.eks. SIP/xmpp/text) firewall Web Application firewall STUN STUN Web Application Browser B Browser A TURN media / data TURN
Work done by Uninett Utforske WebRTC Følge opp standardiseringprosessen (ietf/w3c) Utforske prosjekter som driver med WebRTC Bygge en eksempel-installasjon Samle praktiske erfaringer med nettverk (TURN/STUN) Utforske forskjellige signaleringsprotokoller (SIP/JS/XMPP) Samle erfaringer med WebRTC nettleser API Bygge SIP-WebRTC gateway for audiosamtaler Bygge «proof of concept» videokonferanse-løsning Bygge «proof of concept» kommunikasjonsklient med feide integrasjon
Webrtc første skritt
Webrtc første skritt http://webrtc.akademia.no:8080 Basert på easyrtc http://easyrtc.com/ Node.js for signallering Enkelt bruk av WebRTC API STUN / TURN server
WebRTC kommunikasjonsklient med feide Serverside: nova platform debian wheezy node.js (user profiles / communication with UWAP) signalling xmpp (prosody) rfc5766 TURN server Clientside UWAP authentication / groups / searching p2p audio and video WebRTC file sender p2p WebRTC chat (xmpp based) Buddylist
meet.akademia.no meet.akademia.no webclient Webserver (nginx) Xmpp (prosody) TURN/STUN (rfc5766) Videobridge (jitsi) Demo: http://meet.akademia.no/stefano Webclient (behind firewall)
Klassisk web-konferanse 1 opp og 1 ned-strømm for hver klient For video med 1 Mbit/s: 1Mbit/s for her klient opp og 1 mbit/s ned server
Klassisk web-konferanse Selective Forwarding Unit (SFU) 1 opp og n-1 ned-strømm for hver klient For video med 1 Mbit/s: 1Mbit/s for her klient opp og 4 mbit/s ned server
Flerpart p2p N=5: (n-1) opp og (n-1) ned for hver klient 1 Mbit/s per strøm: 4 Mbit/s for hver klient opp og ned For vanlig DSL nett er det allerede for mye Appear.in
p2p kombinert med sentral konferanse server conference server Low-bandwidth klienter kan dynamisk bytte til en sentral servertjeneste
Performance jitsi-videobridge 1 normal server med standard hardware Omtrent 1000 strømmer samtidig 550 mbit/s 20% CPU ytelse Tilsvarer: Omtrent 30 deltaker Konferanse eller 50 samtidige konferanser med 5 deltaker eller 250 samtidige 1 til 1 samtaler Renater (frankrike): 11.000 konferanser med ca. 27.000 deltakere i løpet av november 2014 Framtid: skaleringløsning
Jitsi båndbrede CPU / antall strømmer
Lync-WebRTC integration with a WebRTC cloud service WebRTC Client WebRTC Client (jlync/ucja) Lync UCWA WebRTC A/V cloud service Lync UCMA Lync client Lync Uninett Sanntid SBC PSTN
WebRTC cloud service WebRTC cloud service Client API cloud controller Controller Controller Controller Client MCU MCU MCU
WebRTC client in Lync meeting Lync-Client Lync-Client WebRTC-Client (jlync/ucja) Lync UCWA Lync UCMA Lync meeting jlync / UCJA Javascript Object model Audio / video / presence / contacts / auth / groups / IM UCWA Available with Lync 2013 Unified Communication Web API Http based API So far: presence / contacts / Auth Groups / IM
Lync Client in WebRTC meeting WebRTC service 1 WebRTC Client meeting 2 4 (jlync/ucja) Lync UCWA Lync UCMA Lync Client 3 Lync 1. create meeting 2./3. send message with URL to Lync contact 4. Lync opens URL in WebRTC compatible Webbrowser
WebRTC - SIP WebRTC-SIP gateway: Kamailio Asterisk Webrtc2sip (doubango telecom) Freeswitch... Client-side: SIPml5 Jssip Sip.js PSTN / SIP world WebRTC-SIP gateway SIP WebRTC-Client SIP WebRTC-Client
Klassisk audio konferanse med WebRTC-gw SIP Client PSTN telephone telephone conference server WebRTCgateway SIP WebRTC-Client SIP WebRTC-Client
WebRTC konferanse SIP WebRTC-Client SIP WebRTC-Client WebRTC conference server SIP-WebRTC gateway SIP Client
Use case TogetherJS Mozilla collaborative browsing https://togetherjs.com/examples/drawing/
Nubomedia.eu EU commission fundet (4 M ) Basert på Kurento.org Gstreamer for video en/decoding PaaS: interactive social media tjenester i skyen Tidsplan: 32 måneder (Feb 2014 Sept 2016)
Use case p2p networks http://webtorrent.io - Torrent client for the browser / node ( DHT ) http://peersm.com/peersm TOR-node combined with a torrent-client ( DHT, WebRTC based network ) Video streaming Create your own network protocol / topology Use of DHT for network topology / routing can be used for signal-infrastructure or for replicated/distributed DBs
Use case PeerCDN Webserver Client1 Client1 Client1 Client1 Client1 Client1 Client1 Client1 PeerCDN.com acquired by yahoo Client1
Collaborative browsing Mozilla collaborative browsing https://togetherjs.com
Use case see what I see! Screen sharing (VP9 text rendering) Service Helpdesk http://www.bemyeyes.org Google glass!
Use case double robotics http://www.doublerobotics.com/
Use cases Cardboard VR for your Android phone https://cardboard.withgoogle.com/ Add WebRTC to see what your robot sees in 3D
Use case FirefoxOS loop
Use case rapt.fm Live rap battles
Use case Amazon mayday Amazon Kindle Fire Connect to a Tech Advisor with the Mayday Button 24/7/365 Amazon's Tech Advisors don't see you, just your screen.
Resumé Bedre innsikt i tekniske detaljer om WebRTC og Lync i denne sammenheng WebRTC er bare en teknologi ikke en løsning Det er ikke bare Videokonferanse Hva Uninett Sanntid driver med Sensibilisere om problematikken om federering / globalere fokus