BitlBee – гейт из IRC в Jabber, ICQ, AOL, MSN, etc.

BitlBee – демон, который выполняет роль гейта из IRC в другие популярные IM протоколы. Установил у себя локально, в качестве гейта в Jabber. В качестве IRC-клиента использовал мною любимый консольный WeeChat. Вполне удобно.
Работает сия штука следующим образом: из любимого IRC-клиента подключаемся к BitlBee (в моем случае это localhost на стандартном для IRC порте). Бот по имени root проведет с вами краткий инструктаж, которого будет более чем достаточно для начала работы.
Кол-во аккаунтов не ограничено, общаться можно прямо на канале, предваряя текст сообщения именем контакта, которому отправляете сообщение (это сообщение увидит только он). Или можно открыть отдельное окно для этого контакта, BitlBee запомнит это и будет адресовать соответствующие сообщения в нужное окно. Для каждого контакта (окна) можно указать свою собственную кодировку.
Одним словом, любителям IRC будет привычно и удобно.

JID полезных Jabber-ботов

Список Jabber-ботов хоть и маленький, но полезный. Опробовал только трех переводчиков – er@translate.jrudevels.org, re@translate.jrudevels.org, ru-en@darkmachine.org – работают шустро. Два первых являются полноценными переводчиками, последний является русско-английским / англо-русским словарем.
Вот пример перевода – “простейший тест на знание английского языка” – “The elementary test for knowledge of English language”.

Jabber2 и MU-Conference

Для установки MU-Conference на Jabber2 пришлось немножко повозиться.
Итак, качаем версию MU-Conference не ниже 0.7.
В качестве мануала по компиляции и настройке использовал статью Multi User Conferencing (MU-Conference) for Jabberd2.

Создаем директорию для “комнат” – mkdir -p /var/spool/jabber/rooms/.
Соответствующим образом исправляем дефольтный конфиг. У меня он получился таким (показан не весь конфиг, а только изменения):

  <name>muclinker</name>
  <host>rooms.domain.tld</host>
  <ip>domain.tld</ip>
  <port>5347</port>
  <secret>secret_password</secret> <!-- пароль, прописанный в /etc/jabber/router.xml -->

  <spool>/var/spool/jabber/rooms</spool>
  <logdir>/var/log/jabber</logdir>
  <pidfile>/var/run/jabber/mu-conference.pid</pidfile>

      <sadmin>
        <user>admin@domain.tld</user> <!-- задаем список админов (по одному на строчку) -->
      </sadmin>

  <roomlock/> <!-- запрещаем создание комнаты всем, кроме админа -->

В файле /etc/jabber/router.xml прописываем следующую строчку (внутри ):

<alias name='rooms.domain.tld' target='muclinker'/>

Остальное как написано в мануале.

JWChat – Jabber Web Chat

Иногда бывает нужно получить доступ к Jabber сети без установки локального клиента. С этой задачей вполне справляется JWChat. Это веб-клиент, построенный с использованием AJAX. С его помощью можно обмениваться сообщениями, управлять списком контактов, а так же учавствовать в групповом чате.

PSI и reboot

После того, как я окончательно перешел на Jabber, заметил, что Restart Computer из KDE перестал выполняться. Каковы смптомы:

  • Жму Log Out,
  • в появившемся диалоге выбираю Restart Computer,
  • закрывается чат-окно PSI (Jabber-клиент),
  • …и на этом все.
  • Повторяю первые два шага еще раз,
  • …и снова ничего не происходит.
  • Пытаюсь сделать Log Out еще раз – никакого диалога со списком действий.

Для решения проблемы достаточно выгрузить PSI, и Restart Computer будет выполняться как и раньше. Что это за баг я так и не понял.

Свой Jabber

Решился поставить свой собственный Jabber-сервер. Оказалось, что это достаточно просто.
В качестве Jabber-сервера был выбран Jabberd второй версии.
В качестве ICQ-транспорта был выбран JIT.
Статья Jabberd2 Server Setup содержит несколько малозначительных ошибок, которые не мешают процессу настройки сервера.

Всю настройку выполнял согласно статьям:

На данный момент есть нерешенные проблемы:

  1. Запрет регистрации нового пользователя – хочу сам решать, кому регистрироваться. Решение нашлось на сайте сервера. И инструкция по добавлению пользователя.
  2. Не смог настроить Client-Server SSL – в логе получаю ошибку “failed to load local SSL pemfile, SSL will not be available to clients”. Ну вот, разобрался с SSL. Сертификат сгенерил как описано в инструкции Generating a Self-Signed SSL Certificate. В конфигах /etc/jabber/c2s.xml и /etc/jabber/s2s.xml прописал путь к файлу server.pem и сказал слушать порт 5223.
  3. Не нашел, как можно заставить сервер сохранять в vCard аватару пользователя.

UPD: Понадобилось мне добавить поддержку еще одного домена, пошел читать родной мануал. Из него понял, что поддержку дополнительного домена сделать можно, но как не сказано. Погуглив, нашел пошаговую инструкцию – Setting up extra realms (domains). Все просто, теперь у меня поддерживается два домена.

UPD2: После перехода на версию 2.1.6 добавил несколько полей в базу jabber2 в таблице vcard – теперь аватара сохраняется. Имена полей и типы взял из архива с сорцами jabberd2, из файла mysql.sql.

Jabber.ru и гейты в другие IM

Неутешительная новость проскочила на сайте jabber.ru. Я уже сменил гейт, но долго ли продержится этот гейт мне не известно. Скорее всего пойду другим путем – поставлю свой собственный jabber-сервер, там же заведу и гейт.

1 июля 2007 на сервере Jabber.Ru планируется отключение следующих сервисов:

  1. icq.jabber.ru
  2. aim.jabber.ru
  3. msn.jabber.ru
  4. yahoo.jabber.ru

В последнее время на Jabber.Ru возросло число пользователей онлайн. По итогам на сегодня, у Jabber.Ru нет технической возможности и позитивной мотивации для поддержки этих сервисов на достойном уровне.

Поддержка mrim.jabber.ru сохраняется.

Постоянно обновляющийся список публичных ICQ-транспортов здесь: bombus-im.org/wiki/howto/howto_icq
Jabber.Ru не несет ответственность за их работу.
Если у вас есть свой транспорт, вы можете добавить его в этот список (или оставить сообщение в комментариях).

Jabber и gmail.com

Решился я отказаться от ICQ и перейти на Jabber. В качестве аккаунта я выбрал свой GMail аккаунт. Все меня устраивало кроме отсутствия гейта Jabber <-> ICQ. Но недавно столкнулся с проблемой заполнения профиля – сохраняется только аватар и полное имя, все остальное чудесным образом теряется. Судя по логам, клиент отправляет все необходимые данные на сервер, тот подтверждает их прием. Но когда делаешь запрос на сервер, то сервер возвращает только картинку и полное имя.
Создал аккаунт на jabber.ru – все данные данные сохраняются на сервере, никаких проблем нет. Есть свой гейт Jabber <-> ICQ, который даже как то работает.
В качестве клиента использую PSI (до этого использовал Kopete). PSI хоть и сильно хвалили, но и он далек от идеала.