feature: support multiple XMPP servers via list (#1276)

This commit is contained in:
Aaron van Meerten
2022-05-03 08:40:52 -05:00
committed by GitHub
parent 95af77896d
commit 88bb1bccd0
3 changed files with 82 additions and 64 deletions

View File

@@ -2,6 +2,9 @@
{{ $JIBRI_RECORDING_RESOLUTION := .Env.JIBRI_RECORDING_RESOLUTION | default "1280x720" -}}
{{ $XMPP_TRUST_ALL_CERTS := .Env.XMPP_TRUST_ALL_CERTS | default "true" | toBool -}}
{{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}}
{{ $XMPP_SERVERS := splitList "," .Env.XMPP_SERVER -}}
{{/* assign env from context, preserve during range when . is re-assigned */}}
{{ $ENV := .Env -}}
jibri {
// A unique identifier for this Jibri
@@ -21,49 +24,51 @@ jibri {
xmpp {
// See example_xmpp_envs.conf for an example of what is expected here
environments = [
{{ range $index, $element := $XMPP_SERVERS -}}
{{ $SERVER := splitn ":" 2 $element }}
{
// A user-friendly name for this environment
name = "{{ .Env.XMPP_ENV_NAME }}"
name = "{{ $ENV.XMPP_ENV_NAME }}-{{$index}}"
// A list of XMPP server hosts to which we'll connect
xmpp-server-hosts = [
"{{ .Env.XMPP_SERVER }}"
"{{ $SERVER._0 }}"
]
// The base XMPP domain
xmpp-domain = "{{ .Env.XMPP_DOMAIN }}"
xmpp-domain = "{{ $ENV.XMPP_DOMAIN }}"
{{ if .Env.PUBLIC_URL -}}
{{ if $ENV.PUBLIC_URL -}}
// An (optional) base url the Jibri will join if it is set
base-url = "{{ .Env.PUBLIC_URL }}"
base-url = "{{ $ENV.PUBLIC_URL }}"
{{ end -}}
// The MUC we'll join to announce our presence for
// recording and streaming services
control-muc {
domain = "{{ .Env.XMPP_INTERNAL_MUC_DOMAIN }}"
room-name = "{{ .Env.JIBRI_BREWERY_MUC }}"
nickname = "{{ .Env.JIBRI_INSTANCE_ID }}"
domain = "{{ $ENV.XMPP_INTERNAL_MUC_DOMAIN }}"
room-name = "{{ $ENV.JIBRI_BREWERY_MUC }}"
nickname = "{{ $ENV.JIBRI_INSTANCE_ID }}"
}
// The login information for the control MUC
control-login {
domain = "{{ .Env.XMPP_AUTH_DOMAIN }}"
port = "{{ $XMPP_PORT }}"
username = "{{ .Env.JIBRI_XMPP_USER }}"
password = "{{ .Env.JIBRI_XMPP_PASSWORD }}"
domain = "{{ $ENV.XMPP_AUTH_DOMAIN }}"
port = "{{ $SERVER._1 | default $XMPP_PORT }}"
username = "{{ $ENV.JIBRI_XMPP_USER }}"
password = "{{ $ENV.JIBRI_XMPP_PASSWORD }}"
}
// The login information the selenium web client will use
call-login {
domain = "{{ .Env.XMPP_RECORDER_DOMAIN }}"
username = "{{ .Env.JIBRI_RECORDER_USER }}"
password = "{{ .Env.JIBRI_RECORDER_PASSWORD }}"
domain = "{{ $ENV.XMPP_RECORDER_DOMAIN }}"
username = "{{ $ENV.JIBRI_RECORDER_USER }}"
password = "{{ $ENV.JIBRI_RECORDER_PASSWORD }}"
}
// The value we'll strip from the room JID domain to derive
// the call URL
strip-from-room-domain = "{{ .Env.JIBRI_STRIP_DOMAIN_JID }}."
strip-from-room-domain = "{{ $ENV.JIBRI_STRIP_DOMAIN_JID }}."
// How long Jibri sessions will be allowed to last before
// they are stopped. A value of 0 allows them to go on
@@ -74,6 +79,7 @@ jibri {
// this XMPP domain
trust-all-xmpp-certs = {{ $XMPP_TRUST_ALL_CERTS }}
}
{{ end }}
]
}
}