mod_adhoc/README.wiki
changeset 1786 29f3d6b7ad16
equal deleted inserted replaced
1785:12ac88940fe3 1786:29f3d6b7ad16
       
     1 #summary XEP-0050: Ad-Hoc Commands
       
     2 #labels Stage-Beta, Deprecated
       
     3 
       
     4 = Introduction =
       
     5 
       
     6 implementation of [http://xmpp.org/extensions/xep-0050.html XEP-0050: Ad-Hoc Commands], which allows clients to execute commands on the Prosody server. This plugin adds no commands itself, see the other `mod_adhoc_*` plugins for those.
       
     7 
       
     8 This module along with the other adhoc modules in prosody-modules are included in Prosody as of 0.8, making this plugin unnecessary for users of this version and later.
       
     9 
       
    10 = Details =
       
    11 
       
    12 Will offer any adhoc command registered via 'module:add_item("adhoc", ....)'.
       
    13 
       
    14 
       
    15 
       
    16 = Usage =
       
    17 
       
    18 First copy (or symlink) the directory "adhoc" which contains mod_adhoc to your plugins directory.
       
    19 Load mod_adhoc and then any module which provides an adhoc command, such as
       
    20 mod_adhoc_cmd_ping.
       
    21 
       
    22 If you want to build your own adhoc command, just register your adhoc command module with
       
    23 module:add_item and a descriptor for your command.
       
    24 
       
    25 A descriptor can be created like this:
       
    26 {{{
       
    27 local adhoc_new = module:require "adhoc".new;
       
    28 local descriptor = adhoc_new("Name", "node", handler);
       
    29 module:add_item ("adhoc", descriptor)
       
    30 }}}
       
    31 
       
    32 A handler gets 2 parameters. A data table and a state.
       
    33 
       
    34 The data table has 4 fields:
       
    35 ||to||The to attribute of the stanza to be handled||
       
    36 ||from||The from attribute of the stanza to be handled||
       
    37 ||action||The action to be performed as specified in the stanza to be handled||
       
    38 ||form||If the to be handled stanza contains a form this will contain the form element||
       
    39 
       
    40 The handler should return two items. A data table and a state.
       
    41 The state will be saved and passed to the handler on invocation for any adhoc stanza with the same sessionid. If a session has ended the state returned should be nil.
       
    42 
       
    43 The returned table can have the following fields:
       
    44 ||*Name*||*Explanation*||*Required?*||
       
    45 ||status||Status of the command (One of: "completed", "canceled", "error")||yes||
       
    46 ||error||A table with the fields "type", "condition" and "message"||when status is "error"||
       
    47 ||info||Informational text for display to the user||no||
       
    48 ||warn||A warning for the user||no||
       
    49 ||actions||The actions avaiable to the client||no||
       
    50 ||form||A dataform to be filled out by the user||no||
       
    51 ||result||A dataform of type result to be presented to the user||no||
       
    52 ||other||Any other XML to be included in the response to the user||no||
       
    53 
       
    54 For a simple module and details have a look at mod_adhoc_cmd_ping.
       
    55 
       
    56 = Compatibility =
       
    57 ||0.6||Most commands work||
       
    58 ||0.7||Works||
       
    59 ||0.8||Included in Prosody||