webrtc - is it ready? 2013
DESCRIPTION
WebRTC has been a buzz word for the past year and two. But we don't really see it being widely adopted in today's web and mobile development. It is suppose to be a revolution of telecommunication and impact every bit of our daily life. If it that good, why are we as consumers not seeing product and services on the market yet? What is the hold back?TRANSCRIPT
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