由于本地主机不提供MUC(XEP-45)服务,因此无法执行操作

问题描述:

我试图对Smack插件使用多用户呼叫,但收到以下错误。由于本地主机不提供MUC(XEP-45)服务,因此无法执行操作

Can't perform operation because localhost does not provide a MUC (XEP-45) service. 

它似乎来自没有在ejabberd中启用mod_muc,但我不知道如何激活它。我以为我在我的ejabberd.yml中这样做。

这里是我的ejabberd.yml mod_muc部分:

mod_muc: 
    ## host: "[email protected]@" 
    access: muc 
    access_create: muc 
    access_admin: muc_admin 
    history_size: 5 
    max_users: 4 
    default room options: 
     allow_change_subj: true 
     allow_private_messages: false 
     allow_user_invites: true 
     members_by_default: true 
     public: true 
     public_list: true 
     persistent: false 

是任何人都得到XEP-45不提供的错误?我该如何解决它?

+0

确保您在'ejabberd'配置中具有'mod_muc' enabeld。 – Dunedan

+0

我应该设置什么参数? – Yambotron

+0

我不确定在哪里启用它。 – Yambotron

您正尝试将MUC查询发送至localhost JID,而您应发送至MUC服务的JID。取消host: "[email protected]@"并将conference.localhost用作所有MUC请求的JID

+0

感谢您的回复。我很感激。我应该把报价放在conference.localhost或不是? – Yambotron

+0

将报价放在“conference。@ HOST @”中,并将您的请求发送到“conference。@ HOST @”。意思是,如果您的主机是example.com,则将其发送到conference.example.com – Darshan