webrtc overview
DESCRIPTION
WebRTC OverviewTRANSCRIPT
1
WebRTC Overview
RouYun Pan
2
•What is
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.
4
History- Feb, 2010 Google acquire ON2 Technologies for $124 million, and then release the video engine(VP8).
- May 2010Google acquire Global IP Solutions(GIPS) for $68 million, and then release the source code about audio engine and network.
- Oct 2011First Public Working Draft - W3C
- Feb 2012WebRTC Native APIs 2.0
- June 2012WebRTC Session at Google I/O
- Feb 2013Firefox and Chrome interoperation achieved
5
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
6
Low entry barriers
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
9
What’s inside WebRTC
10
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
11
Peer to peer, Server still be required?
Client A Client B
12
Webrtc need these severs• Signaling Server • ICE Servers• Media Servers (optional)
13
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.
14
• SIP/SDP• XMPP/Jingle• Websockets• XHR/Comet
Signaling option in WebRTC
15
For Example: SDP(conti.) Session Origin Information
Network Information
Audio Information
ICE Candidate for audio
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
17
WebRTC Signaling triangle
PeerConnection(audio, video and/or data)
Web/Signaling server
Client A Client B
Signaling Signaling
18
Webrtc Signaling trapezoid
Peerconnection(audio,and video and/or data)
Server A
Client A Client B
Server BJingle or Sip
Signaling Signaling
19
WebRTC & SIP
PeerConnection(audio and/or video)
Server A
Client A SIP Phone
SIP Serversip
sipSignaling
20
WebRTC & Jingle
PeerConnection(audio and/or video)
Server A
Client AJingle client
XMPP ServerJingle
jingleSignaling
21
WebRTC & PSTN
PeerConnection(audio)
Server
Client A Phone BGateway
Signaling sip
analog
22
WebRTC protocol
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)
24
For example: Secure pathways
Data(SCTP)
Web/Signaling server
Client A Client B
Audio/video(SRTP)
Signaling(https) Signaling(https)
25
NAT traversal
Client A NAT NAT
Signaling Signaling
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)
27
STUN Server
Client A NAT NAT
Signaling Signaling
Stun server
Media
28
TURN Server
Client A NAT NAT
Signaling Signaling
Stun server
Media
Turn server
Media
29
Media engine
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
31
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
32
Set up a callApplicaption 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()
33
Receive a callApplicaption 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()
34
Close a callApplicaption
Close
PeerConnection
OnStateChanges()
Get OK from the remote peer
Remote Peer
Send Shutdown to the remote peer
RemoveStream()
OnSignalingMessgae() - Shutdown
ProcessingMessage() - OK
OnStateChanges()
35
Comparison with VoIPClassic VoIP WebRTC
Signaling SIP or H.323 Undefined
Media transport RTP/RTCP RTP/RTCP
Security SRTP in SIPH.235 in H.323
SRTP
NAT traversal STUN/TURN/ICE in SIPH.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
36
What can we do with WebRTC?
37
Technical support
38
Home health care
39
Game streaming
40
Spy Camera? Wearable device
41
Q&A