Presentation from GDG DevFest Ukraine 2015 - the biggest Google related event in the country. October 23-24, Lviv. Learn more at http://devfest.gdg.org.ua/
What exactly is WebRTC and what does it solve ? WebRTC Architecture & API’s Three Main API Servers & Protocols WebRTC needs servers 05 Building a WebRTC App How can we include webRTC to our mobile apps? Useful Links
web apps? Use Session Initiation Protocol (SIP) ??!… - Has to use a browser plugin for SIP stack thus there is no out of the box SIP support inside web browsers - My website will not function properly unless web users install my plugin - Have to utilize SIP equipment on server side - Have to deal with highly complex SIP signaling during development cycle
embedded in browsers no plugin required - Security is provided by browser vendors web users do not have to trust third party plugins - Web users do not have to deal with plugin installation, web apps will function properly with the embedded WebRTC support - No sophisticated telecom expertise is necessary to be able to provide multimedia communication functionality WebRTC - No need for sophisticated telecom equipment for backend
Facebook WhatsApp LinkedIn Twitter Facebook Android iOS 0 200 400 600 800 1000 1200 1400 1600 Millions Statistics based on PrioriData, Oct 2014 Social and Messaging Application Downloads
project. WebRTC can be used by anyone for anything without any payment Plugin Free WebRTC is embedded in browsers no plugin required For non-VoIP developers WebRTC hides complexity of media streaming, encoding/decoding media processes. Any web/mobile developer who has no telco background can develop RTC app. Low Cost It enables peer to peer communication and you can add multi media to your application without any need to media server What makes WebRTC different ?
Feb 2013 May 2013 Jun 2013 Source BlogGeek.me WebRTC Announced Google releases WebRTC source code for the first time under a permissive BSD license Chrome 23 adds No optional flag is required. Data channel capabilities not supported Firefox 20 adds WebRTC First release of Firefox supporting WebRTC. Comes with getUserMedia support only, which gives access to the local camera Interoperability Initial interoperability between Chrome and Firefox browsers achieved. This is still early on in the process, so things still don’t work as expected, but this is an indication of things to come Firefox 22 released First Firefox release that officially supports the ability to make video calls as well as use the Data channel API ObjC&Java Bindings Objective C and Java bindings for WebRTC announced.
Oct 2013 Mar 2014 May 2014 Oct 2014 Microsoft announced ORTC support Microsoft officially announced plans to support ORTC (WebRTC 1.1) in a future release of IE Chrome for Android Chrome 29 for Android now fully supports WebRTC Firefox for Android Firefox for Android supports WebRTC Opera 18 Beta intros First Opera released based on Chromium, providing immediate WebRTC support Opera for Android with WebRTC Opera 20 for Android has WebRTC in GA Microsoft promises to support GUM Microsoft indicates in its IE status page that it plans to support GetUserMedia APIs in its next version of Internet Explorer
and still ignoring it) Aquired ScreenHero, who use WebRTC for screen sharing Has integration with WebRTC vendors appear.in, Hangouts, Room etc. Rebranding of Lync to Skype for Business Announced Skype for Web Uses WebRTC as a browser access point to Skype Anounces WebRTC usage in Jan5, 2015 First U.S Carrier to Launch Commercial Support WebRTC Provides its own WebRTC API with several enhancements Introduced video calling using WebRTC PaaS Didn’t want users to “migrate” to Skype for interactions In first 3 months 150,000 calls with 2,500,000 minutes of video calls Facebook Announces in April, 2015 Messenger will use WebRTC for voice and video call Before WebRTC, Messenger uses Skype as VoIP
2015 2,000+ visitors per day to the developer docs 1,000+ visitors per day to the sample code 4,000+ developers subscribed to the WebRTC mailing list 300K+ views of Webrtc.org developer videos 600+ companies building on WebRTC 40+ external contributors 3B+ total downloads of WebRTC- powered mobile apps
standard specification WebRTC 1.0 webrtc.org the standart specification not yet completed handled by the IETF and W3C the open source project by Google implementation of WebRTC spesification can be used by anyone for anything
stream Can contain multiple track Can access camera and microphone Peer to peer multi media communication Encoding&Decoding media (codecs) Sends media over the network Security Bandwidth management P2P communication of arbitrary data Low latency Unreliable or reliable Secure
by WebRTC - To avoid redundancy - To maximize compatibility with established technologies Signaling is the process of coordinating communication. In order to set up a call, clients need to exchange some information : - Session control messages used to open or close communication - Media metadata such as codecs, bandwidth and media types - Key data, used to establish secure connections - Network data, such as host IP address and port
? Sign Sign NAT STUN STUN TURN TURN NAT media - Used to relay audio/video/data streaming between peers - Data sent through server, uses server bandwidth TURN - The call works in almost all environments with using TURN
Peer Connection Application Create Connection Factory Create Peer Connection Create Local Media Stream Create Local Video Track Create Local Audio Track Add Stream Commit Stream Changes On Signalling Message (offer) Send Offer To Remote Peer Get Answer From Remote Peer Process Signalling Message (answer) Media
Application Create Connection Factory Create Peer Connection Create Local Media Stream Create Local Video Track Create Local Audio Track Add Stream Commit Stream Changes On Signalling Message (answer) Send Offer To Remote Peer Media On Add Stream Receive Answer From Remote Peer Process Signalling Message (offer)