Mastodon

Shumaher’s_Blog@AlexZ.me

— yet another stupid personal weblog

Настройка серверной истории в ejabberd2

ejabberd
Не так давно стал юзать на Андроиде 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 так:

40
41
42
43
44
45
46
47
-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/SQL-версий модуля mod_archive_odbc.erl и mod_archive_sql.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-клиента с поддержкой серверной истории:

  • EMess (4PDA) — для Android (ради чего всё это и делалось)
  • Vacuum-IM

Если знаете ещё, просьба написать в комментах!



Вот таким нехитрым образом можно получить в смартфоне историю переписки с десктопа, даже если вы только что установили клиент первый раз, или, если десктопный клиент это всё не умеет, хотя бы историю отправленную/полученную смартом ранее.

VN:F [1.9.17_1161]
Rating: 0.0/5 (0 votes cast)
Оставьте свой комментарий




OpenID WordPress.com Yahoo

Это не спам.