Tags

Jicofo und JVB konnten sich nicht erfolgreich mit Prosody verbinden. Die Logs zeigten unter anderem folgende Fehlermeldungen:

  • XMPPTCPConnection[not-authenticated] ... closed with error
  • Reconnection failed
  • Lost a bridge: jvbbrewery@internal...

Ursache

Die Benutzer focus@auth.jitsi.dynproxy.net und jvb@auth.jitsi.dynproxy.net existierten nicht oder waren mit einem falschen Passwort in Prosody hinterlegt. Zudem verwendete JVB localhost als XMPP-HOSTNAME, was in vielen Umgebungen zu Problemen bei der Auflösung oder Authentifizierung führen kann.

Schritt-für-Schritt-Lösung

1. Benutzer in Prosody registrieren

grep password /etc/jitsi/jicofo/jicofo.conf
prosodyctl register focus auth.jitsi.DOM.TLD <focus-passwort>
grep PASSWORD /etc/jitsi/videobridge/jvb.conf
prosodyctl register jvb auth.jitsi.DOM.TLD <jvb-passwort>

2. Passwörter in den Konfigurationsdateien setzen

Datei: /etc/jitsi/jicofo/jicofo.conf

jicofo {
  xmpp: {
    client: {
      domain = "auth.jitsi.DOM.TLD"
      username = "focus"
      password = "<focus-passwort>"
    }
  }
}

Datei: /etc/jitsi/videobridge/jvb.conf

videobridge {
  http-servers {
    public {
      port = 9090
    }
  }
  websockets {
    enabled = true
    domain = "jitsi.DOM.TLD"
    tls = true
  }
  apis.xmpp-client.configs {
    shard {
      HOSTNAME = "jitsi.DOM.TLD"
      DOMAIN = "auth.jitsi.DOM.TLD"
      USERNAME = "jvb"
      PASSWORD = "<jvb-passwort>"
      MUC_JIDS = "jvbbrewery@internal.auth.jitsi.DOM.TLD"
      MUC_NICKNAME = "jvb-dynproxy"
    }
  }
}
ice4j {
  harvest {
    mapping {
      aws {
        enabled = false
      }
      stun {
        addresses = ["meet-jit-si-turnrelay.jitsi.net:443"]
      }
      static-mappings = [
        {
          local-address = "10.0.3.125"
          public-address = "<öffentliche IP-Adresse>"
        }
      ]
    }
  }
}

3. Prosody-Konfiguration überprüfen

In der Datei /etc/prosody/conf.avail/jitsi.dynproxy.net.cfg.lua sollten folgende Einträge vorhanden sein:

  • VirtualHost "auth.jitsi.dynproxy.net" mit authentication = "internal_hashed"
  • Component "internal.auth.jitsi.dynproxy.net" "muc" mit:

    admins = { "focus@auth.jitsi.DOM.TLD", "jvb@auth.jitsi.DOM.TLD" }
  • Weitere Komponenten wie conference., lobby., breakout., speakerstats., focus. müssen definiert sein

4. Dienste neu starten

systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2

5. Logs kontrollieren

journalctl -u prosody -n 50 -f
journalctl -u jicofo -n 50 -f
journalctl -u jitsi-videobridge2 -n 50 -f

Ergebnis

Nach erfolgreicher Umsetzung der oben genannten Schritte:

  • Jicofo: meldet Joined the room, Komponenten werden korrekt erkannt
  • JVB: zeigt keine Authentifizierungsfehler mehr, Bridge ist verbunden
  • Prosody: alle XMPP-Komponenten sind erfolgreich authentifiziert