WebRTC Overview
RouYun Pan
1
•What is
2
WebRTC is …?
• WebRTC offers users the ability to conduct a real-time
peer-to-peer communication for vioice, video and data.
• Today, WebRTC is still a work in progress.
3
History
- Feb, 2010
Google acquire ON2 Technologies for $124 million, and then release the video
engine(VP8).
4
- May 2010
Google acquire Global IP Solutions(GIPS) for $68 million, and then release the
source code about audio engine and network.
- Oct 2011
First Public Working Draft - W3C
- Feb 2012
WebRTC Native APIs 2.0
- June 2012
WebRTC Session at Google I/O
- Feb 2013
Firefox and Chrome interoperation achieved
What does Webrtc provide?
• Open Source, no royalties, license fees
• Real-time flexible voice, video & data
framework in cross platform
• Standard Web APIs Interoperable between
browsers
• No proprietary plug-in
• Security
5
Low entry barriers
6
P2P VoIP
WebRTC
PSTN
Entry barrier: complexity
Time
VoIP
 Circuit-switched
 Electric gear
 Dedicated lines
 SIP, IP-based
 Somewhat interoperable
 IMS core (for carriers)
 Complex systems
 Pure IP
 Peer-to-peer (P2P)
 Need client software
 „Walled garden“
 HTML5
 No plugin needed
 No client software
 Fully interoperable
Standardization
7
IETF
*RTCWEB WG formed after BOF at IETF 80, April 2011
*Focus on protocols and interoperability.
W3C
*W3C WEBRTC WG created May 2011
*High level APIs and device control (mic, camera, network)
*PeerConnection API proposal originally proposed in WHATWG
currently being discussed:
http://dev.w3.org/2011/webrtc/editor/webrtc.html
WebRTC supported on >4bn devices by 2016
8
What’s inside WebRTC
9
For developer
• It is built into browsers and Using SDKs and APIs
of WebRTC can be integrated into Android and
iOS apps
– Session management
– Codec handling
– Peer to peer communication
– Security
– Bandwidth estimation
– Signaling and backend are not part of WebRTC
10
Peer to peer, Server still be required?
11
Client A Client B
Webrtc need these severs
• Signaling Server
• ICE Servers
• Media Servers (optional)
12
Signaling plane
• Signaling is the process of coordinating
communication. In order for a “WebRTC Call”, its
clients may need to exchange information:
– Session control messages used to open or close
communication.
– Error messages.
– Media metadata such as codec settings, bandwidth
and media types.
– Key data, used to establish secure connections.
– Network data, such as a host's IP address and port as
seen by the outside world.
13
• SIP/SDP
• XMPP/Jingle
• Websockets
• XHR/Comet
Signaling option in WebRTC
14
For Example: SDP(conti.)
Session Origin Information
Network Information
Audio Information
ICE Candidate for audio
15
For Example: SDP(conti.)
• http://tools.ietf.org/id/draft-nandakumar-rtcweb-sdp-01.html#rfc.section.5
Indicates NACK RTCP feedback support
Video information
ICE Candidate for video
RTCP setting
data channel information
ICE Candidate for data
16
WebRTC Signaling triangle
PeerConnection(audio, video and/or data)
Web/Signaling server
Client A Client B
Signaling Signaling
17
Webrtc Signaling trapezoid
Peerconnection(audio,and video and/or data)
Server A
Client A
Client B
Server B
Jingle or Sip
Signaling
18
Signaling
WebRTC & SIP
PeerConnection(audio and/or video)
Server A
Client A SIP Phone
SIP Server
sip
sip
Signaling
19
WebRTC & Jingle
PeerConnection(audio and/or video)
Server A
Client A
Jingle client
XMPP Server
Jingle
jingle
Signaling
20
WebRTC & PSTN
PeerConnection(audio)
Server
Client A Phone BGateway
Signaling sip
analog
21
WebRTC protocol
22
RFC Documents
• ICE: Interactive Connectivity Establishment (RFC 5245)
– STUN: Session Traversal Utilities for NAT (RFC 5389)
– TURN: Traversal Using Relays around NAT (RFC 5766)
• SDP: Session Description Protocol (RFC 4566)
• XMPP: Extensible Messaging and Presence Protocol
(RFC 3921)
• DTLS: Datagram Transport Layer Security (RFC 6347)
• SCTP: Stream Control Transport Protocol (RFC 4960)
• SRTP: Secure Real-Time Transport Protocol (RFC 3711)
23
For example: Secure pathways
Data(SCTP)
Web/Signaling server
Client A Client B
Audio/video(SRTP)
Signaling(https) Signaling(https)
24
NAT traversal
Client A NAT NAT
Signaling Signaling
25
Interactive Connectivity Establishment (ICE)
• A framework for connecting peers, it tries to find
the best path for each call.
– Direct
– STUN (Session Traversal Utilities for NAT)
– TURN (Traversal Using Relays around NAT)
26
STUN Server
Client A NAT NAT
Signaling Signaling
Stun server
Media
27
TURN Server
Client A NAT NAT
Signaling Signaling
Stun server
Media
Turn server
Media
28
Media engine
29
VoiceEngine
• OPUS (RFC6716)
• G.711(RFC3551)
• NetEQ for Voice
• Acoustic Echo Canceler
• Noise Reduction
* 8 kHz to 48 kHz
* Bitrate is about 6- 510 Kbps
30
VideoEngine
• VP8(RFC6386)
• Video Jitter Buffer & Packet Loss
• Image enhancements
*1080P at 30 FPS: 2.5+ Mbps
*720p at 30 FPS: 1.0~2.0 Mbps
*360p at 30 FPS: 0.5~1.0 Mbps
*180p at 30 FPS: 0.1~0.5 Mbps
31
Set up a call
Applicaption PeerConnectionfactory
PeerConnectionfactory()
CreatLocolMediaStream()
CreatLocolVideoTrack()
CreatLocolAudioTrack()
(add the tracks to stream)
AddSream()
PeerConnection
CommitStreamChanges()
OnSingalingMessage() - Offer
Get Answer from the remote peer
Remote Peer
Send Offer to the remote peer
Media
OnAddSream()
32
Receive a call
Applicaption PeerConnectionfactory
CreatLocolMediaStream()
CreatLocolVideoTrack()
CreatLocolAudioTrack()
(add the tracks to stream)
AddSream()
PeerConnection
CommitStreamChanges()
Send Answer to the remote peer
Remote Peer
Reciever Offer from the remote peer
ProcessingSingalingMessage() - Offer
Media
OnSinglingMessages() - answer
PeerConnectionfactory()
OnAddStream()
33
Close a call
Applicaption
Close
PeerConnection
OnStateChanges()
Get OK from the remote peer
Remote Peer
Send Shutdown to the remote peer
RemoveStream()
OnSignalingMessgae() - Shutdown
ProcessingMessage() - OK
OnStateChanges()
34
Comparison with VoIP
Classic VoIP WebRTC
Signaling SIP or H.323 Undefined
Media transport RTP/RTCP RTP/RTCP
Security SRTP in SIP
H.235 in H.323
SRTP
NAT traversal STUN/TURN/ICE in SIP
H.450.x in H.323
STUN/TURN/ICE
Video codec H.263, H.264 VP8
Voice codec G.7xx series G.711, Opus, iLAB, iSAC
35
What can we do with WebRTC?
36
Technical support
37
Home health care
38
Game streaming
39
Spy Camera? Wearable device
40
Q&A
41

WebRTC overview

  • 1.
  • 2.
  • 3.
    WebRTC is …? •WebRTC offers users the ability to conduct a real-time peer-to-peer communication for vioice, video and data. • Today, WebRTC is still a work in progress. 3
  • 4.
    History - Feb, 2010 Googleacquire ON2 Technologies for $124 million, and then release the video engine(VP8). 4 - May 2010 Google acquire Global IP Solutions(GIPS) for $68 million, and then release the source code about audio engine and network. - Oct 2011 First Public Working Draft - W3C - Feb 2012 WebRTC Native APIs 2.0 - June 2012 WebRTC Session at Google I/O - Feb 2013 Firefox and Chrome interoperation achieved
  • 5.
    What does Webrtcprovide? • Open Source, no royalties, license fees • Real-time flexible voice, video & data framework in cross platform • Standard Web APIs Interoperable between browsers • No proprietary plug-in • Security 5
  • 6.
    Low entry barriers 6 P2PVoIP WebRTC PSTN Entry barrier: complexity Time VoIP  Circuit-switched  Electric gear  Dedicated lines  SIP, IP-based  Somewhat interoperable  IMS core (for carriers)  Complex systems  Pure IP  Peer-to-peer (P2P)  Need client software  „Walled garden“  HTML5  No plugin needed  No client software  Fully interoperable
  • 7.
    Standardization 7 IETF *RTCWEB WG formedafter BOF at IETF 80, April 2011 *Focus on protocols and interoperability. W3C *W3C WEBRTC WG created May 2011 *High level APIs and device control (mic, camera, network) *PeerConnection API proposal originally proposed in WHATWG currently being discussed: http://dev.w3.org/2011/webrtc/editor/webrtc.html
  • 8.
    WebRTC supported on>4bn devices by 2016 8
  • 9.
  • 10.
    For developer • Itis built into browsers and Using SDKs and APIs of WebRTC can be integrated into Android and iOS apps – Session management – Codec handling – Peer to peer communication – Security – Bandwidth estimation – Signaling and backend are not part of WebRTC 10
  • 11.
    Peer to peer,Server still be required? 11 Client A Client B
  • 12.
    Webrtc need thesesevers • Signaling Server • ICE Servers • Media Servers (optional) 12
  • 13.
    Signaling plane • Signalingis the process of coordinating communication. In order for a “WebRTC Call”, its clients may need to exchange information: – Session control messages used to open or close communication. – Error messages. – Media metadata such as codec settings, bandwidth and media types. – Key data, used to establish secure connections. – Network data, such as a host's IP address and port as seen by the outside world. 13
  • 14.
    • SIP/SDP • XMPP/Jingle •Websockets • XHR/Comet Signaling option in WebRTC 14
  • 15.
    For Example: SDP(conti.) SessionOrigin Information Network Information Audio Information ICE Candidate for audio 15
  • 16.
    For Example: SDP(conti.) •http://tools.ietf.org/id/draft-nandakumar-rtcweb-sdp-01.html#rfc.section.5 Indicates NACK RTCP feedback support Video information ICE Candidate for video RTCP setting data channel information ICE Candidate for data 16
  • 17.
    WebRTC Signaling triangle PeerConnection(audio,video and/or data) Web/Signaling server Client A Client B Signaling Signaling 17
  • 18.
    Webrtc Signaling trapezoid Peerconnection(audio,andvideo and/or data) Server A Client A Client B Server B Jingle or Sip Signaling 18 Signaling
  • 19.
    WebRTC & SIP PeerConnection(audioand/or video) Server A Client A SIP Phone SIP Server sip sip Signaling 19
  • 20.
    WebRTC & Jingle PeerConnection(audioand/or video) Server A Client A Jingle client XMPP Server Jingle jingle Signaling 20
  • 21.
    WebRTC & PSTN PeerConnection(audio) Server ClientA Phone BGateway Signaling sip analog 21
  • 22.
  • 23.
    RFC Documents • ICE:Interactive Connectivity Establishment (RFC 5245) – STUN: Session Traversal Utilities for NAT (RFC 5389) – TURN: Traversal Using Relays around NAT (RFC 5766) • SDP: Session Description Protocol (RFC 4566) • XMPP: Extensible Messaging and Presence Protocol (RFC 3921) • DTLS: Datagram Transport Layer Security (RFC 6347) • SCTP: Stream Control Transport Protocol (RFC 4960) • SRTP: Secure Real-Time Transport Protocol (RFC 3711) 23
  • 24.
    For example: Securepathways Data(SCTP) Web/Signaling server Client A Client B Audio/video(SRTP) Signaling(https) Signaling(https) 24
  • 25.
    NAT traversal Client ANAT NAT Signaling Signaling 25
  • 26.
    Interactive Connectivity Establishment(ICE) • A framework for connecting peers, it tries to find the best path for each call. – Direct – STUN (Session Traversal Utilities for NAT) – TURN (Traversal Using Relays around NAT) 26
  • 27.
    STUN Server Client ANAT NAT Signaling Signaling Stun server Media 27
  • 28.
    TURN Server Client ANAT NAT Signaling Signaling Stun server Media Turn server Media 28
  • 29.
  • 30.
    VoiceEngine • OPUS (RFC6716) •G.711(RFC3551) • NetEQ for Voice • Acoustic Echo Canceler • Noise Reduction * 8 kHz to 48 kHz * Bitrate is about 6- 510 Kbps 30
  • 31.
    VideoEngine • VP8(RFC6386) • VideoJitter Buffer & Packet Loss • Image enhancements *1080P at 30 FPS: 2.5+ Mbps *720p at 30 FPS: 1.0~2.0 Mbps *360p at 30 FPS: 0.5~1.0 Mbps *180p at 30 FPS: 0.1~0.5 Mbps 31
  • 32.
    Set up acall Applicaption PeerConnectionfactory PeerConnectionfactory() CreatLocolMediaStream() CreatLocolVideoTrack() CreatLocolAudioTrack() (add the tracks to stream) AddSream() PeerConnection CommitStreamChanges() OnSingalingMessage() - Offer Get Answer from the remote peer Remote Peer Send Offer to the remote peer Media OnAddSream() 32
  • 33.
    Receive a call ApplicaptionPeerConnectionfactory CreatLocolMediaStream() CreatLocolVideoTrack() CreatLocolAudioTrack() (add the tracks to stream) AddSream() PeerConnection CommitStreamChanges() Send Answer to the remote peer Remote Peer Reciever Offer from the remote peer ProcessingSingalingMessage() - Offer Media OnSinglingMessages() - answer PeerConnectionfactory() OnAddStream() 33
  • 34.
    Close a call Applicaption Close PeerConnection OnStateChanges() GetOK from the remote peer Remote Peer Send Shutdown to the remote peer RemoveStream() OnSignalingMessgae() - Shutdown ProcessingMessage() - OK OnStateChanges() 34
  • 35.
    Comparison with VoIP ClassicVoIP WebRTC Signaling SIP or H.323 Undefined Media transport RTP/RTCP RTP/RTCP Security SRTP in SIP H.235 in H.323 SRTP NAT traversal STUN/TURN/ICE in SIP H.450.x in H.323 STUN/TURN/ICE Video codec H.263, H.264 VP8 Voice codec G.7xx series G.711, Opus, iLAB, iSAC 35
  • 36.
    What can wedo with WebRTC? 36
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.