Commit 6e806c81 authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Added default configuration

parent 5917866a
This diff is collapsed.
# room-<unique room ID>: {
# description = "This is my awesome room"
# is_private = true|false (whether this room should be in the public list, default=true)
# secret = "<optional password needed for manipulating (e.g. destroying) the room>"
# pin = "<optional password needed for joining the room>"
# sampling_rate = <sampling rate> (e.g., 16000 for wideband mixing)
# audiolevel_ext = true|false (whether the ssrc-audio-level RTP extension must
# be negotiated/used or not for new joins, default=true)
# audiolevel_event = true|false (whether to emit event to other users or not, default=false)
# audio_active_packets = 100 (number of packets with audio level, default=100, 2 seconds)
# audio_level_average = 25 (average value of audio level, 127=muted, 0='too loud', default=25)
# default_prebuffering = number of packets to buffer before decoding each particiant (default=6)
# record = true|false (whether this room should be recorded, default=false)
# record_file = "/path/to/recording.wav" (where to save the recording)
#
# The following lines are only needed if you want the mixed audio
# to be automatically forwarded via plain RTP to an external component
# (e.g., an ffmpeg script, or a gstreamer pipeline) for processing
# By default plain RTP is used, SRTP must be configured if needed
# rtp_forward_id = numeric RTP forwarder ID for referencing it via API (optional: random ID used if missing)
# rtp_forward_host = "<host address to forward RTP packets of mixed audio to>"
# rtp_forward_host_family = "<ipv4|ipv6; by default, first family returned by DNS request>"
# rtp_forward_port = port to forward RTP packets of mixed audio to
# rtp_forward_ssrc = SSRC to use to use when streaming (optional: stream_id used if missing)
# rtp_forward_codec = opus (default), pcma (A-Law) or pcmu (mu-Law)
# rtp_forward_ptype = payload type to use when streaming (optional: only read for Opus, 100 used if missing)
# rtp_forward_srtp_suite = length of authentication tag (32 or 80)
# rtp_forward_srtp_crypto = "<key to use as crypto (base64 encoded key as in SDES)>"
# rtp_forward_always_on = true|false, whether silence should be forwarded when the room is empty (optional: false used if missing)
#}
general: {
#admin_key = "supersecret" # If set, rooms can be created via API only
# if this key is provided in the request
#lock_rtp_forward = true # Whether the admin_key above should be
# enforced for RTP forwarding requests too
#lock_play_file = true # Whether the admin_key above should be
# enforced for playing .opus files too
#record_tmp_ext = "tmp" # Optional temporary extension to add to filenames
# while recording: e.g., setting "tmp" would mean
# .wav --> .wav.tmp until the file is closed
#events = false # Whether events should be sent to event
# handlers (default=true)
# By default, integers are used as a unique ID for both rooms and participants.
# In case you want to use strings instead (e.g., a UUID), set string_ids to true.
#string_ids = true
}
room-1234: {
description = "Demo Room"
secret = "adminpwd"
sampling_rate = 16000
record = false
#record_file = "/path/to/recording.wav"
}
# events = true|false, whether events should be sent to event handlers
general: {
#events = false
}
general: {
# Specify which local IP address to bind to for media.
# If not set it will be automatically guessed from the system
#local_ip = "1.2.3.4"
# Specify which (public) IP address to advertise in the SDP.
# If not set, the value above or anything autodetected will be used
#sdp_ip = "1.2.3.4"
# Range of ports to use for RTP/RTCP (default=10000-60000)
rtp_port_range = "20000-40000"
# Whether events should be sent to event handlers (default=true)
#events = false
# If you need DSCP packet marking and prioritization, you can configure
# the 'dscp_audio_rtp' and/or 'dscp_video_rtp' property to specific values,
# and the plugin will set it on all outgoing audio/video RTP packets.
# No packet marking is done if this parameter is undefined or equal to 0
#dscp_audio_rtp = 46
#dscp_video_rtp = 26
}
# path = where to place recordings in the file system
# events = true|false, whether events should be sent to event handlers
general: {
path = "/usr/share/janus/recordings"
#events = false
}
general: {
# Specify which local IP address to bind to for SIP stack.
# If not set it will be automatically guessed from the system
#local_ip = "1.2.3.4"
# Specify which local IP address to bind for the media stack.
# If not set it will be automatically set to the value of local_ip
#local_media_ip = "1.2.3.4"
# Specify which (public) IP address to advertise in the SDP.
# If not set, the value above or anything autodetected will be used
#sdp_ip = "1.2.3.4"
# Enable local keep-alives to keep the registration open. Keep-alives are
# sent in the form of OPTIONS requests, at the given interval inseconds.
# (0 to disable)
keepalive_interval = 120
# Indicate if the server is behind NAT. If so, the server will use STUN
# to guess its own public IP address and use it in the Contact header of
# outgoing requests
behind_nat = false
# User-Agent string to be used
# user_agent = "Cool WebRTC Gateway"
# Expiration time for registrations
register_ttl = 3600
# Range of ports to use for RTP/RTCP (default=10000-60000)
rtp_port_range = "20000-40000"
# Whether events should be sent to event handlers (default=true)
#events = false
# If you need DSCP packet marking and prioritization, you can configure
# the 'dscp_audio_rtp' and/or 'dscp_video_rtp' property to specific values,
# and the plugin will set it on all outgoing audio/video RTP packets.
# No packet marking is done if this parameter is undefined or equal to 0
#dscp_audio_rtp = 46
#dscp_video_rtp = 26
}
This diff is collapsed.
# room-<unique room ID>: {
# description = This is my awesome room
# is_private = true|false (whether this room should be in the public list, default=true)
# secret = <optional password needed for manipulating (e.g. destroying) the room>
# pin = <optional password needed for joining the room>
# require_pvtid = true|false (whether subscriptions are required to provide a valid private_id
# to associate with a publisher, default=false)
# publishers = <max number of concurrent senders> (e.g., 6 for a video
# conference or 1 for a webinar)
# bitrate = <max video bitrate for senders> (e.g., 128000)
# bitrate_cap = true|false (whether the above cap should act as a hard limit to
# dynamic bitrate changes by publishers; default=false, publishers can go beyond that)
# fir_freq = <send a FIR to publishers every fir_freq seconds> (0=disable)
# audiocodec = opus|g722|pcmu|pcma|isac32|isac16 (audio codec(s) to force on publishers, default=opus
# can be a comma separated list in order of preference, e.g., opus,pcmu)
# videocodec = vp8|vp9|h264|av1|h265 (video codec(s) to force on publishers, default=vp8
# can be a comma separated list in order of preference, e.g., vp9,vp8,h264)
# vp9_profile = VP9-specific profile to prefer (e.g., "2" for "profile-id=2")
# h264_profile = H.264-specific profile to prefer (e.g., "42e01f" for "profile-level-id=42e01f")
# opus_fec = true|false (whether inband FEC must be negotiated; only works for Opus, default=false)
# video_svc = true|false (whether SVC support must be enabled; only works for VP9, default=false)
# audiolevel_ext = true|false (whether the ssrc-audio-level RTP extension must
# be negotiated/used or not for new publishers, default=true)
# audiolevel_event = true|false (whether to emit event to other users or not, default=false)
# audio_active_packets = 100 (number of packets with audio level, default=100, 2 seconds)
# audio_level_average = 25 (average value of audio level, 127=muted, 0='too loud', default=25)
# videoorient_ext = true|false (whether the video-orientation RTP extension must
# be negotiated/used or not for new publishers, default=true)
# playoutdelay_ext = true|false (whether the playout-delay RTP extension must
# be negotiated/used or not for new publishers, default=true)
# transport_wide_cc_ext = true|false (whether the transport wide CC RTP extension must be
# negotiated/used or not for new publishers, default=true)
# record = true|false (whether this room should be recorded, default=false)
# rec_dir = <folder where recordings should be stored, when enabled>
# lock_record = true|false (whether recording can only be started/stopped if the secret
# is provided, or using the global enable_recording request, default=false)
# notify_joining = true|false (optional, whether to notify all participants when a new
# participant joins the room. The Videoroom plugin by design only notifies
# new feeds (publishers), and enabling this may result extra notification
# traffic. This flag is particularly useful when enabled with require_pvtid
# for admin to manage listening only participants. default=false)
# require_e2ee = true|false (whether all participants are required to publish and subscribe
# using end-to-end media encryption, e.g., via Insertable Streams; default=false)
#}
general: {
#admin_key = "supersecret" # If set, rooms can be created via API only
# if this key is provided in the request
#lock_rtp_forward = true # Whether the admin_key above should be
# enforced for RTP forwarding requests too
#events = false # Whether events should be sent to event
# handlers (default=true)
# By default, integers are used as a unique ID for both rooms and participants.
# In case you want to use strings instead (e.g., a UUID), set string_ids to true.
#string_ids = true
}
room-1234: {
description = "Demo Room"
secret = "adminpwd"
publishers = 6
bitrate = 128000
fir_freq = 10
#audiocodec = "opus"
#videocodec = "vp8"
record = false
#rec_dir = "/path/to/recordings-folder"
}
# This other demo room here is only there in case you want to play with
# the VP9 SVC support. Notice that you'll need a Chrome launched with
# the flag that enables that support, or otherwise you'll be using just
# plain VP9 (which is good if you want to test how this indeed affect
# what receivers will get, whether they're encoding SVC or not).
room-5678: {
description = "VP9-SVC Demo Room"
secret = "adminpwd"
publishers = 6
bitrate = 512000
fir_freq = 10
videocodec = "vp9"
video_svc = true
}
# room-<unique room ID>: {
# description = This is my awesome room
# is_private = true|false (whether this room should be in the public list, default=true)
# secret = <optional password needed for manipulating (e.g. destroying) the room>
# pin = <optional password needed for joining the room>
# require_pvtid = true|false (whether subscriptions are required to provide a valid private_id
# to associate with a publisher, default=false)
# publishers = <max number of concurrent senders> (e.g., 6 for a video
# conference or 1 for a webinar)
# bitrate = <max video bitrate for senders> (e.g., 128000)
# bitrate_cap = true|false (whether the above cap should act as a hard limit to
# dynamic bitrate changes by publishers; default=false, publishers can go beyond that)
# fir_freq = <send a FIR to publishers every fir_freq seconds> (0=disable)
# audiocodec = opus|g722|pcmu|pcma|isac32|isac16 (audio codec(s) to force on publishers, default=opus
# can be a comma separated list in order of preference, e.g., opus,pcmu)
# videocodec = vp8|vp9|h264|av1|h265 (video codec(s) to force on publishers, default=vp8
# can be a comma separated list in order of preference, e.g., vp9,vp8,h264)
# vp9_profile = VP9-specific profile to prefer (e.g., "2" for "profile-id=2")
# h264_profile = H.264-specific profile to prefer (e.g., "42e01f" for "profile-level-id=42e01f")
# opus_fec = true|false (whether inband FEC must be negotiated; only works for Opus, default=false)
# video_svc = true|false (whether SVC support must be enabled; only works for VP9, default=false)
# audiolevel_ext = true|false (whether the ssrc-audio-level RTP extension must
# be negotiated/used or not for new publishers, default=true)
# audiolevel_event = true|false (whether to emit event to other users or not, default=false)
# audio_active_packets = 100 (number of packets with audio level, default=100, 2 seconds)
# audio_level_average = 25 (average value of audio level, 127=muted, 0='too loud', default=25)
# videoorient_ext = true|false (whether the video-orientation RTP extension must
# be negotiated/used or not for new publishers, default=true)
# playoutdelay_ext = true|false (whether the playout-delay RTP extension must
# be negotiated/used or not for new publishers, default=true)
# transport_wide_cc_ext = true|false (whether the transport wide CC RTP extension must be
# negotiated/used or not for new publishers, default=true)
# record = true|false (whether this room should be recorded, default=false)
# rec_dir = <folder where recordings should be stored, when enabled>
# lock_record = true|false (whether recording can only be started/stopped if the secret
# is provided, or using the global enable_recording request, default=false)
# notify_joining = true|false (optional, whether to notify all participants when a new
# participant joins the room. The Videoroom plugin by design only notifies
# new feeds (publishers), and enabling this may result extra notification
# traffic. This flag is particularly useful when enabled with require_pvtid
# for admin to manage listening only participants. default=false)
# require_e2ee = true|false (whether all participants are required to publish and subscribe
# using end-to-end media encryption, e.g., via Insertable Streams; default=false)
#}
general: {
#admin_key = "supersecret" # If set, rooms can be created via API only
# if this key is provided in the request
#lock_rtp_forward = true # Whether the admin_key above should be
# enforced for RTP forwarding requests too
#events = false # Whether events should be sent to event
# handlers (default=true)
# By default, integers are used as a unique ID for both rooms and participants.
# In case you want to use strings instead (e.g., a UUID), set string_ids to true.
#string_ids = true
}
room-1234: {
description = "Demo Room"
secret = "adminpwd"
publishers = 6
bitrate = 128000
fir_freq = 10
#audiocodec = "opus"
#videocodec = "vp8"
record = false
#rec_dir = "/path/to/recordings-folder"
}
# This other demo room here is only there in case you want to play with
# the VP9 SVC support. Notice that you'll need a Chrome launched with
# the flag that enables that support, or otherwise you'll be using just
# plain VP9 (which is good if you want to test how this indeed affect
# what receivers will get, whether they're encoding SVC or not).
room-5678: {
description = "VP9-SVC Demo Room"
secret = "adminpwd"
publishers = 6
bitrate = 512000
fir_freq = 10
videocodec = "vp9"
video_svc = true
}
# path = where to place recordings in the file system (should be in a
# properly configured web server, if you want the demo to work)
# base = base path to use when returning the recording URI (use this
# to make sure the file in the path you chose is reachable via HTTP)
# events = true|false, whether events should be sent to event handlers
general: {
path = "/usr/share/janus/demos/voicemail/"
base = "/voicemail/"
events = true
}
# Web server stuff: whether any should be enabled, which ports they
# should use, whether security should be handled directly or demanded to
# an external application (e.g., web frontend) and what should be the
# base path for the Janus API protocol. Notice that by default
# all the web servers will try and bind on both IPv4 and IPv6: if you
# want to only bind to IPv4 addresses (e.g., because your system does not
# support IPv6), you should set the web server 'ip' property to '0.0.0.0'.
# To see debug logs from the HTTP server library, set 'mhd_debug'.
general: {
#events = true # Whether to notify event handlers about transport events (default=true)
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
base_path = "/janus" # Base path to bind to in the web server (plain HTTP only)
http = true # Whether to enable the plain HTTP interface
port = 8088 # Web server HTTP port
#interface = "eth0" # Whether we should bind this server to a specific interface only
#ip = "192.168.0.1" # Whether we should bind this server to a specific IP address (v4 or v6) only
https = false # Whether to enable HTTPS (default=false)
#secure_port = 8089 # Web server HTTPS port, if enabled
#secure_interface = "eth0" # Whether we should bind this server to a specific interface only
#secure_ip = "192.168.0.1" # Whether we should bind this server to a specific IP address (v4 or v6) only
#acl = "127.,192.168.0." # Only allow requests coming from this comma separated list of addresses
#mhd_connection_limit = 1020 # Open connections limit in libmicrohttpd (default=1020)
#mhd_debug = false # Ask libmicrohttpd to write warning and error messages to stderr (default=false)
}
# Janus can also expose an admin/monitor endpoint, to allow you to check
# which sessions are up, which handles they're managing, their current
# status and so on. This provides a useful aid when debugging potential
# issues in Janus. The configuration is pretty much the same as the one
# already presented above for the webserver stuff, as the API is very
# similar: choose the base bath for the admin/monitor endpoint (/admin
# by default), ports, etc. Besides, you can specify
# a secret that must be provided in all requests as a crude form of
# authorization mechanism, and partial or full source IPs if you want to
# limit access basing on IP addresses. For security reasons, this
# endpoint is disabled by default, enable it by setting admin_http=true.
admin: {
admin_base_path = "/admin" # Base path to bind to in the admin/monitor web server (plain HTTP only)
admin_http = false # Whether to enable the plain HTTP interface
admin_port = 7088 # Admin/monitor web server HTTP port
#admin_interface = "eth0" # Whether we should bind this server to a specific interface only
#admin_ip = "192.168.0.1" # Whether we should bind this server to a specific IP address (v4 or v6) only
admin_https = false # Whether to enable HTTPS (default=false)
#admin_secure_port = 7889 # Admin/monitor web server HTTPS port, if enabled
#admin_secure_interface = "eth0" # Whether we should bind this server to a specific interface only
#admin_secure_ip = "192.168.0.1 # Whether we should bind this server to a specific IP address (v4 or v6) only
#admin_acl = "127.,192.168.0." # Only allow requests coming from this comma separated list of addresses
}
# The HTTP servers created in Janus support CORS out of the box, but by
# default they return a wildcard (*) in the 'Access-Control-Allow-Origin'
# header. This works fine in most situations, except when we have to
# respond to a credential request (withCredentials=true in the XHR). If
# you need that, uncomment and set the 'allow_origin' below to specify
# what must be returned in 'Access-Control-Allow-Origin'. More details:
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
# In case you want to enforce the Origin validation, rather than leave
# it to browsers, you can set 'enforce_cors' to 'true' to have Janus
# return a '403 Forbidden' for all requests that don't comply.
cors: {
#allow_origin = "http://foo.example"
#enforce_cors = true
}
# Certificate and key to use for HTTPS, if enabled (and passphrase if needed).
# You can also disable insecure protocols and ciphers by configuring the
# 'ciphers' property accordingly (no limitation by default).
certificates: {
#cert_pem = "/path/to/cert.pem"
#cert_key = "/path/to/key.pem"
#cert_pwd = "secretpassphrase"
#ciphers = "PFS:-VERS-TLS1.0:-VERS-TLS1.1:-3DES-CBC:-ARCFOUR-128"
}
# Configuration of the MQTT additional transport for the Janus API.
general: {
enabled = false # Whether the support must be enabled
#events = true # Whether to notify event handlers about transport events (default=true)
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
url = "tcp://localhost:1883" # The connection URL of the MQTT broker: if you want
# to use SSL, make sure you type ssl:// instead of tcp://,
# and that you configure the SSL settings below
#mqtt_version = "3.1.1" # Protocol version. Available values: 3.1, 3.1.1 (default), 5.
#client_id = "guest" # Client identifier
#username = "guest" # Username to use to authenticate, if needed
#password = "guest" # Password to use to authenticate, if needed
#keep_alive_interval = 20 # Keep connection for N seconds
#cleansession = 0 # Clean session flag
#max_inflight = 10 # Maximum number of inflight messages
#max_buffered = 100 # Maximum number of buffered messages
#disconnect_timeout = 100 # Milliseconds to wait before destroying client
subscribe_topic = "to-janus" # Topic for incoming messages
#subscribe_qos = 1 # QoS for incoming messages
publish_topic = "from-janus" # Topic for outgoing messages
#publish_qos = 1 # QoS for outgoing messages
#ssl_enabled = true # Whether ssl support must be enabled
#verify_peer = true # Whether peer verification must be enabled
# Certificates to use when SSL support is enabled, if needed
#cacertfile = /path/to/cacert.pem
#certfile = /path/to/cert.pem
#keyfile = /path/to/key.pem
# These options work with MQTT 5 only.
#vacuum_interval = 60 # Interval for removing old transaction states in seconds.
#proxy_transaction_user_properties = [] # Array of user property names to copy from the incoming message.
#add_transaction_user_properties = () # List of user property ["key", "value"] pairs to add.
}
admin: {
#admin_enabled = false # Whether the support must be enabled
subscribe_topic = "to-janus-admin" # Topic for incoming admin messages
#subscribe_qos = 1 # QoS for incoming admin messages
publish_topic = "from-janus-admin" # Topic for outgoing admin messages
#publish_qos = 1 # QoS for outgoing admin messages
}
status: {
enabled = false # Whether status messages must be enabled (default: false)
# Initial message sent to status topic. Nothing is being sent if not set.
#connect_message = "{\"online\": true}"
# Message sent after disconnect or as LWT. Nothing is being sent if not set.
#disconnect_message = "{\"online\": false}"
#topic = "status" # Status topic (default: "status")
#qos = 1 # QoS for status messages (default: 1)
#retain = false # Whether status messages should be retained (default: false)
}
# You can also control a Janus instance using Nanomsg sockets. The only
# aspect you need to configure here is the address to use for the
# communication, and whether the address should be used to bind locally
# or to connect to a remote endpoint. Notice that the only supported
# pattern is NN_PAIR, so you'll only be able to have a single client
# controlling the API with this plugin. As usual, both Janus API and Admin
# API endpoints can be configured.
general: {
enabled = true # Whether to enable the Nanomsg interface
# for Janus API clients
#events = true # Whether to notify event handlers about transport events (default=true)
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
#mode = "bind" # Whether we should 'bind' to the specified
# address (default), or connect to it if remote
address = "ipc:///tmp/janus.ipc" # Address to use (Janus API), refer
# to the Nanomsg documentation for more info
# on different transports you can use here
}
# As with other transport plugins, you can use Nanomsg to interact with
# the Admin API as well: in case you're interested in it, a different
# address needs to be provided.
admin: {
admin_enabled = false # Whether to enable the Nanomsg interface
# for Admin API clients
#admin_mode = "bind"
#admin_address = "ipc:///tmp/janus-admin.ipc"
}
# You can also control a Janus instance using Unix Sockets. The only
# aspect you need to configure here is the path of the Unix Sockets
# server. Notice that by default the interface is disabled, as you need
# to specify the path(s) to bind to for the API(s).
general: {
enabled = false # Whether to enable the Unix Sockets interface
# for Janus API clients
#events = true # Whether to notify event handlers about transport events (default=true)
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
#path = "/path/to/ux-janusapi" # Path to bind to (Janus API)
#type = "SOCK_SEQPACKET" # SOCK_SEQPACKET (default) or SOCK_DGRAM?
}
# As with other transport plugins, you can use Unix Sockets to interact
# with the Admin API as well: in case you're interested in it, a different
# path needs to be provided.
admin: {
admin_enabled = false # Whether to enable the Unix Sockets interface
# for Admin API clients
#admin_path = "/path/to/ux-janusadmin" # Path to bind to (Admin API)
#admin_type = "SOCK_SEQPACKET" # SOCK_SEQPACKET (default) or SOCK_DGRAM?
}
# Configuration of the RabbitMQ additional transport for the Janus API.
# This is only useful when you're wrapping Janus requests in your server
# application, and handling the communication with clients your own way.
# At the moment, only a single "application" can be handled at the same
# time, meaning that Janus won't implement multiple queues to handle
# multiple concurrent "application servers" taking advantage of its
# features. Support for this is planned, though (e.g., through some kind
# of negotiation to create queues on the fly). Right now, you can only
# configure the address of the RabbitMQ server to use, and the queues to
# make use of to receive (to-janus) and send (from-janus) messages
# from/to an external application. If you're using the same RabbitMQ
# server instance for multiple Janus instances, make sure you configure
# different queues for each of them (e.g., from-janus-1/to-janus-1 and
# from-janus-2/to-janus-2), or otherwise both the instances will make
# use of the same queues and messages will get lost. The integration
# is disabled by default, so set enabled=true if you want to use it.
general: {
enabled = false # Whether the support must be enabled
#events = true # Whether to notify event handlers about transport events (default=true)
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
host = "localhost" # The address of the RabbitMQ server
#port = 5672 # The port of the RabbitMQ server (5672 by default)
#username = "guest" # Username to use to authenticate, if needed
#password = "guest" # Password to use to authenticate, if needed
#vhost = "/" # Virtual host to specify when logging in, if needed
#janus_exchange = "janus-exchange" # Exchange for outgoing messages, using default if not provided
#janus_exchange_type = "fanout" # Rabbitmq exchange_type can be one of the available types: direct, topic, headers and fanout (fanout by defualt).
#queue_name = "janus-gateway" # Queue name for incoming messages (if set and janus_exchange_type is topic/direct, to_janus will be the routing key the queue is bound to the exchange on)
to_janus = "to-janus" # Name of the queue for incoming messages if queue_name isn't set, otherwise, the routing key that queue_name is bound to
from_janus = "from-janus" # Routing key of the message sent from janus (as well as the name of the outgoing queue if declare_outgoing_queue = true)
#declare_outgoing_queue = true # By default (for backwards compatibility), we declare an outgoing queue. Set this to false to disable that behavior
#queue_durable = false # Whether or not incoming queue should remain after a RabbitMQ reboot
#queue_autodelete = false # Whether or not incoming queue should autodelete after janus disconnects from RabbitMQ
#queue_exclusive = false # Whether or not incoming queue should only allow one subscriber
#ssl_enabled = false # Whether ssl support must be enabled
#ssl_verify_peer = true # Whether peer verification must be enabled
#ssl_verify_hostname = true # Whether hostname verification must be enabled
# Certificates to use when SSL support is enabled, if needed
#ssl_cacert = "/path/to/cacert.pem"
#ssl_cert = "/path/to/cert.pem"
#ssl_key = "/path/to/key.pem"
}
# If you want to expose the Admin API via RabbitMQ as well, you need to
# specify a different set of queues, as you cannot mix Janus API and
# Admin API messaging. The same RabbitMQ server is supposed to be used.
# Notice that by default the Admin API support via RabbitMQ is disabled.
admin: {
#admin_enabled = false # Whether the support must be enabled
#queue_name_admin = "janus-gateway-admin" # Queue name for incoming admin messages (if set and janus_exchange_type is topic/direct, to_janus_admin will be the the routing key the queue is bound to the exchange on)
#to_janus_admin = "to-janus-admin" # Name of the queue for incoming messages if queue_name_admin isn't set, otherwise, the routing key that queue_name_admin is bound to
#from_janus_admin = "from-janus-admin" # Routing key of the message sent from janus (as well as the name of the outgoing queue if declare_outgoing_queue_admin = true)
#declare_outgoing_queue_admin = true # By default (for backwards compatibility), we declare an outgoing queue. Set this to false to disable that behavior
#queue_durable_admin = false # Whether or not incoming queue should remain after a RabbitMQ reboot
#queue_autodelete_admin = false # Whether or not incoming queue should autodelete after janus disconnects from RabbitMQ
#queue_exclusive_admin = false # Whether or not incoming queue should only allow one subscriber
}
# WebSockets stuff: whether they should be enabled, which ports they
# should use, and so on.
general: {
#events = true # Whether to notify event handlers about transport events (default=true)
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
#pingpong_trigger = 30 # After how many seconds of idle, a PING should be sent
#pingpong_timeout = 10 # After how many seconds of not getting a PONG, a timeout should be detected
ws = true # Whether to enable the WebSockets API
ws_port = 8188 # WebSockets server port
#ws_interface = "eth0" # Whether we should bind this server to a specific interface only
#ws_ip = "192.168.0.1" # Whether we should bind this server to a specific IP address only
wss = false # Whether to enable secure WebSockets
#wss_port = 8989 # WebSockets server secure port, if enabled
#wss_interface = "eth0" # Whether we should bind this server to a specific interface only
#wss_ip = "192.168.0.1" # Whether we should bind this server to a specific IP address only
#ws_logging = "err,warn" # libwebsockets debugging level as a comma separated list of things
# to debug, supported values: err, warn, notice, info, debug, parser,
# header, ext, client, latency, user, count (plus 'none' and 'all')
#ws_acl = "127.,192.168.0." # Only allow requests coming from this comma separated list of addresses
}
# If you want to expose the Admin API via WebSockets as well, you need to
# specify a different server instance, as you cannot mix Janus API and
# Admin API messaging. Notice that by default the Admin API support via
# WebSockets is disabled.
admin: {
admin_ws = false # Whether to enable the Admin API WebSockets API
admin_ws_port = 7188 # Admin API WebSockets server port, if enabled
#admin_ws_interface = "eth0" # Whether we should bind this server to a specific interface only
#admin_ws_ip = "192.168.0.1" # Whether we should bind this server to a specific IP address only
admin_wss = false # Whether to enable the Admin API secure WebSockets
#admin_wss_port = 7989 # Admin API WebSockets server secure port, if enabled
#admin_wss_interface = "eth0" # Whether we should bind this server to a specific interface only
#admin_wss_ip = "192.168.0.1" # Whether we should bind this server to a specific IP address only
#admin_ws_acl = "127.,192.168.0." # Only allow requests coming from this comma separated list of addresses
}
# The HTTP servers created in Janus support CORS out of the box, but by
# default they return a wildcard (*) in the 'Access-Control-Allow-Origin'
# header. This works fine in most situations, except when we have to
# respond to a credential request (withCredentials=true in the XHR). If
# you need that, uncomment and set the 'allow_origin' below to specify
# what must be returned in 'Access-Control-Allow-Origin'. More details:
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
# In case you want to enforce the Origin validation, rather than leave
# it to browsers, you can set 'enforce_cors' to 'true' to have Janus
# return a '403 Forbidden' for all requests that don't comply.
cors: {
#allow_origin = "http://foo.example"
#enforce_cors = true
}
# Certificate and key to use for any secure WebSocket server, if enabled (and passphrase if needed).
# You can also disable insecure protocols and ciphers by configuring the
# 'ciphers' property accordingly (no limitation by default).
# Examples of recommended cipher strings at https://cheatsheetseries.owasp.org/cheatsheets/TLS_Cipher_String_Cheat_Sheet.html
certificates: {
#cert_pem = "/path/to/cert.pem"
#cert_key = "/path/to/key.pem"
#cert_pwd = "secretpassphrase"
#ciphers = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment