Date post: | 12-Apr-2017 |
Category: |
Engineering |
Upload: | devday |
View: | 255 times |
Download: | 0 times |
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Janus: an open source and general purposeWebRTC gateway (application) server
Lorenzo Miniero@elminiero
25th January 2017, DevDay Napoli
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Outline
1 A brief introduction
2 Some contextWebRTC and standardization activities
3 Janus: a general purpose WebRTC gateway (application) serverModular architecture: plugins and APIsDeploying Janus: a few possible topologiesMonitoring and troubleshooting
4 Some practical examplesWhat is Janus used for today, and by whom?
5 Next steps
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
What’s Meetecho?
• Co-founded in 2009 as an academic spin-off• University research efforts brought to the market
• Recently got my Ph.D @ UniNA
• Proudly brewed in sunny Napoli(*), Italy
• 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!
• Several activities• Consulting services• Commercial support & licenses• Streaming of live events (e.g., IETF, ACM SIGCOMM, ...)• Products (conferencing, webinar, ...)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
What’s Meetecho?
• Co-founded in 2009 as an academic spin-off• University research efforts brought to the market
• Recently got my Ph.D @ UniNA
• Proudly brewed in sunny Napoli(*), Italy
• 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!
• Several activities• Consulting services• Commercial support & licenses• Streaming of live events (e.g., IETF, ACM SIGCOMM, ...)• Products (conferencing, webinar, ...)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
What’s Meetecho?
• Co-founded in 2009 as an academic spin-off• University research efforts brought to the market
• Recently got my Ph.D @ UniNA
• Proudly brewed in sunny Napoli(*), Italy
• 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!
• Several activities• Consulting services• Commercial support & licenses• Streaming of live events (e.g., IETF, ACM SIGCOMM, ...)• Products (conferencing, webinar, ...)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
((*)“I can see your house, from here”)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
WebRTC reference architecture
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
The WebRTC protocol suite
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
WebRTC reference architecture (again)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Involving a gateway/server (and applications)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Involving different technologies as well
“What is a WebRTC Gateway anyway?”• https://webrtchacks.com/webrtc-gw/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Involving different technologies as well
“What is a WebRTC Gateway anyway?”• https://webrtchacks.com/webrtc-gw/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Janus: a general purpose WebRTC gateway server
“In ancient Roman religion andmyth, Janus [..] is the god ofbeginnings and transitions, andthereby of gates, doors, passages,endings and time. He is usuallydepicted as having two faces, sincehe looks to the future and to thepast.”
— http://en.wikipedia.org/wiki/Janus
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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”)
JanusGeneral 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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 proof of concept plugins implemented• Echo Test• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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 proof of concept plugins implemented• Echo Test• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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 proof of concept plugins implemented• Echo Test• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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 proof of concept plugins implemented• Echo Test• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Extensible Architecture and API
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Extensible Architecture and API
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Webinar with Q/A
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Social TV
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
How do I...
• ... use Janus in my web app?• JavaScript library available (janus.{nojquery.}js)
• https://janus.conf.meetecho.com/docs/JS• You can use HTTP or WebSockets transports• Several demos available to start from
• ... use Janus, but keeping my API?• Wrap the Janus API on the server side
• https://janus.conf.meetecho.com/docs/rest• https://janus.conf.meetecho.com/docs/resources
• Effective way to control what users can do• Also helps to orchestrate pool of Janus servers
• ... and allows you to use RabbitMQ, MQTT and UnixSockets transports
• ... ask questions, report issues, contribute, or do this/that?• https://git.io/v2hWD (contributing guidelines)• https://groups.google.com/forum/#!forum/meetecho-janus• https://janus.conf.meetecho.com/docs/FAQ
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
How do I...
• ... use Janus in my web app?• JavaScript library available (janus.{nojquery.}js)
• https://janus.conf.meetecho.com/docs/JS• You can use HTTP or WebSockets transports• Several demos available to start from
• ... use Janus, but keeping my API?• Wrap the Janus API on the server side
• https://janus.conf.meetecho.com/docs/rest• https://janus.conf.meetecho.com/docs/resources
• Effective way to control what users can do• Also helps to orchestrate pool of Janus servers
• ... and allows you to use RabbitMQ, MQTT and UnixSockets transports
• ... ask questions, report issues, contribute, or do this/that?• https://git.io/v2hWD (contributing guidelines)• https://groups.google.com/forum/#!forum/meetecho-janus• https://janus.conf.meetecho.com/docs/FAQ
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
How do I...
• ... use Janus in my web app?• JavaScript library available (janus.{nojquery.}js)
• https://janus.conf.meetecho.com/docs/JS• You can use HTTP or WebSockets transports• Several demos available to start from
• ... use Janus, but keeping my API?• Wrap the Janus API on the server side
• https://janus.conf.meetecho.com/docs/rest• https://janus.conf.meetecho.com/docs/resources
• Effective way to control what users can do• Also helps to orchestrate pool of Janus servers
• ... and allows you to use RabbitMQ, MQTT and UnixSockets transports
• ... ask questions, report issues, contribute, or do this/that?• https://git.io/v2hWD (contributing guidelines)• https://groups.google.com/forum/#!forum/meetecho-janus• https://janus.conf.meetecho.com/docs/FAQ
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A few possible topologies
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...• 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/
• A couple of potentially interesting integrations• Homer/HEP (originally conceived for SIP calls)• Live stats collection via callstats.io
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...• 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/
• A couple of potentially interesting integrations• Homer/HEP (originally conceived for SIP calls)• Live stats collection via callstats.io
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...• 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/
• A couple of potentially interesting integrations• Homer/HEP (originally conceived for SIP calls)• Live stats collection via callstats.io
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...• 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/
• A couple of potentially interesting integrations• Homer/HEP (originally conceived for SIP calls)• Live stats collection via callstats.io
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Stressing Janus: Jattack!
• Jattack = Janus Attack (or J’attacque ,)• Controllable (via WebSockets) WebRTC client stack• Allows dynamic creation/monitoring of tons of WebRTC PeerConnections
• Still WIP, but already in a usable state• Presented at IPTComm in Chicago just a few months ago!
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
• 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
• 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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)
• 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
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Streaming IETF meetings: the “director” room
Remote participation completely WebRTC-based• Slides as a video feed from the beamer• Static video feed from the room• Dynamic video feeds for remote speakers
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Meetecho: IETF meeting example
https://ietf.org/meeting/remote-participation.html
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Meetecho: IETF meeting example
https://ietf.org/meeting/remote-participation.html
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Meetecho: IETF meeting example
https://ietf.org/meeting/remote-participation.html
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Meetecho: IETF recordings
https://www.youtube.com/user/ietf
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A “silly” use case: The Jumping Sumo!
https://www.youtube.com/watch?v=isGSnMlKcss
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
A “silly” use case: The Jumping Sumo!
https://www.youtube.com/watch?v=isGSnMlKcss
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
“Matrix wins Best of Show at WebRTC World!”
https://www.youtube.com/watch?v=OMzDklvDS3c
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
“Matrix wins Best of Show at WebRTC World!”
https://www.youtube.com/watch?v=NpBStIIq6fM
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Jangouts (for "Janus Hangouts" ,)
https://github.com/jangouts/jangouts
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
SylkServer (SIP/XMPP Application Server)
http://sylkserver.com/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
SylkServer (SIP/XMPP Application Server)
http://sylkserver.com/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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-f5d36749e8edhttps://webrtchacks.com/slack-video/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Mattermost (team co-working)
https://docs.mattermost.com/deployment/webrtc.htmlhttps://github.com/mattermost/mattermost-webrtc
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Beam (videogame streaming)
https://beam.pro/https://github.com/WatchBeam/ftl-sdk
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Lenovo’s AirClass (e-learning)
https://www.airclass.com
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Sqwiggle / Speak.io (team co-working)
https://www.sqwiggle.comhttps://speak.io
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Sqwiggle / Speak.io (team co-working)
https://www.sqwiggle.comhttps://speak.io
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Veeting rooms (web conferencing)
https://www.veeting.com
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
AliceX (let’s call it “virtual reality” ,)
https://www.alicex.com
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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!
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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!
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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!
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA 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!
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Next events
• FOSDEM 2017
• February 4-5, Bruxelles (Belgium)• Talk on Event Handlers in Real-Time devroom on the 4th, 17:10
• https://fosdem.org/2017/schedule/track/real_time_communications/
• WebRTC Stockholm
• February 16, Stockholm (Sweden)• Talk on how we provide remote participation at the IETF with WebRTC
• https://www.meetup.com/WebRTC-Stockholm/
• IETF 98
• March 26-31, Chicago (USA)• No talk, just hard work!!
• https://www.ietf.org/meeting/98/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Next events
• FOSDEM 2017
• February 4-5, Bruxelles (Belgium)• Talk on Event Handlers in Real-Time devroom on the 4th, 17:10
• https://fosdem.org/2017/schedule/track/real_time_communications/
• WebRTC Stockholm
• February 16, Stockholm (Sweden)• Talk on how we provide remote participation at the IETF with WebRTC
• https://www.meetup.com/WebRTC-Stockholm/
• IETF 98
• March 26-31, Chicago (USA)• No talk, just hard work!!
• https://www.ietf.org/meeting/98/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Next events
• FOSDEM 2017
• February 4-5, Bruxelles (Belgium)• Talk on Event Handlers in Real-Time devroom on the 4th, 17:10
• https://fosdem.org/2017/schedule/track/real_time_communications/
• WebRTC Stockholm
• February 16, Stockholm (Sweden)• Talk on how we provide remote participation at the IETF with WebRTC
• https://www.meetup.com/WebRTC-Stockholm/
• IETF 98
• March 26-31, Chicago (USA)• No talk, just hard work!!
• https://www.ietf.org/meeting/98/
DevDay
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
Deploying
Troubleshooting
ExamplesA few examples
Next steps
Questions?
@elminiero@meetecho