Download - WebRTC - Is it ready? 2013
WebRTCIs it ready?
Henry 2013
Web RTC is:
● A free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs to conduct SECURE communications.
● Features:○ Secure Audio Channel (CD Quality)○ Secure Video (Full HD)○ Secure Screen Sharing○ Secure Data Channel
Web RTC Block Diagram
Very Active Community
Some Complexities
Designed for P2P communications so includes intricate mechanisms to traverse NAT using STUN, ICE and a TURN server which is a media relay.
WebRTC JavaScript API
● MediaStream (getUserMedia)○ Microphone (Audio)○ Webcam (Video)○ Desktop ???
● RTCPeerConnection○ Media Multiplexing○ Authenticate against identity providers
● RTCDataChannel○ SCTP over UDP
https://www.simpl.info/index.html
Built-in Voice Engine Capabilities
● NetEQ○ Dynamic jitter buffer management○ Packet Loss Concealment (PLC)
● Acoustic Echo Canceler (AEC)○ Removes, in real time, the acoustic echo resulting
from the voice being played out coming into the active microphone.
● Noise Reduction (NR)○ Removes certain types of background noise usually
associated with VoIP. (Hiss, fan noise, etc...)
Supported Audio Codecs● G.711● Opus - Free CD Quality codec (Even Stereo)
○ 20ms frames○ Variable Bit Rate 8K to 64K bps
Built-In Video Engine
Video Jitter Buffer○ Dynamic Jitter Buffer
Image Enhancement○ Remove video noise
VP8 Codec○ Royalty free○ Full HD 1080p encoding
WebRTC Connection Flow
1. Obtain Local Media (GetUserMedia)
2. Setup Peer Connection (RTCPeerConnection)
3. Attach Media or Data
4. Exchange Offer/Answer (RTCPeerConnection)
Supporting Protocols
● Application Layer:○ HTTP, WebSocket, SRTP, SDP, ICE/STUN/TURN
● Transport Layer:○ TLS (TCP), DTLS (UDP), SCTP (for data channel)
● Network Layer:○ IPv4 & IPv6
Peer Connection DiagramPure Web
Peer Connection DiagramOver Legacy Network
3rd Party Authentication
Signaling
Proprietary○ RESTful○ BOSH (long polling)○ WebSockets
Open Standards○ XMPP over BOSH/WebSockets (14 years)○ SIP over WebSockets (17 years)
Standards
It's a joined effort
● IETF○ Focus on protocol and interoperability
● W3C○ Hight level APIs and device control (mic, camera,
network)○ PeerConnection API proposal
Concerns
● Video Codec Patent:○ Since March 2013 Nokia has asserted a patent claim
against HTC and Google for the use of VP8 in Android in a German court
● Browser Support:○ Chrome, Firefox, and Opera○ Apple and Microsoft have not publicly shown
interest in the support of WebRTC in IE and Safari○ (Note: Temporary IE supported via Chrome Frame)
Demos
Canvas Integration:● Webcam Toy (GetUserMedia + Canvas)● Audio Recorder (GetUserMedia + Canvas)
Video Chat:● talky (GetUserMedia + RTCPeerConnection)
File Sharing● Sharefest (GetUserMedia +
RTCDataChannel)
More Demos
Games:● Facekat (GetUserMedia + JS head tracking)● Cube Slam (???)
Tools
Browser Tool● chrome://webrtc-internals/● adapter.js (http://www.webrtc.
org/interop)
Mobile App
Vonage iPhone - https://itunes.apple.com/app/id491391564?mt=8
Vonage Android - https://play.google.com/store/apps/details?id=com.vonage.TimeToCall
FreeSWITCH and WebRTC
● SIP Over WebSockets● Media over SRTP● Opus supported
Issues:○ Inconsistent client support○ DTMF issues (INFO)○ No video transcoding is supported
Note: Asterisks Already supported WebRTC (but only with G.711 codec)
Business Applications
● Call Center● PAAS (Open Source API)● WebRTC enabled SBC● Video Conference● Outsourcing Development Vendor
Call Center Applications
Teledini - Display web visitor key information when call arrives. Receive call from browser.
Platform as a Service
Apidaze - API service for Voice, SMS, WebRTC and worldwide DID numbers. XML style structure.Crocodile RTC - Javascript SDK for Call, Video, IM, File Sharing, and Payment system over their platform. Requestec - Mobile SDK, virtual meeting with billing, recording, appointments, and collaboration.
Requestec
Hardware Solution
Genband - WebRTC to VoIP gateway with RESTful API
Ingate - VoIP enabled smart enterprise firewall now optimized also for WebRTC. Realtime traffic shaping
Sansay - WebSBC, REST API, Proprietary signaling (not SIP)
Video Conference (PAAS)
Bistri - Free video chat service that binds all your social network contacts.
UberConference
Other
PubNub - High performance and low latency communication of arbitrary data
Using WebRTC on Mobile Device
● Open Source VoIP engine (and Video)○ Active community support○ PLC - Packet Loss Concealment○ Jitter Buffer handling○ CD Quality Codec○ RTP at the core○ RTCP implemented for QoS monitoring○ SRTP for secure media transport○ NAT traversal by ICE○ ECHO Cancellation & Noise Reduction○ Mobile Integration contributed by Vonage
Everything one might need to build their own Mobile Native Client
Presentations from WebRTC conf
● http://www.webrtcworld.com/conference/west/presentations.aspx
What's Cookin Doc?
Thanks