вторник, 26 августа 2008 г.

Списки приватности в Jabber

Многие начинающие пользователи Jabber или совсем не знают о списках приватности, или не знают как ими пользоваться. Однако иногда возникает необходимость заткнуть надоедливого собеседника или вообще скрыть от него своё присутствие в сети. Для этих целей как раз и служат списки приватности, которые реализованы в Jabber очень гибко, хотя гибкость делает эту функцию менее интуитивно понятной, чем списки видимости-невидимости в аське.

Списков приватности может быть несколько, но активным может быть только один из них, хотя можно сделать активным разный список для разных ресурсов. Например на работе можно стать невидимым для всех, кроме рабочих контактов, а дома - наоборот: послать куда подальше рабочие контакты. Хранятся списки приватности на сервере, следовательно не придётся вводить их заново для каждого клиента.

Каждый список состоит из набора правил. Правило, которое находится выше в списке перекрывает те, что находятся ниже. Правило состоит из условия и поведения сервера при данном условии. Условием может быть JID, группа (group), подписка (subscription). JID может быть с ресурсом, если он не указан, то правило применяется для всех ресурсов данного контакта. Если указать только домен, например jabber.ru, то правило будет применяться для всех контактов данного домена. Группа может быть любая. Bombus умеет автоматически создавать группу Ignore-List и правило для этой группы. Подписка может быть от нас (from), на нас (to), взаимной (both) или её вообще может не быть (none). Действием может быть запрет (deny) или разрешение (allow), а запретить или разрешить можно статусы от других контактов (presence-in), видимость своих статусов (presence-out), сообщения (message), запросы версии, времени и т.п. (iq).

Чтобы понять хоть что-нибудь из того, что изложено выше, предлагаю применить списки приватности на практике. Спамеры в аське в последнее время совсем обнаглели, но многие пользователи Jabber вынуждены пользоваться аськой через транспорты. Предлагаю запретить сообщения от тех асечных контактов, которые не находятся в ростере, а сделать это можно при помощи двух правил: "запретить сообщения от асечнных контактов", но это правило должно перекрываться правилом "разрешить сообщения для тех, кто находится в списке". Далее последует инструкция по осуществлению этих замыслов на примере клиента Bombus, не думаю, что в других клиентах есть какие-либо существенные отличия.

Для начала заходим в Меню->Инструменты->Списки приватности.
Если там нет списка Ignore->List, создаём его, нажав Меню->Создать Ignore-List.
Чтобы этот список автоматически активировался при подключении, делаем Ignore-List списком по умолчанию, нажав Меню->Уст. по умолчанию.
Теперь входим в него, чтобы добавить пару новых правил.
Для того, чтобы добавить правило, жмём Меню->Добавить правило.
Действие - deny, тип - JID и значение - название вашего icq транспорта, Stanzas - ставим везде галочки, т.е. всё запрещаем.
Чтобы не потерять связь с теми, кто находится в ростере, добавляем ещё одно правило, в котором действие - allow, тип - subscription, значение - both и ставим везде галочки. Это правило надо обязательно переместить выше предыдущего, но ниже правила Ignore-List!
Теперь можно сохранить список.

Если всё было сделано правильно, то спамботы из аськи больше нам не страшны :-)

4 комментария:

Unknown комментирует...

Ух! Благодарю! Да, неочевидная штука, и когда количество контактов переваливает за сотню - аццки нужная. Благодарю!

P.S. Пока нашла эту функцию в Psi - пришлось попотеть :)

Анонимный комментирует...

Привет!
Ты пишише "...хотя можно сделать активным разный список для разных ресурсов."
А можно узнать как это сделать, хочется как раз такое заходишь из домв и что бы самые "любимые" рабочие контакты тебя не видели...

Maxxxx32 комментирует...

Жека, дома в клиенте установить активным один список, а на работе - другой. Такое позволяет делать Tkabber. Про другие клиенты не знаю.

Анонимный комментирует...

Не прокатывает такой вариант, список загружается на сервер и при следующем коннекте клиента выбирается последний загруженный. (
В качестве клиента мучил Tkabber под Win.