Initial presence

Hi,

This isn’‘t causing any difficulties for me, but I thought you might want to know in case it’'s a protocol incompatibility.

When I first come online and request my roster. I receive the roster along with the initial presence packets of people who are online. After getting my roster, I set my availibility status so everybody can “see” me. I then receive, a second time, the initial presence packets of people who are online.

The Tipic server behaviour was such that it only sent the presence packets in the second situation, not the first. I’'m not sure which situation is correct, but you can figure that out.


2/17/03 12:34 PM <query xmlns="ja

bber:iq:roster"><item jid=“amccormack@clymene” subscriptio

n=“both” name=“Andrew”/><item jid=“mlennox@clymene” s

ubscription=“both” name=“Marc”/><item jid="ntaitt@clymene

" subscription=“both”/><item jid=“rabson@clymene” subscript

ion=“both” name=“Randy”/><item jid=“drobbins@clymene” subscri

ption=“both” name=“Daryl”/>

2/17/03 12:34 PM

2/17/03 12:34 PM <presence xmlns=“jabber:client” type=’‘available’’ id=’‘id_10141’’><priority xmlns="jabber:cl

ient">1

2/17/03 12:34 PM <presence type=“available” id=“id_10141” from=“ananner@clymene/Home” to="rabson@clymene/

Home">1

2/17/03 12:34 PM

Thanks for pointing this out. The behavior you describe is intentional. We wanted to support two client scenarios. The first is the normal Jabber IM scenario where the client needs to have it’'s roster before it can do anything with presence updates for roster members. This requires us to send a presence push from all roster subscribers AFTER the roster is retrieved.

However, there are some situations where clients don’‘t deal with roster at all. They exclusively work with presence (to subscribe) and presence pushes for notification. To make the server work well with them, we needed to send presence pushes as soon as the first presence available is sent (these clients will never send roster requests). This type of minimal client without roster support is supported with Smack and could be very useful in ‘‘command and control’’ and embedded scenarios that don’‘t require the concept of a roster but do want to subscribe and receive presence from other jid’'s.

Thanks for pointing this out though. I will try and document it for the release as an intentional behavior.

-iain