ansible-roles/roles/jitsi/defaults/main.yml

302 lines
10 KiB
YAML

---
jitsi_root_dir: /opt/jitsi
jitsi_user: jitsi
# List of IP or CIDR for which web resources will be served
# It can be different from jitsi_videobridge_src_ip is web access is done through
# a reverse proxy
jitsi_web_src_ip:
- 0.0.0.0/0
jitsi_jicofo_git_url: https://github.com/jitsi/jicofo.git
jitsi_jigasi_git_url: https://github.com/jitsi/jigasi.git
jitsi_meet_git_url: https://github.com/jitsi/jitsi-meet.git
# Should ansible handle upgrades, or only initial install ?
jitsi_manage_upgrade: True
# XMPP server to connect to. Default is the same machine
jitsi_xmpp_server: "{{ inventory_hostname }}"
# Port on which to connect to the XMPP server to register as a component
jitsi_xmpp_component_port: 5347
# Account for videobridge
jitsi_jvb_xmpp_user: "{{ jitsi_videobridge_xmpp_user | default('jvb') }}"
jitsi_jvb_xmpp_domain: "{{ jitsi_videobridge_xmpp_domain | default(jitsi_auth_domain) }}"
# jitsi_jvb_xmpp_pass:
jitsi_stun_servers: []
# jitsi_stun_servers:
# - stun:meet-jit-si-turnrelay.jitsi.net:443
jitsi_turn_secret: "{{ turnserver_auth_secret | default('p@ssw0rd') }}"
# Authentication. Can be set to
# * False : no authentication at all (can also be None)
# * sso : In this case, you have to protect /login with your SSO system (through a reverse proxy)
# And once authenticated, send the HTTP headers mail and displayName with the appropriate values
# Note that jitsi Android client does not support sso authentication, so mobile users will be able
# to join an existing conf, but not create one easily
# * ldap : Will use an LDAP server for authentication. Works on mobile, but is a bit less convinient
# than sso for desktop users. See all the jitsi_ldap_xxxx settings
jitsi_auth: False
jitsi_jicofo_xmpp_user: focus
jitsi_jicofo_xmpp_domain: "{{ jitsi_auth_domain }}"
# Password for the focus user on the auth domain
# jitsi_jicofo_xmpp_pass: p@ssw0rd
jitsi_domain: "{{ inventory_hostname }}"
jitsi_auth_domain: auth.{{ jitsi_domain }}
# Can be either true, in which case a cert will be automatically obtained using letsencrypt
# or can be a name, in which case you have to configure letsencrypt to obtain the cert yourself
# jitsi_letsencrypt_cert: True
# or
# jitsi_letsencrypt_cert: jitsi.example.com
#
# or, you can also set custom cert path
#
# jitsi_cert_path: /etc/jitsi/ssl/cert.pem
# jitsi_key_path: /etc/jitsi/ssl/key.pem
# Meet configuration. Will be converted to JSON
# See https://github.com/jitsi/jitsi-meet/blob/master/config.js for available settings and their meaning
jitsi_meet_conf_base:
hosts:
domain: "{{ jitsi_domain }}"
muc: conference.{{ jitsi_domain }}
bosh: '//{{ jitsi_domain }}/http-bind'
websocket: wss://{{ jitsi_domain }}/xmpp-websocket
clientNode: http://jitsi.org/jitsimeet
focusUserJid: "{{ jitsi_jicofo_xmpp_user }}@{{ jitsi_auth_domain }}"
enableNoAudioDetection: True
enableNoisyMicDetection: True
startAudioMuted: 10
startVideoMuted: 10
enableOpusRed: True
desktopSharingFrameRate:
min: 5
max: 30
channelLastN: 25
enableLayerSuspension: True
enableUnifiedOnChrome: True
requireDisplayName: False
prejoinConfig:
enabled: True
enableInsecureRoomNameWarning: False
disableThirdPartyRequests: True
welcomePage:
disabled: False
localRecording:
notifyAllParticipants: True
recordingService:
enabled: "{{ (jitsi_jibri_recordings_base_url is defined) | ternary(True, False) }}"
p2p:
enabled: False
enableUnifiedOnChrome: True
analytics:
disabled: True
toolbarButtons:
- camera
- chat
- closedcaptions
- desktop
- download
- embedmeeting
- etherpad
- fullscreen
- hangup
- highlight
- invite
- microphone
- noisesuppression
- participants-pane
- profile
- raisehand
- recording
- security
- select-background
- settings
- sharedvideo
- shortcuts
- stats
- tileview
- toggle-camera
- videoquality
- whiteboard
dialInNumbersUrl: https://{{ jitsi_domain }}/phoneNumberList
dialInConfCodeUrl: https://{{ jitsi_domain }}/conferenceMapper
screenshotCapture:
enabled: True
transcription:
enabled: False
useTurnUdp: True
defaultLanguage: fr
gravatar:
disabled: True
giphy:
enabled: True
jitsi_meet_conf_extra: {}
jitsi_meet_conf: "{{ jitsi_meet_conf_base | combine(jitsi_meet_conf_extra, recursive=True) }}"
# Meet interface configuration. Will be converted to JSON
# See https://github.com/jitsi/jitsi-meet/blob/master/interface_config.js for available settings and their meaning
jitsi_meet_interface_conf_base:
APP_NAME: Jitsi Meet
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)'
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)'
AUTO_PIN_LATEST_SCREEN_SHARE: remote-only
BRAND_WATERMARK_LINK: https://www.ehtrace.com
CLOSE_PAGE_GUEST_HINT: False
DEFAULT_BACKGROUND: '#040404'
DEFAULT_WELCOME_PAGE_LOGO_URL: 'images/watermark.svg'
DISABLE_DOMINANT_SPEAKER_INDICATOR: False
DISABLE_JOIN_LEAVE_NOTIFICATIONS: False
DISABLE_PRESENCE_STATUS: False
DISABLE_RINGING: False
DISABLE_TRANSCRIPTION_SUBTITLES: True
DISABLE_VIDEO_BACKGROUND: False
DISPLAY_WELCOME_FOOTER: True
DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD: False
DISPLAY_WELCOME_PAGE_CONTENT: False
DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: False
ENABLE_DIAL_OUT: "{{ (jitsi_jigasi_sip_server is defined) | ternary(True, False) }}"
ENABLE_FEEDBACK_ANIMATION: False
FILM_STRIP_MAX_HEIGHT: 120
GENERATE_ROOMNAMES_ON_WELCOME_PAGE: True
HIDE_INVITE_MORE_HEADER: False
JITSI_WATERMARK_LINK: https://www.ehtrace.com
LANG_DETECTION: True
LOCAL_THUMBNAIL_RATIO: 16 / 9
MAXIMUM_ZOOMING_COEFFICIENT: 1.3
MOBILE_APP_PROMO: True
OPTIMAL_BROWSERS:
- chrome
- chromium
- firefox
- nwjs
- electron
- safari
POLICY_LOGO: null
PROVIDER_NAME: Ehtrace
RECENT_LIST_ENABLED: True
REMOTE_THUMBNAIL_RATIO: 1
SETTINGS_SECTIONS:
- devices
- language
- moderator
- profile
- sounds
- more
SHOW_BRAND_WATERMARK: False
SHOW_CHROME_EXTENSION_BANNER: False
SHOW_JITSI_WATERMARK: False
SHOW_POWERED_BY: False
SHOW_PROMOTIONAL_CLOSE_PAGE: False
SUPPORT_URL: 'mailto:support@ehtrace.com'
UNSUPPORTED_BROWSERS: []
VERTICAL_FILMSTRIP: True
VIDEO_LAYOUT_FIT: both
VIDEO_QUALITY_LABEL_DISABLED: False
jitsi_meet_interface_conf_extra: {}
jitsi_meet_interface_conf: "{{ jitsi_meet_interface_conf_base | combine(jitsi_meet_interface_conf_extra, recursive=True) }}"
# You can customize strings here (lang/main-XX.json)
jitsi_meet_custom_lang: {}
# fr:
# welcomepage:
# headerSubtitle: >-
# La vidéoconférence simple, sécurisée, libre
# startMeeting: >-
# C'est parti !
# appDescription: >-
# Choisissez un nom ou bien laisser le système en créer un pour vous,
# partagez le lien avec qui vous voulez.
# Jamais la vidéoconférence n'a été aussi simple
# If jitsi_auth is ldap
# We inherit values from prosody if available, or we try to get values from ad_auth or ldap_auth
jitsi_ldap_base: "{{ prosody_ldap_base | default(ad_auth | default(False) | ternary((ad_ldap_user_search_base is defined) | ternary(ad_ldap_user_search_base,'DC=' + ad_realm | default(samba_realm) | default(ansible_domain) | regex_replace('\\.',',DC=')), ldap_user_base | default('ou=Users') + ',' + ldap_base | default(ansible_domain | regex_replace('\\.','dc=')))) }}"
jitsi_ldap_servers: "{{ prosody_ldap_server | default(ad_ldap_servers | default([ad_auth | default(False) | ternary(ad_realm | default(samba_realm) | default(ansible_domain) | lower, ldap_uri | default('ldap://' + ansible_domain) | urlsplit('hostname'))]))}}"
jitsi_ldap_bind_dn: "{{ prosody_ldap_bind_dn | default(None) }}"
jitsi_ldap_bind_pass: "{{ prosody_ldap_bind_pass | default(None) }}"
jitsi_ldap_filter: "{{ prosody_ldap_filter | default(ad_auth | default(False) | ternary('(&(objectClass=user)(sAMAccountName=%s))','(&(objectClass=inetOrgPerson)(uid=%s))')) }}"
jitsi_ldap_starttls: "{{ prosody_ldap_starttls | default(True) }}"
# Jigasi settings
# Default room on which to connect inbound SIP calls
# if no Jitsi-Conference-Room SIP header is found
jitsi_jigasi_default_room: sip
# SIP settings
#jitsi_jigasi_sip_user:
#jitsi_jigasi_sip_secret:
#jitsi_jigasi_sip_server:
jitsi_jigasi_sip_port: 5060
jitsi_jigasi_sip_transport: UDP
jitsi_jigasi_sip_base_conf:
ACCOUNT_UID: "SIP\\:{{ jitsi_jigasi_sip_user }}"
PASSWORD: "{{ jitsi_jigasi_sip_secret | b64encode }}"
PROTOCOL_NAME: SIP
SERVER_ADDRESS: "{{ jitsi_jigasi_sip_server }}"
USER_ID: "{{ jitsi_jigasi_sip_user }}"
KEEP_ALIVE_INTERVAL: 25
KEEP_ALIVE_METHOD: OPTIONS
VOICEMAIL_ENABLED: 'false'
OVERRIDE_ENCODINGS: 'false'
DOMAIN_BASE: "{{ jitsi_domain }}"
PROXY_ADDRESS: "{{ jitsi_jigasi_sip_server }}"
PROXY_AUTO_CONFIG: 'false'
PROXY_PORT: "{{ jitsi_jigasi_sip_port }}"
PREFERRED_TRANSPORT: "{{ jitsi_jigasi_sip_transport }}"
jitsi_jigasi_sip_extra_conf: {}
# Can be used to configure advanced parameters, like media encryption
#jitsi_jigasi_sip_extra_conf:
# SAVP_OPTION: 1
# ENCRYPTION_PROTOCOL.DTLS-SRTP: 0
# ENCRYPTION_PROTOCOL.SDES: 1
# ENCRYPTION_PROTOCOL.ZRTP: 2
# ENCRYPTION_PROTOCOL_STATUS.DTLS-SRTP: 'false'
# ENCRYPTION_PROTOCOL_STATUS.SDES: 'true'
# ENCRYPTION_PROTOCOL_STATUS.ZRTP: 'false'
# IS_PRESENCE_ENABLED: 'true'
# SDES_CIPHER_SUITES: AES_CM_128_HMAC_SHA1_80,AES_CM_128_HMAC_SHA1_32
jitsi_jigasi_sip_conf: "{{ jitsi_jigasi_sip_base_conf | combine(jitsi_jigasi_sip_extra_conf, recursive=True) }}"
jitsi_jigasi_xmpp_user: jigasi
jitsi_jigasi_xmpp_domain: "{{ jitsi_auth_domain }}"
# Password to auth as an XMPP user. A random one will be created if missing
#jitsi_jigasi_xmpp_pass:
# conferenceMapper is used for inbound SIP call
jitsi_confmapper_port: 8823
jitsi_confmapper_src_ip: []
jitsi_confmapper_conf_base:
numbers: {}
# numbers:
# FR:
# - +335 99 99 99 99
# - +339 88 88 88 88
# EN:
# - 555 555 555
port: "{{ jitsi_confmapper_port }}"
host: 0.0.0.0
expire_seconds: 86400
id_max_length: 4
db_file: "{{ jitsi_root_dir }}/data/confmapper/confmapper.sqlite"
jitsi_confmapper_conf_extra: {}
jitsi_confmapper_conf: "{{ jitsi_confmapper_conf_base | combine(jitsi_confmapper_conf_extra, recursive=True) }}"
# This is for Jibri integration
jitsi_jibri_xmpp_user: jibri
# jitsi_jibri_xmpp_pass: s3cr3t.
jitsi_jibri_recorder_xmpp_user: recorder
# jitsi_jibri_recorder_xmpp_pass: p@ssw0rd