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?
2. 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
Secure
Secure
Secure
Audio Channel (CD Quality)
Video (Full HD)
Screen Sharing
Data Channel
5. 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.
6. 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
7. 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...)
8. Supported Audio Codecs
● G.711
● Opus - Free CD Quality codec (Even Stereo)
○ 20ms frames
○ Variable Bit Rate 8K to 64K bps
9. Built-In Video Engine
Video Jitter Buffer
○ Dynamic Jitter Buffer
Image Enhancement
○ Remove video noise
VP8 Codec
○ Royalty free
○ Full HD 1080p encoding
10. WebRTC Connection Flow
1. Obtain Local Media (GetUserMedia)
2. Setup Peer Connection
(RTCPeerConnection)
3. Attach Media or Data
4. Exchange Offer/Answer
(RTCPeerConnection)
15. Signaling
Proprietary
○ RESTful
○ BOSH (long polling)
○ WebSockets
Open Standards
○ XMPP over BOSH/WebSockets (14 years)
○ SIP over WebSockets (17 years)
16. 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
17. 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)
22. 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)
27. 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.
29. 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)
34. Other
PubNub - High performance and low latency
communication of arbitrary data
35. 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