Fork me on GitHub
Loading...
Searching...
No Matches
Janus - General purpose WebRTC server
Note Well: these are the demos and documentation for the multistream version of Janus, which is a new version. If you want to check the previous version of Janus instead (i.e., 0.x, a.k.a. "legacy") click here instead.
Developer Documentation for the Janus WebRTC server
This is the main developer documentation for the Janus WebRTC Server, generated with the help of Doxygen. Make sure you check the Dependencies before attempting a compilation. If you are interested in how to compile, install and use Janus, checkout the README information. A Frequently Asked Questions page is also available, as well as an overview on Tagged versions and Changelog.
A general purpose WebRTC server
The Janus WebRTC Server has been conceived as a general purpose server. As such, it doesn't provide any functionality per se other than implementing the means to set up a WebRTC media communication with a browser, exchanging JSON messages with it, and relaying RTP/RTCP and messages between browsers and the server-side application logic they're attached to. Any specific feature/application needs to be implemented in server side plugins, that browsers can then contact via the Janus core to take advantage of the functionality they provide. Example of such plugins can be implementations of applications like echo tests, conference bridges, media recorders, SIP gateways and the like.

The reason for this is simple: we wanted something that would have a small footprint (hence a C implementation) and that we could only equip with what was really needed (hence pluggable modules). That is, something that would allow us to deploy either a full-fledged WebRTC server on the cloud, or a small nettop/box to handle a specific use case.

Architecture and APIs
The core of the server is specified in the Core section. The protocols implemented in the Janus core are listed in the Protocols group instead. A list of plugins provided out of the box by Meetecho are documented in the Plugins documentation page: these plugins can be changed or extended to match your requirements, or just used as a simple reference should you be interested in writing a new plugin from scratch (and you're definitely welcome to!). A Plugin API to create new plugins, or understand how they're conceived, is documented as well. A documentation on the available API transports and the HTTP/WebSocket JavaScript API to use Janus and the plugins it makes available in your web application can be found in the JavaScript API and RESTful, WebSockets, RabbitMQ, MQTT, Nanomsg and UnixSockets API pages. New API transports can be created referring to the Transport API page. If you're interested in monitoring Janus resources, you can refer to the Admin/Monitor API page. Event handler plugins can also be used for the purpose: refer to the Event handlers documentation and, for more developer oriented info, to the Event Handler API page if you're interested in creating your own. For what concerns logging, out of the box Janus supports printing the output to stdout and saving to a local file, but logging can also be extended via additional plugins: refer to the Logger API for more details, and to learn how to write your own. You can check the Writing code for Janus page for some details about how to setup your local development environment for Janus..

Janus also supports Recordings out of the box, so check the related documentation to know more about how that works.

Finally, some information on how to deploy Janus and your web applications that want to make use of it are provided in the Deploying Janus page. If you're interested in starting Janus as a service/daemon rather than launching it normally, check the information provided in the Janus as a daemon/service page. Some additional Resources are also listed in case you're interested in talking to Janus from different languages and platforms.

To conclude, the Debugging Janus page contains info on how you can help us fixing issues you might encounter along the road.

Copyright and author

Janus WebRTC Server © 2014-2024 Meetecho (https://www.meetecho.com/)

Author
Lorenzo Miniero loren.nosp@m.zo@m.nosp@m.eetec.nosp@m.ho.c.nosp@m.om ( Credits )

License

This program is free software, distributed under the terms of the GNU General Public License Version 3. For more details and licensing options, including a commercial license, see the License page.