1. WebRTC
What’s going on and is it of use to NRENs
Mihály Mészáros, NIIF Institute
eduCONF Workshop
13/03/14
2. 2Connect | Communicate | Collaborate
Agenda
● Overview, WebRTC and RTCWEB History, API
● WebRTC and NRENs: Is it a good idea to jointly develop
WebRTC based RTC service pilot for the GÉANT community?
● Roll Call, status of NREN Web / Desktop Conference services
● adapt the technology level of the training to audience preference
● RTCWEB architecture, a technology deep dive, (nuts & bolts)
● NAT Firewall traversal, codecs, security, identity, troubleshooting
● Experience WebRTC (demonstrations, games)
● Building real world service Frameworks, tools
● Components to build a real world WebRTC service
● SWOT Analysis. Is WebRTC Ready? What would it take?
● Predictions & Summary, WebRTC related Open Discussion
3. 3Connect | Communicate | Collaborate
History
● Global IP Solutions
● In May 2010, Google bought GIPS for $68.2 million.
● May 31, 2011 Google released Open Source WebRTC.
● mainly based on GIPS technology
● Dual Standardization Bodies
● RTCWEB IETF 2011-05-01
● WebRTC W3C 2012-09-12
● Aug 1, 2012 getUserMedia in Chrome 21
● Oct 2, 2012 PeerConnection in Chrome 23
● Nov, 2012 PeerConection in stable Chrome
● Feb 4, 2013 Firefox and Chrome interoperability achieved
● 2013 Hangouts VP8, 2014 Hangouts + WebRTC (H2O Vidyo)
4. 4Connect | Communicate | Collaborate
What is WebRTC ? (RTCWEB)
● WebRTC: “A framework, protocols
and application programming
interface that provide real time
interactive voice, video and data in
web browsers and other applications”
● Standardization
● WEBRTC (W3C) part of HTML5
● RTCWEB (IETF)
● / IMS_WebRTC(3GPP) /
● Implementation
● Chrome, FireFox, Opera, Browser
(Ericsson Research), etc.
● WebRTC native JAVA / C++ API
support
● for Browsers and Apps
● Android, iOS(?)
5. 5Connect | Communicate | Collaborate
WebRTC
● WebRTC Peer to Peer Direct media
● Abstract signaling
● Hides complexity from the web developer
● Browser do the heavy lifting
● Signal processing
● Codec handling
● Audio Video synchronization
● Echo cancellation
● Peer to peer communication
● Firewall/NAT traversal
● Security
● Bandwidth management
6. 6Connect | Communicate | Collaborate
WebRTC API
● Major API Components
● GetUserMedia
● Acquiring audio and video
● which allows a web browser to access the camera and microphone
● DataChannels
● which allow browsers to share data via peer-to-peer
● PeerConnection
● P2P Communication
● Codec negotiation, Security
● Media handling, Bandwidth Management
● etc.
● Peer-to-peer DTMF
● RTCStatsReport
● Identity
7. 7Connect | Communicate | Collaborate
WebRTC API vs Alternative APIs
● Current nearly 1.0 WebRTC API couldn't be perfect.
● World Wide consensus is big challenge.
● First make API stable.
● Redesign takes time. So redesign only after stable API 1.0
● http://dev.w3.org/2011/webrtc/editor/webrtc.html
● http://dev.w3.org/2011/webrtc/editor/getusermedia.html
● API Alternatives
● WebRTC Object API (ORTC)
https://rawgithub.com/openpeer/ortc/master/ortc.html
http://www.w3.org/community/orca/
● Microsoft (CU-RTC-Web)
http://lists.w3.org/Archives/Public/public-webrtc/2012Aug/0014.html
8. 8Connect | Communicate | Collaborate
WebRTC and NREN's
● TNC2013 TERENA Technical Advisory Council
● Jan Meier: WebRTC Why you should care?
● Big Blue Button WebRTC Support
● Donated by UNINET, NorduNet
● 2013 Aug 26 WebRTC meeting
● Big Blue Button WebRTC support (NORDUNET)
● Videoconference Gateway/MCU (NIIFI, JANET)
● Lecture Recording (REDIRIS)
● GN4 New Idea From
● Open Mailing lists
● discussion@nrenum.net
● webconf@terena.org
9. 9Connect | Communicate | Collaborate
Look under the hood technology vs.
High-level overview
10. 10Connect | Communicate | Collaborate
Introduction / WAYF / Roll Call
● What do your prefer / expect from this WebRTC training?
● High level overview, status, possible directions, implementations
● Deep dive in technical details (nuts and bolts)
● What do you know already about WebRTC technology?
● What functions are mandatory to implement in RTC collaboration
solution beyond video conference today?
● Secondary video/Presentation sharing, Buddy list,Presence,
Calendar integration, Directory / Phonebook, File sharing, IM/Chat,
Whiteboard, integration API MOOC/eLearning etc.
● What solutions does your NREN use today for Desktop/Web
Videoconference? (What are the limitations of such product?)
● Does your NREN provides STUN/TURN service?
● Is the exotic platform support is important for your NREN?
e.g. Linux distributions, mobile platforms
11. 11Connect | Communicate | Collaborate
Technically
● W3C WebRTC JavaScript API
● WebRTC use abstract signaling protocol
● Designed in mind SIP, XMPP/JINGLE
compatibility
● WebRTC signaling is fully application
specific
● Security Architecture
● IETF RTCWEB WG (wire protocols)
● NAT / Firewall traversal
● IPv4/IPv6
● Multiplexing data/media
● Security
● Identity,Encryption, Privacy
● DTLS-SRTP, SDES-SRTP (Audio,
Video)
● SCTP over DTLS (Data)
● Fresh / Current / leading edge
IETF standards
● backward compatibility issues
● SDP capability description
● media bundling
● ICE (STUN/TURN)
● Trickle ICE
● Congestion Control
● RTP SAVPF
● RTCP feedback
● multiplexing
● RTP RTCP
● RTP multiplexing (audio video)
● codecs (e.g. VP8, Opus, etc.)
17. 17Connect | Communicate | Collaborate
Standard Based Firewall/NAT Traversal
● ICE RFC5245 (STUN/TURN)
● Tries to find the best path
● Firewall traversal
● IPv4, IPv6 Inter-working
● Multiple IP addresses
● Beyond ICE
● RFC5245 drawback
● lengthy
● Trickle ICE draft
● Reducing session establishment time
● Reducing ICE processing times
● Incremental Provisioning of Candidates
for the Interactive Connectivity
Establishment (ICE) Protocol
● XMPP XEP-0176
● Implemented
18. 18Connect | Communicate | Collaborate
ICE vs. Trickle ICE
Slide from: trickle-ice-iet86-orlando.pptx
STUN
Server
STUN
Server
BobAlice
disco
disco
offer and
candidates
…
connectivity
checks
…
answer and
candidates
Vanilla ICE as per RFC 5245
STUN
Server
STUN
Server
BobAlice
disco disco
O/A with host
or no cands
…
more cands &
conn checks
…
20. 20Connect | Communicate | Collaborate
Protocol Stack
● Peer-to-Peer media communication
● RTCP Multiplex
● Media Multiplex (audio, video)
Image source: http://www.sloreto.com/slides/Aalto022013WebRTC/images/protocolStack.jpg
21. 21Connect | Communicate | Collaborate
Security
● Trust in your browser only (TCB)
● Secure End to End Communication
● getUserMedia
● Secure User Interface opt-in (e.g. Camera, audio access)
● User can allow/deny audio video source usage
● Media/Data Encryption is mandatory!
● DTLS-SRTP / DTLS
● SDES-SRTP - “MUST NOT implement” according IETF 87
http://tools.ietf.org/agenda/87/slides/slides-87-rtcweb-5.pdf
● AAI identity provision
● WebRTC Security framework
● SDP attached Identity Assertion (a=identity: base64)
● Signaling protocol is not defined by WebRTC
● Use secure signalling e.g. SIP over WSS(TLS+WebSocket)
22. 22Connect | Communicate | Collaborate
RTCWEB Security architecture Overview
+----------------+ Unspecified +----------------+
| | protocol | |
| Signaling |<----------------->| Signaling |
| Server | (SIP, XMPP, ...) | Server |
| | | |
+----------------+ +----------------+
^ ^
| |
HTTPS | | HTTPS
| |
| |
v v
JS API JS API
+-----------+ +-----------+
| | Media | |
Alice | Browser |<--------------------------->| Browser | Bob
| | DTLS+SRTP | |
+-----------+ +-----------+
^ ^--+ +--^ ^
| | | |
v | | v
+-----------+ | | +-----------+
| |<-------------------------+ | |
| IdP1 | | | IdP2 |
| | +------------------------>| |
+-----------+ +-----------+
A federated call with IdP-based identity
25. 25Connect | Communicate | Collaborate
Codecs
● Audio
● Opus (royalty free, RFC 6176) , Opus 1.1 mobile
● iSAC (internet Speech Audio Codec)
● iLIBC (internet Low Bitrate Codec RFC 3951)
● G.711 (alaw/ulaw)
● Automatic Gain Control (AGC)
● Acoustic Echo Cancellation (AEC)
● Video
● VP8 Chrome, Firefox
● H.264 Browser(Ericsson Lab), (Firefox planed)
● Future HEVC/H.265 (SVC), VP9 (Vidyo&Google VP9 SVC)
● VoiceEngine, VideoEngine, NetEQ, AEC, etc. all stem from the GIPS
acquisition
26. 26Connect | Communicate | Collaborate
Battle for Mandatory To Implement(MTI)
Video Codec
● Battle for WebRTC mandatory to
implement (MTI) codec
● Audio MTI codecs
● G.711 (alaw/ulaw)
● Opus
● Video (?!)
● Google
● Hangout H.264=>VP8
● Chrome only VP8/VP9 support
● Cisco
● Cisco will open H.264 codec
● Cisco will pay MPEG LA
● Mozilla will support Cisco binary
H.264 codec
● http://www.openh264.org/
● video codec proposals,
and backers
● VP8 (VP9)
● Google
● H.264 (H.265)
● Ericsson
● Nokia
● BlackBerry
● Qualcomm
● Orange
● Cisco
● Microsoft
● Apple
● Both has Pros & Cons
31. 31Connect | Communicate | Collaborate
JsSIP
● http://tryit.jssip.net/
● Use generated account, or use your own sip account
● You can follow SIP messages in JavaScript console
37. 37Connect | Communicate | Collaborate
Multipoint
● Peer 2 Peer
● One to One
● Mesh
● Small N-way
● Focus Point / Star
● Medium N-way
● MCU / Mixer
● Large N-way
● Video Router
● Large N-way
● Simulcast, layered, scalable
video coding support
Image source:
http://webrtchacks.com/webrtc-beyond-one-one/
38. 38Connect | Communicate | Collaborate
MCU, Gateway, SBC
● MCU
● WebRTC is about Peer2Peer
● So limited Multipoint
capabilities
● WebRTC endpoint need an
MCU for large N-way calls
● Gateway/SBC
● Interoperability
● RTP
– SDES-SRTP
– DTLS-SRTP
– RTP
● Demultiplex
– RTCP
– Media channel
● SAVPF<=>AVP
– RTCP feedback
● ICE(STUN/TURN)
● Security, SPIT
● Transcoding Video, Audio
● e.g. VP8 <=> H.264
39. 39Connect | Communicate | Collaborate
WebRTC MCU vendors
● Open Source
● http://www.medooze.com/products/mcu/functionality.aspx
Argentinian universities VoIP workgroup has been using for about a
year.
http://www.youtube.com/watch?v=pocgfJXmwV4 (in Spanish)
● http://lynckia.com/
● http://code.google.com/p/telepresence/
NIIFI tested
● Commercial
● http://www.requestec.com/site/platform/architecture.jsp
● http://acano.com/tour/
● PEXIP http://www.pexip.com/requirements
NIIFI tested Version 2
SRTP-DTLS (Version 3)
42. 42Connect | Communicate | Collaborate
Big Blue Button (BBB)
● Current UI Flash Based
streaming using
● Red5, FreeSwitch
● Lecture / videoconference
● Desktop Sharing
● Audio, Video
● Slides, blackboard,
draw/highlight
● Chat,
● Participant list
● Recording
● HTML5 integration started
● Big Project, Community support
● 1.5K members of development
mailing list
● Localized 35 languages
● HTML5 client
● implemented using coffeescript,
require.js, backbone.js
● HTML5/WebRTC documentation
https://code.google.com/p/bigblu
ebutton/wiki/HTML5
● Demo sever
http://webrtc.bigbluebutton.org
45. 45Connect | Communicate | Collaborate
SWOT: Strengths
● No plugins
● No Flash, Java, Silverlight etc.
● Client deployed everywhere
● No sw client install needed:
● 1000000000+ WebRTC endpoints
● Client is always up2date. (Browser
auto updates)
● Multi Platform
● PC
● Phone, Tablet
● Security is mandatory
● peer-to-peer
● HD video
● Wideband audio
● E2E Security, Opt-in Privacy
● Open
● Open Source, Standards based
● Royalty Free (?) Nothing proprietary(?)
● Multimedia for Web
● Voice,Video (webcam, screencapture),
Data
● Standard based Firewall/NAT traversal
● ICE (STUN/TURN)
● IPv6 and IPv4 negotiation, interoperability
● Media multiplexing
● WebRTC is part of HTML5
● Web JS API is simple and hides
complexity
● Implementations
● Browser, and native Java/C API
46. 46Connect | Communicate | Collaborate
SWOT: Weaknesses
● Early adopters phase not mature final standard (draft),
● Browser implementation compatibility issues
● Depends other sw infrastructure operations
● STUN/TURN server, MCU, Gateway
● AV Codec HW support (HW VP8 Android KitKat 720p)
● No MTI video Codec (H.264 vs. VP8) future (H.265 vs. VP9),
Daala(?), Scalable video coding (SVC)
● RTCWEB Security Architecture not yet implemented.
● For a SAML based WebRTC security architecture implementation more
research and development needed.
● Desktop sharing, statistics, DTMF, security architecture is not yet
implemented in every browser
● Acoustic echo cancellation and noise suppression
● Backward compatibility issues, handling of low-bandwidth situations
47. 47Connect | Communicate | Collaborate
SWOT: Opportunities
● WebRTC Buzzword / Hype
● HTML5 (WebRTC) as an universal application platform.
● Disrupting communication market / Transforming Communication
● Transparent Standard based secure platform for RTC
● Alpha channels, blue box/ green screen
● New possibilities / New applications
● Games, Video support, Call centre, Lecture Recording, streaming
● Apps Mobile, Tablet /Android/
● Collaborative music composing, etc.
● RTC (Videoconference and beyond) to anyone who has a browser
● Bridge between Telco and Web world
● Trusted, Open Source peer to peer communication
● AAI integration
● Next gen video codecs: e.g. VP9 (SVC) same quality cut bitrate in half.
48. 48Connect | Communicate | Collaborate
SWOT: Threats
● Backward Compatibility, WEBRTC implements leading edge
IETF standards
(current installed videoconference / telepresence room don't.)
● Browser implementation in every browser
● Internet Explorer, Safari
● Mobile adaptation (iOS, Android native Apps)
● Abstract signaling
● Endpoint / User Identification (URI, E.164, etc.)
● Communication Regulation, Legal Issues
● Lawful interception, Emergency calling, E.164 numbering etc.
● No mandatory signaling protocol. It could lead to Walled Gardens
compatibility issues.
● Alternative APIs (ORTC, CU-RTC-WEB)
49. 49Connect | Communicate | Collaborate
Is WebRTC Ready?
● Yes!
Ready to start experience it, and build a leading/bleeding edge pilot
service.
● Simple video call in optimal case works between different
implementations
● We have many demonstrations, and market players also adopting to it
● Early adopters build frameworks, new services.
● No..
It is not yet ready to build superior, reliable, real world service.
● Backward compatibility. Almost compatible, but only almost.
● IPv6 support implementation, Call setup delay (ICE / Trickle ICE)
● No MTI video, HW support, (SWOT Weakness..)
● What is missing for building real services (Justin Uberti)
https://docs.google.com/document/d/1EBOnUXjIlEmYO0fRAtbW-woEcPKRuwmIIxVDhyPvaic/edit
50. 50Connect | Communicate | Collaborate
Summary & Prediction
● Multi platform, Standard based, Royalty free technology. designed
security and identity management in mind, IPv6 support, and
standard based Firewall/NAT traversal, etc.
● An emerging, young technology, a leading edge technology
● Still a lot of growing up to do
● Considerable impact to all RTC market players and Service Providers
(Google, Cisco, Vidyo, LifeSize, Oracle, AT&T etc..)
● WebRTC is here! Act Now! Experience it, use it, improve it!
● It is stable enough to start build pilot services.
● If you like the idea to pilot an open source standard based WebRTC
based RTC collaboration solution what use federated authentication and
serve GÉANT community, then please support my GN4 NIF.
● WebRTC has arrived, choose the right open leading/bleeding edge
way, and don't buy or support proprietary walled gardens any more!
(Incompatible RTC vendor solutions, with vendor lock-in, etc.)
51. 51Connect | Communicate | Collaborate
Let's start to experience WebRTC
Let's start making mistakes on WebRTC field
“An expert is a person who has found out by his own painful experience
all the mistakes that one can make in a very narrow field.” Niels Bohr
52. 52Connect | Communicate | Collaborate
Open Discussion
● Has Your NREN implemented WebRTC (or planning to
implement a service based on it? How do you plan to use it?
Videoconference / Streaming / other ?
● What is your opinion about Video Codec War?
● What do you prefer and why? (VP8 vs. H.264)
● Is it important to choose Mandatory To Implement (MTI) codec?
● WebRTC GN4 New Idea Form
● Please express your support if you like the idea, or comment it
● MTI functionality = ?
● AAI integration
● Questions, AoB
● Open Discussion