mcabber - консольный jabber клиент

04 June 2009 #jabber #mcabber

Согласно wiki.mcabber.com:

mcabber -- это текстовый Jabber-клиенкт включающий в себя такие функции как: поддержка SSL, история переписки (конференции), автодополнение команд и возможность создания собственных команд (триггеров).

Он меня заинтересовал после того, как в конференции arch@conference.jabber.ru у многих из присутствующих в качестве клиента оказался именно mcabber.

Установил:

$ yaourt -S mcabber

В репозитории archlinux находиться актуальная версия 0.9.9-1, пакет весит всего 244,35Kb. Дополнительно при установке у меня был загружен пакет libotr, а в зависимостях mcabber прописаны ncurses, glib2, openssl, gpgme, libotr, aspell…

После установки необходимо в домашней директории создать папку ~/.mcabber и скопировать в нее файл /usr/share/mcabber/example/mcabberrc. Для папки ~/.mcabber задаем права доступа 0700.

$ mkdir ~/.mcabber
$ chmod 0700 ~/.mcabber
$ cp /usr/share/mcabber/example/mcabberrc<tt> ~/.mcabber/mcabberrc</tt>

И затем начинаем его редактировать любимым редактором (файл по умолчанию очень хорошо документирован, проблем в настройке возникнуть не должно). !! mcabber не умеет регистрировать пользователя на сервере, поэтому данную операцию нужно провести заранее с помощью другого клиента.

Необходимый минимум, который нужно прописать (а точнее изменить в файле mcabberrc), это:

set username = ваш jid
set password = ваш пароль (если не указать, будет запрошен при connect)
set server = ваш сервер
set lang = ru

Последняя строка необходима для того, чтобы mcabber был локализован для русского языка (не обязательный параметр).

Для использования SSL прописываем следующее (только в том случае, если сервер поддерживает SSL):

set ssl = 1
set ssl_verify = 0

Сертификаты с сервера будут подгружены автоматически.

После запуска mcabber выглядит примерно вот так, если не менялась цветовая схема:

Слева – ростер (он же лист контактов) Правее – окно чата. Прямо под ним – output статуса (системные сообщения). И в самом низу – input. Сюда мы вводим команды и сообщения.

Перемещение по ростеру происходит с помощью кнопок Page up/down соответственно. Enter – переход в состояние чата для текущего jid или конференции. Стрелки up/down работают как в терминале (Bash history) Ctrl+q – следующее непрочитанное сообщение.

Необходимый минимум команд:

/room join "arch@conference.jabber.ru"
подключение к конференции

/help
расскажет какие команды есть в mcabber, причем эта информация всегда более свежая, чем в manpage.

/add "name@jabber.ru"
добавляет "jid" в список контактов

Небольшой FAQ по программе (взято со страницы wiki.mcabber.com):

  1. MCabber не хочет соединяться с сервером. Выдает ошибку: jab_start: SSL negotiation failed: self signed certificate. Используйте опцию 'ssl_verify = 0' в файле конфигурации и выставьте правильные опции сертификата.
  2. Как я могу подключиться к моему аккаунту на Google Talk? Должно работать со следующими опциями:
    set username = your.email@gmail.com
    set server = talk.google.com
    set ssl = 1
    set ssl_verify = 0
  3. Я хочу назначить определенную клавишу на выполнение команды, как мне узнать ее код? Если код клавиши доступен, то он будет показан в окне истории, когда Вы нажмете нужную клавишу.
  4. Как мне создать группу пользователей? Используйте команды /move, если указанной группы нет -- она будет создана автоматически.
  5. Как мне сделать прозрачный фон? Установите color_background = default.
  6. Могу ли я использовать PGP-шифрование? Смотрите страницу OpenPGP.
  7. Как отключить идентифицирующую меня информацию в mcabber (показ названия и версии клиента, версии ОС и имени ресурса)? Чтобы убрать показ поля "Name" при запросе версии клиента нужно перекомпилировать исходник, предварительно закомментировав в файле jab_iq.c строки под нимером 1510 и 1511 (для версии 0.9.6):
    //xmlnode_insert_cdata(xmlnode_insert_tag(myquery, "name"), PACKAGE_NAME, -1);
    //xmlnode_insert_cdata(xmlnode_insert_tag(myquery, "version"), ver, -1);
    Затем, требуется прописать в конфигурационном файле:
    set iq_version_hide_os = 1
    set resource = myresource
    Следует заметить, что значение опции resource нельзя оставить пустым: в противном случае она будет равна "mcabber".