[Standards-JIG] RFC 3921 Better User Presence Experience (Implementation Detail)

Robert B Quattlebaum, Jr. darco at deepdarc.com
Thu Oct 26 18:39:25 UTC 2006

This has a lot of implications, many of them not obvious. First, in  
highly distributed servers, the S2S mechanism is a separate component  
from the session management component. This allows the session  
manager to not have to concern itself with managing connections. For  
this to work, the S2S mechanism would have to be made a little  
smarter, and the session management a little bit more aware of the  
connection-oriented nature of the connection.

This also would require a change to the XMPP RFC's; which, according  
to XEP-0134, is "sacred". That doesn't mean that this isn't a real  
problem though.

I guess this is one area where SIP/SIMPLE has a slight leg up on us.  
At least in that case, if a client disappears without explanation, it  
will disappear from everyone else's roster after a minute or so  
rather than sticking around indefinitely.

Perhaps a better way to handle this would be to allow the client to  
challenge the presence of a contact if it gets back an error stanza-- 
like asking the server "hey, I want to make sure this person is  
really available, can you check?". The server could then send out  
some probes and come to a conclusion within 15-20 seconds. Once a  
server determines that the contact is indeed unavailable to that  
user, it can go ahead and update the rosters of all connected resources.

This, too, has a lot of implications, but it could be implemented  
without changing the XMPP RFC.

If a server quite simply cannot contact another server "all of the  
sudden" for an extended period of time, then it seems reasonable that  
the server should communicate that to the users in some way.

On Oct 25, 2006, at 6:17 PM, JD Conley wrote:

> I was wondering what you guys thought about this and if anyone already
> implements something similar in their servers.
> Today if my server loses connectivity with any other server and I had
> received presence from a contact there they will remain online from my
> perspective even though they can't actually be reached. The server  
> knows
> the contact can't be reached and sends out a stanza error to me the  
> next
> time I try to communicate with my contact. However, my contact still
> appears online.
> I would propose that if a server is ever unable to deliver a stanza  
> to a
> remote domain over an S2S link it SHOULD notify all locally connected
> entities that have received presence from that domain with an empty
> presence unavailable stanza. And this should be in the implementation
> notes or maybe in 3921.
> Thoughts?
> -JD

Robert Quattlebaum
Jabber: darco at deepdarc.com
eMail:  darco at deepdarc.com
www:    http://www.deepdarc.com/

More information about the Standards mailing list