We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Asynchronous event/state notifications in the Janus WebRTC server

Formal Metadata

Title
Asynchronous event/state notifications in the Janus WebRTC server
Subtitle
Providing administrators and developers with more tools to manage a Janus instance
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
This presentation introduces a new modular mechanism for implementing livestate and event notifications within the context of Janus WebRTC serverinstances, for the purpose of allowing administrators and developers tomonitor and handle WebRTC sessions more effectively. Janus is a general purpose open source WebRTC server and gateway. It allowsyou to implement heterogeneous and complex WebRTC multimedia applicationsusing the different functionality it provides as modules, and can interactwith legacy technologies as well in the process (e.g., SIP or RTSP). Anintroduction to Janus was made ad Fosdem '16. This new presentation is aimedto address a new feature recently added to Janus, and currently being workedon in a separate branch that will soon be merged. Specifically, a modular mechanism has been designed and implemented to allowmodules to receive asynchronous and live events of several different typesfrom Janus and its plugins, in order to then handle them accordingly.Notifications can be about whatever is happening in a Janus instance, e.g.,Janus sessions/handles and their states, PeerConnections and their lifecycle(SDP exchanges, ICE and DTLS state changes, etc.), application plugininternals and related events, and so on. These new modules can then decidewhether to just forward these events, or a subset of them, to an externalbackend for further processing, or process them themselves. Use case examplesare simple debugging, live monitoring, troubleshooting, storing on DBs orother systems in a structured way, CDRs, etc. Within the context of Janus,this is particularly useful as so far the only API available to administratorshas been a query/response API to monitor the WebRTC internals of Janus itselfand a few other aspects, which limited the scope of what admins could do toeffectively manage a Janus instance. At the time of writing, a single module implementing this mechanism exists,one we implemented ourselves as a proof of concept and that simply forwardsall events as JSON objects to an external web server. In the future moremodules will be implemented to cover more practical scenarios, hopefully bythird-party developers as well.