[jdev] Gaim and gnomemeeting using jabber
jabber.org at ralphm.ik.nu
Thu Dec 2 10:46:40 CST 2004
On Thu, Dec 02, 2004 at 05:22:13PM +0100, Tijl Houtbeckers wrote:
> On Thu, 2 Dec 2004 14:02:43 -0000, Richard Dobson <richard at dobson-i.net>
> >Ok then here you go:
> >[snip a long protocol]
> You can add in some disco nodes and such (perhaps about which different
> uri schemes clients support) when GAIM supports that or you when you want
> to make a JEP for it. (since Entity capabilities and Disco are linked).
> You can implement this using existing protocols that work today, still
> have your functionality requirments met, and not expose your IP until you
> initiate a call. You'll just need to patch GAIM to support 115.
Very nice and simple. Good call!
In one of your earlier messages you asked why caps (JEP-0115) was exempt from
the 'do not put stuff in presence' mantra. If I recall correctly, some clients
started sending iq:version requests to any contact that sent presence. While
this already produces an significatn amount of start-up traffic, we could
only wait for people sending elaborate disco requests instead, in an effort
to detect what the contacts' clients support.
Indeed pubsub was even less 'there' as now, so that wasn't a viable option at
the time. Also, there were some issues with group chats.
Presence is in fact a specialized pubsub implementation. So although it has
some of the nice properties that pubsub via JEP-0060 also has, it is really
only meant for distributing presence (as has been said many times in this
To have a simple solution to the problem, an exception for caps was made. But
careful thought was put into not sending to much stuff to all contacts.
The size of the caps annotations to presence was limited by requiring the
ext field to be a space separated list of capabilites, each identifier as
short as possible. Any additional information must be retrieved using disco.
There is also a section on server side optimization, to enable stripping
redundant caps annotations from presence stanzas.
Hope this explains it a bit.
More information about the JDev