mod_janus is available from the github repo https://github.com/freeswitch/mod_janus

See the README in that repo for up to date documentation.

The mod_janus endpoint provides an interface to the Janus audiobridge (https://janus.conf.meetecho.com/docs/audiobridge.html).

This allows legacy POTS to join the same room as the WebRTC users that are already supported by Janus.

The module will only support audio calls - video calls will be rejected.  The long polling HTTP interface is used in communication with Janus.  No provision is given to the Websocket interface.

Build Module

Make sure the following line is present and uncommented in /usr/src/freeswitch/modules.conf:


Then build and install mod_janus:

make mod_janus-install

For freeBSD, use gmake. 

If you have installed SSL after building the janus module, you will need to re-bootstrap, re-configure and re-build freeswitch.

Run 'fs_cli'.

load mod_janus

Enable Module

Uncomment the following in modules.conf.xml:

<load module="mod_janus"/>

Sample Configuration File

If called with the following dialstring ("{janus-use-existing-room=true}janus/demo/MyName@1234) this configuration file should allow you to test using the Janus audiobridge demo (https://janus.conf.meetecho.com/audiobridgetest.html)

<configuration name="janus.conf" description="Janus Endpoint">
    <param name="debug" value="false"/>

  <server name="demo">
    <param name="url" value="https://janus.conf.meetecho.com/janus"/>
    <!-- <param name="secret" value="the-secret"/> -->
    <param name="enabled" value="true"/>
    <param name="rtp-ip" value="$${bind_server_ip}"/>
    <!-- <param name="apply-candidate-acl" value="localnet.auto"/> -->
    <!-- <param name="local-network-acl" value="localnet.auto"/> -->
    <param name="ext-rtp-ip" value="auto-nat"/>
    <param name="codec-string" value="opus"/>

Channel Variables

The following channel variables are defined:


 The configuration file consists of two sections:

  1. A settings section that currently only contains the debug flag, and
  2. A list of Janus servers to connect to.  Multiple servers may be defined the module can route calls to any of them.

 Each server contains the following fields:

Console API

The following commands are available on the console API:


 The dial string is composed of the following parts:

/janus/<server>/<display name>@<room>