[Standards] Presence Priority Implementation Guide

Rachel Blackman rcb at ceruleanstudios.com
Thu May 17 17:38:04 UTC 2007

> 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.

How I handle it in Astra is that for the first message, I send to the  
bare JID of the other person.  After I receive a message (or if they  
initiate the chat), I send to the fully qualified JID they've  
messaged me from.

If I close the chat window, I assume the chat is done and no longer  
remember that resource, obviously enough.  However, I /also/ forget  
the resource if I receive a 'gone' Chat State Notification.  If I get  
a 'gone,' I do not close the chat window to that person, but if I  
send another message I will revert to sending it using the bare JID  
again.  This logic makes sense to me, as gone is used for 'I have  
been away from the keys for a long time' or 'I closed my chat window  
to you.'

This method seems to work fairly well for anything that supports  
XEP-0085, though it does sort of require blindly trusting the  
server's delivery mechanics when sending to a bare JID.  On the other  
hand, it doesn't work so well if the other client doesn't support  

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

More information about the Standards mailing list