[Standards] Presence Priority Implementation Guide

Stephen Pendleton pendleto at movsoftware.com
Thu May 17 17:24:49 UTC 2007

This does seem to be the proper behavior. Using any other scheme (like
JConley's) you are going to run an increased risk of messages being
delivered to the "wrong" resource.

Even using Google's scheme you can have this issue. For example if I am
logged in using both my mobile and desktop client and am chatting with
someone using my desktop and then get up and leave and take my mobile client
with me, any further messages from that contact are going to go to my
desktop and not my mobile, even if my mobile priority is higher, unless I
send a message from my mobile to that person. I've tested this and Google's
implementation will always send to the last resource it was received a
message from. Even setting my desktop Gtalk client to "away" it will still
deliver to my desktop client since that is the last resource it received a
message from, not my higher priority mobile. I think this is wrong myself,
but its OK for 99% of the deployments out there. I wonder if Google is using
the <thread> attribute to determine which resource to send a chat message to
(doubtful) or just using the jid+resource of the last received message or
logon (more likely). 

I know I do not personally manually set my status to "away" on my desktop
when I leave. I just let the desktop client set me automatically away after
x minutes. During those x minutes (or maybe for the entire session depending
on the server implementation) I will "lose" messages from already initiated
chats because they will be delivered to the desktop, and not my mobile. I
may be atypical because I always stay logged in using my mobile client, even
while I am using my desktop for an extended period of time.

The only guaranteed solution to the problem of messages getting sent to the
"wrong" resources is to have messages always broadcasted to all connected
resources. I do personally think that Google should send messages to the
resource with the highest priority if I have changed my status to away on
one of the connected resources.

-----Original Message-----
From: standards-bounces at xmpp.org [mailto:standards-bounces at xmpp.org] On
Behalf Of Rachel Blackman
Sent: Thursday, May 17, 2007 12:24 PM
To: XMPP Extension Discussion List
Subject: Re: [Standards] Presence Priority Implementation Guide

> Are there any server implementations that will deliver "initial" or
> all
> messages to all connected resources of a contact? I have found the  
> most
> common complaint I get is that messages get delivered to the "wrong"
> resource.

If I'm connected to Google Talk via both my home client and my mobile  
client, and someone sends to the bare JID, it seems to send to both,  
but stops after I've replied from one of the two connected resources;  
all further messages go just to that one.

However, the caveat there is that both home and mobile are using the  
same priority, and the other people are invariably using the Gmail  
Web Client; I have no idea if the behavior in this case is server- 
side behavior or partially the Gmail client.  I haven't bothered to  
check yet, so my thought is that Google's client sends to the bare  
JID initially and the server forwards it to more than one connected  
resource; when I reply, the Google client sends further messages to  
the fully-qualified JID it got a reply from.

Someone at Google might be able to clarify, but the point is that at  
least one server seems to deliver any bare-JID messages to at least  
all highest-priority connected resources.

Rachel Blackman <rcb at ceruleanstudios.com>
Trillian Messenger - http://www.trillianastra.com/

More information about the Standards mailing list