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
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
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
5
6. 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
7. 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
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
10
11. Peer to peer, Server still be required?
11
Client A Client B
12. Webrtc need these severs
• Signaling Server
• ICE Servers
• Media Servers (optional)
12
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.
13
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
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
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)
• 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
32. 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
33. 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
35. 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