JANUS(1)

NAME
janus - WebRTC server/gateway

SYNOPSIS
janus [options]

DESCRIPTION
janus is a WebRTC server/gateway developed by Meetecho conceived to be a general purpose one. 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 or application, exchanging JSON messages with it over different transports, and relaying RTP/RTCP and messages between clients and the server-side application logic they're attached to. Any specific feature/application is provided by server side plugins, that browsers can then contact via the server 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.

OPTIONS

-h, --help
    Print help and exit

-V, --version
    Print version and exit

-b, --daemon
    Launch Janus in background as a daemon (default=off)

-p, --pid-file=path
    Open the specified PID file when starting Janus (default=none)

-N, --disable-stdout
    Disable stdout based logging (default=off)

-L, --log-stdout
    Log to stdout, even when the process is daemonized (default=off)

-L, --log-file=path
    Log to the specified file (default=stdout only)

-H, --cwd-path=path
    Working directory for Janus daemon process (default=/)

-i, --interface=ipaddress
    Interface to use (will be the public IP)

-P, --plugins-folder=path
    Plugins folder (default=./plugins)

-C, --config=filename
    Configuration file to use

-F, --configs-folder=path
    Configuration files folder (default=./conf)

-c, --cert-pem=filename
    DTLS certificate

-k, --cert-key=filename
    DTLS certificate key

-K, --cert-pwd=text
    DTLS certificate key passphrase (if needed)

-S, --stun-server=address:port
    STUN server(:port) to use, if needed (e.g., Janus behind NAT, default=none)

-1, --nat-1-1=ips
    Comma-separated list of public IPs to put in all host candidates, assuming a 1:1 NAT is in place (e.g., Amazon EC2 instances, default=none)

-2, --keep-private-host
    When nat-1-1 is used (e.g., Amazon EC2 instances), don't remove the private host, but keep both to simulate STUN (default=off)

-E, --ice-enforce-list=list
    Comma-separated list of the only interfaces to use for ICE gathering; partial strings are supported (e.g., eth0 or eno1,wlan0, default=none)

-X, --ice-ignore-list=list
    Comma-separated list of interfaces or IP addresses to ignore for ICE gathering; partial strings are supported (e.g., vmnet8,192.168.0.1,10.0.0.1 or vmnet,192.168., default=vmnet)

-6, --ipv6-candidates
    Whether to enable IPv6 candidates or not (default=off)

-O, --ipv6-link-local
    Whether IPv6 link-local candidates should be gathered as well (default=off)

-l, --libnice-debug
    Whether to enable libnice debugging or not (default=off)

-f, --full-trickle
    Do full-trickle instead of half-trickle (default=off)

-I, --ice-lite
    Whether to enable the ICE Lite mode or not (default=off)

-T, --ice-tcp
    Whether to enable ICE-TCP or not (warning: only works with ICE Lite) (default=off)

-Q, --min-nack-queue=number
    Minimum size of the NACK queue (in ms) per user for retransmissions, no matter the RTT

-t, --no-media-timer=number
    Time (in s) that should pass with no media (audio or video) being received before Janus notifies you about this

-W, --slowlink-threshold=number
    Number of lost packets (per s) that should trigger a 'slowlink' Janus API event to users (default=0, feature disabled)

-r, --rtp-port-range=min-max
    Port range to use for RTP/RTCP

-B, --twcc-period=number
    How often (in ms) to send TWCC feedback back to senders, if negotiated (default=200ms)

-n, --server-name=name
    Public name of this Janus instance (default=MyJanusInstance)

-s, --session-timeout=number
    Session timeout value, in seconds (default=60)

-m, --reclaim-session-timeout=number
    Reclaim session timeout value, in seconds (default=0)

-d, --debug-level=1-7
    Debug/logging level (0=disable debugging, 7=maximum debug level; default=4)

-D, --debug-timestamps
    Enable debug/logging timestamps (default=off)

-o, --disable-colors
    Disable color in the logging (default=off)

-M, --debug-locks
    Enable debugging of locks/mutexes (very verbose! default=off)

-a, --apisecret=randomstring
    API secret all requests need to pass in order to be accepted by Janus (useful when wrapping Janus API requests in a server, none by default)

-A, --token-auth
    Enable token-based authentication for all requests (default=off)

-e, --event-handlers
    Enable event handlers (default=off)

-w, --no-webrtc-encryption
    Disable WebRTC encryption, so no DTLS or SRTP (only for debugging!) (default=off)

EXAMPLES
janus - Launch Janus with all options from configurations files

janus -b -L /tmp/januslog - Launch Janus as a daemon and log to the specified file

janus -6 - Launch Janus with IPv6 support enabled

janus -f - Launch Janus with full-trickle enabled

BUGS

If you think you found a bug or want to contribute a feature, you can issue or a pull request on https://github.com/meetecho/janus-gateway/issues.

Anyway, before doing that make sure you read the documentation at https://janus.conf.meetecho.com/docs/ and that it has not been discussed already at https://janus.discourse.group/. We only use Github for code issues, and NOT for configuration or usage issues: use the group for that.

SEE ALSO

https://github.com/meetecho/janus-gateway - Official repository

https://janus.conf.meetecho.com - Demos and documentation

https://janus.discourse.group/ - Community

https://www.meetecho.com/blog/ - Tutorials and blog posts on Janus

AUTHORS
Lorenzo Miniero (lorenzo@meetecho.com)