Intro to WebRTC

@thanpolas

Who is Thanasis

Professional

Community

Open Source

  • Today CTO at Alacrity
  • Startup CTO pos...
  • Many of them on WebRTC startups
  • Over 40 NPM packages
  • Contributor to major Node.js packages
  • Avid OSS author
  • Software Engineer, CTO, founder
  • Recently moved to London from Greece

Today's Menu

  • Brief Intro to WebRTC
  • How to build a WebRTC App
  • Service Solutions

What is WebRTC?

  • Provides browsers with Real Time Communication
  • Free & Open Source
  • Supported by all modern browsers*
  • Feb 2014, first cross-browser connection

WebRTC Features

  • Real Time Voice and Video communication
  • Peer to Peer Communication
  • State of the art Codecs (VP8)

What is WebRTC

WebRTC Adoption

  • Thousands of verticals in health, legal, services
  • Sobered after 1st wave of startups
  • Safari support opens up new opportunities

What is WebRTC

WebRTC, The Good Parts

  • Made Real Time Communication ubiquitous
  • Provides free & open-source APIs
  • Lowered the bar to entry

What is WebRTC

WebRTC, The Ugly Parts

  • Cheap start, expensive end game
  • Costly development
  • Connectivity problems

What is WebRTC

How WebRTC Works

  • WebRTC APIs
  • Handshake of a WebRTC call
  • Services needed for WebRTC

We'll see the following:

WebRTC APIs

  • getUserMedia acquires audio / video
  • RTCPeerConnection audio / video communication
  • RTCDataChannel Data communication

How WebRTC Works

  • getStats Statistics

Handshake of a WebRTC call

How WebRTC works

Peer 1

Peer 2

STUN Server

Signal Server

  1. Peer 1 asks their IP from STUN
  2. Peer 1 offers SDP to Signal --> Peer 2
  3. Peer 2 asks their IP from STUN
  4. Peer 2 responds with their SDP via Signal
  5. Peer 1 & 2 send ICE Candidates via Signal
  6. Winning Candidate establishes connection

Notes

* Simplified version, TURN missing

* SDP: Session Description Protocol

* ICE: Interactive Connectivity Establishment

Services Needed for WebRTC

  • Signal Server: Your implementation to enable communication between peers.
  • STUN Server: Session Traversal Utilities for NAT, low resource daemon.
  • TURN Server: Traversal Using Relays around NAT, extreme resource server.

How WebRTC Works

Building WebRTC Apps

  1. Prototype using public WebRTC services
  2. MVP using third-party WebRTC services
  3. Grow using your infrastructure

The general rule of thumb 👍

Third-Party WebRTC Services

TokBox https://tokbox.com/

One stop shop service, oldest in the market.

 

Xirsys https://xirsys.com/

A la carte WebRTC services, as old as TokBox.

Also: Vidyo, Twillio WebRTC

The rest: https://www.callstats.io/2017/10/17/sdk-comparison/

Building WebRTC Apps

WebRTC in summary

  • Revolutionizing Technology
  • Vertical & Niche applications
  • Costly development
  • Costly infrastructure
  • Connectivity risks your service delivery

Thank you

Thanasis Polychronakis

@thanpolas

https://speakerdeck.com/thanpolas

Thank you

Thanasis Polychronakis

@thanpolas

https://speakerdeck.com/thanpolas

Questions?

Intro to WebRTC

By thanpolas

Intro to WebRTC

  • 675