asynchronous event state notifications
play

Asynchronous event/state notifications Janus Where were we? Admin - PowerPoint PPT Presentation

FOSDEM2017 L. Miniero Asynchronous event/state notifications Janus Where were we? Admin API in the Janus WebRTC server Monitoring Event Handlers Homer/HEP Providing administrators and developers with more tools to manage a Janus instance


  1. FOSDEM2017 L. Miniero Asynchronous event/state notifications Janus Where were we? Admin API in the Janus WebRTC server Monitoring Event Handlers Homer/HEP Providing administrators and developers with more tools to manage a Janus instance Demo EchoTest VideoRoom Next steps Lorenzo Miniero @elminiero FOSDEM 2017 Real Time devroom 4 th February 2017, Brussels

  2. Outline FOSDEM2017 L. Miniero 1 Janus: a general purpose WebRTC gateway (application) server Janus Where were we? (FOSDEM 2016) Where were we? Admin API First take at monitoring: the Admin API Monitoring Event Handlers Homer/HEP 2 A new type of Janus plugins: Event Handlers Demo An asynchronous approach to monitoring/troubleshooting EchoTest VideoRoom Real example: integrating Homer as a monitoring framework Next steps 3 Playing with Event Handlers: a look at the real thing Monitoring a single PeerConnection: Echo Test Correlating multiple PeerConnections: Video Room 4 Next steps

  3. Janus: a general purpose WebRTC gateway server FOSDEM2017 • A door between the communications past and future L. Miniero • Legacy technologies (the “past”) • WebRTC (the “future”) Janus Where were we? Admin API Monitoring Janus Event Handlers Homer/HEP General purpose, open source WebRTC gateway Demo • https://github.com/meetecho/janus-gateway EchoTest VideoRoom • Demos and documentation: https://janus.conf.meetecho.com Next steps • Community: https://groups.google.com/forum/#!forum/meetecho-janus

  4. A quick recap: modular architecture FOSDEM2017 • The core only implements the WebRTC stack L. Miniero • JSEP/SDP , ICE, DTLS-SRTP , Data Channels, ... Janus Where were we? • Plugins expose Janus API over different “transports” Admin API Monitoring • Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT Event Handlers Homer/HEP • “Application” logic implemented in plugins too Demo EchoTest • Users attach to plugins via the Janus core VideoRoom Next steps • The core handles the WebRTC stuff • Plugins route/manipulate the media/data • Plugins can be combined on client side as “bricks” • Video SFU, Audio MCU, SIP gatewaying, broadcasting, etc. FOSDEM 2016 slides • http://bit.ly/2jQGsgh

  5. Anything wrong? Check the Admin API! FOSDEM2017 • Requests/response API to interrogate Janus L. Miniero • Query server capabilities • Control some aspects (e.g., enable/disable debugging) Janus • Inspect handles and WebRTC “internals” Where were we? Admin API • ... assuming you know the identifiers to query (session/handle) Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps http://www.meetecho.com/blog/understanding-the-janus-admin-api/

  6. Admin API overview: polling for information FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps

  7. Admin API overview: polling for information FOSDEM2017 L. Miniero { "session_id": 6281631500841242, Janus "handle_id": 6383008526518405, Where were we? Admin API "plugin": "janus.plugin.echotest", Monitoring [..] Event Handlers "plugin_specific": { Homer/HEP [..] Demo EchoTest }, VideoRoom "flags": { Next steps [..] }, "sdps": { [..] }, "streams": [ [..] ] }

  8. Admin API overview: polling for information FOSDEM2017 L. Miniero { "session_id": 6281631500841242, Janus "handle_id": 6383008526518405, Where were we? Admin API "plugin": "janus.plugin.echotest", Monitoring [..] Event Handlers "plugin_specific": { Homer/HEP [..] Demo EchoTest }, VideoRoom "flags": { Next steps [..] }, "sdps": { [..] }, "streams": [ [..] ] }

  9. Admin API overview: polling for information FOSDEM2017 L. Miniero { "session_id": 6281631500841242, Janus "handle_id": 6383008526518405, Where were we? Admin API "plugin": "janus.plugin.echotest", Monitoring [..] Event Handlers "plugin_specific": { Homer/HEP [..] Demo EchoTest }, VideoRoom "flags": { Next steps [..] }, "sdps": { [..] }, "streams": [ [..] ] }

  10. Admin API overview: polling for information FOSDEM2017 L. Miniero { "session_id": 6281631500841242, Janus "handle_id": 6383008526518405, Where were we? Admin API "plugin": "janus.plugin.echotest", Monitoring [..] Event Handlers "plugin_specific": { Homer/HEP [..] Demo EchoTest }, VideoRoom "flags": { Next steps [..] }, "sdps": { [..] }, "streams": [ [..] ] }

  11. Admin API overview: polling for information FOSDEM2017 L. Miniero { "session_id": 6281631500841242, Janus "handle_id": 6383008526518405, Where were we? Admin API "plugin": "janus.plugin.echotest", Monitoring [..] Event Handlers "plugin_specific": { Homer/HEP [..] Demo EchoTest }, VideoRoom "flags": { Next steps [..] }, "sdps": { [..] }, "streams": [ [..] ] }

  12. Admin API overview: polling for information FOSDEM2017 L. Miniero { "session_id": 6281631500841242, Janus "handle_id": 6383008526518405, Where were we? Admin API "plugin": "janus.plugin.echotest", Monitoring [..] Event Handlers "plugin_specific": { Homer/HEP [..] Demo EchoTest }, VideoRoom "flags": { Next steps [..] }, "sdps": { [..] }, "streams": [ [..] ] }

  13. An asynchronous approach to monitoring/troubleshooting FOSDEM2017 • Admin API is cool, but is request/response... L. Miniero • Needs you to poll again to see changes Janus Where were we? • Information is lost when session/handle is gone Admin API Monitoring • What about an asynchronous approach instead? Event Handlers Homer/HEP Demo • A new mechanism: Event Handlers EchoTest VideoRoom • Core and plugins generate events Next steps • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • 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 • Third-party plugins may provide integration with existing frameworks

  14. An asynchronous approach to monitoring/troubleshooting FOSDEM2017 • Admin API is cool, but is request/response... L. Miniero • Needs you to poll again to see changes Janus Where were we? • Information is lost when session/handle is gone Admin API Monitoring • What about an asynchronous approach instead? Event Handlers Homer/HEP Demo • A new mechanism: Event Handlers EchoTest VideoRoom • Core and plugins generate events Next steps • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • 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 • Third-party plugins may provide integration with existing frameworks

  15. An asynchronous approach to monitoring/troubleshooting FOSDEM2017 • Admin API is cool, but is request/response... L. Miniero • Needs you to poll again to see changes Janus Where were we? • Information is lost when session/handle is gone Admin API Monitoring • What about an asynchronous approach instead? Event Handlers Homer/HEP Demo • A new mechanism: Event Handlers EchoTest VideoRoom • Core and plugins generate events Next steps • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • 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 • Third-party plugins may provide integration with existing frameworks

  16. An asynchronous approach to monitoring/troubleshooting FOSDEM2017 • Admin API is cool, but is request/response... L. Miniero • Needs you to poll again to see changes Janus Where were we? • Information is lost when session/handle is gone Admin API Monitoring • What about an asynchronous approach instead? Event Handlers Homer/HEP Demo • A new mechanism: Event Handlers EchoTest VideoRoom • Core and plugins generate events Next steps • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • 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 • Third-party plugins may provide integration with existing frameworks

  17. Event Handlers overview: routing and managing async events FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend