Problems with Resource conflicts

Hi, I have recently upgraded to Openfire version 3.6.0.

I have a problem where by one of our users logs in from a remote location under resource “home”. He leaves that logged in and then logs in at the office on a different PC with the same username but using resource “office”.

If I start a new chat with him under his office resource, some of my messages go to his logged in office resource and some go to his logged in home resource.

I cannot find a pattern to which message goes where. It seems random. Although there is the potential that someone is using the remote PC while the staff member is using the office PC.

Any ideas on why this is happening?

Thanks.

Do you know if the client priorities are different ?

For instance, the home client should be 1 for example, and the office client 5 then the messages should go the client with the highest priority.

I just checked and both resources had a priority of 1!

Do you know how the resource priority is set??

Could it be by last active client or PC?

Do you know how the resource priority is set??

Deppends on which client you are using. But it should be around there where you can change the resource name.

Could it be by last active client or PC?

Default behavior is:

In the case that the user is connected from many resources the logic will be the following (from top to bottom):

  • Select resources with highest priority
  • Select resources with highest show value (chat, available, away, xa, dnd)
  • Select resource with most recent activity
    This logic does only apply if the packet/message is not address to an specifc resource.

You can also set the system property “route.all-resources” to true. Then each message that is not addressed to an specifc resource should go to each connected resource.

Helpful in this case are clients that support remote control. Then you can set priority of your other resources remotely. You can also reroute messages that where send to your other resource. E.g. current versions of Psi and Miranda do support this.

Hi Coolcat and all,

I tried the “route.all-resources” trick but it doesn’t do the job. Only one client is getting the message. I wish the same message to be sent to all connected nodes… Is that possible?

I am running OpenFire 3.6.4.

Thanks in advance.

Angus

Maybe priorities aren’t the same? Read the explanation how it works in the last comment here OF-29

We would be willing to contribute $ to a plugin that has this functionality.

We started using Openfire recently and our users want to get the same messages on their phone as they do on the desktop client. We tried the solution posted in this thread, restarted our server and we dont get messages on our phones when we get them on our desktops.

Are you sure you have same priorities on the desktops and on the phones?

xabber on android phone - set to 1

Spark on desktop - I believe “online” is priority 1

When I message myself as another user the messages only show up on one or the other

I got it to send initial messages to both but it is kind of hit or miss. Ideally were looking for a way to send all communication to every online resource no matter what priority the resource is set to.

Another thing is that it only works when messages are being send to a bare JID (username@servername). In your case i think what is happening is that the first message is send to a bare JID, so both clients get it, then one of them replies and sends its full ID (username@servername/resource) in the message, so a subsequent reply is send to a full ID and then only that client gets the reply. Spark is working like that, i suspect xabber doing the same (sending its full ID on a reply). So, unless you change the client behavior, route to all property is not a solution for you. Besides, you said “all communication”. I assume you want sent messages also appear on all online resources (like Apple’s Message). Then this is even more complex. Actually i don’t think you will find anyone here to make such a “plugin”, even for a payment. Not many developers here and most of them have jobs and not much free time for such task, which is also not a xmpp standard.

egress messages dont need to copy to all senders clients.

ingress messages should be routed to every resource for the recipient.