prosody: add support for A/V Moderation

Set ENABLE_AV_MODERATION to 1 in order to enable it.

NOTE: This feature is still under development and should be considered
beta quality.
pull/1111/head
Azim Khakulov 3 years ago committed by Saúl Ibarra Corretgé
parent 856e414084
commit c95f0d6b16
  1. 1
      docker-compose.yml
  2. 3
      env.example
  3. 1
      examples/traefik-v2/docker-compose.yml
  4. 45
      prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua

@ -125,6 +125,7 @@ services:
- ENABLE_AUTH - ENABLE_AUTH
- ENABLE_GUESTS - ENABLE_GUESTS
- ENABLE_LOBBY - ENABLE_LOBBY
- ENABLE_AV_MODERATION
- ENABLE_XMPP_WEBSOCKET - ENABLE_XMPP_WEBSOCKET
- GLOBAL_MODULES - GLOBAL_MODULES
- GLOBAL_CONFIG - GLOBAL_CONFIG

@ -52,6 +52,9 @@ TZ=UTC
# Control whether the lobby feature should be enabled or not # Control whether the lobby feature should be enabled or not
#ENABLE_LOBBY=1 #ENABLE_LOBBY=1
# Control whether the A/V moderation should be enabled or not
#ENABLE_AV_MODERATION=1
# Show a prejoin page before entering a conference # Show a prejoin page before entering a conference
#ENABLE_PREJOIN_PAGE=0 #ENABLE_PREJOIN_PAGE=0

@ -128,6 +128,7 @@ services:
- ENABLE_AUTH - ENABLE_AUTH
- ENABLE_GUESTS - ENABLE_GUESTS
- ENABLE_LOBBY - ENABLE_LOBBY
- ENABLE_AV_MODERATION
- ENABLE_XMPP_WEBSOCKET - ENABLE_XMPP_WEBSOCKET
- GLOBAL_MODULES - GLOBAL_MODULES
- GLOBAL_CONFIG - GLOBAL_CONFIG

@ -1,3 +1,18 @@
{{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "0" | toBool }}
{{ $ENABLE_GUEST_DOMAIN := and $ENABLE_AUTH (.Env.ENABLE_GUESTS | default "0" | toBool)}}
{{ $AUTH_TYPE := .Env.AUTH_TYPE | default "internal" }}
{{ $JWT_ASAP_KEYSERVER := .Env.JWT_ASAP_KEYSERVER | default "" }}
{{ $JWT_ALLOW_EMPTY := .Env.JWT_ALLOW_EMPTY | default "0" | toBool }}
{{ $JWT_AUTH_TYPE := .Env.JWT_AUTH_TYPE | default "token" }}
{{ $JWT_TOKEN_AUTH_MODULE := .Env.JWT_TOKEN_AUTH_MODULE | default "token_verification" }}
{{ $ENABLE_LOBBY := .Env.ENABLE_LOBBY | default "0" | toBool }}
{{ $ENABLE_AV_MODERATION := .Env.ENABLE_AV_MODERATION | default "0" | toBool }}
{{ $ENABLE_XMPP_WEBSOCKET := .Env.ENABLE_XMPP_WEBSOCKET | default "1" | toBool }}
{{ $PUBLIC_URL := .Env.PUBLIC_URL | default "https://localhost:8443" -}}
{{ $TURN_PORT := .Env.TURN_PORT | default "443" }}
{{ $TURNS_PORT := .Env.TURNS_PORT | default "443" }}
{{ $XMPP_MUC_DOMAIN_PREFIX := (split "." .Env.XMPP_MUC_DOMAIN)._0 }}
admins = { admins = {
"{{ .Env.JICOFO_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}", "{{ .Env.JICOFO_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}",
"{{ .Env.JVB_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}" "{{ .Env.JVB_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}"
@ -9,23 +24,11 @@ unlimited_jids = {
} }
plugin_paths = { "/prosody-plugins/", "/prosody-plugins-custom" } plugin_paths = { "/prosody-plugins/", "/prosody-plugins-custom" }
-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "{{ .Env.XMPP_DOMAIN }}";
http_default_host = "{{ .Env.XMPP_DOMAIN }}"
{{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "0" | toBool }} muc_mapper_domain_base = "{{ .Env.XMPP_DOMAIN }}";
{{ $ENABLE_GUEST_DOMAIN := and $ENABLE_AUTH (.Env.ENABLE_GUESTS | default "0" | toBool)}} muc_mapper_domain_prefix = "{{ $XMPP_MUC_DOMAIN_PREFIX }}";
{{ $AUTH_TYPE := .Env.AUTH_TYPE | default "internal" }}
{{ $JWT_ASAP_KEYSERVER := .Env.JWT_ASAP_KEYSERVER | default "" }}
{{ $JWT_ALLOW_EMPTY := .Env.JWT_ALLOW_EMPTY | default "0" | toBool }}
{{ $JWT_AUTH_TYPE := .Env.JWT_AUTH_TYPE | default "token" }}
{{ $JWT_TOKEN_AUTH_MODULE := .Env.JWT_TOKEN_AUTH_MODULE | default "token_verification" }}
{{ $ENABLE_LOBBY := .Env.ENABLE_LOBBY | default "0" | toBool }}
{{ $ENABLE_XMPP_WEBSOCKET := .Env.ENABLE_XMPP_WEBSOCKET | default "1" | toBool }} http_default_host = "{{ .Env.XMPP_DOMAIN }}"
{{ $PUBLIC_URL := .Env.PUBLIC_URL | default "https://localhost:8443" -}}
{{ $TURN_PORT := .Env.TURN_PORT | default "443" }}
{{ $TURNS_PORT := .Env.TURNS_PORT | default "443" }}
{{ if .Env.TURN_CREDENTIALS }} {{ if .Env.TURN_CREDENTIALS }}
external_service_secret = "{{.Env.TURN_CREDENTIALS}}"; external_service_secret = "{{.Env.TURN_CREDENTIALS}}";
@ -119,6 +122,9 @@ VirtualHost "{{ .Env.XMPP_DOMAIN }}"
{{ if $ENABLE_LOBBY }} {{ if $ENABLE_LOBBY }}
"muc_lobby_rooms"; "muc_lobby_rooms";
{{ end }} {{ end }}
{{ if $ENABLE_AV_MODERATION }}
"av_moderation";
{{ end }}
{{ if .Env.XMPP_MODULES }} {{ if .Env.XMPP_MODULES }}
"{{ join "\";\n\"" (splitList "," .Env.XMPP_MODULES) }}"; "{{ join "\";\n\"" (splitList "," .Env.XMPP_MODULES) }}";
{{ end }} {{ end }}
@ -138,6 +144,10 @@ VirtualHost "{{ .Env.XMPP_DOMAIN }}"
speakerstats_component = "speakerstats.{{ .Env.XMPP_DOMAIN }}" speakerstats_component = "speakerstats.{{ .Env.XMPP_DOMAIN }}"
conference_duration_component = "conferenceduration.{{ .Env.XMPP_DOMAIN }}" conference_duration_component = "conferenceduration.{{ .Env.XMPP_DOMAIN }}"
{{ if $ENABLE_AV_MODERATION }}
av_moderation_component = "avmoderation.{{ .Env.XMPP_DOMAIN }}"
{{ end }}
c2s_require_encryption = false c2s_require_encryption = false
{{ if $ENABLE_GUEST_DOMAIN }} {{ if $ENABLE_GUEST_DOMAIN }}
@ -209,6 +219,11 @@ Component "speakerstats.{{ .Env.XMPP_DOMAIN }}" "speakerstats_component"
Component "conferenceduration.{{ .Env.XMPP_DOMAIN }}" "conference_duration_component" Component "conferenceduration.{{ .Env.XMPP_DOMAIN }}" "conference_duration_component"
muc_component = "{{ .Env.XMPP_MUC_DOMAIN }}" muc_component = "{{ .Env.XMPP_MUC_DOMAIN }}"
{{ if $ENABLE_AV_MODERATION }}
Component "avmoderation.{{ .Env.XMPP_DOMAIN }}" "av_moderation_component"
muc_component = "{{ .Env.XMPP_MUC_DOMAIN }}"
{{ end }}
{{ if $ENABLE_LOBBY }} {{ if $ENABLE_LOBBY }}
Component "lobby.{{ .Env.XMPP_DOMAIN }}" "muc" Component "lobby.{{ .Env.XMPP_DOMAIN }}" "muc"
storage = "memory" storage = "memory"

Loading…
Cancel
Save