WebRTC: The Journey From Browser Plugins to Thin Client Communications
Keith Griffin PhD Office of CTO, Collaboration Technology CTHCOL-1001 Cisco Spark
Questions? Use Cisco Spark to chat with the speaker after the session
How 1. Find this session in the Cisco Live Mobile App 2. Click “Join the Discussion” 3. Install Spark or go directly to the space 4. Enter messages/questions in the space
Cisco Spark spaces will be cs.co/ciscolivebot#CTHCOL-1001 available until July 3, 2017.
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Agenda
• Introduction
• Our Journey to WebRTC
• Browser Plugins
• The End of The Beginning
• WebRTC as an Enterprise Media Termination Solution
• WebRTC in Cisco Collaboration
• Demo
• Summary Introduction About WebRTC
• What is WebRTC: • WebRTC is an API definition being drafted by the World Wide Web Consortium (W3C) • It is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple JavaScript APIs • What is the merit of WebRTC: • WebRTC enables applications such as voice calling, video chat and P2P file sharing inside the browsers without plugins (or separate clients)
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 6 Interactive Voice and Video in the Browser...
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 7 But...
• Proprietary – no interoperability
• Requires 3rd party plugins
• Difficult to deploy (permissions, etc...)
• Not available on all platforms
• Needs to updated
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 8 Browser Plugins for Media Termination UC/Video has traditionally not been directly deployable in Browsers. Plugins and native apps fill these gaps
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 10 And Mobile Browsers Are Not Extensible Native mobile apps are required
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 11 The end of the beginning
Timelines to deprecate plugins: 2014-2016 Different Browsers, Different Plugins
• NPAPI – Netscape Plugin API • A cross platform browser plugin architecture in:
• Chrome “Today’s browsers are speedier, safer, and more capable than their ancestors. • Firefox Meanwhile, NPAPI’s 90s-era architecture has become a leading cause of hangs, crashes, security incidents, and code complexity. Because of this, Chrome will be • Safari phasing out NPAPI support over the coming year.” http://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html
• ActiveX • A browser plugin architecture created by Microsoft based on its COM (Common Object Model) and OLE (Object Linking and Embedding) technologies • Internet Explorer
Browser Plugin Technologies stem from developments in the mid-nineties
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 13 Browser Market Share
Usage share of PC browsers for December 2016
Source Chrome IE Firefox Safari Edge Others NetMarketShare 56.43% 20.84% 12.22% 3.47% 5.33% 1.70% StatCounter 62.66% 9.86% 14.95% 5.1% 3.37% 4.06% W3Counter 56.6% 7.7% 11.1% 14.5% 2% 8.1%
http://en.wikipedia.org/wiki/Usage_share_of_web_browsers
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 14 WebRTC as a Media Termination Solution for Enterprise Collaboration WebRTC in a HTML5 Context
SEMANTICS MEDIA & GRAPHICS
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 16 WebRTC Native Browser Architecture
Collaboration Apps
WebRTC Javascript API
WebRTC WebRTC Native API (C++)
Session Management (SDP)
Voice Engine Video Engine Transport
Voice Codecs Video Codec Encryption / Security Noise Packetisation Reduction Jitter Buffer Multiplexing Echo Image Cancellation Connectivity Enhancements ICE, STUN, TURN
Adapted from WebRTC architecture diagram BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 17 WebRTC in Cisco Collaboration Products WebRTC in the Collaboration Portfolio Product Coverage • Cisco Spark Web Client • Cisco Spark SDK • Webex Web App via WebRTC VoIP/Opus • Attendee Mode • Webex on Chromebook • Variation of Webex Web App • WebRTC attendee video support via hardware enabled H.264 • Remote Expert Mobile / Jabber Guest
• Enablers: Industry components such as browsers directly impact • H264 based WebRTC support in browsers product direction – enablers must be fully capable • Firefox currently supports H.264 before product can adopt • Chrome currently adding H.264 • Apple announced WebRTC support in June of this year • Microsoft Edge announced support for WebRTC in January of this year »Currently in Edge Preview Build »https://developer.microsoft.com/en-us/microsoft-edge/platform/status/h264avcforrtc/?q=h264
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 19 Cisco Spark Web Client and SDK Cisco Spark SDK for JavaScript Resources Quick Start Guide https://ciscospark.github.io/spark-js- sdk/example/getting-started/ Sample App https://ciscospark.github.io/spark-js-sdk/app/ Open source code https://github.com/ciscospark/spark-js-sdk API reference https://ciscospark.github.io/spark-js-sdk/api/
And more to come …
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 21 Spark SDK - Features
Call & Other Calling Specs Media Controls Functions
• Calling • Call Control • Persistent iOS SDK - swift registration • Call Events • Audio Control • iOS 9 and 10 • Feedback JS SDK - WebRTC • Video Control • Push • Chrome - current notifications • Firefox - current CODECS • H264 • Opus
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 22 Cisco Spark SDK & Widget – Calling Capabilities
Spark SDK & Widget can dial
• Spark SDKs
• Spark Widgets
• Spark clients
• Spark phones
• SIP URI – Cisco or any 3rd party
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 23 Incoming Call Notification
JS SDK uses WebSocket iOS SDK uses APNS
• Supported by all browsers • Incoming calls trigger a Spark membership webhook • Notifications sent to website opened in a running • Webhook registered to browser window developer’s server which calls APNS • Push notifications differ and are supported by • Documentation coming soon few browsers
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 24 Cisco Spark SDK– Calling Capabilities Spark Hybrid services
Your Pocket • Call Service Connect App & • Directory Service Spark Cisco® SDK Cisco Spark Service Collaboration Message | Meeting | Call Cloud Internet
Cisco Hybrid
PSTN Cisco Collaboration Edge Architecture Cisco On-Premises and Unified Customer Conferencing Partner-Hosted HCS Communications Care Boardroom
End to End Security
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 25 SDK & Widgets Roadmap • SDKs for iOS and JavaScript : • Group space calling • Screen sharing • Guest ID model • SDK for Android • Widgets: • Group space calling • @mentions • Roster management • Search • Guest ID
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 26 Webex Clients
27 Webex Client High Level Browser Architecture
HTML / Javascript
Plug-in Interface
WebEx Meeting Client WebRTC
Voice Video Share
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 28 Desktop Join Experience
Browser Meeting Join
Internet Explorer ActiveX
Firefox NPAPI (Whitelist) -> Extension
Chrome Chrome Extension and Native Messaging
Edge TFS, IE
Safari NPAPI Plugin
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 29 WebEx Web App (Formerly known as “Browser Client”) What is the WebEx Web App?
• The Web App allows you to join meetings fast, with no installation on your computer (no downloads/plug- ins).
• Based on HTML5/WebRTC technology, this version is available for attendees only. (Hosts will only be able to use the desktop app (full client experience).)
• Currently in Limited Rollout by request
• To join using browser, simply click the “Join using browser” link on the meeting join or Personal Room page.
Join Page
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 31 Supported Platforms/Browsers in 2.0
Microsoft Windows 7 or Later Mac OSX 10.8 or Later Feature IE10 or Later Chrome 49 or Firefox 45 or Feature Safari 7.0 or Chrome 49 Firefox 45 or Later Later Later or Later Later Join a meeting Yes Yes Yes Join a meeting Yes Yes Yes Switch to the full meeting experience Yes Yes Yes Switch to the full meeting experience Yes Yes Yes View shared screen, applications, or files Yes Yes Yes View shared screen, applications, or files Yes Yes Yes View media files No No No View media files No No No View whiteboard and annotation Yes Yes Yes View whiteboard and annotation Yes Yes Yes Chat Yes Yes Yes Chat Yes Yes Yes Telephony (Call-in/Call Me) Yes Yes Yes Telephony (Call-in/Call Me) Yes Yes Yes Call back to a video system Yes Yes Yes Call back to a video system Yes Yes Yes Call using a computer No Yes Yes Call using a computer No Yes Yes Receive video (multi-way video, 720p) No No Yes Receive video (multi-way video, 720p) No No Yes Send video No No Yes (480p) Send video No No Yes (480p)
Linux (Ubuntu 14.x, OpenSuSE 13.x, Fedora 18, 19, Red Hat 6,7, and Debian 8.x) Chromebook Feature Firefox 45 or Chrome 49 Chromium Feature Chrome 49 later or later or Later Join a meeting Yes Yes Yes Join a meeting Yes Switch to the full meeting experience Yes N/A N/A Switch to the full meeting experience N/A View shared screen, applications, or files Yes Yes Yes View shared screen, applications, or files Yes View media files No No No View media files No View whiteboard and annotation Yes Yes Yes View whiteboard and annotation Yes Chat Yes Yes Yes Chat Yes Telephony (Call-in/Call Me) Yes Yes Yes Telephony (Call-in/Call Me) Yes Call back to a video system Yes Yes Yes Call back to a video system Yes Call using a computer Yes No No Call using a computer Yes Full details: Receive video (multi-way video, 720p) Yes No No Receive video (multi-way video, 720p) No https://help.webex.com/docs/DOC- Send video Yes (480p) No No Send video No 2486
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 32 Demo
Webex Web App Screenshare W3C Share Specification http://www.w3.org/TR/screen-capture/
• Share a users screen via WebRTC • Share the visible or logical display • Considerations • Security • Authorisation: User consent
• Proprietary Screen Share is possible in most browsers.
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 35 WebRTC Screen Share
• Introduction of getDisplayMedia method on the NavigatorMediaDevices interface (similar to getUserMedia)
• NavigatorUserMedia { getDisplayMedia (MediaStreamConstraints constraints); };
• MediaTrackConstraintSet { ConstrainDOMString displaySurface; ConstrainBoolean logicalSurface; };
• enum DisplayCaptureSurfaceType { "monitor", "window", "application", "browser" };
•
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 36 Non-WebRTC Screen Share Status Feature Firefox Chrome
Application Type Drive by web / Web App Chrome Packaged App
Share Screen Yes Yes
Share Window Yes Yes
Share Application Yes No
Share Tab No Yes
User Consent Required Yes Yes Selection UI Drop-down Pop-out
Screen Share UI Top Centre of Screen Strip below browser
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 37 Demo
Building a WebRTC Client – Demo Code WebRTC: Browser Readiness for Collaboration
IE/Win Win 10 / Edge Safari/Mac FireFox Chrome Chromebook (10+ only) (7+ only) (WebRTC) (WebRTC) (WebRTC)
VoIP No WebRTC – WebRTC/ORTC Announced Opus / G711 - Opus / G711 - Opus / G711 - Plugin Only Win10 Preview WebRTC WebRTC WebRTC Video No WebRTC – WebRTC/ORTC Announced H.264** / VP8 VP8 / H.264 H.264 / VP8 Plugin Only Win10 Preview Share No WebRTC – TBD TBD WebRTC WebRTC WebRTC Plugin Only (TBD*) (TBD*) (TBD*) Telephony Callback Callback Callback Callback Callback Callback
• * WebRTC Share standard extension definition underway • ** OpenH.264 currently in Firefox • Considers interoperability
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 39 Is WebRTC Ready Yet - Browser Scorecard
http://iswebrtcreadyyet.com/ BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 40 Wrap Up… Summary
• WebRTC can change the way we communicate in browsers, mobile and fixed endpoints.
• Standards and Industry Direction continues to evolve
• Increasing Browser Adoption
• Product Development underway • Enabling real product development as browsers adopt
• Progress and adoption is good but much more to do. • Dependency on browser adoption and more
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 42 Complete Your Online Session Evaluation
• Give us your feedback to be entered into a Daily Survey Drawing. A daily winner will receive a $750 gift card. • Complete your session surveys through the Cisco Live mobile app or on www.CiscoLive.com/us.
Don’t forget: Cisco Live sessions will be available for viewing on demand after the event at www.CiscoLive.com/Online.
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Continue Your Education
• Demos in the Cisco campus
• Walk-in Self-Paced Labs
• Lunch & Learn
• Meet the Engineer 1:1 meetings
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 44 Thank you Acknowledgements
• Acknowledgements • Enda Mannion • Cullen Jennings • Olivier Profitt • Rai Johnson
BRKCOL-2556 © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 46