Openfire does video conferencing through a plugin, and under the hood that plugin is Jitsi Meet. So when someone asks how to record Openfire meetings, the honest answer is: the same way you record Jitsi, with Jibri, plus two Openfire-specific details that break it if you miss them.

We first got this working in 2019 by patching the plugin and Jibri's source code. You don't need to do that anymore. The part we patched is now a plain setting in Jibri.

Openfire video conferencing with the ofmeet plugin

The Openfire Meetings plugin (ofmeet) bundles Jitsi Meet, Jicofo and the Jitsi Videobridge inside Openfire. Install it from the admin console under Plugins, and your Openfire users get browser meetings at an address like:

https://chat.example.com:7443/ofmeet/team-standup

Ignite Realtime still maintains it; version 0.9.8 came out in August 2025. On top of it sits Pàdé, a full web client with chat, group chat and meetings in one window. If you only need meetings, ofmeet alone is enough.

That URL is where the Jibri trouble starts. Notice the /ofmeet/ path and the port. A standard Jitsi install serves rooms at https://meet.example.com/team-standup, and Jibri assumes that shape.

Connecting Jibri to Openfire

Jibri records by joining the meeting as a hidden participant in a headless Chrome and capturing the screen. To do that it needs three things: an XMPP account to log in with, a control room where Jicofo can find it, and the right URL for the meeting.

1. XMPP accounts and the brewery room

In Openfire, create two users for Jibri: a control user (for example jibri) and a recorder user (for example recorder). Then create the room Jibri instances join to announce themselves, called the brewery, usually JibriBrewery on your conference service.

2. Tell Jicofo where the brewery is

Jicofo is the component that picks a Jibri when someone clicks Record. In the 2019 version of ofmeet this took a Java system property added to the plugin's source. Where you set it now depends on your plugin version, so check the Openfire Meetings settings pages and the plugin's readme first. Whatever the location, the values are the same ones a normal jicofo.conf uses:

jicofo {
  jibri {
    brewery-jid = "JibriBrewery@conference.chat.example.com"
    pending-timeout = 90 seconds
  }
}

The 90-second timeout gives Jibri time to start Chrome before Jicofo marks the recording as failed.

3. Show the recording buttons

The meeting toolbar only shows Record and Live stream when the Jitsi config enables them. Make sure file recording and live streaming are enabled in the Jitsi config the plugin serves, and that recording and livestreaming are in the enabled toolbar buttons. In the 2019 plugin the button list was hard-coded, which is why our original guide edited Java files; check whether your version lets you change it from the admin console before you go near the source.

4. Point Jibri at the real meeting URL

This is the step that used to need a patched Jibri. By default Jibri builds the meeting address from the XMPP domain: https://chat.example.com/team-standup. On Openfire that page doesn't exist, so Jibri sits on an error page and the recording fails or comes out empty.

Jibri now has a base-url setting for exactly this. In /etc/jitsi/jibri/jibri.conf:

jibri {
  api {
    xmpp {
      environments = [
        {
          name = "openfire"
          xmpp-server-hosts = ["chat.example.com"]
          xmpp-domain = "chat.example.com"
          base-url = "https://chat.example.com:7443/ofmeet"

          control-login {
            domain = "chat.example.com"
            username = "jibri"
            password = "CONTROL_PASSWORD"
          }
          control-muc {
            domain = "conference.chat.example.com"
            room-name = "JibriBrewery"
            nickname = "jibri-1"
          }
          call-login {
            domain = "chat.example.com"
            username = "recorder"
            password = "RECORDER_PASSWORD"
          }
          strip-from-room-domain = "conference."
          usage-timeout = 0
          trust-all-xmpp-certs = true
        }
      ]
    }
  }
}

With base-url set, Jibri joins https://chat.example.com:7443/ofmeet/team-standup, the same page your users are on. The full list of options is in the Jibri README.

Self-signed certificates

trust-all-xmpp-certs only covers the XMPP connection. Chrome inside Jibri still refuses a self-signed HTTPS certificate on port 7443, and you get a blank recording. Give Openfire a real certificate first; our Openfire Let's Encrypt guide shows how.

Testing it

  1. Restart Jibri and check /var/log/jitsi/jibri/log.0.txt for a successful login and "joined MUC" for the brewery.
  2. In the Openfire admin console, the brewery room should list the Jibri nickname as an occupant.
  3. Start a meeting with two people and click Record. If the button says no recorder is available, Jicofo can't see Jibri in the brewery; recheck the room JID.
  4. Stop after a minute and play the file from /srv/recordings (or wherever recordings-directory points).

Jibri itself has requirements that don't change on Openfire: one Jibri records one meeting at a time, and it needs a dedicated machine or VM with the ALSA loopback module. The Jibri setup guide for Ubuntu covers those.

Is Openfire the right base?

If Openfire already runs your company chat, Openfire Meetings is a neat way to add video without another server. If video is the main job, though, a standard Jitsi install on Prosody gets upgrades first, and every Jitsi guide on the internet assumes it. We compared the options in Jitsi Meet with Openfire or ejabberd instead of Prosody. For a fresh Openfire server, start with installing Openfire on Ubuntu.

Frequently Asked Questions

Does Openfire support video conferencing?

Yes, through the Openfire Meetings plugin (ofmeet), which embeds Jitsi Meet and its videobridge inside Openfire. The Pàdé plugin builds a full web client on top of it, with chat, group chat and meetings in one place.

Can Openfire Meetings record conferences?

The plugin has its own simple recording that saves a WebM file. For server-side recording and live streaming that behave like a standard Jitsi deployment, you connect Jibri, which is what this guide covers.

Why does Jibri join the wrong URL on Openfire?

Jibri builds the meeting URL from the XMPP domain by default, giving https://domain/room. Openfire Meetings serves rooms under a path such as /ofmeet/, often on port 7443. Set base-url in jibri.conf to the real meeting address.

What is ofmeet?

ofmeet is the short name of the Openfire Meetings plugin from Ignite Realtime. It bundles Jitsi Meet, Jicofo and the Jitsi Videobridge so Openfire users get browser video meetings without a separate Prosody server.

Should I use Openfire or Prosody for Jitsi?

If you already run Openfire for chat and want meetings next to it, Openfire Meetings is convenient. If meetings are the main job, a standard Jitsi install on Prosody is simpler to upgrade and far better documented.