XMPP:离线消息不是由对话接收的,而是由ejabberd的Gajim接收的 基本情景

XMPP:离线消息不是由对话接收的,而是由ejabberd的Gajim接收的 基本情景,xmpp,ejabberd,offline,Xmpp,Ejabberd,Offline,Bob离线时,Alice使用Conversations 1.23.8作为客户端向他发送消息。服务器正在debian上运行ejabberd 18.01 Bob被认为是离线的,当 ejabberdctl connected_users 没有列出他的名字 该消息随后由ejabberd存储在离线消息存储器中。这是由以下人员检查的: ejabberdctl get_offline_count bob example.com 在/etc/ejabberd/ejabberd.ymlmod_offline中

Bob离线时,Alice使用Conversations 1.23.8作为客户端向他发送消息。服务器正在debian上运行ejabberd 18.01

Bob被认为是离线的,当

ejabberdctl connected_users
没有列出他的名字

该消息随后由ejabberd存储在离线消息存储器中。这是由以下人员检查的:

ejabberdctl get_offline_count bob example.com
/etc/ejabberd/ejabberd.yml
mod_offline中配置:

access:
  max_user_offline_messages:
    admin: 5000
    all: 100
...
modules:
  mod_offline:
    access_max_user_messages: max_user_offline_messages
...
案例A: Bob使用gajim 1.0.0连接到服务器。他接收离线消息并

ejabberdctl get_offline_count bob example.com
返回0(在连接之前大于0),日志(
/var/log/ejabberd/ejabberd.log
)显示:

无论如何返回0(在他连接之前它是>0),并且日志(
/var/log/ejabberd/ejabberd.log
)没有类似于案例A的条目

问题:
我已经为此工作了几天了。我研究了服务器的配置和客户端的配置。根据我的经验,我会说这是对话客户的问题,但我现在不知道该去哪里找。我应该在ejabberd.log中查找什么日志消息?

对话1.23.8似乎不支持脱机消息(XEP-0160),但它支持消息存档管理(MAM-XEP-0313)

现在,我的解决方案是将脱机消息重定向到MAM,客户端在连接到服务器时与其MAM同步。提示:默认情况下,在ejabberd 18.01中禁用MAM

我的MAM配置是:

mod_mam:
  iqdisc: one_queue
  default: always
  assume_mam_usage: true
我没有更改我的mod_脱机配置

提示:执行此操作时,还需要mod_ping和mod_stream_mgmt来检测丢失的连接并终止会话,以便mod_offline捕获脱机消息并重新发送到mam

ejabberdctl get_offline_count bob example.com
mod_mam:
  iqdisc: one_queue
  default: always
  assume_mam_usage: true