SlideShare a Scribd company logo
1 of 80
Download to read offline
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Janus: an open source and general purpose
WebRTC gateway (application) server
Lorenzo Miniero
@elminiero
WebRTC Stockholm Meetup
16th February 2017, Stockholm
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
My 2nd
time in Stockholm! (1st
was IETF75, 2009)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
So many reasons to love Sweden...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
So many reasons to love Sweden...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
So many reasons to love Sweden...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
So many reasons to love Sweden...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
So many reasons to love Sweden...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
So many reasons to love Sweden...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Outline
1 A brief introduction
2 Some context
WebRTC and standardization activities
3 Janus: a general purpose WebRTC gateway (application) server
Modular architecture: plugins and APIs
Deploying Janus: a few possible topologies
Monitoring and troubleshooting
4 Some practical examples
What is Janus used for today, and by whom?
5 Next steps
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Who am I?
• Someone not used to this cold!
• Born in Antwerp, Belgium
• Too cold, so raised in sunny Sorrento, Italy
• Now living (and working) in Napoli
• Current activities
• Recently got my Ph.D @ UniNA
• Co-founder @ Meetecho (and Chairman, if you can believe it...)
• Focus on real-time multimedia applications
• Web conferencing only, at first
• Then widened the scope to multimedia in general
• Strong perspective on standardization and open source
• WebRTC rulez!
• Getting older but, unlike whisky, not getting any better
• https://twitter.com/elminiero
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Who am I?
• Someone not used to this cold!
• Born in Antwerp, Belgium
• Too cold, so raised in sunny Sorrento, Italy
• Now living (and working) in Napoli
• Current activities
• Recently got my Ph.D @ UniNA
• Co-founder @ Meetecho (and Chairman, if you can believe it...)
• Focus on real-time multimedia applications
• Web conferencing only, at first
• Then widened the scope to multimedia in general
• Strong perspective on standardization and open source
• WebRTC rulez!
• Getting older but, unlike whisky, not getting any better
• https://twitter.com/elminiero
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Who am I?
• Someone not used to this cold!
• Born in Antwerp, Belgium
• Too cold, so raised in sunny Sorrento, Italy
• Now living (and working) in Napoli
• Current activities
• Recently got my Ph.D @ UniNA
• Co-founder @ Meetecho (and Chairman, if you can believe it...)
• Focus on real-time multimedia applications
• Web conferencing only, at first
• Then widened the scope to multimedia in general
• Strong perspective on standardization and open source
• WebRTC rulez!
• Getting older but, unlike whisky, not getting any better
• https://twitter.com/elminiero
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Who am I?
• Someone not used to this cold!
• Born in Antwerp, Belgium
• Too cold, so raised in sunny Sorrento, Italy
• Now living (and working) in Napoli
• Current activities
• Recently got my Ph.D @ UniNA
• Co-founder @ Meetecho (and Chairman, if you can believe it...)
• Focus on real-time multimedia applications
• Web conferencing only, at first
• Then widened the scope to multimedia in general
• Strong perspective on standardization and open source
• WebRTC rulez!
• Getting older but, unlike whisky, not getting any better
• https://twitter.com/elminiero
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
((*)
This is what Napoli looks like in the Winter...)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Ok, ok, enough about you... what’s WebRTC about?
• Real-time media in a browser
• Up to some time ago, no standard solution!
• No interoperability
• Plugins needed to be installed anyway
WebRTC = Joint standardization efforts
• Internet Engineering Task Force (IETF)
• World Wide Web Consortium (W3C)
• RTCWEB (IETF)
• Real-Time Communication in WEB browsers WG
• Defines protocols and formats to use
• WEBRTC (W3C)
• Web Real-Time Communications WG
• Defines UI and API to access devices
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Ok, ok, enough about you... what’s WebRTC about?
• Real-time media in a browser
• Up to some time ago, no standard solution!
• No interoperability
• Plugins needed to be installed anyway
WebRTC = Joint standardization efforts
• Internet Engineering Task Force (IETF)
• World Wide Web Consortium (W3C)
• RTCWEB (IETF)
• Real-Time Communication in WEB browsers WG
• Defines protocols and formats to use
• WEBRTC (W3C)
• Web Real-Time Communications WG
• Defines UI and API to access devices
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Ok, ok, enough about you... what’s WebRTC about?
• Real-time media in a browser
• Up to some time ago, no standard solution!
• No interoperability
• Plugins needed to be installed anyway
WebRTC = Joint standardization efforts
• Internet Engineering Task Force (IETF)
• World Wide Web Consortium (W3C)
• RTCWEB (IETF)
• Real-Time Communication in WEB browsers WG
• Defines protocols and formats to use
• WEBRTC (W3C)
• Web Real-Time Communications WG
• Defines UI and API to access devices
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
WebRTC reference architecture
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
The WebRTC protocol suite
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
The WebRTC protocol suite
• Signalling (well, sort of) and Negotiation
• Javascript Session Establishment Protocol (JSEP)
• Session Description Protocol (SDP) adaptation
• Connection Establishment and NAT Traversal
• Session Traversal Utilities for NAT (STUN)
• Traversal Using Relay NAT (TURN)
• Interactive Connectivity Establishment (ICE)
• Media Transport and Control
• Real-time Transport (and Control) Protocol (RTP/RTCP)
• Secure Extensions to RTP (SRTP)
• Datagram Transport Layer Security (DTLS)
• Multimedia codecs
• Opus audio codec (MTI, Mandatory-to-implement)
• VP8 and H.264 video codecs (MTI, Mandatory-to-implement)
• Generic Data
• WebRTC Data Channels (SCTP)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
The WebRTC protocol suite
• Signalling (well, sort of) and Negotiation
• Javascript Session Establishment Protocol (JSEP)
• Session Description Protocol (SDP) adaptation
• Connection Establishment and NAT Traversal
• Session Traversal Utilities for NAT (STUN)
• Traversal Using Relay NAT (TURN)
• Interactive Connectivity Establishment (ICE)
• Media Transport and Control
• Real-time Transport (and Control) Protocol (RTP/RTCP)
• Secure Extensions to RTP (SRTP)
• Datagram Transport Layer Security (DTLS)
• Multimedia codecs
• Opus audio codec (MTI, Mandatory-to-implement)
• VP8 and H.264 video codecs (MTI, Mandatory-to-implement)
• Generic Data
• WebRTC Data Channels (SCTP)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
WebRTC reference architecture (again)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Involving a gateway/server (and applications)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Involving different technologies as well
“What is a WebRTC Gateway anyway?”
• https://webrtchacks.com/webrtc-gw/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Involving different technologies as well
“What is a WebRTC Gateway anyway?”
• https://webrtchacks.com/webrtc-gw/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Janus: a general purpose WebRTC gateway server
“In ancient Roman religion and
myth, Janus [..] is the god of
beginnings and transitions, and
thereby of gates, doors, passages,
endings and time. He is usually
depicted as having two faces, since
he looks to the future and to the
past.”
— http://en.wikipedia.org/wiki/Janus
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Janus: a general purpose WebRTC gateway server
• A door between the communications past and future
• Legacy technologies (the “past”)
• WebRTC (the “future”)
Janus
General purpose, open source WebRTC gateway
• https://github.com/meetecho/janus-gateway
• Demos and documentation: https://janus.conf.meetecho.com
• Community: https://groups.google.com/forum/#!forum/meetecho-janus
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!)
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Some plugins available out-of-the-box
• Streaming (→ Plain RTP or RTSP to WebRTC!)
• Video Room (→ Selective Forwarding Unit!)
• Audio Bridge (→ Mixer/MCU!)
• SIP Gateway (→ “Legacy” SIP!)
• ...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!)
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Some plugins available out-of-the-box
• Streaming (→ Plain RTP or RTSP to WebRTC!)
• Video Room (→ Selective Forwarding Unit!)
• Audio Bridge (→ Mixer/MCU!)
• SIP Gateway (→ “Legacy” SIP!)
• ...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!)
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Some plugins available out-of-the-box
• Streaming (→ Plain RTP or RTSP to WebRTC!)
• Video Room (→ Selective Forwarding Unit!)
• Audio Bridge (→ Mixer/MCU!)
• SIP Gateway (→ “Legacy” SIP!)
• ...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!)
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Some plugins available out-of-the-box
• Streaming (→ Plain RTP or RTSP to WebRTC!)
• Video Room (→ Selective Forwarding Unit!)
• Audio Bridge (→ Mixer/MCU!)
• SIP Gateway (→ “Legacy” SIP!)
• ...
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Extensible Architecture and API
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Extensible Architecture and API
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Plugins as “bricks”
• Each plugin is a feature, not an application
• Application can be composed out of different features
• Features as “bricks” for a complex scenario
• A few examples...
• Multimedia conferencing with PSTN support
• Video Room (participants video & screen) + SIP (participants audio)
• Webinar with Q&A
• Video Room (screen) + Video Room (speakers) + Audio Bridge (questions)
• Social TV
• Streaming (TV channel) + Video Room (interaction)
• Contact center / Communication in social networks
• SIP plugin (calls) + Echo Test (diagnostics) + Record & Play (messaging)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Plugins as “bricks”
• Each plugin is a feature, not an application
• Application can be composed out of different features
• Features as “bricks” for a complex scenario
• A few examples...
• Multimedia conferencing with PSTN support
• Video Room (participants video & screen) + SIP (participants audio)
• Webinar with Q&A
• Video Room (screen) + Video Room (speakers) + Audio Bridge (questions)
• Social TV
• Streaming (TV channel) + Video Room (interaction)
• Contact center / Communication in social networks
• SIP plugin (calls) + Echo Test (diagnostics) + Record & Play (messaging)
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Webinar with Q/A
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Social TV
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Deploying Janus: a few possible topologies
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Anything wrong? Check the Admin API!
• Requests/response API to interrogate Janus
• Query server capabilities
• Control some aspects (e.g., enable/disable debugging)
• Inspect handles and WebRTC “internals”
• What about asynchronous events? More on that in a minute!
http://www.meetecho.com/blog/understanding-the-janus-admin-api/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Admin API overview: polling for information
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs constant polling, and data is unavailable after the session ends
• What about an asynchronous approach?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• “Sample Event Handler” forwards JSON events via HTTP
• Learning more with practical examples (node.js + DB)
• http://www.meetecho.com/blog/event-handlers-a-practical-example/
• http://www.meetecho.com/blog/correlating-janus-event-handlers/
• https://fosdem.org/2017/schedule/event/janus/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs constant polling, and data is unavailable after the session ends
• What about an asynchronous approach?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• “Sample Event Handler” forwards JSON events via HTTP
• Learning more with practical examples (node.js + DB)
• http://www.meetecho.com/blog/event-handlers-a-practical-example/
• http://www.meetecho.com/blog/correlating-janus-event-handlers/
• https://fosdem.org/2017/schedule/event/janus/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs constant polling, and data is unavailable after the session ends
• What about an asynchronous approach?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• “Sample Event Handler” forwards JSON events via HTTP
• Learning more with practical examples (node.js + DB)
• http://www.meetecho.com/blog/event-handlers-a-practical-example/
• http://www.meetecho.com/blog/correlating-janus-event-handlers/
• https://fosdem.org/2017/schedule/event/janus/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Event Handlers overview: routing and managing async events
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
A first real integration: HEPIC (Homer++)
https://fosdem.org/2017/schedule/event/homer/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Stressing Janus: Jattack!
• Jattack = Janus Attack (or J’attaque )
• Controllable (via WebSockets) WebRTC client stack
• Allows dynamic creation/monitoring of tons of WebRTC PeerConnections
• Still improving it, but already in a usable state
• Can receive (and optionally record) media
• Can also send media, if you provide an RTP source yourself
• Live events on everything that happens
• Originally conceived as a homemade tool for stressing Janus
• Might actually be used with other servers as well
• All the logic (signalling included) is in the controller
• Presented at IPTComm in Chicago just a few months ago!
• https://prezi.com/krg1esxoa6ug/jattack/
• https://www.youtube.com/watch?v=UwNq8p0m1js
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Stressing Janus: Jattack!
• Jattack = Janus Attack (or J’attaque )
• Controllable (via WebSockets) WebRTC client stack
• Allows dynamic creation/monitoring of tons of WebRTC PeerConnections
• Still improving it, but already in a usable state
• Can receive (and optionally record) media
• Can also send media, if you provide an RTP source yourself
• Live events on everything that happens
• Originally conceived as a homemade tool for stressing Janus
• Might actually be used with other servers as well
• All the logic (signalling included) is in the controller
• Presented at IPTComm in Chicago just a few months ago!
• https://prezi.com/krg1esxoa6ug/jattack/
• https://www.youtube.com/watch?v=UwNq8p0m1js
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Stressing Janus: Jattack!
• Jattack = Janus Attack (or J’attaque )
• Controllable (via WebSockets) WebRTC client stack
• Allows dynamic creation/monitoring of tons of WebRTC PeerConnections
• Still improving it, but already in a usable state
• Can receive (and optionally record) media
• Can also send media, if you provide an RTP source yourself
• Live events on everything that happens
• Originally conceived as a homemade tool for stressing Janus
• Might actually be used with other servers as well
• All the logic (signalling included) is in the controller
• Presented at IPTComm in Chicago just a few months ago!
• https://prezi.com/krg1esxoa6ug/jattack/
• https://www.youtube.com/watch?v=UwNq8p0m1js
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Stressing Janus: Jattack!
• Jattack = Janus Attack (or J’attaque )
• Controllable (via WebSockets) WebRTC client stack
• Allows dynamic creation/monitoring of tons of WebRTC PeerConnections
• Still improving it, but already in a usable state
• Can receive (and optionally record) media
• Can also send media, if you provide an RTP source yourself
• Live events on everything that happens
• Originally conceived as a homemade tool for stressing Janus
• Might actually be used with other servers as well
• All the logic (signalling included) is in the controller
• Presented at IPTComm in Chicago just a few months ago!
• https://prezi.com/krg1esxoa6ug/jattack/
• https://www.youtube.com/watch?v=UwNq8p0m1js
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Stressing Janus: Jattack!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Stressing Janus: Jattack!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)
• Web conferencing and Webinars
• WebRTC-to-SIP gateway
• Streaming of live events (e.g., IETF meetings, stay tuned!)
• Many folks/companies also using it in creative ways!
• E-learning
• Coworking
• Contact centers
• TV broadcasting and Social TV
• Surveillance systems
• E-health
• Home automation & Internet of Things
• Mobile devices, Raspberry Pis, drones, etc.
• New third-party tools are starting to come out
• https://janus.conf.meetecho.com/docs/resources
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)
• Web conferencing and Webinars
• WebRTC-to-SIP gateway
• Streaming of live events (e.g., IETF meetings, stay tuned!)
• Many folks/companies also using it in creative ways!
• E-learning
• Coworking
• Contact centers
• TV broadcasting and Social TV
• Surveillance systems
• E-health
• Home automation & Internet of Things
• Mobile devices, Raspberry Pis, drones, etc.
• New third-party tools are starting to come out
• https://janus.conf.meetecho.com/docs/resources
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)
• Web conferencing and Webinars
• WebRTC-to-SIP gateway
• Streaming of live events (e.g., IETF meetings, stay tuned!)
• Many folks/companies also using it in creative ways!
• E-learning
• Coworking
• Contact centers
• TV broadcasting and Social TV
• Surveillance systems
• E-health
• Home automation & Internet of Things
• Mobile devices, Raspberry Pis, drones, etc.
• New third-party tools are starting to come out
• https://janus.conf.meetecho.com/docs/resources
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
A “silly” use case: The Jumping Sumo!
https://www.youtube.com/watch?v=isGSnMlKcss
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
A “silly” use case: The Jumping Sumo!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
“Matrix wins Best of Show at WebRTC World!”
https://www.youtube.com/watch?v=OMzDklvDS3c
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
“Matrix wins Best of Show at WebRTC World!”
https://www.youtube.com/watch?v=NpBStIIq6fM
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Jangouts (for "Janus Hangouts" )
https://github.com/jangouts/jangouts
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
SylkServer (SIP/XMPP Application Server)
http://sylkserver.com/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
SylkServer (SIP/XMPP Application Server)
http://sylkserver.com/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Slack (team co-working)
https://webrtchacks.com/dear-slack/
https://webrtchacks.com/slack-webrtc-slacking/
https://slack.engineering/calls-is-it-you-or-is-it-me-f5d36749e8ed
https://webrtchacks.com/slack-video/
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Mattermost (team co-working)
https://docs.mattermost.com/deployment/webrtc.html
https://github.com/mattermost/mattermost-webrtc
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Beam (videogame streaming)
https://beam.pro/
https://github.com/WatchBeam/ftl-sdk
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Lenovo’s AirClass (e-learning)
https://www.airclass.com
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Sqwiggle / Speak.io (team co-working)
https://www.sqwiggle.com
https://speak.io
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Sqwiggle / Speak.io (team co-working)
https://www.sqwiggle.com
https://speak.io
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Veeting rooms (web conferencing)
https://www.veeting.com
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
AliceX (let’s call it “virtual reality” )
https://www.alicex.com
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• Keep on improving and fixing things
• Code cleanup, reference counters, new modules, ...
• A monitoring/troubleshooting framework on top of Event Handlers
• Test Test Test!
• Jattack will greatly help here
Help us improve this!
• Play with it, more testing is important
• Write your own applications/wrappers/plugins!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• Keep on improving and fixing things
• Code cleanup, reference counters, new modules, ...
• A monitoring/troubleshooting framework on top of Event Handlers
• Test Test Test!
• Jattack will greatly help here
Help us improve this!
• Play with it, more testing is important
• Write your own applications/wrappers/plugins!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• Keep on improving and fixing things
• Code cleanup, reference counters, new modules, ...
• A monitoring/troubleshooting framework on top of Event Handlers
• Test Test Test!
• Jattack will greatly help here
Help us improve this!
• Play with it, more testing is important
• Write your own applications/wrappers/plugins!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• Keep on improving and fixing things
• Code cleanup, reference counters, new modules, ...
• A monitoring/troubleshooting framework on top of Event Handlers
• Test Test Test!
• Jattack will greatly help here
Help us improve this!
• Play with it, more testing is important
• Write your own applications/wrappers/plugins!
Janus
L. Miniero
Intro
WebRTC
Standardization
Janus
Modules and APIs
Deploying
Troubleshooting
Examples
A few examples
Next steps
Questions?
@elminiero
@meetecho

More Related Content

What's hot

What's hot (20)

WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021
 
FOSDEM2017 - Janus Event Handlers
FOSDEM2017 - Janus Event HandlersFOSDEM2017 - Janus Event Handlers
FOSDEM2017 - Janus Event Handlers
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019
 
FOSDEM2018 Janus Lua plugin presentation
FOSDEM2018 Janus Lua plugin presentationFOSDEM2018 Janus Lua plugin presentation
FOSDEM2018 Janus Lua plugin presentation
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
SIP/WebRTC load testing @ KamailioWorld 2017
SIP/WebRTC load testing @ KamailioWorld 2017SIP/WebRTC load testing @ KamailioWorld 2017
SIP/WebRTC load testing @ KamailioWorld 2017
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017
 
Scaling WebRTC applications with Janus
Scaling WebRTC applications with JanusScaling WebRTC applications with Janus
Scaling WebRTC applications with Janus
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with Janus
 
WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018
 

Viewers also liked

Viewers also liked (14)

Design and Implementation of a Quadrotor Helicopter
Design and Implementation of a Quadrotor HelicopterDesign and Implementation of a Quadrotor Helicopter
Design and Implementation of a Quadrotor Helicopter
 
C All 2008 7 26
C All 2008 7 26C All 2008 7 26
C All 2008 7 26
 
Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017
 
Lil bibby
Lil bibbyLil bibby
Lil bibby
 
Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017
 
Sosiale media vir klein sake
Sosiale media vir klein sakeSosiale media vir klein sake
Sosiale media vir klein sake
 
Pierce Transit White Paper Summary for 25th ESV Conference
Pierce Transit White Paper Summary for 25th ESV ConferencePierce Transit White Paper Summary for 25th ESV Conference
Pierce Transit White Paper Summary for 25th ESV Conference
 
Do work
Do workDo work
Do work
 
N2W Partnership overview
N2W Partnership overviewN2W Partnership overview
N2W Partnership overview
 
Newington
NewingtonNewington
Newington
 
Ecopol tech portfolio construction polymers
Ecopol tech portfolio construction polymersEcopol tech portfolio construction polymers
Ecopol tech portfolio construction polymers
 
Ecopol tech portfolio fabric coatings
Ecopol tech portfolio fabric coatingsEcopol tech portfolio fabric coatings
Ecopol tech portfolio fabric coatings
 
B2B Marketing Disruption
B2B Marketing DisruptionB2B Marketing Disruption
B2B Marketing Disruption
 
Alzheimer 03-2017
Alzheimer 03-2017Alzheimer 03-2017
Alzheimer 03-2017
 

Similar to Janus @ WebRTC Meetup Stockholm

WebRTC Standards -- The 10 Minutes guide
WebRTC Standards -- The 10 Minutes guideWebRTC Standards -- The 10 Minutes guide
WebRTC Standards -- The 10 Minutes guide
Victor Pascual Ávila
 

Similar to Janus @ WebRTC Meetup Stockholm (20)

Janus @ DevDay Napoli
Janus @ DevDay NapoliJanus @ DevDay Napoli
Janus @ DevDay Napoli
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
 
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceWebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge InteroperabilityWebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC Testing
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016
 
Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC Reborn
 
Torino js
Torino jsTorino js
Torino js
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
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
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)
 
WebRTC Standards -- The 10 Minutes guide
WebRTC Standards -- The 10 Minutes guideWebRTC Standards -- The 10 Minutes guide
WebRTC Standards -- The 10 Minutes guide
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019
 
Kurento FIWARE
Kurento FIWAREKurento FIWARE
Kurento FIWARE
 

More from Lorenzo Miniero

More from Lorenzo Miniero (14)

WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020
 
Welcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusWelcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of Janus
 

Recently uploaded

Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 
How to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in PakistanHow to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in Pakistan
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 

Janus @ WebRTC Meetup Stockholm

  • 1. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Janus: an open source and general purpose WebRTC gateway (application) server Lorenzo Miniero @elminiero WebRTC Stockholm Meetup 16th February 2017, Stockholm
  • 2. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps My 2nd time in Stockholm! (1st was IETF75, 2009)
  • 3. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps So many reasons to love Sweden...
  • 4. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps So many reasons to love Sweden...
  • 5. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps So many reasons to love Sweden...
  • 6. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps So many reasons to love Sweden...
  • 7. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps So many reasons to love Sweden...
  • 8. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps So many reasons to love Sweden...
  • 9. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Outline 1 A brief introduction 2 Some context WebRTC and standardization activities 3 Janus: a general purpose WebRTC gateway (application) server Modular architecture: plugins and APIs Deploying Janus: a few possible topologies Monitoring and troubleshooting 4 Some practical examples What is Janus used for today, and by whom? 5 Next steps
  • 10. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Who am I? • Someone not used to this cold! • Born in Antwerp, Belgium • Too cold, so raised in sunny Sorrento, Italy • Now living (and working) in Napoli • Current activities • Recently got my Ph.D @ UniNA • Co-founder @ Meetecho (and Chairman, if you can believe it...) • Focus on real-time multimedia applications • Web conferencing only, at first • Then widened the scope to multimedia in general • Strong perspective on standardization and open source • WebRTC rulez! • Getting older but, unlike whisky, not getting any better • https://twitter.com/elminiero
  • 11. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Who am I? • Someone not used to this cold! • Born in Antwerp, Belgium • Too cold, so raised in sunny Sorrento, Italy • Now living (and working) in Napoli • Current activities • Recently got my Ph.D @ UniNA • Co-founder @ Meetecho (and Chairman, if you can believe it...) • Focus on real-time multimedia applications • Web conferencing only, at first • Then widened the scope to multimedia in general • Strong perspective on standardization and open source • WebRTC rulez! • Getting older but, unlike whisky, not getting any better • https://twitter.com/elminiero
  • 12. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Who am I? • Someone not used to this cold! • Born in Antwerp, Belgium • Too cold, so raised in sunny Sorrento, Italy • Now living (and working) in Napoli • Current activities • Recently got my Ph.D @ UniNA • Co-founder @ Meetecho (and Chairman, if you can believe it...) • Focus on real-time multimedia applications • Web conferencing only, at first • Then widened the scope to multimedia in general • Strong perspective on standardization and open source • WebRTC rulez! • Getting older but, unlike whisky, not getting any better • https://twitter.com/elminiero
  • 13. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Who am I? • Someone not used to this cold! • Born in Antwerp, Belgium • Too cold, so raised in sunny Sorrento, Italy • Now living (and working) in Napoli • Current activities • Recently got my Ph.D @ UniNA • Co-founder @ Meetecho (and Chairman, if you can believe it...) • Focus on real-time multimedia applications • Web conferencing only, at first • Then widened the scope to multimedia in general • Strong perspective on standardization and open source • WebRTC rulez! • Getting older but, unlike whisky, not getting any better • https://twitter.com/elminiero
  • 14. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps ((*) This is what Napoli looks like in the Winter...)
  • 15. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Ok, ok, enough about you... what’s WebRTC about? • Real-time media in a browser • Up to some time ago, no standard solution! • No interoperability • Plugins needed to be installed anyway WebRTC = Joint standardization efforts • Internet Engineering Task Force (IETF) • World Wide Web Consortium (W3C) • RTCWEB (IETF) • Real-Time Communication in WEB browsers WG • Defines protocols and formats to use • WEBRTC (W3C) • Web Real-Time Communications WG • Defines UI and API to access devices
  • 16. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Ok, ok, enough about you... what’s WebRTC about? • Real-time media in a browser • Up to some time ago, no standard solution! • No interoperability • Plugins needed to be installed anyway WebRTC = Joint standardization efforts • Internet Engineering Task Force (IETF) • World Wide Web Consortium (W3C) • RTCWEB (IETF) • Real-Time Communication in WEB browsers WG • Defines protocols and formats to use • WEBRTC (W3C) • Web Real-Time Communications WG • Defines UI and API to access devices
  • 17. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Ok, ok, enough about you... what’s WebRTC about? • Real-time media in a browser • Up to some time ago, no standard solution! • No interoperability • Plugins needed to be installed anyway WebRTC = Joint standardization efforts • Internet Engineering Task Force (IETF) • World Wide Web Consortium (W3C) • RTCWEB (IETF) • Real-Time Communication in WEB browsers WG • Defines protocols and formats to use • WEBRTC (W3C) • Web Real-Time Communications WG • Defines UI and API to access devices
  • 18. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps WebRTC reference architecture
  • 19. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps The WebRTC protocol suite
  • 20. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps The WebRTC protocol suite • Signalling (well, sort of) and Negotiation • Javascript Session Establishment Protocol (JSEP) • Session Description Protocol (SDP) adaptation • Connection Establishment and NAT Traversal • Session Traversal Utilities for NAT (STUN) • Traversal Using Relay NAT (TURN) • Interactive Connectivity Establishment (ICE) • Media Transport and Control • Real-time Transport (and Control) Protocol (RTP/RTCP) • Secure Extensions to RTP (SRTP) • Datagram Transport Layer Security (DTLS) • Multimedia codecs • Opus audio codec (MTI, Mandatory-to-implement) • VP8 and H.264 video codecs (MTI, Mandatory-to-implement) • Generic Data • WebRTC Data Channels (SCTP)
  • 21. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps The WebRTC protocol suite • Signalling (well, sort of) and Negotiation • Javascript Session Establishment Protocol (JSEP) • Session Description Protocol (SDP) adaptation • Connection Establishment and NAT Traversal • Session Traversal Utilities for NAT (STUN) • Traversal Using Relay NAT (TURN) • Interactive Connectivity Establishment (ICE) • Media Transport and Control • Real-time Transport (and Control) Protocol (RTP/RTCP) • Secure Extensions to RTP (SRTP) • Datagram Transport Layer Security (DTLS) • Multimedia codecs • Opus audio codec (MTI, Mandatory-to-implement) • VP8 and H.264 video codecs (MTI, Mandatory-to-implement) • Generic Data • WebRTC Data Channels (SCTP)
  • 22. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps WebRTC reference architecture (again)
  • 23. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Involving a gateway/server (and applications)
  • 24. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Involving different technologies as well “What is a WebRTC Gateway anyway?” • https://webrtchacks.com/webrtc-gw/
  • 25. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Involving different technologies as well “What is a WebRTC Gateway anyway?” • https://webrtchacks.com/webrtc-gw/
  • 26. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Janus: a general purpose WebRTC gateway server “In ancient Roman religion and myth, Janus [..] is the god of beginnings and transitions, and thereby of gates, doors, passages, endings and time. He is usually depicted as having two faces, since he looks to the future and to the past.” — http://en.wikipedia.org/wiki/Janus
  • 27. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Janus: a general purpose WebRTC gateway server • A door between the communications past and future • Legacy technologies (the “past”) • WebRTC (the “future”) Janus General purpose, open source WebRTC gateway • https://github.com/meetecho/janus-gateway • Demos and documentation: https://janus.conf.meetecho.com • Community: https://groups.google.com/forum/#!forum/meetecho-janus
  • 28. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Modular architecture • The core only implements the WebRTC stack • JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ... • Plugins expose Janus API over different transports • Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!) • “Application” logic implemented in plugins too • Users attach to plugins via the Janus core • The core handles the WebRTC stuff • Plugins route/manipulate the media/data • Some plugins available out-of-the-box • Streaming (→ Plain RTP or RTSP to WebRTC!) • Video Room (→ Selective Forwarding Unit!) • Audio Bridge (→ Mixer/MCU!) • SIP Gateway (→ “Legacy” SIP!) • ...
  • 29. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Modular architecture • The core only implements the WebRTC stack • JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ... • Plugins expose Janus API over different transports • Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!) • “Application” logic implemented in plugins too • Users attach to plugins via the Janus core • The core handles the WebRTC stuff • Plugins route/manipulate the media/data • Some plugins available out-of-the-box • Streaming (→ Plain RTP or RTSP to WebRTC!) • Video Room (→ Selective Forwarding Unit!) • Audio Bridge (→ Mixer/MCU!) • SIP Gateway (→ “Legacy” SIP!) • ...
  • 30. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Modular architecture • The core only implements the WebRTC stack • JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ... • Plugins expose Janus API over different transports • Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!) • “Application” logic implemented in plugins too • Users attach to plugins via the Janus core • The core handles the WebRTC stuff • Plugins route/manipulate the media/data • Some plugins available out-of-the-box • Streaming (→ Plain RTP or RTSP to WebRTC!) • Video Room (→ Selective Forwarding Unit!) • Audio Bridge (→ Mixer/MCU!) • SIP Gateway (→ “Legacy” SIP!) • ...
  • 31. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Modular architecture • The core only implements the WebRTC stack • JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ... • Plugins expose Janus API over different transports • Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT (new!) • “Application” logic implemented in plugins too • Users attach to plugins via the Janus core • The core handles the WebRTC stuff • Plugins route/manipulate the media/data • Some plugins available out-of-the-box • Streaming (→ Plain RTP or RTSP to WebRTC!) • Video Room (→ Selective Forwarding Unit!) • Audio Bridge (→ Mixer/MCU!) • SIP Gateway (→ “Legacy” SIP!) • ...
  • 32. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Extensible Architecture and API
  • 33. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Extensible Architecture and API
  • 34. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Plugins as “bricks” • Each plugin is a feature, not an application • Application can be composed out of different features • Features as “bricks” for a complex scenario • A few examples... • Multimedia conferencing with PSTN support • Video Room (participants video & screen) + SIP (participants audio) • Webinar with Q&A • Video Room (screen) + Video Room (speakers) + Audio Bridge (questions) • Social TV • Streaming (TV channel) + Video Room (interaction) • Contact center / Communication in social networks • SIP plugin (calls) + Echo Test (diagnostics) + Record & Play (messaging)
  • 35. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Plugins as “bricks” • Each plugin is a feature, not an application • Application can be composed out of different features • Features as “bricks” for a complex scenario • A few examples... • Multimedia conferencing with PSTN support • Video Room (participants video & screen) + SIP (participants audio) • Webinar with Q&A • Video Room (screen) + Video Room (speakers) + Audio Bridge (questions) • Social TV • Streaming (TV channel) + Video Room (interaction) • Contact center / Communication in social networks • SIP plugin (calls) + Echo Test (diagnostics) + Record & Play (messaging)
  • 36. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Webinar with Q/A
  • 37. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Social TV
  • 38. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 39. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 40. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 41. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 42. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 43. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 44. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Deploying Janus: a few possible topologies
  • 45. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Anything wrong? Check the Admin API! • Requests/response API to interrogate Janus • Query server capabilities • Control some aspects (e.g., enable/disable debugging) • Inspect handles and WebRTC “internals” • What about asynchronous events? More on that in a minute! http://www.meetecho.com/blog/understanding-the-janus-admin-api/
  • 46. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Admin API overview: polling for information
  • 47. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs constant polling, and data is unavailable after the session ends • What about an asynchronous approach? • A new mechanism: Event Handlers • Core and plugins generate events • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • “Sample Event Handler” forwards JSON events via HTTP • Learning more with practical examples (node.js + DB) • http://www.meetecho.com/blog/event-handlers-a-practical-example/ • http://www.meetecho.com/blog/correlating-janus-event-handlers/ • https://fosdem.org/2017/schedule/event/janus/
  • 48. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs constant polling, and data is unavailable after the session ends • What about an asynchronous approach? • A new mechanism: Event Handlers • Core and plugins generate events • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • “Sample Event Handler” forwards JSON events via HTTP • Learning more with practical examples (node.js + DB) • http://www.meetecho.com/blog/event-handlers-a-practical-example/ • http://www.meetecho.com/blog/correlating-janus-event-handlers/ • https://fosdem.org/2017/schedule/event/janus/
  • 49. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs constant polling, and data is unavailable after the session ends • What about an asynchronous approach? • A new mechanism: Event Handlers • Core and plugins generate events • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • “Sample Event Handler” forwards JSON events via HTTP • Learning more with practical examples (node.js + DB) • http://www.meetecho.com/blog/event-handlers-a-practical-example/ • http://www.meetecho.com/blog/correlating-janus-event-handlers/ • https://fosdem.org/2017/schedule/event/janus/
  • 50. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Event Handlers overview: routing and managing async events
  • 51. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps A first real integration: HEPIC (Homer++) https://fosdem.org/2017/schedule/event/homer/
  • 52. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Stressing Janus: Jattack! • Jattack = Janus Attack (or J’attaque ) • Controllable (via WebSockets) WebRTC client stack • Allows dynamic creation/monitoring of tons of WebRTC PeerConnections • Still improving it, but already in a usable state • Can receive (and optionally record) media • Can also send media, if you provide an RTP source yourself • Live events on everything that happens • Originally conceived as a homemade tool for stressing Janus • Might actually be used with other servers as well • All the logic (signalling included) is in the controller • Presented at IPTComm in Chicago just a few months ago! • https://prezi.com/krg1esxoa6ug/jattack/ • https://www.youtube.com/watch?v=UwNq8p0m1js
  • 53. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Stressing Janus: Jattack! • Jattack = Janus Attack (or J’attaque ) • Controllable (via WebSockets) WebRTC client stack • Allows dynamic creation/monitoring of tons of WebRTC PeerConnections • Still improving it, but already in a usable state • Can receive (and optionally record) media • Can also send media, if you provide an RTP source yourself • Live events on everything that happens • Originally conceived as a homemade tool for stressing Janus • Might actually be used with other servers as well • All the logic (signalling included) is in the controller • Presented at IPTComm in Chicago just a few months ago! • https://prezi.com/krg1esxoa6ug/jattack/ • https://www.youtube.com/watch?v=UwNq8p0m1js
  • 54. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Stressing Janus: Jattack! • Jattack = Janus Attack (or J’attaque ) • Controllable (via WebSockets) WebRTC client stack • Allows dynamic creation/monitoring of tons of WebRTC PeerConnections • Still improving it, but already in a usable state • Can receive (and optionally record) media • Can also send media, if you provide an RTP source yourself • Live events on everything that happens • Originally conceived as a homemade tool for stressing Janus • Might actually be used with other servers as well • All the logic (signalling included) is in the controller • Presented at IPTComm in Chicago just a few months ago! • https://prezi.com/krg1esxoa6ug/jattack/ • https://www.youtube.com/watch?v=UwNq8p0m1js
  • 55. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Stressing Janus: Jattack! • Jattack = Janus Attack (or J’attaque ) • Controllable (via WebSockets) WebRTC client stack • Allows dynamic creation/monitoring of tons of WebRTC PeerConnections • Still improving it, but already in a usable state • Can receive (and optionally record) media • Can also send media, if you provide an RTP source yourself • Live events on everything that happens • Originally conceived as a homemade tool for stressing Janus • Might actually be used with other servers as well • All the logic (signalling included) is in the controller • Presented at IPTComm in Chicago just a few months ago! • https://prezi.com/krg1esxoa6ug/jattack/ • https://www.youtube.com/watch?v=UwNq8p0m1js
  • 56. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Stressing Janus: Jattack!
  • 57. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Stressing Janus: Jattack!
  • 58. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What is Janus used for today, and by whom? • We use it ourselves for many things (obviously) • Web conferencing and Webinars • WebRTC-to-SIP gateway • Streaming of live events (e.g., IETF meetings, stay tuned!) • Many folks/companies also using it in creative ways! • E-learning • Coworking • Contact centers • TV broadcasting and Social TV • Surveillance systems • E-health • Home automation & Internet of Things • Mobile devices, Raspberry Pis, drones, etc. • New third-party tools are starting to come out • https://janus.conf.meetecho.com/docs/resources
  • 59. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What is Janus used for today, and by whom? • We use it ourselves for many things (obviously) • Web conferencing and Webinars • WebRTC-to-SIP gateway • Streaming of live events (e.g., IETF meetings, stay tuned!) • Many folks/companies also using it in creative ways! • E-learning • Coworking • Contact centers • TV broadcasting and Social TV • Surveillance systems • E-health • Home automation & Internet of Things • Mobile devices, Raspberry Pis, drones, etc. • New third-party tools are starting to come out • https://janus.conf.meetecho.com/docs/resources
  • 60. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What is Janus used for today, and by whom? • We use it ourselves for many things (obviously) • Web conferencing and Webinars • WebRTC-to-SIP gateway • Streaming of live events (e.g., IETF meetings, stay tuned!) • Many folks/companies also using it in creative ways! • E-learning • Coworking • Contact centers • TV broadcasting and Social TV • Surveillance systems • E-health • Home automation & Internet of Things • Mobile devices, Raspberry Pis, drones, etc. • New third-party tools are starting to come out • https://janus.conf.meetecho.com/docs/resources
  • 61. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps A “silly” use case: The Jumping Sumo! https://www.youtube.com/watch?v=isGSnMlKcss
  • 62. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps A “silly” use case: The Jumping Sumo!
  • 63. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps “Matrix wins Best of Show at WebRTC World!” https://www.youtube.com/watch?v=OMzDklvDS3c
  • 64. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps “Matrix wins Best of Show at WebRTC World!” https://www.youtube.com/watch?v=NpBStIIq6fM
  • 65. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Jangouts (for "Janus Hangouts" ) https://github.com/jangouts/jangouts
  • 66. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps SylkServer (SIP/XMPP Application Server) http://sylkserver.com/
  • 67. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps SylkServer (SIP/XMPP Application Server) http://sylkserver.com/
  • 68. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Slack (team co-working) https://webrtchacks.com/dear-slack/ https://webrtchacks.com/slack-webrtc-slacking/ https://slack.engineering/calls-is-it-you-or-is-it-me-f5d36749e8ed https://webrtchacks.com/slack-video/
  • 69. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Mattermost (team co-working) https://docs.mattermost.com/deployment/webrtc.html https://github.com/mattermost/mattermost-webrtc
  • 70. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Beam (videogame streaming) https://beam.pro/ https://github.com/WatchBeam/ftl-sdk
  • 71. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Lenovo’s AirClass (e-learning) https://www.airclass.com
  • 72. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Sqwiggle / Speak.io (team co-working) https://www.sqwiggle.com https://speak.io
  • 73. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Sqwiggle / Speak.io (team co-working) https://www.sqwiggle.com https://speak.io
  • 74. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Veeting rooms (web conferencing) https://www.veeting.com
  • 75. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps AliceX (let’s call it “virtual reality” ) https://www.alicex.com
  • 76. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What to do next? • Finalize the WebRTC implementation • Work on effective renegotiation (ICE restarts almost ready) • Implement multistream (Unified Plan) • Keep on improving and fixing things • Code cleanup, reference counters, new modules, ... • A monitoring/troubleshooting framework on top of Event Handlers • Test Test Test! • Jattack will greatly help here Help us improve this! • Play with it, more testing is important • Write your own applications/wrappers/plugins!
  • 77. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What to do next? • Finalize the WebRTC implementation • Work on effective renegotiation (ICE restarts almost ready) • Implement multistream (Unified Plan) • Keep on improving and fixing things • Code cleanup, reference counters, new modules, ... • A monitoring/troubleshooting framework on top of Event Handlers • Test Test Test! • Jattack will greatly help here Help us improve this! • Play with it, more testing is important • Write your own applications/wrappers/plugins!
  • 78. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What to do next? • Finalize the WebRTC implementation • Work on effective renegotiation (ICE restarts almost ready) • Implement multistream (Unified Plan) • Keep on improving and fixing things • Code cleanup, reference counters, new modules, ... • A monitoring/troubleshooting framework on top of Event Handlers • Test Test Test! • Jattack will greatly help here Help us improve this! • Play with it, more testing is important • Write your own applications/wrappers/plugins!
  • 79. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps What to do next? • Finalize the WebRTC implementation • Work on effective renegotiation (ICE restarts almost ready) • Implement multistream (Unified Plan) • Keep on improving and fixing things • Code cleanup, reference counters, new modules, ... • A monitoring/troubleshooting framework on top of Event Handlers • Test Test Test! • Jattack will greatly help here Help us improve this! • Play with it, more testing is important • Write your own applications/wrappers/plugins!
  • 80. Janus L. Miniero Intro WebRTC Standardization Janus Modules and APIs Deploying Troubleshooting Examples A few examples Next steps Questions? @elminiero @meetecho