jibri { id = "{{ inventory_hostname }}" single-use-mode = false api { http { external-api-port = 2222 internal-api-port = 3333 } xmpp { // See example_xmpp_envs.conf for an example of what is expected here environments = [ { name = "prod environment" xmpp-server-hosts = ["{{ jitsi_jibri_xmpp_server }}"] xmpp-domain = "{{ jitsi_jibri_domain }}" control-muc { domain = "{{ jitsi_jibri_internal_auth_domain }}" room-name = "JibriBrewery" nickname = "{{ inventory_hostname }}" } control-login { domain = "{{ jitsi_jibri_auth_domain }}" username = "{{ jitsi_jibri_xmpp_user }}" password = "{{ jitsi_jibri_xmpp_pass }}" } call-login { domain = "{{ jitsi_jibri_xmpp_domain }}" username = "{{ jitsi_jibri_recorder_xmpp_user }}" password = "{{ jitsi_jibri_recorder_xmpp_pass }}" } strip-from-room-domain = "conference." usage-timeout = 0 trust-all-xmpp-certs = false }] } } recording { recordings-directory = "{{ jitsi_root_dir }}/data/recordings" //finalize-script = "/path/to/finalize_recording.sh" } streaming { rtmp-allow-list = [ ".*" ] } ffmpeg { resolution = "1024x768" // The audio source that will be used to capture audio on Linux audio-source = "alsa" // The audio device that will be used to capture audio on Linux audio-device = "plug:bsnoop" } chrome { // The flags which will be passed to chromium when launching flags = [ "--use-fake-ui-for-media-stream", "--start-maximized", "--kiosk", "--enabled", "--disable-infobars", "--autoplay-policy=no-user-gesture-required" ] } stats { enable-stats-d = true } webhook { // A list of subscribers interested in receiving webhook events subscribers = [] } jwt-info { // The path to a .pem file which will be used to sign JWT tokens used in webhook // requests. If not set, no JWT will be added to webhook requests. # signing-key-path = "/path/to/key.pem" // The kid to use as part of the JWT # kid = "key-id" // The issuer of the JWT # issuer = "issuer" // The audience of the JWT # audience = "audience" // The TTL of each generated JWT. Can't be less than 10 minutes. # ttl = 1 hour } call-status-checks { // If all clients have their audio and video muted and if Jibri does not // detect any data stream (audio or video) comming in, it will stop // recording after NO_MEDIA_TIMEOUT expires. no-media-timeout = 30 seconds // If all clients have their audio and video muted, Jibri consideres this // as an empty call and stops the recording after ALL_MUTED_TIMEOUT expires. all-muted-timeout = 10 minutes // When detecting if a call is empty, Jibri takes into consideration for how // long the call has been empty already. If it has been empty for more than // DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop the recording. default-call-empty-timeout = 30 seconds } }