Sharing Contact-Lists over two Servers


we have two offices and in every office we have an openfire server that authenticates against the Active Directory of the office.

We then have connected the two servers via server2server connection and we already can do chats and file transfers between the two servers.

Now the only thing i really would like to have is an automatic buddy list for all users so that all users have all users of server A and server B in their buddy list. At the moment the users have only all other users from their own offices in their buddy list.



There is no easy way to do this. The only method I have found is to:

  • create a generic user at each AD server
  • add said user to an AD group that contains all users of the AD server
  • Configure the openfire server to allow multiple rousorces
  • Install the gateway plugin and configure XMPP
  • Share the AD group you created on the Openfire server
  • Have each user configure their spark to connect to the xmpp gateway as the generic user

This should cause the buddy list to populate. There is an inherent problem with this though. all the users are using the same ID. This could cause messaging errors (most likely will).

Option 2

If the 2 offices have a shared AD forrest (i.e.,, and the servers have all users for both offices on them, you can do a modified version of above. Instead of generic users use the users real names. You need only relax your your AD binding settings to point to the root of your domain (i.e. ou=domain, ou=com). I am not sure how well this will work either.

Option 3 What I did

I have one server for my entire company. We have offices from New Jersey to California with many in between. I configured the server to allow connection access from the internet. I set it up with a real world Fully Qualified Domain Name, used port mapping to allow access for chat functions only. Now all employees can access the server from every office. Slower locations connect slower but once connect function just fine.

Could it be an option to change the values directly in the database?

you can try of course but it could cause problems.