29 апр. 2010 г.

Концепт персонального ICQ транспорта для Jabber

Думаю что я не одинок, и множество пользователей интернет-месседжеров проклинают ICQ и сидят в двух сетях — открытой и ICQ. Как бы красиво не звучали похвалы в адрес Jabber часто необходимые контакты так и не удаётся на него пересадить. Люди годами сидели на ICQ, у них множество контактов в ICQ, которых они бы не хотели потерять. А тут вы, возможно даже единственный, который твердит о Jabber. Но общаться с этим человеком нужно или просто хочется. Что же делать? Jabber даёт ответ — используйте транспорт.

Но не всё так радужно. Сама сеть ICQ очень не любит таких умников и сопротивляется. Публичные транспорты как правило ненадёжны. Не потому, что плохо написаны, а потому что ICQ начинает блокировать соединения если наберётся достаточно пользователей на одном транспорте.

Решением проблемы видится некий персональный ICQ транспорт. Конечно, вполне возможно запустить свой собственный сервер и поднять свой собственный транспорт, но это несколько неудобно:

  • Свой собственный Jabber-сервер с транспортом достаточно тяжёл.
  • В сети ICQ постоянно передаются спам-сообщения. Например, при отключеном антиспаме я получаю 1 сообщение раз в несколько минут или даже чаще. Как правило транспорты обладают слабыми антиспам системами, а клиенты Jabber просто не рассчитаны на борьбу со спамом и они вообще не знают что такое ICQ.
  • Список ICQ контактов стягивается с сервера. У меня он достаточно крупный. Все попытки его вычистить так ни к чему и не привели. В результате ростер захламляется ненужными ICQ контактами, которые может быть когда-то и понадобятся.

Что же всё-таки такое персональный ICQ транспорт? Это лёгкий сервер, который при запуске автоматически или при запросе пользователя подключается к сети ICQ и постоянно находится в сети. Другая часть представляет собой упрощенный jabber-сервер, который не имеет своих пользователей и отвечает только на запросы других jabber-серверов, а если быть точным, только от заранее разрешённых и более того, отвечают только заранее указанным в конфигурации контактам.

Сервер должен так же управлять контактами, которые будут передаваться в ростер. Каждому пользователю присваивается уровень доступа:

  • Обычные пользователи с которыми необходимо общаться. Эти пользователи передаются в ростер.
  • Пользователи с автоответчиком для тех, с кем общаешься не часто. Сообщения от них непосредственно не пердаются. Передаютс только уведомления о том, что пользователь тебе что-то сказал. В ростер не добавляются.
  • Полный автоответчик для тех, с кем общаться не собирался (новые пользователи, чёрный список и пр). Можно сделать несколько групп и каждой из них присвоить своё сообщение на автоответчике или вообще попросту сообщения убивать.

Если вы не подключены к транспорту, а сам транспорт подключен к ICQ, входящие сообщения копятся на нём. При подключении к транспорту или сбрасываются непосредственно вам или доставляется уведомление о том, что имеются новые сообщения, например, на случай если вы вышли с мобильного телефона и вам некогда разбираться с «оффлайн» сообщениями.

Можно сделать своего рода планировщик и задать, что даже если транспорт подключен, сообщения на Jabber не ретранслируются. Пример: вы оставили месседжер включенным на работе и нет смысла на него пересылать сообщения когда вас на работе нет.

Можно вести лог на сервере и при необходимости запрашивать требуемое количество сообщений или сообщения за определённый период.

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

Комментариев нет:

Отправить комментарий