{{ $JVB_TCP_PORT := .Env.JVB_TCP_PORT | default "4443" }}
{{ $JVB_TCP_MAPPED_PORT := .Env.JVB_TCP_MAPPED_PORT | default $JVB_TCP_PORT }}
{{ $PUBLIC_URL_DOMAIN := .Env.PUBLIC_URL | default "https://localhost:8443" | trimPrefix "https://" | trimSuffix "/" -}}
{{ $WS_DOMAIN := .Env.JVB_WS_DOMAIN | default $PUBLIC_URL_DOMAIN -}}
{{ $WS_SERVER_ID := .Env.JVB_WS_SERVER_ID | default .Env.LOCAL_ADDRESS -}}

videobridge {
    ice {
        udp {
            port = {{ .Env.JVB_PORT }}
        }
        tcp {
            enabled = {{ not (.Env.JVB_TCP_HARVESTER_DISABLED | default "true" | toBool) }}
            port = {{ .Env.JVB_TCP_PORT }}
{{ if not (eq $JVB_TCP_PORT $JVB_TCP_MAPPED_PORT) }}
            mapped-port = {{ $JVB_TCP_MAPPED_PORT }}
{{ end }}
        }
    }
    apis {
        xmpp-client {
            configs {
                shard {
                    HOSTNAME = "{{ .Env.XMPP_SERVER }}"
                    DOMAIN = "{{ .Env.XMPP_AUTH_DOMAIN }}"
                    USERNAME = "{{ .Env.JVB_AUTH_USER }}"
                    PASSWORD = "{{ .Env.JVB_AUTH_PASSWORD }}"
                    MUC_JIDS = "{{ .Env.JVB_BREWERY_MUC }}@{{ .Env.XMPP_INTERNAL_MUC_DOMAIN }}"
                    MUC_NICKNAME = "{{ .Env.HOSTNAME }}"
                    DISABLE_CERTIFICATE_VERIFICATION = true
                }
            }
        }
    }
    stats {
        enabled = true
    }
    websockets {
        enabled = true
        domain = "{{ $WS_DOMAIN }}"
        tls = true
        server-id = "{{ $WS_SERVER_ID }}"
    }
    http-servers {
        private { 
          host = 0.0.0.0
        }
        public {
            host = 0.0.0.0
            port = 9090
        }
    }
}

ice4j {
    harvest {
        mapping {
            stun {
{{ if .Env.JVB_STUN_SERVERS }}
                addresses = [ "{{ join "\",\"" (splitList "," .Env.JVB_STUN_SERVERS) }}" ]
{{ end }}
            }
        }
    }
}