Skip to content

Clustering multiple Jitsi Videobridges using Hazelcast plugin

Dele Olajide edited this page Mar 31, 2022 · 10 revisions

image

Background

https://github.com/igniterealtime/openfire-pade-plugin/discussions/206#discussioncomment-1843253

Configuration

If any the Openfire server cluster nodes does not have a public static IP address and is behind a firewall with network settings for the local/private IP address and public address, then the settings for each node has to be made in the openfire.xml file for each node.

This is required because the settings in the UI will be stored in the database which is shared by all nodes. Each node needs to store its own settings locally in the openfire.xml file on the node server.

  • Configure ofmeet.local_address with the local/private IP address of the server node.
  • Configure ofmeet.public_address with the public IP address of the server node.
  • Configure ofmeet.octo_id with an identifier of the node instance, used for the purpose of generating conference IDs unique across the cluster.
  • Configure ofmeet.interfaces_allowed with the comma delimited list of network interfaces you want to bind Jitsi videobridge to.
  • Configure ofmeet.addresses_allowed with the comma delimited list of IP addresses you want to bind Jitsi videobridge to.

By defining the octo-id, the username of the jvb changes will change in the settings section. Openfire will be looking to authenticate with a user that has a username of jvb+the octo_id which may not exist on the domain. So for a two node cluster, Openfire tries to create and authenticate jvb1 for node1 and jvb2 for node2. This change in the account name happens automatically once you define the octo-id and is visible from the settings section.

In the case of where Openfire has been integrated with ldap, users jvb1 and jvb2 have to be created manually in the domain.

If you are creating a cluster of nodes on the same server with different IP addresses or configuring multiple Docker Openfire instances on the same metal server, then you need to specify network.interface together with ofmeet.interfaces_allowed and ofmeet.addresses_allowed in order to bind both Openfire and Jitsi to specific IP address.

  <ofmeet> 
    <interfaces_allowed>Dell GigabitEthernet</interfaces_allowed>  
    <addresses_allowed>192.168.1.250</addresses_allowed>  
    <local_address>192.168.1.250</local_address>  
    <public_address>192.168.1.250</public_address>  
    <octo_id>1</octo_id> 
  </ofmeet>