[Standards] UPDATED: XEP-0199 (XMPP Ping)

Justin Karneges justin-keyword-jabber.093179 at affinix.com
Wed May 9 18:29:37 UTC 2007


On Wednesday 09 May 2007 10:39 am, Mridul Muralidharan wrote:
> Peter Saint-Andre wrote:
> > Mridul Muralidharan wrote:
> >> Ah, I see that the type=probe is not present in the presence packet :
> >> my mistake, thanks for clarifiyng !
> >
> > In fact that's a typo, there should be a type='probe' in one of the
> > examples.
>
> Hmm, in which case aren't we not back to any entity using probe instead
> of only servers ?

This example is of a room (or room's server) doing a probe.  Clients are still 
not supposed to probe.

> > That shows an example of a server returning presence information in
> > response to a probe from an entity with which a user has shared directed
> > presence. I think the SHOULDs there are not necessary (the chat service
> > SHOULD send a probe blah blah blah, whether that is recommended is a
> > matter for XEP-0045.)
>
> Why use probe for this in the first place ?
> The room is only interested in a particular full jid - not any/every
> resource of the bare jid.

Then probes just the full jid.  The flow should could use some more clarity:

Client joins room:
<presence from='romeo at example.net/orchard'
        to='shakespeare at chat.example.com/RM'>
  <status>working</status>
</presence>

Room (or room's server) probes presence:
<presence from='shakespeare at chat.example.com/RM'
        to='romeo at example.net/orchard'/>

Server responds positively:
<presence from='romeo at example.net/orchard'
        to='shakespeare at chat.example.com/RM'>
  <status>working</status>
</presence>

Or not:
<presence from='romeo at example.net/orchard'
        to='shakespeare at chat.example.com/RM'
        type='unavailable'/>

>  From what I recall, the primary motivation was for the purpose of
> discovering if the remote endpoint is mia : and xmpp ping seems to be
> better suited for this than probe.

The presence probing is different because it is by hop.

C1 - S1 - S2 - C2

If C2 sends directed presence to C1, then S1 could probe S2 periodically about 
the state of that presence.  C2 would not be resending presence.  A ping 
would go all the way to C2 (unless we made S2 also respond to pings on behalf 
of clients, but then I think that might defeat the spirit of pings, which are 
meant to be e2e).

> Is there any other reason why we need this special casing of probe in
> face of directed presence ? I cant seem to recall any.
> (Server's will not normally probe these entities).

It's not really a special-casing so much as a completing of the protocol.  It 
allows directed presence to be probed about just like broadcasted presence.  
It's an un-special-casing. :)

> Only implementations requiring xmpp ping would use it - why do we need
> similar protocols for the same intent ?
> Considering how simple xmpp ping is, I am sure it will catch on fast :
> and the usefulness is really good (unless implementations go overboard
> with pinging).

To be honest, I see xmpp ping more as a diagnostic tool or a stopgap.

-Justin



More information about the Standards mailing list