SlideShare a Scribd company logo
1 of 33
Download to read offline
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 
Video 
User Agent 
Internet 
SIP 
Audio 
HTML 
Context 
Asterisk Webservice
Internal Audio Agents 
Asterisk 
L 
A 
N 
App 
Server 
User 
P 
S 
T 
N 
Agent 
Agent 
Agent 
Agent 
Agent
External Audio Agents 
I 
N 
T 
E 
R 
N 
E 
T 
User 
P 
S 
T 
N 
Agent 
Agent 
Agent 
Agent 
Agent 
WebRTC 
App 
Server 
Asterisk
External Audio Users 
L 
A 
N 
User 
I 
N 
T 
E 
R 
N 
E 
T 
Agent 
Agent 
Agent 
Agent 
Agent 
DeskPhones 
HTML 
WebRTC Audio 
App 
Server 
Asterisk 
SIP Phones
Hybrid 
L 
A 
N 
User 
I 
N 
T 
E 
R 
N 
E 
T 
Agent 
Agent 
Agent 
Agent 
Agent 
DeskPhones 
WebRTC 
Audio 
HTML 
App 
Server 
Asterisk 
Agent 
WebRTC 
SIP Phones 
PSTN 
Audio FAX SMS 
User 
Skype 
Twitter 
Chat 
Email 
Facebook
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 cpu 
2 quality modes - landline or incomprehensible 
Opus - new comer - low bandwidth / high cpu 
flexible 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 
Int 
Agents ulaw None low loss on LAN + 
will end up on PSTN 
Ext 
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
Images Used 
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

More Related Content

What's hot

Hackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsHackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsDan Jenkins
 
WebRTC Reborn Hackference
WebRTC Reborn HackferenceWebRTC Reborn Hackference
WebRTC Reborn HackferenceDan Jenkins
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016Dan Jenkins
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Inc
 
Astricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionAstricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionDan Jenkins
 
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...DevSecCon
 
DevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris WysopalDevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris WysopalDevSecCon
 
WebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationDan Jenkins
 
BUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONS
BUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONSBUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONS
BUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONSRyan Jespersen
 
Буткит через СМС: оценка безопасности сети 4G
Буткит через СМС: оценка безопасности сети 4GБуткит через СМС: оценка безопасности сети 4G
Буткит через СМС: оценка безопасности сети 4GPositive Hack Days
 
DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...
DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...
DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...DevSecCon
 
Reactive web
Reactive webReactive web
Reactive webdega1999
 
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...Codemotion
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
 

What's hot (15)

Hackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsHackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome parts
 
WebRTC Reborn Hackference
WebRTC Reborn HackferenceWebRTC Reborn Hackference
WebRTC Reborn Hackference
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
 
Designing & Building Secure Web APIs
Designing & Building Secure Web APIsDesigning & Building Secure Web APIs
Designing & Building Secure Web APIs
 
Astricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionAstricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and Production
 
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
 
DevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris WysopalDevSecCon Boston 2018: Secure by Design by Chris Wysopal
DevSecCon Boston 2018: Secure by Design by Chris Wysopal
 
WebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC application
 
BUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONS
BUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONSBUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONS
BUILD THE NEW GENERATION OF REAL-TIME STREAMING SOLUTIONS
 
Буткит через СМС: оценка безопасности сети 4G
Буткит через СМС: оценка безопасности сети 4GБуткит через СМС: оценка безопасности сети 4G
Буткит через СМС: оценка безопасности сети 4G
 
DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...
DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...
DevSecCon Boston 2018: How come appsec is still not in the curriculum by Gabo...
 
Reactive web
Reactive webReactive web
Reactive web
 
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 

Similar to Getting the Best Out Of WebRTC - Astricon 2014

Gathering of State Networks
Gathering of State NetworksGathering of State Networks
Gathering of State NetworksVideoguy
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonAlan Quayle
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2Carl Ford
 
Going Thin: Implementing Thin Client Technology in a Library Reference Area
Going Thin:  Implementing Thin Client Technology in a Library Reference AreaGoing Thin:  Implementing Thin Client Technology in a Library Reference Area
Going Thin: Implementing Thin Client Technology in a Library Reference AreaRichard Bernier
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overviewRouyun Pan
 
10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...
10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...
10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...Renesas Electronics Corporation
 
Voice over Internet Protocol (VoIP) using Asterisk
Voice over Internet Protocol (VoIP) using AsteriskVoice over Internet Protocol (VoIP) using Asterisk
Voice over Internet Protocol (VoIP) using AsteriskSameer Verma
 
Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)
Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)
Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)Ontico
 
How To Successfully Implement IP Video
How To Successfully Implement IP VideoHow To Successfully Implement IP Video
How To Successfully Implement IP VideoVideoguy
 
Internetix Video Kills
Internetix Video KillsInternetix Video Kills
Internetix Video Killsdegrumpysmurf
 
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin AronowskiPLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin AronowskiPROIDEA
 
Westhawk integration
Westhawk integrationWesthawk integration
Westhawk integrationTim Panton
 
Videoconferencing Technology Workshop
Videoconferencing Technology WorkshopVideoconferencing Technology Workshop
Videoconferencing Technology WorkshopVideoguy
 
16.) layer 3 (basic tcp ip routing)
16.) layer 3 (basic tcp ip routing)16.) layer 3 (basic tcp ip routing)
16.) layer 3 (basic tcp ip routing)Jeff Green
 
NZNOG 2020 - The Trouble With NAT
NZNOG 2020 - The Trouble With NATNZNOG 2020 - The Trouble With NAT
NZNOG 2020 - The Trouble With NATMark Smith
 
Qnap iei partners_day_2016 1108
Qnap iei partners_day_2016 1108Qnap iei partners_day_2016 1108
Qnap iei partners_day_2016 1108qnapivan
 

Similar to Getting the Best Out Of WebRTC - Astricon 2014 (20)

Gathering of State Networks
Gathering of State NetworksGathering of State Networks
Gathering of State Networks
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim Panton
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2
 
Gda ipsoc blr_hic_final
Gda ipsoc blr_hic_finalGda ipsoc blr_hic_final
Gda ipsoc blr_hic_final
 
Going Thin: Implementing Thin Client Technology in a Library Reference Area
Going Thin:  Implementing Thin Client Technology in a Library Reference AreaGoing Thin:  Implementing Thin Client Technology in a Library Reference Area
Going Thin: Implementing Thin Client Technology in a Library Reference Area
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 
10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...
10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...
10 Reasons to use the Renesas R-IN multi-protocol industrial ethernet solutio...
 
MarcoMorenoResume
MarcoMorenoResumeMarcoMorenoResume
MarcoMorenoResume
 
Voice over Internet Protocol (VoIP) using Asterisk
Voice over Internet Protocol (VoIP) using AsteriskVoice over Internet Protocol (VoIP) using Asterisk
Voice over Internet Protocol (VoIP) using Asterisk
 
Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)
Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)
Dataplane networking acceleration with OpenDataplane / Максим Уваров (Linaro)
 
Internet Video
Internet VideoInternet Video
Internet Video
 
How To Successfully Implement IP Video
How To Successfully Implement IP VideoHow To Successfully Implement IP Video
How To Successfully Implement IP Video
 
Internetix Video Kills
Internetix Video KillsInternetix Video Kills
Internetix Video Kills
 
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin AronowskiPLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
PLNOG16: Usługi w sieciach operatorskich, Marcin Aronowski
 
Westhawk integration
Westhawk integrationWesthawk integration
Westhawk integration
 
Videoconferencing Technology Workshop
Videoconferencing Technology WorkshopVideoconferencing Technology Workshop
Videoconferencing Technology Workshop
 
16.) layer 3 (basic tcp ip routing)
16.) layer 3 (basic tcp ip routing)16.) layer 3 (basic tcp ip routing)
16.) layer 3 (basic tcp ip routing)
 
NZNOG 2020 - The Trouble With NAT
NZNOG 2020 - The Trouble With NATNZNOG 2020 - The Trouble With NAT
NZNOG 2020 - The Trouble With NAT
 
Mips track a
Mips   track aMips   track a
Mips track a
 
Qnap iei partners_day_2016 1108
Qnap iei partners_day_2016 1108Qnap iei partners_day_2016 1108
Qnap iei partners_day_2016 1108
 

More from Dan Jenkins

Yup... WebRTC Still Sucks
Yup... WebRTC Still SucksYup... WebRTC Still Sucks
Yup... WebRTC Still SucksDan Jenkins
 
Professional AV with WebRTC
Professional AV with WebRTCProfessional AV with WebRTC
Professional AV with WebRTCDan Jenkins
 
Getting started with WebRTC
Getting started with WebRTCGetting started with WebRTC
Getting started with WebRTCDan Jenkins
 
JanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTCJanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTCDan Jenkins
 
Getting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackferenceGetting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackferenceDan Jenkins
 
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack TorontoGetting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack TorontoDan Jenkins
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserDan Jenkins
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserDan Jenkins
 
Web technology is getting physical, join the journey
Web technology is getting physical, join the journeyWeb technology is getting physical, join the journey
Web technology is getting physical, join the journeyDan Jenkins
 
Building the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your BusinessBuilding the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your BusinessDan Jenkins
 
Developing Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DADeveloping Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DADan Jenkins
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsDan Jenkins
 
Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013Dan Jenkins
 
Asterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilitiesAsterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilitiesDan Jenkins
 

More from Dan Jenkins (15)

Yup... WebRTC Still Sucks
Yup... WebRTC Still SucksYup... WebRTC Still Sucks
Yup... WebRTC Still Sucks
 
Professional AV with WebRTC
Professional AV with WebRTCProfessional AV with WebRTC
Professional AV with WebRTC
 
SIMCON 3
SIMCON 3SIMCON 3
SIMCON 3
 
Getting started with WebRTC
Getting started with WebRTCGetting started with WebRTC
Getting started with WebRTC
 
JanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTCJanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTC
 
Getting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackferenceGetting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackference
 
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack TorontoGetting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
 
Web technology is getting physical, join the journey
Web technology is getting physical, join the journeyWeb technology is getting physical, join the journey
Web technology is getting physical, join the journey
 
Building the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your BusinessBuilding the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your Business
 
Developing Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DADeveloping Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DA
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre Applications
 
Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013
 
Asterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilitiesAsterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilities
 

Recently uploaded

Women in Automation 2024: Career session - explore career paths in automation
Women in Automation 2024: Career session - explore career paths in automationWomen in Automation 2024: Career session - explore career paths in automation
Women in Automation 2024: Career session - explore career paths in automationDianaGray10
 
Dynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationDynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationBuild Intuit
 
THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023
THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023
THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023Joshua Flannery
 
Laying the Data Foundations for Artificial Intelligence!
Laying the Data Foundations for Artificial Intelligence!Laying the Data Foundations for Artificial Intelligence!
Laying the Data Foundations for Artificial Intelligence!Memoori
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024BookNet Canada
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Dublin_mulesoft_meetup_API_specifications.pptx
Dublin_mulesoft_meetup_API_specifications.pptxDublin_mulesoft_meetup_API_specifications.pptx
Dublin_mulesoft_meetup_API_specifications.pptxKunal Gupta
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Introduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxIntroduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxmprakaash5
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...BookNet Canada
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdfHCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdfROWELL MARQUINA
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
The work to make the piecework work: An ethnographic study of food delivery w...
The work to make the piecework work: An ethnographic study of food delivery w...The work to make the piecework work: An ethnographic study of food delivery w...
The work to make the piecework work: An ethnographic study of food delivery w...stockholm university
 
Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2
Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2
Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2DianaGray10
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Recently uploaded (20)

Women in Automation 2024: Career session - explore career paths in automation
Women in Automation 2024: Career session - explore career paths in automationWomen in Automation 2024: Career session - explore career paths in automation
Women in Automation 2024: Career session - explore career paths in automation
 
Dynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationDynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientation
 
THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023
THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023
THE STATE OF STARTUP ECOSYSTEM - INDIA x JAPAN 2023
 
Laying the Data Foundations for Artificial Intelligence!
Laying the Data Foundations for Artificial Intelligence!Laying the Data Foundations for Artificial Intelligence!
Laying the Data Foundations for Artificial Intelligence!
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Dublin_mulesoft_meetup_API_specifications.pptx
Dublin_mulesoft_meetup_API_specifications.pptxDublin_mulesoft_meetup_API_specifications.pptx
Dublin_mulesoft_meetup_API_specifications.pptx
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Introduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxIntroduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdfHCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
HCI Lesson 1 - Introduction to Human-Computer Interaction.pdf
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
The work to make the piecework work: An ethnographic study of food delivery w...
The work to make the piecework work: An ethnographic study of food delivery w...The work to make the piecework work: An ethnographic study of food delivery w...
The work to make the piecework work: An ethnographic study of food delivery w...
 
Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2
Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2
Efficiencies in RPA with UiPath and CyberArk Technologies - Session 2
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

Getting the Best Out Of WebRTC - Astricon 2014

  • 1. Getting the Best out of WebRTC Tim Panton - Protocol Droid - Westhawk Ltd Dan Jenkins - Chief Ape - nimblea.pe & Respoke
  • 2. Simple 1 for 1 replacement ? No! Bandwidth / CPU use are different
  • 3. How to plan a deployment A talk in two parts
  • 6. 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
  • 8. Video Peer Calls Video User Agent Internet SIP Audio HTML Context Asterisk Webservice
  • 9. Internal Audio Agents Asterisk L A N App Server User P S T N Agent Agent Agent Agent Agent
  • 10. External Audio Agents I N T E R N E T User P S T N Agent Agent Agent Agent Agent WebRTC App Server Asterisk
  • 11. External Audio Users L A N User I N T E R N E T Agent Agent Agent Agent Agent DeskPhones HTML WebRTC Audio App Server Asterisk SIP Phones
  • 12. Hybrid L A N User I N T E R N E T Agent Agent Agent Agent Agent DeskPhones WebRTC Audio HTML App Server Asterisk Agent WebRTC SIP Phones PSTN Audio FAX SMS User Skype Twitter Chat Email Facebook
  • 13. 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.
  • 14. Codecs Codecs implemented in browsers today: ULAW - old favourite - high bandwidth/ low cpu 2 quality modes - landline or incomprehensible Opus - new comer - low bandwidth / high cpu flexible quality and error correction settings VP8 - free video codec - High but variable bandwidth H264 - licensed video codec - free if < 100k (IANAL)
  • 15. Codecs - ideal choices (audio only) Codec Setting Reasoning P2P video Opus None The browser knows best Int Agents ulaw None low loss on LAN + will end up on PSTN Ext 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
  • 16. DTLS - crypto selection
  • 17. WebRTC uses DTLS to generate SRTP key Different Cypher suites Different key lengths Multiple certificate sources All impacts CPU usage at call setup.
  • 19. 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
  • 21. 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
  • 22. 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)
  • 23. Tools to monitor Probably: WebRTC stats (Respoke Stats) www.npmjs.org/package/getstats chrome://webrtc-internals CollectD / Graphite
  • 24. 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
  • 25. 24 ulaw audio calls Graph
  • 26. 24 opus audio calls - No settings Graph
  • 27. 24 opus audio calls Low BW high loss Graph
  • 28. Some MORE “Numbers” Test scenario: Digital Ocean Medium Droplet San Francisco
  • 29. 1 P2P video call - LAN/WAN http://bit.ly/dt-demo
  • 30. 1 P2P video call - WAN http://bit.ly/dt-demo
  • 31. Live demo using respoke Chrome (android too) browse here! URL: http://bit.ly/dt-asterisk
  • 32. Thank you! Questions? More info at: github.com/danjenkins/web-examples @dan_jenkins @steely_glint www.respoke.io
  • 33. Images Used 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