136
WebRTC Reborn Dan Jenkins @dan_jenkins

Twilio Signal 2016 WebRTC Reborn

Embed Size (px)

Citation preview

Page 1: Twilio Signal 2016 WebRTC Reborn

WebRTC Reborn

Dan Jenkins @dan_jenkins

Page 2: Twilio Signal 2016 WebRTC Reborn

Dan Jenkins@dan_jenkins

Page 3: Twilio Signal 2016 WebRTC Reborn

Node.js Developer Love Lego & Technic General Geek Founder of Nimble Ape Ltd ❤ open source

Page 4: Twilio Signal 2016 WebRTC Reborn
Page 5: Twilio Signal 2016 WebRTC Reborn

github.com/danjenkins

Page 6: Twilio Signal 2016 WebRTC Reborn

@dan_jenkins

Page 7: Twilio Signal 2016 WebRTC Reborn

Nimble Apenimblea.pe

[email protected]

@nimbleapeltd

Page 8: Twilio Signal 2016 WebRTC Reborn

Node.js / IoT / VoIP/WebRTC Consulting (Anything real-time)

Page 9: Twilio Signal 2016 WebRTC Reborn

WebRTC

Page 10: Twilio Signal 2016 WebRTC Reborn

Heard of it?

Page 11: Twilio Signal 2016 WebRTC Reborn

Built something with it?

Page 12: Twilio Signal 2016 WebRTC Reborn

Used it?

Page 13: Twilio Signal 2016 WebRTC Reborn

Built with WebRTC

Page 14: Twilio Signal 2016 WebRTC Reborn

What is WebRTC?

Page 15: Twilio Signal 2016 WebRTC Reborn

Web Real Time Communication

Page 16: Twilio Signal 2016 WebRTC Reborn

Secure by design

Page 17: Twilio Signal 2016 WebRTC Reborn

Peer to Peer Technology

Page 18: Twilio Signal 2016 WebRTC Reborn

Media Channel for Audio & Video

Page 19: Twilio Signal 2016 WebRTC Reborn

Data Channel for almost any kind of Data

Page 20: Twilio Signal 2016 WebRTC Reborn

3 Core JavaScript APIs

getUserMedia RTCPeerConnection

RTCDataChannel

Page 21: Twilio Signal 2016 WebRTC Reborn

Peer To Peer Communication

Page 22: Twilio Signal 2016 WebRTC Reborn

Signalling Server / Protocol

Page 23: Twilio Signal 2016 WebRTC Reborn

It's not magic...

Page 24: Twilio Signal 2016 WebRTC Reborn

Signalling Server / Protocol

Page 25: Twilio Signal 2016 WebRTC Reborn

Signalling Server / Protocol

Page 26: Twilio Signal 2016 WebRTC Reborn

2 Peers

Page 27: Twilio Signal 2016 WebRTC Reborn

3 peers (Mesh)

Page 28: Twilio Signal 2016 WebRTC Reborn

*n peers (Mesh)

(Not Recommended for all situations)

Page 29: Twilio Signal 2016 WebRTC Reborn

No plugins

(Browser extensions are required for screensharing)

Page 30: Twilio Signal 2016 WebRTC Reborn

Opens the door for Awesome

Page 31: Twilio Signal 2016 WebRTC Reborn

Open Technology

Page 32: Twilio Signal 2016 WebRTC Reborn

Browsers, Mobiles and Other Devices

Page 33: Twilio Signal 2016 WebRTC Reborn
Page 34: Twilio Signal 2016 WebRTC Reborn

Web Scale

Page 35: Twilio Signal 2016 WebRTC Reborn

Little Dependence on Media Servers

Page 36: Twilio Signal 2016 WebRTC Reborn

Easier on the wallet

Page 37: Twilio Signal 2016 WebRTC Reborn

Awesome apps are being launched

Page 38: Twilio Signal 2016 WebRTC Reborn

Be My eyes

38

http://www.bemyeyes.org/

Page 39: Twilio Signal 2016 WebRTC Reborn

Mindme

http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/404891-webrtc-enrolled-suicide-prevention.htm

Page 40: Twilio Signal 2016 WebRTC Reborn

Cystic Fibrosis Telehealth In Australia

http://www.webrtcworld.com/topics/webrtc-world/articles/334242-australian-cystic-fibrosis-telehealth-project-relies-webrtc.htm

Page 41: Twilio Signal 2016 WebRTC Reborn

Cancer Telehealth in Texas

https://developer.ibm.com/bluemix/2015/09/16/bluemix-and-twilio-at-krankygeek-2015/

Page 42: Twilio Signal 2016 WebRTC Reborn

Developers are building Apps that help humanity

Page 43: Twilio Signal 2016 WebRTC Reborn

WebRTC Reborn

Page 44: Twilio Signal 2016 WebRTC Reborn

A brief history of time WebRTC…

Page 45: Twilio Signal 2016 WebRTC Reborn

Its 5 years old!

Page 46: Twilio Signal 2016 WebRTC Reborn

You always mess up the first child

Page 47: Twilio Signal 2016 WebRTC Reborn

We messed up.

Page 48: Twilio Signal 2016 WebRTC Reborn

At the start, everyone was so excited

Page 49: Twilio Signal 2016 WebRTC Reborn

Countless talks at conferences

Page 50: Twilio Signal 2016 WebRTC Reborn

Look ma, no plugins!

Page 51: Twilio Signal 2016 WebRTC Reborn

“It’s freaking awesome!” (dude)

Page 52: Twilio Signal 2016 WebRTC Reborn

Developers went and tried it

Page 53: Twilio Signal 2016 WebRTC Reborn

And usually failed

Page 54: Twilio Signal 2016 WebRTC Reborn

We didn’t tell Developers about the complicated stuff

Page 55: Twilio Signal 2016 WebRTC Reborn

Heard of STUN or TURN?

Page 56: Twilio Signal 2016 WebRTC Reborn

We failed you.

Page 57: Twilio Signal 2016 WebRTC Reborn

But…

that’s all changed

Page 58: Twilio Signal 2016 WebRTC Reborn

Oh Really?

Page 59: Twilio Signal 2016 WebRTC Reborn

Strong community

Page 60: Twilio Signal 2016 WebRTC Reborn

Google Developer Experts

Page 61: Twilio Signal 2016 WebRTC Reborn

WebRTC Weekly

https://webrtcweekly.com/

Page 62: Twilio Signal 2016 WebRTC Reborn

WebRTC Hacks

https://webrtchacks.com/

Page 63: Twilio Signal 2016 WebRTC Reborn

Excellent Browser Support

Page 64: Twilio Signal 2016 WebRTC Reborn

Chrome on Desktop

Page 65: Twilio Signal 2016 WebRTC Reborn

Chrome on Android

Page 66: Twilio Signal 2016 WebRTC Reborn

Firefox

Page 67: Twilio Signal 2016 WebRTC Reborn

Opera on Desktop

Page 68: Twilio Signal 2016 WebRTC Reborn

Opera on Android

Page 69: Twilio Signal 2016 WebRTC Reborn

Microsoft Edge (ORTC)

Page 70: Twilio Signal 2016 WebRTC Reborn

Who’s missing?

Page 71: Twilio Signal 2016 WebRTC Reborn

Safari Desktop & Mobile

Page 72: Twilio Signal 2016 WebRTC Reborn

But… There’s Hope!

Page 73: Twilio Signal 2016 WebRTC Reborn

Apple Put An Engineer on the WebRTC-in-webkit

Project

Page 74: Twilio Signal 2016 WebRTC Reborn

And contributed to getUserMedia

Page 75: Twilio Signal 2016 WebRTC Reborn

And then...

Page 76: Twilio Signal 2016 WebRTC Reborn

webkit.org/status

Page 77: Twilio Signal 2016 WebRTC Reborn

Microsoft Edge Currently supports ORTC

What about WebRTC?

Page 78: Twilio Signal 2016 WebRTC Reborn

Edge will soon support WebRTC!

Page 79: Twilio Signal 2016 WebRTC Reborn

edgewebsummit2016

Page 80: Twilio Signal 2016 WebRTC Reborn

All those Supported browsers…

Their support and progress is awesome

Page 81: Twilio Signal 2016 WebRTC Reborn

Don’t Break things.

Move Fast.

Page 82: Twilio Signal 2016 WebRTC Reborn

And we have plugins for IE and Safari

Page 83: Twilio Signal 2016 WebRTC Reborn

Temasys + many others

Page 84: Twilio Signal 2016 WebRTC Reborn

API & Browser Status Check

iswebrtcreadyyet.com

Page 85: Twilio Signal 2016 WebRTC Reborn

Simple Signalling

Page 86: Twilio Signal 2016 WebRTC Reborn

You need a Signalling Server

Page 87: Twilio Signal 2016 WebRTC Reborn

Who Knew?!

Page 88: Twilio Signal 2016 WebRTC Reborn

Open Source signalling

Page 89: Twilio Signal 2016 WebRTC Reborn

socket.io P2P

http://socket.io/blog/socket-io-p2p/

Page 90: Twilio Signal 2016 WebRTC Reborn

matrix.org

Page 91: Twilio Signal 2016 WebRTC Reborn

asterisk

Page 92: Twilio Signal 2016 WebRTC Reborn

signalmaster

https://github.com/andyet/signalmaster

Page 93: Twilio Signal 2016 WebRTC Reborn

And many many others

Page 94: Twilio Signal 2016 WebRTC Reborn

Documentation!

Page 95: Twilio Signal 2016 WebRTC Reborn

https://github.com/webrtc

https://bitbucket.org/webrtc/codelab

Page 96: Twilio Signal 2016 WebRTC Reborn

https://github.com/muaz-khan

https://www.webrtc-experiment.com

Page 97: Twilio Signal 2016 WebRTC Reborn

https://github.com/webrtc/samples

https://webrtc.github.io/samples/

g.co/webrtc

https://codelabs.developers.google.com/codelabs/webrtc-web

Page 98: Twilio Signal 2016 WebRTC Reborn

STUN & TURN Servers

Page 99: Twilio Signal 2016 WebRTC Reborn

You still don’t know what they do.

Do you?

Page 100: Twilio Signal 2016 WebRTC Reborn

STUN

Siri, What’s my IP Address?Here’s your address: James R. Herman Cruise Terminal at Pier 27 Pier 27 The Embarcadero San Francisco CA 94111

Siri wouldn’t make a good STUN Server

Page 101: Twilio Signal 2016 WebRTC Reborn

TURN (Media Relay)

Page 102: Twilio Signal 2016 WebRTC Reborn

More choice

Page 103: Twilio Signal 2016 WebRTC Reborn

Docker images

Page 104: Twilio Signal 2016 WebRTC Reborn

Don’t Forget!…

You need to address a STUN server in your App!

Page 105: Twilio Signal 2016 WebRTC Reborn

Google give you some!stun.l.google.com:19302

stun1.l.google.com:19302 stun2.l.google.com:19302 stun3.l.google.com:19302 stun4.l.google.com:19302

There are many others!

Page 106: Twilio Signal 2016 WebRTC Reborn

Don’t repeat History

Use a STUN Server!

Page 107: Twilio Signal 2016 WebRTC Reborn

Modules on npm

Page 108: Twilio Signal 2016 WebRTC Reborn

Many

Open Source

wrappers

Page 109: Twilio Signal 2016 WebRTC Reborn

adapter.js

https://github.com/webrtc/adapter

Page 110: Twilio Signal 2016 WebRTC Reborn

PeerJS

https://github.com/peers

Page 111: Twilio Signal 2016 WebRTC Reborn

easyRTC

https://github.com/priologic/easyrtc

Page 112: Twilio Signal 2016 WebRTC Reborn

SimpleWebRTC

https://simplewebrtc.com/

Page 113: Twilio Signal 2016 WebRTC Reborn

Many Many Others

Page 114: Twilio Signal 2016 WebRTC Reborn

PaaS

Use them!

Page 115: Twilio Signal 2016 WebRTC Reborn

Twilio

Page 116: Twilio Signal 2016 WebRTC Reborn

Xura … (Forge) … (Acision) Kandy Tokbox

Respoke Cisco … (Tropo)

Plus many others…

Page 117: Twilio Signal 2016 WebRTC Reborn

Some quick stats...

Page 118: Twilio Signal 2016 WebRTC Reborn

2 Billion+ WebRTC Enabled Browsers

https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub

Page 119: Twilio Signal 2016 WebRTC Reborn

1 Billion+ Transmitted audio/video minutes per week

in Chrome

https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub

Page 120: Twilio Signal 2016 WebRTC Reborn

And a whole host of internal improvements

Page 121: Twilio Signal 2016 WebRTC Reborn

ECDSA

OPUS 1.2

MediaRecorder

H.264

VP9

CocoaPod

Tab Sharing

Canvas Streaming

Page 122: Twilio Signal 2016 WebRTC Reborn

https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub

Page 123: Twilio Signal 2016 WebRTC Reborn

https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/pub

https://goo.gl/UK4sNV

Page 124: Twilio Signal 2016 WebRTC Reborn

And finally... a specification soon

(hopefully)

Page 125: Twilio Signal 2016 WebRTC Reborn

Currently a working drafthttps://www.w3.org/TR/webrtc/

Page 126: Twilio Signal 2016 WebRTC Reborn

Public Service Announcement

Page 127: Twilio Signal 2016 WebRTC Reborn

Chrome limits getUserMedia to Trusted Origins

Page 128: Twilio Signal 2016 WebRTC Reborn

Trusted Origins = Localhost + HTTPS

(But not Self Signed Certs)

Page 129: Twilio Signal 2016 WebRTC Reborn

But LetsEncrypt Is Here letsencrypt.org

Page 130: Twilio Signal 2016 WebRTC Reborn

Don't get caught out in wondering why your app

doesn't work...

Page 131: Twilio Signal 2016 WebRTC Reborn

It’s time to give WebRTC another go

Page 132: Twilio Signal 2016 WebRTC Reborn

Is WebRTC Production Ready?

Page 133: Twilio Signal 2016 WebRTC Reborn

Heck YES!

Page 134: Twilio Signal 2016 WebRTC Reborn

Go use it!

Page 135: Twilio Signal 2016 WebRTC Reborn

Thanks!@dan_jenkins

nimblea.pe

[email protected]

Page 136: Twilio Signal 2016 WebRTC Reborn

https://www.flickr.com/photos/clement127/http://images.techhive.com/images/article/2012/11/legohawking-100014318-orig.jpg