[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
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
> the contact can't be reached and sends out a stanza error to me the
> 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.
Jabber: darco at deepdarc.com
eMail: darco at deepdarc.com
More information about the Standards