@mschonakerの回答を書き直して、もう少し明確にします。
両方のユーザーが相互にサブスクライブし、受信したサブスクリプション要求を受け入れる必要があります。彼らをアリスとボブと呼びましょう。Alice が Bob にサブスクリプション リクエストを送信します。
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('bob@example.com');
connection.sendPacket(subscribe);
ボブはリクエストを受け取ると、それを承認します。
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo('alice@example.com');
connection.sendPacket(subscribed);
Bob も Alice の存在に関心がある可能性があるため、Alice にサブスクライブします。
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('alice@example.com');
connection.sendPacket(subscribe);
Alice は Bob のリクエストを承認する必要があります。
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo('bob@example.com');
connection.sendPacket(subscribed);
RFC6121 のセクション 3.1 は、これがどのように機能するかについての現在の最良のリファレンスです。