view mod_adhoc.wiki @ 143:e38bd149d0c7

Created wiki page through web user interface.
author gauravsri@gmail.com
date Fri, 16 Jul 2010 07:56:29 +0000
parents d7a9f3c69e49
children 7aa92b889524
line wrap: on
line source

#summary XEP-0050: Ad-Hoc Commands
#labels Stage-Beta

= Introduction =

implementation of [http://xmpp.org/extensions/xep-0050.html XEP-0050: Ad-Hoc Commands].



= Details =

Will offer any adhoc command registered via 'module:add_item("adhoc", ....)'.



= Usage =

First copy (or symlink) the directory "adhoc" which contains mod_adhoc to your plugins directory.
Load mod_adhoc and then any module which provides an adhoc command, such as 
mod_adhoc_cmd_ping.

If you want to build your own adhoc command, just register your adhoc command module with 
module:add_item and a descriptor for your command.

A descriptor can be created like this:
{{{
local adhoc_new = module:require "adhoc".new;
local descriptor = adhoc_new("Name", "node", handler);
module:add_item ("adhoc", descriptor)
}}}

A handler gets 2 parameters. A data table and a state.

The data table has 4 fields:
||to||The to attribute of the stanza to be handled||
||from||The from attribute of the stanza to be handled||
||action||The action to be performed as specified in the stanza to be handled||
||form||If the to be handled stanza contains a form this will contains the form element||

The handler should return to items. A data table and a state.
The state will be saved and passed to the handler on any adhoc stanza with the same sessionid.

The returned table can have the following fields:
||*Name*||*Explanation*||*Required?*||
||status||Status of the command (One of: completed, canceled, error)||yes||
||error||A table with the fields "type", "condition" and "message"||if status is "error"||
||info||Informational info for the user||no||
||warn||A warning for the user||no||
||actions||The actions avaiable to the client||no||
||form||A form to be filled out by the user||no||
||result||A form of type result to be presented to the user||no||
||other||Any other XML to be included in the response to the user||no||

For a simple module and details have a look at mod_adhoc_cmd_ping.

= Compatibility =
||0.6||Most commands work||
||0.7||Works||
||0.8||Included in Prosody||