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 でそれを構成する方法を教えてください。