> I assumed that simply sending the server a packet like:
> <presence from='user@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".
That is an invalid packet (coming from a transport), becuase there is
no destination. When a user sends a packet without a destination, the
server puts the destination on there for them (the local server becomes
the destination), but when you are working from a transport every destination
must be explicit.
Therefore, your transport must keep track of every user that has a
subscription to the transport *AND* who's presence they are watching.
so that when your transport gets presence info from the external network,
it simply needs to search these lists for people to send out presence to,
then it has to send a single presence packet *FOR EACH* person it needs
to send it to, each time making sure the destination is correct.
At least, that's what I think you are trying to do.. =}
Keith Minkler
PGP signature