Я только что установил ejabberd из исходников (18.04) с поддержкой MySQL и соответственно изменил файл конфигурации.В основном все работает: ejabberd запускается, я могу регистрировать пользователей, пользователи могут подключаться и отправлять сообщения.Я также вижу всех пользователей в базе данных, поэтому я предполагаю, что настройки пока верны.
Теперь я хочу использовать мод mod_mam
для архивирования всех сообщений.Для этого я добавил в файл ejabberd.yaml
следующие строки:
modules:
...
mod_mam:
db_type: sql
default: always
...
Однако, когда я отправлял автономное сообщение, я получаю следующую ошибку - фактически две одинаковые ошибки для двух функций, использующих обе автономные функцииПерехват сообщений:
[error] <0.541.0>@ejabberd_hooks:safe_apply:383 Hook offline_message_hook crashed when running mod_mam:offline_message/1:
** Reason = {error,function_clause,[{mod_mam,offline_message,[{file,"src/mod_mam.erl"},{line,366}],[ok]},{ejabberd_hooks,safe_apply,[{file,"src/ejabberd_hooks.erl"},{line,380}],4},{ejabberd_hooks,run_fold1,[{file,"src/ejabberd_hooks.erl"},{line,364}],4},{ejabberd_sm,route,[{file,"src/ejabberd_sm.erl"},{line,143}],1},{ejabberd_local,route,[{file,"src/ejabberd_local.erl"},{line,73}],1},{ejabberd_router,do_route,[{file,"src/ejabberd_router.erl"},{line,368}],1},{ejabberd_router,route,[{file,"src/ejabberd_router.erl"},{line,93}],1},{ejabberd_c2s,check_privacy_then_route,[{file,"src/ejabberd_c2s.erl"},{line,823}],2}]}
При более старой установке (17.01) все работало нормально.Но я не знаю, требуются ли дополнительные таблицы MySQL.Когда я просматриваю свою текущую базу данных, я фактически все сообщения (включая автономные сообщения) сохраняются в таблице archive
.