powered by Jive Software

Server 2 Server: Adding an Entire Contact Group/Roster

Hey Everyone,

This might be a simple problem, but for some reason the solution eludes me. I’ll do my best to describe it in full detail. Basically, we have 2 Openfire 3.71 servers communicating to each other via the built-in Server to Server functionality. One is located in Melbourne and the other is located in Los Angeles; they are connected via VPN and appear local to each other. Users connected to the LA XMPP domain/server are able to contact users on the Melbourne XMPP domain/server without issue. However, they have to add contacts manually in order to initiate a connection to someone outside their XMPP domain. For example, an LA user using Pidgin or iChat needs to add a contact in Melbourne by manually adding the buddy using it’s jabber ID such as: “user@chat.melbourne.com”.

Right now both LA and Melbourne Openfire servers are pointing to the same LDAP (Open Directory) server, and we created a common LDAP group called “jabbergroup” in which all users can see each other. I’ve taken screenshots showing this configuration on both Openfire servers. However, I cannot figure out a way to get chat clients such as Pidgin or iChat to auto populate a chat list of all the remote users on different jabber servers. Is there a way to get a user list/roster to auto populate in these chat clients? Right now, users open 2 instances of either Pidgin (on Linux) or iChat (on OSX) in order to connect to both the LA and Melbourne Openfire servers. I’d like to figure out how to make it so only 1 chat client needs to be opened, in which both the LA and Melbourne user lists/rosters will auto populate into the chat client.

I hope this is making sense. Please feel free to ask questions in order for me to clarify things more if need be.



I believe S2S doesn’t support roster sharing between servers.

I see…I was hoping that wasn’t the case. Right now, we have 2 LDAP groups setup in Open Directory:



All users in Los Angeles get added to the jabberLA group, and all users in Melbourne get added to jabberMelbourne. Simple enough.

Next, I enabled “Contact List (Roster) Sharing” for both groups on both Openfire servers:

Melbourne Openfire Server

XMPP Domain: chat.melbourne.com

**Contact lists being shared to all users: **jabberLA, jabberMelbourne


Los Angeles Openfire Server

XMPP Domain: chat.losangeles.com

**Contact lists being shared to all users: **jabberLA, jabberMelbourne

However, when Melbourne users fire up their jabber client (iChat or Pidgin), their contact list does not show any online users from LA, and vice versa. I’m basically try to avoid the necessity of users having to connect to both Openfire servers. It’d be great if one instance of the chat client could auto populate contact lists from people connected to different Openfire servers via the Server to Server functionality.

Instead, Melbourne users have to manually add EACH and EVERY LA contact that they’d like in their contact list, and vice versa for LA users. Kinda annoying. Is there something I’m overlooking here?

Please let me know.



It’s not that it was made like this to annoy you This is by xmpp standards i believe. I have one thought, but i’m not sure it will work and would be acceptable.

You can try setting up Kraken XMPP gateway on both servers and enabling xmpp gateway, then connecting this gateway to each other server. As both servers use same LDAP, user should be possible to login on both with the same credentials, just the server part would be different. But, i’m not sure that a user connected via gateway would be able to pull shared group.

Say we have: userLA@jabberLA and you set up xmpp gateway on jabberLA, pointing to jabberML. Then userLA logs to Pidgin/iChat with userLA@jabberLA credentials and automatically pulls jabberLA shared group. Then he has to register with the gateway giving userLA@jabberML credentials. Then he will be logged on two servers simultaneously and MAYBE will pull jabberML shared group. Same for the other side. You will have to test that. Though it involves two logins. Don’t remember how Pidgin manages gateways, but in Spark it can remember gateways credentials and login to it automatically when you log into your local server.

Another workaround, to have one server for both locations, say at LA. Yes, not a nice solution for ML if internet connection is down or slow. But i don’t see any other options.