getting the best out of webrtc - astricon 2014

Post on 27-Jun-2015

493 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation at Astricon 2014 with Tim Panton about how to get the most of of WebRTC - making sure to deal with video bandwidth, asymetric calls and remembering that things are different to typical VoIP (SIP)

TRANSCRIPT

Getting the Best out of WebRTC

Tim Panton - Protocol Droid - Westhawk Ltd Dan Jenkins - Chief Ape - nimblea.pe & Respoke

Simple 1 for 1 replacement ?

No!Bandwidth / CPU use are different

How to plan a deployment

A talk in two parts

Architecture and Choices

Practical numbers and graphs

Assumptions

If you are here you are probably

Doing this commercially - Quality matters

Using Asterisk - Hybrid model with some PSTN

Have Asymmetric calls - agents and users

Are on a tight bandwidth and CPU budget

Video not top priority (yet)

Have a clue

WebRTC Topologies

Video Peer Calls

WebserviceAsterisk

AgentUser

Internet

SIP

Video

Audio

HTML

Context

Internal Audio Agents

Asterisk

L A N

App Server

UserP S T N

Agent

Agent

Agent

Agent

Agent

External Audio Agents

I N T E R N E T

UserP S T N

Agent

Agent

Agent

Agent

Agent

WebRTC

Asterisk

App Server

External Audio Users

L A N

User

I N T E R N E T

Agent

Agent

Agent

Agent

Agent

DeskPhones

WebRTC Audio

HTML

Asterisk

App Server

SIP Phones

Hybrid

L A N

UserI N T E R N E T

Agent

Agent

Agent

Agent

Agent

DeskPhones

WebRTCAudio

HTML

Asterisk

App Server

Agent

WebRTC

SIP Phones

User

PSTN

Audio FAX SMS

Twitter

Chat

EmailFacebook

Skype

WebRTC issues

How webRTC differs from plain old SIP

ICE - can penetrate NAT at cost of setup time

DTLS - encrypted traffic but call setup costs CPU

Web service - may expose your Asterisk

SRTP - encrypted media costs some CPU too.

Codecs

Codecs implemented in browsers today:

ULAW - old favourite - high bandwidth/ low cpu2 quality modes - landline or incomprehensible

Opus - new comer - low bandwidth / high cpuflexible quality and error correction settings

VP8 - free video codec - High but variable bandwidth

H264 - licensed video codec - free if < 100k (IANAL)

Codecs - ideal choices(audio only)

Codec Setting Reasoning

P2P video Opus None The browser knows best

IntAgents ulaw None low loss on LAN +

will end up on PSTNExt

Agent Opus High BW / low loss Can set minimum DSL standards for staff

Ext User Opus Low BW / high loss Users share DSL with

web/games etc

Note - Digium does not support opus on Asterisk

DTLS - crypto selection

WebRTC uses DTLS to generate SRTP key

Different Cypher suites

Different key lengths

Multiple certificate sources

All impacts CPU usage at call setup.

ICE - Tricks

Assume your asterisk has a public IP

Probably don’t need a TURN server

Avoid offering candidates for internal IPs

Don’t offer VPN candidates

Can probably get away with setting ice-lite

Architecture - Asymmetry

In future we expect more asymmetric cases

Mayday - they see your screen not you

Baby monitor - 1 way video but 2 way audio ?

Security cameras

What does that all mean in practice

Probably:

Higher CPU use (especially with Opus)

Longer call setup times

Very high bandwidth with Video (if enabled)

Tools to monitor

Probably:

WebRTC stats (Respoke Stats)

www.npmjs.org/package/getstats

chrome://webrtc-internals

CollectD / Graphite

Some Numbers

Test scenario:

Asterisk: 11.8.1

on machine: Centos Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz

Chrome 38

Ramp up 24 calls

Play back intermittent audio (IVR usage)

Graph - bandwidth / CPU / calls / time

24 ulaw audio calls

Graph

24 opus audio calls - No settings

Graph

24 opus audio calls Low BW high loss

Graph

Some MORE “Numbers”

Test scenario:

Digital Ocean

Medium Droplet

San Francisco

1 P2P video call - LAN/WAN

http://bit.ly/dt-demo

1 P2P video call - WAN

http://bit.ly/dt-demo

Live demo using respoke Chrome (android too) browse here!

URL:

http://bit.ly/dt-asterisk

Thank you!

Questions?

More info at:

github.com/danjenkins/web-examples

@dan_jenkins

@steely_glint

www.respoke.io

http://upload.wikimedia.org/wikipedia/commons/c/ca/Padlock_2010.JPG http://upload.wikimedia.org/wikipedia/commons/8/8e/Ice_road_in_the_Northwest_Territories_-a.jpg http://upload.wikimedia.org/wikipedia/commons/4/41/Asymmetric_%28PSF%29.png

Images Used

top related