Виды ICQ транспортов
На данный момент существует несколько разновидностей ICQ транспортов. Они различаются практически всем - авторами, языком программирования, на котором они написаны, функционалом, стабильностью. Поэтому необходимо знать чем они различаются для того, чтобы выбрать подходящий.
JIT
JIT (Jabber ICQ transport) - самая старая разновидность. Написана на C. В конце 2005 года разработка JIT остановилась на версии 1.1.7. В 2008 году разработку продолжили тольяттинские энтузиасты, и к осени они выпустили версию 1.2.0. Из-за такой задержки возможностей у JIT меньше, чем у альтернатив, но ненамного и разрыв быстро сокращается. Зато есть и достоинство - JIT не требует много ресурсов и работает стабильно. Эту версию можно найти на сайте тольяттинского сервера Jabber.
PyICQt
PyICQt - новейшая разновидность. Написана на Python. Разработка активно продолжается и сейчас. Версия 0.8 умеет автоматически добавлять контакты из учетной записи ICQ в ростер, передавать аватары и статусные сообщения, а версия 0.8.1 - работать с X-статусами (Преобразовывая их в User Mood, User Activity и User Tune или через Ad-Hoc) и передавать сообщения в Unicode. Однако в отличие от JIT, требует много ресурсов и некоторой настройки.
Openfire ICQ plugin
Openfire ICQ plugin - редкая разновидность. В отличие от PyICQt и JIT она автоматически добавляет контакты, переименовывает их (даже если клиент не умеет это делать) и сортирует по группам.
Особенности и недостатки
Транспорты JIT и PyICQt используют не все возможноcти протокола ICQ, из-за чего, возниают неудобства для пользователей. К примеру, если у пользователя контакт-лист ICQ содержит больше 50 контактов, после регистрации на транспорте только для 50-ти будут получены ники (и остальная информация VCard). Дело в том, что сервер ограничивает число запросов на просмотр VCard в едининицу времени, после 50-ти запросов блокирует выдачу VCard на час, при дополнительных запросах блокирует её до суток. А если пользователь переименовывал контакты вручную (в клиенте ICQ), эти переименования и вовсе потеряются.
Транспорт Openfire наоборот, использует максимум возможнотей протокола и читает информацию о никах не из VCard, а из контакт-листа на сервере.