I'm trying to use ejabberd_service (which is Jabber Component Protocol implementation, http://xmpp.org/extensions/xep-0114.html) to integrate ejabberd with an external application.
The use case is to ask for subscription and add an item to the user's roster by the external application on behalf of the user. I manage both ejabberd cluster and the external application, so I assume they both trust each other.
The problem is that even if stanzas are sent and received properly, no changes are visible in user's roster. This is true even if I set service_check_from option of ejabberd_service to false and add ejabberd_service as manager to mod_roster configuration.
I also don't see any error/warning in ejabberd logs.
I wonder if it is possible, according to XMPP protocol, to modify user's roster by external trusted application on behalf of the user and if yes, how to configure it in ejabberd?