[JDEV] Transports & Presence

Robert Norris Robert.Norris at its.monash.edu.au
Mon Apr 2 19:37:18 CDT 2001


The transport I'm writing interacts with our legacy IM system.
Unfortunately, this system only sends (the equivalent of) presence
information when you go online (based on your "watch", similar to the
roster, but you don't need to ask for subscription). Because of this,
its not possible to update Jabber rosters in realtime.

An example may prove useful:

1. User logs in (via transport) to external IM system. External system
   replies "Watched people on: foo bar"
2. User goes away/xa/dnd. External system does nothing.
3. User goes online. External system replies "Watched people on: foo bar"

Because I can't get realtime presence info, I wanted to make sure that
all presence information from the external system gets used to update
all Jabber rosters, regardless of who that presence is bound for.

I assumed that simply sending the server a packet like:

<presence from='user at transport/resource'/>

would cause the server to send presence to everyone who has subscribed
to that user. However, the server comes back with "Packet delivery
failed, invalid packet".

The only way I've made it work so far is to manually send presence to
ever user registered with the transport, which is alot of work and
causes the clients to get presence information for users they have no
interest in.

What am I doing wrong?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20010403/feb4e62f/attachment-0002.pgp>

More information about the JDev mailing list