Multi-endpoint sessions

I have an architectural question. I am very new to OpenFire so please forgive me if this is already well known.

Why is OpenFire limited to single, mutually exclusvie sessions from a login account? There are multiple scenarios where allowing multiple instances of a single login account is useful. Using Lync, for example, enables me to be logged in from my work desktop, phone, notebook and home all at the same time. When someone interacts with me it can be access from any of these endpoints at any time.

On the server I see the option to kick off users based on single sessions. Why does it not support an option to permit multiple sessions from a single user account or have some mux merging multiple sessions into one session? Input can come from any/all of the endpoints and output is sent to all of the endpoints.

Jabber in general and Openfire ir particular support resources. Resource is an id which shows where or how a user is connected (home, desktop, mobile). Single user can be logged with various resources at the same time. In your case a client is always connecting with the same resource (probably “Spark 2.6.3”). When a resource is the same, then the rules for handling sessions kicks in and one of the sessions is disconnected. You can set different resource on a client. In Spark go to Advanced on the login screen.

I don’t know how exactly Lync handles this. Maybe it syncs conversations between all simultaneously connected clients (like Message does on Mac, iPhone, iPad). If you want this, then it is problematic.

Openfire has a system property to enable to forward all the messages to all resources. But it only works when a message is being sent to a bare JID (user@server), but clients usually interact using full JID (user@server/resource). So after the initial message all the messages will still be forwarded to a single resource which has responded. I don’t think there is a fix or another option to override this.

That’s for the incoming messages. On the sent messages side Openfire has added a support for syncing sent messages recently (starting with 3.9.2 version). But a client has to have a support for this too. Spark doesn’t have this. I have only tested this with Yaxim (Android client).

Thank you, wroot. This is very helpful and is putting me on the right path. If I run into issues with this solution I will post to this thread.