Большинство систем мгновенного обмена сообщениями имеют средства блокирования получения и отправки сообщений и информации о присутствии, применительно к определённым пользователям (различные реализации белых и чёрных списков, невидимость для собеседников).
В сетях Jabber, использующих протокол XMPP, это достигается настройкой и использованием списков приватности - Privacy Lists.
Обработка правил Privacy Lists выполняется Jabber-сервером, при этом сервер позволяет производить следующие операции:
получение списков приватности клиентом;
добавление, редактирование и удаление списков приватности;
выбор активного списка приватности (правила, работающие в течение текущей сессии);
выбор списка ‘по умолчанию’ (правила, действовующие при каждом подключении к серверу);
-
-
-
-
разрешение или запрет всех вышеперечисленных пакетов применительно к
JID, группе ростера, типу
subscription или глобально.
Замечание: Списки приватности не позволяют блокировать запросы subscription.
Пользователь может определить один или более списков Privacy Lists. Каждый список может содержать несколько правил, определяющих действие правила и признаки, по которым правило применяется.
Такие правила применяются к пакетам при совпадении поля value правила с JID’ом контакта. Вот несколько примеров задания поля value:
user@domain/resource - правило будет срабатывать только для данного
ресурса JID;
user@domain - правило будет срабатывать по JID с любым ресурсом;
domain/resource - правило будет срабатывать по доменному имени Jabber-сервера И ресурсу (применяется к службам сервиса);
domain - под этот вариант попадают domain, любые user@domain, domain/resource, а также любой адрес в домене domain.
Поле value таких правил должно содержать имя СУЩЕСТВУЮЩЕЙ группы контактов в ростере пользователя.
Если клиент попытается создать или редактировать список, содержащий правило типа Group для имени группы, отсутствующей в ростере, то сервер выдаст ошибку при попытке сохранить такой список.
Поле value таких правил должно содержать тип Subscription (подписки на присутствие) :
from - правило сработает для пакетов тех контактов, которые разрешили получать пользователю информацию о присутствии;
to - правило сработает для пакетов тех контактов, для которых пользователь разрешил отправку информации о своём присутствии;
both - правило сработает для пакетов тех контактов, которые могут обмениваться информацией о присутствии с пользователем в обе стороны;
Примечание: Под вышеперечисленные правила могут попасть только те контакты, которые находятся в ростере.
Примечание: Также под это правило попадают все контакты, которые не находятся в ростере пользователя.
Возможны два типа действия - allow (разрешить пакет) и deny (запретить пакет).
Каждое правило может использоваться для пакетов, содержащих:
message - получаемые (входящие) сообщения;
presence-in - получаемая информация о присутствии контактов;
presence-out - отправляемая (исходящая) информация о собственном присутствии;
iq - получаемая служебная информация.
Если во время сессии клиентом установлен активный список приватности (active list), то этот список применяется сервером только для той сессии, во время которой он активирован. При этом не используется список по умолчанию (default list).
Список
по умолчанию (
default list) применяется ко всем сессиям, для которых не установлен активный список. Список по умолчанию также применяется ко всем
Jabber-пакетам, если все ресурсы пользователя имеют статус offline (например, таким образом могут отбрасываться и не попадать на хранение на сервере нежелательные сообщения, на которые настроена фильтрация).
Если нет ни активных списков для сессий пользователя, ни списка по умолчанию, то Jabber-пакеты доставляются без ограничений.
Порядок расположения правил в списке имеет значение - именно в порядке возрастания номеров правил производится применение этих правил к Jabber-пакетам.
Как только для Jabber-пакета найдено соответствующее правило, пакет обрабатывается согласно действию правила (allow или drop).
Если пакет не попадает под действие ни одного правила из списка, то выполняется доставка пакета (allow).
При редактировании активного списка новые правила этого списка начинают действовать немедленно.
Нельзя удалить или сменить на другой список ДЕЙСТВУЮЩИЙ для другого ресурса список по умолчанию.
Открываем редактор списков приватности (Menu → Tools → Privacy Lists)
Создаём новый список приватности Ignore-List (Make Ignore-List)
В нём создаём следующие правила командой Add rule (очерёдность правил важна):
allow jid my_JID all ← для возможности работы self-contact (события от своего JID)
allow jid conference.jabber.ru all ← для разрешения использования конференций на выбранном сервере
allow jid rss.jabber.ru [v] message ←- для разрешения входящих оповещений о создании новых рассылок (кому нужно)
deny jid rss.jabber.ru [v] presence-in ←- для запрета получения статусов online от rss-лент (лишний траффик!)
deny subscription none all ← для запрета входящих сообщений от контактов без подписки
deny group Ignore-List all ← для запрета любых событий от группы Ignore-List
Сохраняем данный список (Save list)
Далее активизируем его (Activate) и делаем списком по умолчанию (Set default)