0

我正在尝试使用 ejabberd_service (这是 Jabber 组件协议实现, http: //xmpp.org/extensions/xep-0114.html)将 ejabberd 与外部应用程序集成。

用例是由外部应用程序代表用户请求订阅并将项目添加到用户的名册中。我同时管理 ejabberd 集群和外部应用程序,因此我假设它们都相互信任。

问题是即使正确发送和接收节,用户名册中也看不到任何更改。即使我将 ejabberd_service 的 service_check_from 选项设置为 false 并将 ejabberd_service 作为管理器添加到 mod_roster 配置也是如此。

我也没有在 ejabberd 日志中看到任何错误/警告。

我想知道根据 XMPP 协议是否可以通过外部受信任的应用程序代表用户修改用户名册,如果可以,如何在 ejabberd 中进行配置?

4

2 回答 2

0

从版本 14.x 开始,ejabberd 中包含远程名册管理支持

于 2015-06-12T17:31:47.187 回答
0

Jabber 组件协议 (XEP-0114) 明确声明它不能代表用户行事。它只能发送带有来自它自己子域的数据包。

XEP-0356 特权实体将来可能会通过在附加的 XMPP 服务器内提供具有更多功能的可信组件模型来改变这一点。然而,它还没有在 ejabberd 中实现。

我认为您目前最好的选择是编写自定义 ejabberd 插件或实现 XEP-0356。

于 2015-06-19T07:36:11.327 回答