[standards-jig] [jepnews] JEP-0020: Client Feature Negotiation

Peter G. Millard me at pgmillard.com
Thu Feb 28 14:21:07 UTC 2002

Feature negotiation is the next step after finding out that a client
supports a specific namespace. Thus, it actually "extends" the browsing
aspect to find out if an endpoint supports something. The negotiation would
be used to allow 2 clients to 'agree' on the specifics for a specific
namespace (the examples show the clients picking key-exchange methods). Both
clients support jabber:crypto:keyexchange, but they need to "coordinate" and
pick the key-exchange method that they both support.

Another perfect example could be jabber:iq:oob (for file transfers). Client
A browses to find out that the recipient's client can receive files (it
supports the namespace). Client A then uses the negotiation protocol to find
out if the Client B can originate a P2P connection since Client A "knows"
that it's behind a firewall. This way, Client B can "listen" on a specific
IP/Port, send that back to Client A using the negotiation protocol, then
Client A connects to that socket and sends the file. Currently, we have no
protocol for allowing this type of exchange.

Hope this clarifies the purpose and need for this protocol.

Peter Millard.

----- Original Message -----
>From: "Ashvil" <ashvil at i3connect.net>
To: <standards-jig at jabber.org>
Sent: Thursday, February 28, 2002 12:40 AM
Subject: Re: [standards-jig] [jepnews] JEP-0020: Client Feature Negotiation

> My two cents ...
> To the best of my knowledge, Vista is the only client that currently does
> feature negotiation (we use this to find out what addons are installed)
> we have been doing this with iq:browse for the last six months without any
> issues.
> I am not sure why we we need a new feature negotiation namespace. I would
> love to know, why querying the existing namespaces was not considered.
> We should be able to query the namespaces that the client returns to
> out what features it supports like this
> <iq type='get' to='jid2'>
>     <query xmlns='namespace to be queried'>
>     </query>
> </iq>
> To use the example in the JEP it would be ...
> <iq type='get' to='jid2'>
>     <query xmlns='jabber:crypto:keyexchange'>
>     </query>
> </iq>
> <iq type='result' to='jid2'>
>     <query xmlns='jabber:crypto:keyexchange'>
>             <options>
>                 <option>diffie-hellman</option>
>                 <option>pgp</option>
>             </options>
>     </query>
> </iq>
> I think the above is more in line with the Jabber protocol as I understand
> it.
> Regards,
> Ashvil
> ----- Original Message -----
> From: "Peter Saint-Andre" <stpeter at jabber.org>
> To: <standards-jig at jabber.org>
> Sent: Wednesday, February 27, 2002 5:56 AM
> Subject: [standards-jig] [jepnews] JEP-0020: Client Feature Negotiation
> > Peter Millard has put together a standards-track JEP regarding
> > of features between clients. Here is the URL:
> >
> > http://www.jabber.org/jeps/jep-0020.html
> >
> > Peter
> >
> > --
> > Peter Saint-Andre
> > email+jabber: stpeter at jabber.org
> > web: http://www.saint-andre.com/
> >
> > _______________________________________________
> > Standards-JIG mailing list
> > Standards-JIG at jabber.org
> > http://mailman.jabber.org/listinfo/standards-jig
> >
> _______________________________________________
> Standards-JIG mailing list
> Standards-JIG at jabber.org
> http://mailman.jabber.org/listinfo/standards-jig

More information about the Standards mailing list