SlideShare a Scribd company logo
INTEGRATING FreeSWITCH
WITH JANUS FOR WEBRTC
SERVICES
Luca Pradovera
ClueCon 2017
CAN YOU SPEAK MAGIC
INTRODUCING MYSELF
• Luca Pradovera
• Principal at Mojo Lingo (Atlanta, GA and Milan, Italy)
• Real time application developers
• Adhearsion maintainers
• We build IVRs, dialers, WebRTC apps, mobile apps
2
CAN YOU SPEAK MAGIC
FREESWITCH AND WEBRTC
• Verto is great!
• Outstanding codec support
• Fantastic transcoding
• All the FreeSWITCH features
• It is an MCU
3
CAN YOU SPEAK MAGIC
WEBRTC TOPOLOGIES
• MCU: Multipoint Conferencing Unit
• Media is mixed by the server and everyone gets the same stream
• SFU: Selective forwarding unit
• Each stream is sent to participants separately
• Mesh
• Streams are sent peer to peer (no server involved in the media)
4
CAN YOU SPEAK MAGIC
MCU
• What FreeSWITCH does
• One media stream from
client to server
• One stream out for each
client
• Low bandwidth usage
• Everyone gets the same
video
5
CAN YOU SPEAK MAGIC
SFU
• One media stream from
client to server
• N media streams from
server to client
• Independent handling of
each video stream
6
CAN YOU SPEAK MAGIC
MESH
7
DON’T. BUT YOU ALREADY KNEW THAT.
CAN YOU SPEAK MAGIC
WEBRTC IS:
• Signaling: JSON, SDP, JSEP
• Connection and NAT traversal: STUN, TURN, ICE
• Media: RTP, SRTP, DTLS
• Codecs: VP8, H264, Opus (not an acronym! Yay!)
• Data: SCTP
• Oh my!
8
CAN YOU SPEAK MAGIC
OUR REQUIREMENTS
• SFU for UI and UX purposes
• SIP legacy support with audio and video
• Recording of simultaneous media streams in one
place
9
CAN YOU SPEAK MAGIC
I HAVE AN HEADACHE NOW
• The goal is to have a general-purpose architecture
• What do we need to build
• Video conferencing SFU with PSTN support
• Streaming and teaching platform
• White-label web conferencing
10
CAN YOU SPEAK MAGIC
SO WHAT DID WE PICK?
11
CAN YOU SPEAK MAGIC
ENTER JANUS
• General purpose WebRTC gateway
• Small footprint
• C-based, all functionality is in plugins
• Developed by MeetEcho
12
CAN YOU SPEAK MAGIC
JANUS CAPABILITIES
• JSON signaling
• RTP/SRTP relaying
• Data messages
• No transcoding
• Recording is in its own format and for single streams
13
CAN YOU SPEAK MAGIC
JANUS FEATURES
• REST or Websocket API if used directly
• Provides a JS library to use in browsers
• Ability to wrap API in your own service
• RabbitMQ/MQTT/UnixSockets
• Admin API to control and monitor instance
• Event emitters
14
CAN YOU SPEAK MAGIC
JANUS PLUGINS
• A plugin is your application or a feature of your
application
• The core only handles the signaling and sessions
• Functionality goes in plugins
• Written in C
• Examples: video room, echo test, SIP interop, screen
cast…
• The SIP plugin uses the Sofia stack
15
CAN YOU SPEAK MAGIC
SAMPLE INTERACTION
• POST to server root to get session ID
• POST to attach a plugin (activate a feature)
• Plugin-level API interactions (create room, join room,
kick participant…)
16
CAN YOU SPEAK MAGIC
SOUNDS GREAT. WHAT ABOUT
FREESWITCH?
17
CAN YOU SPEAK MAGIC
BACK TO OUR USE CASE
• Providing SFU to web users and MCU to legacy users
• Until Unified Plan multicast comes, we have to make
one connection for each participant to the SFU
• Currently using SIP, moving to Verto
18
CAN YOU SPEAK MAGIC
OUR ARCHITECTURE
19
RE
SR
EST
asd
asd
RE
ST
RE
SR
EST
asd
asd
RE
ST
RE
SR
EST
asd
asd
RE
ST
RE
SR
EST
asd
asd
RE
ST
REST
REST
RE
SR
ES
Ta
sd
as
dR
ES
T
SFU Media
SIP
RTP
MCU Media
SIP
CAN YOU SPEAK MAGIC
FREESWITCH SETUP
• Just using mod_conference
• No actual actions, everything is handled through
another API
• SIP users are in the FS conference only
• H.264 and Opus only, low resolution streams
(640x480)
20
CAN YOU SPEAK MAGIC
CURRENT CHALLENGES
• There is no real reason to use SIP
• The media that comes from the SIP side is the MCU
video
• Multiple media connections are not exactly the best
21
CAN YOU SPEAK MAGIC
THANK YOU!
My name is: Luca Pradovera
I am a Voice Application Developer
at Mojo Lingo.
Web: https://mojolingo.com
Twitter: @lucaprado
GitHub: lpradovera
22

More Related Content

What's hot

Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
Alessandro Amirante
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
Olle E Johansson
 
NCS: NEtwork Control System Hands-on Labs
NCS:  NEtwork Control System Hands-on Labs NCS:  NEtwork Control System Hands-on Labs
NCS: NEtwork Control System Hands-on Labs
Cisco Canada
 
OpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentOpenNebula in a Multiuser Environment
OpenNebula in a Multiuser Environment
NETWAYS
 
The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines
Netronome
 
Snappy Kamailio
Snappy KamailioSnappy Kamailio
Snappy Kamailio
Daniel-Constantin Mierla
 
OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...
OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...
OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...
eNovance
 
Simplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with RomanaSimplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with Romana
Juergen Brendel
 
OpenDataPlane - Bill Fischofer
OpenDataPlane - Bill FischoferOpenDataPlane - Bill Fischofer
OpenDataPlane - Bill Fischofer
harryvanhaaren
 
LF_OVS_17_OVN at Nutanix
LF_OVS_17_OVN at NutanixLF_OVS_17_OVN at Nutanix
LF_OVS_17_OVN at Nutanix
LF_OpenvSwitch
 
IPv6 New RFCs
IPv6 New RFCsIPv6 New RFCs
IPv6 New RFCs
APNIC
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
Rob Davies
 
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
PROIDEA
 
Introduction to Open Mano
Introduction to Open ManoIntroduction to Open Mano
Introduction to Open Mano
videos
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
nvirters
 
Neutron scale
Neutron scaleNeutron scale
Neutron scale
Justin Hammond
 
TRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch HaimTRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch Haim
harryvanhaaren
 
Neutron scaling
Neutron scalingNeutron scaling
Neutron scaling
Vinay Bannai
 
KVM Enhancements for OPNFV
KVM Enhancements for OPNFVKVM Enhancements for OPNFV
KVM Enhancements for OPNFV
OPNFV
 

What's hot (20)

Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
 
NCS: NEtwork Control System Hands-on Labs
NCS:  NEtwork Control System Hands-on Labs NCS:  NEtwork Control System Hands-on Labs
NCS: NEtwork Control System Hands-on Labs
 
OpenNebula in a Multiuser Environment
OpenNebula in a Multiuser EnvironmentOpenNebula in a Multiuser Environment
OpenNebula in a Multiuser Environment
 
The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines
 
Snappy Kamailio
Snappy KamailioSnappy Kamailio
Snappy Kamailio
 
VPNaaS in Neutron
VPNaaS in NeutronVPNaaS in Neutron
VPNaaS in Neutron
 
OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...
OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...
OpenStack in Action 4! Emilien Macchi & Sylvain Afchain - What's new in neutr...
 
Simplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with RomanaSimplifying the OpenStack and Kubernetes network stack with Romana
Simplifying the OpenStack and Kubernetes network stack with Romana
 
OpenDataPlane - Bill Fischofer
OpenDataPlane - Bill FischoferOpenDataPlane - Bill Fischofer
OpenDataPlane - Bill Fischofer
 
LF_OVS_17_OVN at Nutanix
LF_OVS_17_OVN at NutanixLF_OVS_17_OVN at Nutanix
LF_OVS_17_OVN at Nutanix
 
IPv6 New RFCs
IPv6 New RFCsIPv6 New RFCs
IPv6 New RFCs
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
PLNOG15: Practical deployments of Kea, a high performance scalable DHCP - Tom...
 
Introduction to Open Mano
Introduction to Open ManoIntroduction to Open Mano
Introduction to Open Mano
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
 
Neutron scale
Neutron scaleNeutron scale
Neutron scale
 
TRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch HaimTRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch Haim
 
Neutron scaling
Neutron scalingNeutron scaling
Neutron scaling
 
KVM Enhancements for OPNFV
KVM Enhancements for OPNFVKVM Enhancements for OPNFV
KVM Enhancements for OPNFV
 

Similar to ClueCon 2017

Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
Lorenzo Miniero
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
Lorenzo Miniero
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
Juti Noppornpitak
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC Tutorial
Tsahi Levent-levi
 
Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017
Lorenzo Miniero
 
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...TrueConf
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
Arjun Varma
 
How we scale up our architecture and organization at Dailymotion
How we scale up our architecture and organization at DailymotionHow we scale up our architecture and organization at Dailymotion
How we scale up our architecture and organization at Dailymotion
Stanislas Chollet
 
The Hybrid Theory of Classroom Capture
The Hybrid Theory  of Classroom CaptureThe Hybrid Theory  of Classroom Capture
The Hybrid Theory of Classroom CaptureEveretteGAllen
 
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptxBridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Alberto González Trastoy
 
KazooCon 2014 - WebRTC
KazooCon 2014 - WebRTCKazooCon 2014 - WebRTC
KazooCon 2014 - WebRTC
2600Hz
 
VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14
javier_fernandez_seco
 
BigBlueButton Platform Components
BigBlueButton Platform ComponentsBigBlueButton Platform Components
BigBlueButton Platform Components
RIADVICE
 
ASP.NET MVC 4 Overview
ASP.NET MVC 4 OverviewASP.NET MVC 4 Overview
ASP.NET MVC 4 Overview
Gunnar Peipman
 
Hangouts in 30 minutes Socket.io
Hangouts in 30 minutes Socket.ioHangouts in 30 minutes Socket.io
Hangouts in 30 minutes Socket.io
Aleksandar Mihajlovski
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
Luis Lopez
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++
Alan Quayle
 
Moving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyMoving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journey
Boyan Dimitrov
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11
Sanjay Willie
 

Similar to ClueCon 2017 (20)

Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC Tutorial
 
Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017
 
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
How we scale up our architecture and organization at Dailymotion
How we scale up our architecture and organization at DailymotionHow we scale up our architecture and organization at Dailymotion
How we scale up our architecture and organization at Dailymotion
 
The Hybrid Theory of Classroom Capture
The Hybrid Theory  of Classroom CaptureThe Hybrid Theory  of Classroom Capture
The Hybrid Theory of Classroom Capture
 
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptxBridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
Bridging_WebRTC_with_SIP_Alberto_WebRTCventures_Cluecon2023_NoVideo.pptx
 
KazooCon 2014 - WebRTC
KazooCon 2014 - WebRTCKazooCon 2014 - WebRTC
KazooCon 2014 - WebRTC
 
VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14
 
BigBlueButton Platform Components
BigBlueButton Platform ComponentsBigBlueButton Platform Components
BigBlueButton Platform Components
 
ASP.NET MVC 4 Overview
ASP.NET MVC 4 OverviewASP.NET MVC 4 Overview
ASP.NET MVC 4 Overview
 
Hangouts in 30 minutes Socket.io
Hangouts in 30 minutes Socket.ioHangouts in 30 minutes Socket.io
Hangouts in 30 minutes Socket.io
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++
 
Moving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyMoving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journey
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11
 

Recently uploaded

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

ClueCon 2017

  • 1. INTEGRATING FreeSWITCH WITH JANUS FOR WEBRTC SERVICES Luca Pradovera ClueCon 2017
  • 2. CAN YOU SPEAK MAGIC INTRODUCING MYSELF • Luca Pradovera • Principal at Mojo Lingo (Atlanta, GA and Milan, Italy) • Real time application developers • Adhearsion maintainers • We build IVRs, dialers, WebRTC apps, mobile apps 2
  • 3. CAN YOU SPEAK MAGIC FREESWITCH AND WEBRTC • Verto is great! • Outstanding codec support • Fantastic transcoding • All the FreeSWITCH features • It is an MCU 3
  • 4. CAN YOU SPEAK MAGIC WEBRTC TOPOLOGIES • MCU: Multipoint Conferencing Unit • Media is mixed by the server and everyone gets the same stream • SFU: Selective forwarding unit • Each stream is sent to participants separately • Mesh • Streams are sent peer to peer (no server involved in the media) 4
  • 5. CAN YOU SPEAK MAGIC MCU • What FreeSWITCH does • One media stream from client to server • One stream out for each client • Low bandwidth usage • Everyone gets the same video 5
  • 6. CAN YOU SPEAK MAGIC SFU • One media stream from client to server • N media streams from server to client • Independent handling of each video stream 6
  • 7. CAN YOU SPEAK MAGIC MESH 7 DON’T. BUT YOU ALREADY KNEW THAT.
  • 8. CAN YOU SPEAK MAGIC WEBRTC IS: • Signaling: JSON, SDP, JSEP • Connection and NAT traversal: STUN, TURN, ICE • Media: RTP, SRTP, DTLS • Codecs: VP8, H264, Opus (not an acronym! Yay!) • Data: SCTP • Oh my! 8
  • 9. CAN YOU SPEAK MAGIC OUR REQUIREMENTS • SFU for UI and UX purposes • SIP legacy support with audio and video • Recording of simultaneous media streams in one place 9
  • 10. CAN YOU SPEAK MAGIC I HAVE AN HEADACHE NOW • The goal is to have a general-purpose architecture • What do we need to build • Video conferencing SFU with PSTN support • Streaming and teaching platform • White-label web conferencing 10
  • 11. CAN YOU SPEAK MAGIC SO WHAT DID WE PICK? 11
  • 12. CAN YOU SPEAK MAGIC ENTER JANUS • General purpose WebRTC gateway • Small footprint • C-based, all functionality is in plugins • Developed by MeetEcho 12
  • 13. CAN YOU SPEAK MAGIC JANUS CAPABILITIES • JSON signaling • RTP/SRTP relaying • Data messages • No transcoding • Recording is in its own format and for single streams 13
  • 14. CAN YOU SPEAK MAGIC JANUS FEATURES • REST or Websocket API if used directly • Provides a JS library to use in browsers • Ability to wrap API in your own service • RabbitMQ/MQTT/UnixSockets • Admin API to control and monitor instance • Event emitters 14
  • 15. CAN YOU SPEAK MAGIC JANUS PLUGINS • A plugin is your application or a feature of your application • The core only handles the signaling and sessions • Functionality goes in plugins • Written in C • Examples: video room, echo test, SIP interop, screen cast… • The SIP plugin uses the Sofia stack 15
  • 16. CAN YOU SPEAK MAGIC SAMPLE INTERACTION • POST to server root to get session ID • POST to attach a plugin (activate a feature) • Plugin-level API interactions (create room, join room, kick participant…) 16
  • 17. CAN YOU SPEAK MAGIC SOUNDS GREAT. WHAT ABOUT FREESWITCH? 17
  • 18. CAN YOU SPEAK MAGIC BACK TO OUR USE CASE • Providing SFU to web users and MCU to legacy users • Until Unified Plan multicast comes, we have to make one connection for each participant to the SFU • Currently using SIP, moving to Verto 18
  • 19. CAN YOU SPEAK MAGIC OUR ARCHITECTURE 19 RE SR EST asd asd RE ST RE SR EST asd asd RE ST RE SR EST asd asd RE ST RE SR EST asd asd RE ST REST REST RE SR ES Ta sd as dR ES T SFU Media SIP RTP MCU Media SIP
  • 20. CAN YOU SPEAK MAGIC FREESWITCH SETUP • Just using mod_conference • No actual actions, everything is handled through another API • SIP users are in the FS conference only • H.264 and Opus only, low resolution streams (640x480) 20
  • 21. CAN YOU SPEAK MAGIC CURRENT CHALLENGES • There is no real reason to use SIP • The media that comes from the SIP side is the MCU video • Multiple media connections are not exactly the best 21
  • 22. CAN YOU SPEAK MAGIC THANK YOU! My name is: Luca Pradovera I am a Voice Application Developer at Mojo Lingo. Web: https://mojolingo.com Twitter: @lucaprado GitHub: lpradovera 22