annotate mod_adhoc.wiki @ 424:3ed760b4fa14

I'll just go ahead and call mod_carbons Beta, but it's really actually pretty stable (Thanks Ben)
author Kim Alvefur <zash@zash.se>
date Wed, 12 Feb 2014 17:26:49 +0100
parents f7f2befb0f3e
children 528721aaea46
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
eabbd329830c Edited wiki page through web user interface.
t.ephraim
parents: 9
diff changeset
1 #summary XEP-0050: Ad-Hoc Commands
374
f7f2befb0f3e Labels are apparently comma-separated
Kim Alvefur <zash@zash.se>
parents: 373
diff changeset
2 #labels Stage-Beta, Deprecated
9
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
3
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
4 = Introduction =
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
5
156
15b9d9ce4ce3 Fix wiki formatting.
MWild1
parents: 155
diff changeset
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.
9
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
7
155
7aa92b889524 Expand introduction and note that this plugin is not needed for 0.8+
MWild1
parents: 133
diff changeset
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
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
9
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
10 = Details =
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
11
47
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
12 Will offer any adhoc command registered via 'module:add_item("adhoc", ....)'.
9
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
13
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
14
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
15
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
16 = Usage =
47
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
17
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
18 First copy (or symlink) the directory "adhoc" which contains mod_adhoc to your plugins directory.
9
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
19 Load mod_adhoc and then any module which provides an adhoc command, such as
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
20 mod_adhoc_cmd_ping.
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
21
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
22 If you want to build your own adhoc command, just register your adhoc command module with
108
039a141a9c03 Update to reflect module rework.
florob@babelmonkeys.de
parents: 47
diff changeset
23 module:add_item and a descriptor for your command.
9
8739493ced0d Created wiki page through web user interface.
t.ephraim
parents:
diff changeset
24
108
039a141a9c03 Update to reflect module rework.
florob@babelmonkeys.de
parents: 47
diff changeset
25 A descriptor can be created like this:
47
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
26 {{{
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
27 local adhoc_new = module:require "adhoc".new;
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
28 local descriptor = adhoc_new("Name", "node", handler);
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
29 module:add_item ("adhoc", descriptor)
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
30 }}}
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
31
127
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
32 A handler gets 2 parameters. A data table and a state.
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
33
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
34 The data table has 4 fields:
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
35 ||to||The to attribute of the stanza to be handled||
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
36 ||from||The from attribute of the stanza to be handled||
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
37 ||action||The action to be performed as specified in the stanza to be handled||
157
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
38 ||form||If the to be handled stanza contains a form this will contain the form element||
127
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
39
157
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
40 The handler should return two items. A data table and a state.
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
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.
127
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
42
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
43 The returned table can have the following fields:
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
44 ||*Name*||*Explanation*||*Required?*||
157
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
45 ||status||Status of the command (One of: "completed", "canceled", "error")||yes||
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
46 ||error||A table with the fields "type", "condition" and "message"||when status is "error"||
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
47 ||info||Informational text for display to the user||no||
127
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
48 ||warn||A warning for the user||no||
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
49 ||actions||The actions avaiable to the client||no||
157
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
50 ||form||A dataform to be filled out by the user||no||
84cd497e50ff Fix typos, some better wording
florob@babelmonkeys.de
parents: 156
diff changeset
51 ||result||A dataform of type result to be presented to the user||no||
127
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
52 ||other||Any other XML to be included in the response to the user||no||
040360195e00 More documentation
florob@babelmonkeys.de
parents: 108
diff changeset
53
47
5012ffd5d569 Edited wiki page through web user interface.
florob@babelmonkeys.de
parents: 33
diff changeset
54 For a simple module and details have a look at mod_adhoc_cmd_ping.
12
3ff19e27dacb Edited wiki page through web user interface.
t.ephraim
parents: 10
diff changeset
55
24
c09b888b8ceb Added compatibility section
MWild1
parents: 12
diff changeset
56 = Compatibility =
133
d7a9f3c69e49 Add that the plugin has been included for Prosody 0.8
MWild1
parents: 127
diff changeset
57 ||0.6||Most commands work||
d7a9f3c69e49 Add that the plugin has been included for Prosody 0.8
MWild1
parents: 127
diff changeset
58 ||0.7||Works||
373
c929df198f10 Mark pages of modules no longer in the repo as Deprecated
Kim Alvefur <zash@zash.se>
parents: 157
diff changeset
59 ||0.8||Included in Prosody||