[Standards-JIG] Re: discoing a bare JID

Peter Saint-Andre stpeter at jabber.org
Thu Jan 20 18:15:40 UTC 2005


OK, here is what I've done:

(1) Created a new disco#info category for accounts:

http://www.jabber.org/registrar/disco-categories.html#account

(2) Added the following paragraph to the implementation notes of 
JEP-0030:

******

As mentioned above, when an entity sends a request to a bare JID 
(account at domain) hosted by a server, the server itself shall reply on 
behalf of the hosted account. The primary identity returned in the 
server's response to a disco#info query SHOULD have a category of 
"account", with an appropriate type as specified in the Service 
Discovery Identities registry (most likely, a type of "registered"). In 
response to a disco#items query, if the requesting entity is subscribed 
to the account's presence, then the server SHOULD include one <item/> 
for each of the account's "available resources" (as that term is defined 
in RFC 3921); if the requesting entity is not subscribed to the 
account's presence, then the server MUST NOT return items for the 
account's available resources.

******

I will seek Council feedback on the change to JEP-0030.

/psa

In article <stpeter-E242D2.10403619012005 at sea.gmane.org>,
 Peter Saint-Andre <stpeter at jabber.org> wrote:

> What happens when I disco a bare JID (e.g., juliet at example.com)?
> 
> We know that the server should reply on behalf of a bare JID. JEP-0030 
> says that every disco#info response must contain at least one identity. 
> But we don't have an identity for a bare JID, only the client category, 
> so it's currently unclear how a server should respond on behalf of a 
> bare JID. Also, the question arises: how should a server respond to 
> disco#items queries? Should it return one <item/> for each resource that 
> has made itself available with a non-negative presence priority (of 
> course subject to privacy checks)?
> 
> I suggest the following:
> 
> (1) We create a new disco identity for bare JIDs. What shall we call it? 
> In essence when you disco a bare JID, the response comes from a server 
> on behalf of a registered account. It's not really a user, since that 
> tends to imply a human, and a registered account could represent a bot 
> or some application interface. We already have an existing "server" 
> category, so "server/account" might make sense (though that might lead 
> people to think this entity is an "account server" as opposed to an "IM 
> server"). Another option would be a new disco category of "account", 
> with several potential types (I can think of "registered" and 
> "anonymous", but there may be others). I lean towards a new category and 
> an identity of "account/registered" for most bare JIDs.
> 
> (2) If I am subscribed to your presence, in response to a disco#items 
> query I should receive a list of your available resources (actually, 
> only those with non-negative presence priority). If I am not subscribed 
> to your presence, I should receive no items for your available resources.
> 
> So:
> 
> <iq type='get' 
>     from='stpeter at jabber.org/roundabout' 
>     to='juliet at example.com'
>     id='info1'>
>   <query xmlns='http://jabber.org/protocol/disco#info'/>
> </iq>
> 
> <iq type='result' 
>     from='juliet at example.com' 
>     to='stpeter at jabber.org/roundabout'
>     id='info1'>
>   <query xmlns='http://jabber.org/protocol/disco#info'>
>     <identity category='account' type='registered'/>
>     <feature var='vcard-temp'/>
>     ...
>   </query>
> </iq>
> 
> <iq type='get' 
>     from='stpeter at jabber.org/roundabout' 
>     to='juliet at example.com'
>     id='items1'>
>   <query xmlns='http://jabber.org/protocol/disco#items'/>
> </iq>
> 
> <iq type='result' 
>     from='juliet at example.com' 
>     to='stpeter at jabber.org/roundabout'
>     id='items1'>
>   <query xmlns='http://jabber.org/protocol/disco#items'>
>     <item jid='juliet at example.com/balcony'/>
>     <item jid='juliet at example.com/chamber'/>
>   </query>
> </iq>
> 
> Thoughts?
> 
> BTW, the impetus for this discussion is a feature request that Ralph 
> Meijer submitted for the Gossip project:
> 
> http://bugzilla.gnome.org/show_bug.cgi?id=163012
> 
> Ralph and I discussed it a bit, and realized that we don't have a good 
> way to disco bare JIDs (which might help an application determine what 
> kind of interface to show when invoked via an XMPP URI that shows only 
> the bare JID).
> 
> /psa




More information about the Standards mailing list