0

ejabberd_service (Jabber Component Protocol の実装、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

Jabber コンポーネント プロトコル (XEP-0114) は、ユーザーに代わって動作できないことを明確に示しています。独自のサブドメインの送信元を持つパケットのみを送信できます。

XEP-0356 特権エンティティは、接続された XMPP サーバー内でより多くの機能を備えた信頼できるコンポーネントのモデルを提供することで、将来これを変更する可能性があります。ただし、ejabberd にはまだ実装されていません。

現時点での最善の選択肢は、カスタムの ejabberd プラグインを作成するか、XEP-0356 を実装することだと思います。

于 2015-06-19T07:36:11.327 に答える
0

リモート名簿管理のサポートは、バージョン 14.x 以降の ejabberd に含まれています。

于 2015-06-12T17:31:47.187 に答える