Yes, the self-presence stanza is neccessary.
You could try to send enable Smack.DEBUG to trace the exchanged stanzas between client and server, and verify that the self-presence is in fact not send or if it's not the PacketFilter that doesn't catch the stanza.