Using Openfire for distributed XMPP-based video-chat

Posted by Yitzhak on Server Fault See other posts from Server Fault or by Yitzhak
Published on 2014-06-11T14:00:34Z Indexed on 2014/06/11 15:29 UTC
Read the original article Hit count: 167

I have been tasked with setting up a distributed video-chat system built on XMPP. Currently my setup looks like this:

  • Openfire (XMPP server) + JingleNodes plugin for video chat
  • OpenLDAP (LDAP server) for storing user information and allowing directory queries
  • Kerberos server for authentication and passwords

In testing with one set of machines (i.e. only three), everything works as expected: I can log in to Openfire and it looks up the user information in the OpenLDAP database, which in turn authenticates my user with Kerberos.

Now, I want to have several clusters, so that there is a cluster on each continent. A typical cluster will probably contain 2-5 servers. Users logging in will be directed to the closest cluster based on geographical location. Something that concerns me particularly is the dynamic maintenance of contact lists. If a user is using a machine in Asia, for example, how would contact lists be updated around the world to reflect the current server he is using? How would that work with LDAP?

Specific questions:

  • How do I direct users based on geographical location?
  • What is the best architecture for a cluster? -- would all traffic need to come into a load-balancer on each one, for example?
  • How do I manage the update of contact lists across all these servers?

In general, how do I go about setting this up? What are the pitfalls in doing this? I am inexperienced in this area, so any advice and suggestions would be appreciated.

© Server Fault or respective owner

Related posts about cluster

Related posts about geolocation