Multiple clients and message syncing howto?

Folks,

I am slowly getting lost in this: In our setup, we run an openfire server and connect to this using mobile and desktop clients. Requirements are rather simple(?):

  • It should be possible to keep at least the mobile clients connected all the time.
  • When both mobile and desktop clients are “online”, incoming messages should be displayed at least on the desktop client (though also having them displayed on the mobile clients won’t hurt).
  • When desktop clients are “away”, messages should go to the mobile client.
  • Generally, the full message history should be available on both mobile and desktop client.

So far, this seems next to impossible. Running openfire 3.9.3 and the archive plugin, it seems that at least the “having all the messages available on all clients” part seems to work with some clients (Xabber on Android). Generally, I thought this should be easily doable using priorities, but it doesn’t seem to work at all. Situations, so far: Generally new messages will appear on exactly one devices, I suspect that it will be the one that connected first. Priorities don’t seem to matter much at all. Some clients manage to see the server sided message archive, some obviously seem to be able to just write to it but not retrieve the full history, some don’t seem to care at all. It’s a bit messy… So to ask: Is a setup like the one described above possible with the current version of openfire and the current state of XMPP at all? If so, any recommendations on clients (Linux, Android) to use and how to set them up?

Thanks bunches in advance and all the best,

Kristian