Currently, according to RFC3921, the behavior of a server when it receives an unaddressed presence stanza of type 'probe' is undefined.

I propose that the following behavior be generally accepted as correct (and possibly codified in RFC3921 and/or an XEP):

When the server receives an unaddressed presence probe from a client, the server MUST forward that presence probe to all contacts that user is subscribed to on the client's behalf.

Now... I know what you are thinking. Why is this a good idea? Why would a client ever need to send a presence probe?

Presence probes are useful to force a refresh of your presence state if you were previously ignoring presence (say, via a privacy list which blocks incoming presence).

Blocking incoming presence is useful in mobile environments when interest in other's presence is only necessary in very limited contexts. Receiving and handling presence stanzas when they aren't being used wastes power, so it is a good idea to not have them be sent at all. The problem then comes what do you do when you want to actually view presence in a roster?

Turning off the privacy list and sending a single presence probe makes the most sense, but handling unaddressed presence probes are currently not widely supported. In fact, Openfire will actually kill the client connection, due to an unhanded exception. In the absence of this functionality on the server side, the client is reduced to sending a presence probe to each individual on their contact list.

Additionally, a service discovery feature may need to be created to allow servers to advertise that they support this behavior correctly.

Thoughts?

__________________
Robert Quattlebaum
Jabber: da...@deepdarc.com
eMail:  da...@deepdarc.com
www:    http://www.deepdarc.com/



Reply via email to