Client Capabilities Namespace and RE: [JDEV] Jabber, the Name
Peter Millard
me at pgmillard.com
Wed May 16 10:41:03 CDT 2001
Mike -
One of the things that jabber browsing was supposed to do was to enable
clients to check for capabilities.. so my client would send an <iq
type="get" to="foo at jabber.org/client"><query
xmlns="jabber:iq:browse"/></iq>, and the other client would respond to that
query with a list of all the namespaces that it supports, including the
elusive "MYCLIENT:VOICE" namespace :) So they your client would know what it
can do...
I'm working on implementing this right now in winjab, the obvious problem is
that if you don't get a response, you need to wait for a timeout or
something equally gross. This isn't the best way to handle this I think, but
its a very good start... It would help a lot if there was a "query"
mechanism built into the browsing protocol, so I could say to a specific
client "do you support jabber:x:foo??" instead of saying "give me a complete
list of all namespaces you support".
Peter Millard.
----- Original Message -----
From: "Emswiler, Mike" <MEmswiler at protrader.com>
To: <jdev at jabber.org>
Sent: Tuesday, May 15, 2001 4:48 PM
Subject: Client Capabilities Namespace and RE: [JDEV] Jabber, the Name
> On the Naming Issue:
> ================
>
> It was my understanding that the Jabber server, protocol and concept are
> *not* in fact Jabber.com's stuff, but Jeremie's stuff that he was gracious
> enough to add to the open source movement.
>
> Is this not correct?
>
> On the Client Compatibility Issue:
> ========================
>
> If it has not already been discussed, it is my humble opinion that all
> clients should be required to support at least a Query Capability XML
packet
> and return a TRUE/FALSE when it receives it. Additionally, a Get
> Capabilities List packet would be nice, allowing the client to enumerate
> supported capabilities.
>
> What I mean by this is that my jabber client should be able to send to any
> online jabber client a query capability packet and ask that client if it
> supports my voice format (specified by some unique string id that I made
up,
> like "MYCLIENT:VOICE" that is probably used as an <X /> namespace. If it
> returned true, my client could safely send it voice messages and know the
> recipient can play them. If false, I would disable the voice send feature
> for that user in the buddy list.
>
> Alternatively, the server could be expanded <ick> to store client
> capabilities which could become of the login negotiation (since any client
> can be run against any JID at any time, it would be necessary to do this
on
> a per session basis.) This has the added benefit of reducing capability
> query traffic.
>
> BTW, when I say "packet", I'm referring to an XML message from a jabber
> client to a jabber server, much like the presence message.
>
> With something such as this, anyone can arbitrarily add their own
namespaces
> and easily determine which clients can and cannot support their custom
> features (regardless of whether they are voice features, file transfer,
> xhtml, etc.)
>
> Once again, just my humble opinion
>
> MikeE
More information about the JDev
mailing list