XMPP ejabberd et ajoutez l'utilisateur commande
Question
J'ai deux serveurs ejabberd, une ligne locale une lointaine sur foobar.com.
Utilisation de la console pidgin XMPP je peux envoyer strophes iq pour les tests:
Serveur local nom d'hôte est CPEe
<iq to='eeepc' from='greg@eeepc' id='get-registred-users-num-1' type='set'>
<command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
</iq>
<iq from='eeepc' to='greg@eeepc/3493331071251540036345753' id='get-registred-users-num-1' type='result'>
<command xmlns='http://jabber.org/protocol/commands' sessionid='2009-08-29T14:01:55.714639Z' node='http://jabber.org/protocol/admin#get-registered-users-num' status='completed'>
<x xmlns='jabber:x:data'>
<field type='hidden' var='FORM_TYPE'>
<value>http://jabber.org/protocol/admin</value>
</field>
<field type='text-single' label='Number of registered users' var='registeredusersnum'>
<value>7</value>
</field>
</x>
</command>
</iq>
serveur distant
<iq to='foobar.com' from='greg@foobar.com' id='get-registred-users-num-1' type='set'>
<command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
</iq>
<iq from='foobar.com' to='greg@foobar.com/36523779951251567671615394' id='get-registred-users-num-1' type='error'>
<command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
<error code='404' type='cancel'>
<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Je ne comprends pas pourquoi je reçois, je ne pouvais pas voir toutes les options particulières pour dire au serveur d'accepter des commandes de distance?
La solution
Peut-être mod_configure
est tout simplement pas chargé sur le serveur distant.
Vous pouvez vérifier par lists:member(mod_configure, gen_mod:loaded_modules("foobar.com")).
dans une coquille d'administration ejabberd.
Je ne peux pas imaginer que ce soit d'être un utilisateur distant, car aucune connexion S2S est nécessaire entre foobar.com et greg@foobar.com.
Autres conseils
Recherche la source mod_configure.erl Code il semble y avoir un contrôle d'ACL pour vous assurer que les commandes adhoc de configuration ne sont autorisées que lorsque le demandeur est sur un compte d'utilisateur a configurer PRIV sur cet hôte virtuel. Par défaut, je pense qu'ils ne le font pas.
acl:match_rule(LServer, configure, From)
Vous devrez peut-être ajouter quelque chose comme ...
{access, configure, [{allow, greg@foobar.com}]}.
... à votre fichier ejabberd.cfg.