Прием и отправка статусных сообщений, а также информации о видимости контактов и подписки на сообщения от них, осуществляется через XML-строфу <Presence>.
Атрибут type строфы <Presence> является дополнительным.
Строфа, которая не обладает атрибутом type, используется Jabber-ом, для сообщений о присутствии контакта в сети Jabber и указывает на то, что данный контакт находится в сети (онлайне) и доступен для коммуникации.
Если атрибут type присутствет в строфе <Presence>, то он управляет подпиской на сообщения и смену статусов другого контакта (объекта). Аналог подписки в IM-сетях является прохождение авторизации в ICQ.
Если атрибут включен, то он должен содержать иметь одно из следующих значений:,
unavailable — Сигнализирует, что данный контакт, больше не доступен для коммуникаций. Фактически контакт вышел в оффлайн.
subscribe — Запрос на подписку (авторизацию) от другого контакта.
subscribed — Информирует о том, что контакт разрешил авторизацию.
unsubscribe — Отправитель аннулирует подписку.
unsubscribed — Запрос на аннулирование подписки (отозвание авторизации) от другого контакта.
probe — Запрос о текущем присутствии контакта только сервером от имени пользователя.
error — Ошибка, произошедшая при доставки предыдущих данных. Обработка такого сообщения идет в соответствии с RFC 3920 XMPP-Core.
Например, запрос на подписку от контакта ivanov@jabber.ru для нашего контакта может выглядеть так:
<presence to="delphi-test@jabber.ru" type="subscribe" from="ivanov@jabber.ru"/> </presence>Разрешение авторизации в ответ :
<presence to="ivanov@jabber.ru" type="subscribed"/>А запрет (отказ) вот так:
<presence to="ivanov@jabber.ru" type="unsubscribed"/>