muc_mapper_domain_base = "{{ jitsi_domain }}"; {% if jitsi_turn_secret is defined %} turncredentials_secret = "{{ jitsi_turn_secret }}"; {% endif %} turncredentials = { {% for stun in jitsi_stun_servers %} { type = "{{ stun | urlsplit('scheme') }}", host = "{{ stun | regex_replace('(turns?|stun):([^:]+)(:\d+)?.*', '\\2') }}", {% if stun | regex_replace('(turns?|stun):.+:(\d+)?.*', '\\2') | int > 0 and stun | regex_replace('(turns?|stun):.+:(\d+)?.*', '\\2') | int < 65535 %} port = "{{ stun | regex_replace('(turns?|stun):.+:(\d+)?.*', '\\2') }}", {% endif %} {% if stun | urlsplit('query') is search('transport=') %} transport = "{{ stun | urlsplit('query') | regex_replace('.*transport=(udp|tcp).*', '\\1') }}" {% endif %} }, {% endfor %} }; cross_domain_bosh = false; cross_domain_websocket = true; consider_bosh_secure = true; VirtualHost "{{ jitsi_domain }}" {% if jitsi_auth == 'ldap' %} authentication = "ldap" ldap_base = "{{ jitsi_ldap_base }}" ldap_server = "{{ jitsi_ldap_servers | join(' ') }}" {% if jitsi_ldap_bind_dn is defined and jitsi_ldap_bind_pass is defined %} ldap_rootdn = "{{ jitsi_ldap_bind_dn }}" ldap_password = "{{ jitsi_ldap_bind_pass }}" {% endif %} ldap_filter = "{{ jitsi_ldap_filter }}" ldap_scope = "subtree" ldap_tls = {{ jitsi_ldap_starttls | ternary('true','false') }} {% else %} authentication = "anonymous" {% endif %} ssl = { key = "{{ jitsi_key_path }}"; certificate = "{{ jitsi_cert_path }}"; } modules_enabled = { "bosh"; "pubsub"; "ping"; "websocket"; "turncredentials"; "speakerstats"; "conference_duration"; } c2s_require_encryption = false allow_unencrypted_plain_auth = true {% if jitsi_auth == 'ldap' %} -- Guest virtual domain VirtualHost "guest.{{ jitsi_domain }}" authentication = "anonymous" c2s_require_encryption = false ssl = { key = "{{ jitsi_key_path }}"; certificate = "{{ jitsi_cert_path }}"; } modules_enabled = { "bosh"; "pubsub"; "ping"; "websocket"; "turncredentials"; "speakerstats"; "conference_duration"; } {% endif %} VirtualHost "{{ jitsi_auth_domain }}" ssl = { key = "{{ jitsi_key_path }}"; certificate = "{{ jitsi_cert_path }}"; } authentication = "internal_plain" c2s_require_encryption = false admins = { "{{ jitsi_jicofo_xmpp_user }}@{{ jitsi_auth_domain }}" } Component "conference.{{ jitsi_domain }}" "muc" Component "internal.{{ jitsi_auth_domain }}" "muc" storage = "memory" modules_enabled = { "ping"; } admins = { "{{ jitsi_jicofo_xmpp_user }}@{{ jitsi_jicofo_xmpp_domain }}", "{{ jitsi_videobridge_xmpp_user }}@{{ jitsi_videobridge_xmpp_domain }}" } Component "focus.{{ jitsi_domain }}" component_secret = "{{ jitsi_jicofo_xmpp_secret }}" Component "callcontrol.{{ jitsi_domain }}" component_secret = "{{ jitsi_jigasi_xmpp_secret }}" Component "speakerstats.{{ jitsi_domain }}" "speakerstats_component" muc_component = "conference.{{ jitsi_domain }}" Component "conferenceduration.{{ jitsi_domain }}" "conference_duration_component" muc_component = "conference.{{ jitsi_domain }}"