janus − WebRTC server/gateway
janus [options]
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.
−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)
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
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.
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
Lorenzo Miniero ([email protected])