forked from ungleich-public/cdist-contrib
136 lines
4.1 KiB
Bash
Executable File
136 lines
4.1 KiB
Bash
Executable File
#!/bin/sh -eu
|
|
|
|
# Start
|
|
cat <<EOF
|
|
# Managed remotely, changes will be lost
|
|
|
|
# thanks
|
|
# https://community.jitsi.org/t/jibri-service-fails/85272/4
|
|
# https://github.com/emrahcom/emrah-buster-templates/blob/master/machines/eb-jibri-template/etc/jitsi/jibri/jibri.conf
|
|
|
|
jibri {
|
|
// A unique identifier for this Jibri
|
|
// TODO: eventually this will be required with no default
|
|
id = ""
|
|
// Whether or not Jibri should return to idle state after handling
|
|
// (successfully or unsuccessfully) a request. A value of 'true'
|
|
// here means that a Jibri will NOT return back to the IDLE state
|
|
// and will need to be restarted in order to be used again.
|
|
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 = "jibri-env"
|
|
xmpp-server-hosts = ["${JIBRI_HOST:?}"]
|
|
xmpp-domain = "${JIBRI_HOST:?}"
|
|
|
|
control-muc {
|
|
domain = "internal.auth.${JIBRI_HOST:?}"
|
|
room-name = "JibriBrewery"
|
|
nickname = "jibri-nickname"
|
|
}
|
|
|
|
control-login {
|
|
domain = "auth.${JIBRI_HOST:?}"
|
|
username = "jibri"
|
|
password = "${JIBRI_AUTH_PASS:?}"
|
|
}
|
|
|
|
call-login {
|
|
domain = "recorder.${JIBRI_HOST:?}"
|
|
username = "recorder"
|
|
password = "${JIBRI_RECORDER_PASS:?}"
|
|
}
|
|
|
|
strip-from-room-domain = "conference."
|
|
usage-timeout = 0
|
|
trust-all-xmpp-certs = true
|
|
}]
|
|
}
|
|
}
|
|
recording {
|
|
recordings-directory = "/tmp/recordings"
|
|
# TODO: make this an optional param and remove the default
|
|
finalize-script = "/opt/finalize_recording.sh"
|
|
}
|
|
streaming {
|
|
// A list of regex patterns for allowed RTMP URLs. The RTMP URL used
|
|
// when starting a stream must match at least one of the patterns in
|
|
// this list.
|
|
rtmp-allow-list = [
|
|
// By default, all services are allowed
|
|
".*"
|
|
]
|
|
}
|
|
sip {
|
|
// The routing rule for the outbound scenario in VoxImplant is based on this prefix
|
|
outbound-prefix = "out_"
|
|
}
|
|
ffmpeg {
|
|
resolution = "1280x720"
|
|
// resolution = "1920x1080"
|
|
// 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",
|
|
"--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 not all clients have their audio and video muted, but Jibri does not
|
|
// detect any data stream (audio or video) comming in, it will stop
|
|
// recording after NO_MEDIA_TIMEOUT expires.
|
|
no-media-timeout = 3 minutes
|
|
|
|
// 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
|
|
|
|
// If ICE hasn't completed, or stays in a state other than "connected" for this amount of time, Jibri will stop.
|
|
ice-connection-timeout = 30 seconds
|
|
}
|
|
}
|
|
EOF
|