Настройка серверной истории в ejabberd2
Не так давно стал юзать на Андоиде jabber-клиент с поддержкой XEP-0136: Message Archiving (aka история на сервере). В ejabberd2 данный XEP реализуется при помощи модуля mod_archive. Казалось бы, подключить и радоваться, но, как обычно, всё не так просто [как могло бы быть]. Проблема в том, что последняя на текущий момент версия модуля реализует лишь 0.6 версию XEP'а, тогда как сам он имеет уже версию 1.2 (от 2010.06.21). И современные клиенты использовать функцию сохранения истории не могут, даже если модуль на сервере присутствует. Для того чтобы обеспечить совместимость надо отредактировать исходник модуля, чему и будет посвящен этот пост. О том, как получить исходники mod_archive, собрать и установить модуль, я здесь писать не буду, т.к. процесс ничем не отличается для всех модулей, так что читайте предыдущий пост про mod_webpresence.
Правка исходника
В новой версии XEP-0136 изменился namespace архива сhttp://xmpp.org/extensions/xep-0136.html#ns
на urn:xmpp:archive
, поэтому необходимо изменить соответствующие строки в mod_archive.erl так: -define(NS_ARCHIVE, "urn:xmpp:archive"). -define(NS_ARCHIVE_MANAGE, "urn:xmpp:archive:manage"). -define(NS_ARCHIVE_PREF, "urn:xmpp:archive:pref"). -define(NS_ARCHIVE_MANUAL, "urn:xmpp:archive:manual").
Файл ODBC-версии модуля mod_archive_odbc.erl редактируется аналогично. Некоторые клиенты могут поддерживать и оба варианта, а какие-то только старый, соответственно в них может перестать работать данная функция.
Конфиг
{listen, %% ТОЛЬКО для mod_archive_webview, подробнее ниже!!! [ ... {5280, ejabberd_http, [ {request_handlers, [ ... {["archive"], mod_archive_webview} ]} ]} ]}. {modules, [ ... {mod_archive, [{save_default, true}]}, {mod_archive_webview, []} ]}.
mod_archive_webview
Дополнительный модуль для просмотра истории через браузер по адресу http://server.com:5280/archive/. Сам новый раздел в админке открывается, но дальше генерирует пустые страницы. Возможно это только у меня. Так что добавлять этот модуль или нет — решать вам.Клиенты
Пока что мне известно лишь 2 jabber-клиента с поддержкой серверной истории: Если знаете ещё, просьба написать в комментах!Вот таким нехитрым образом можно иметь в смартфоне историю переписки с десктопа, даже если вы только что установили клиент первый раз, или, если десктопный клиент это всё не умеет, хотя бы историю отправленную/полученную смартом ранее.
Комментарии
Отправить комментарий