Implement AGI XML documentation parsing functions.

A new <agi> element is used to describe the XML documentation.
We have the usual synopsis,syntax,description and seealso for AGI commands.
The CLI 'agi show commands' command was changed to show all the documentation se
ctions.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Eliel C. Sardanons
2008-11-12 00:17:43 +00:00
parent f50966c16a
commit 6f31fed83f
4 changed files with 389 additions and 61 deletions

View File

@@ -38,20 +38,25 @@ typedef struct agi_state {
} AGI;
typedef struct agi_command {
/* Null terminated list of the words of the command */
char *cmda[AST_MAX_CMD_LEN];
/* Handler for the command (channel, AGI state, # of arguments, argument list).
char *cmda[AST_MAX_CMD_LEN]; /*!< Null terminated list of the words of the command */
/*! Handler for the command (channel, AGI state, # of arguments, argument list).
Returns RESULT_SHOWUSAGE for improper arguments */
int (*handler)(struct ast_channel *chan, AGI *agi, int argc, char *argv[]);
/* Summary of the command (< 60 characters) */
/*! Summary of the command (< 60 characters) */
char *summary;
/* Detailed usage information */
/*! Detailed usage information */
char *usage;
/* Does this application run dead */
/*! Does this application run dead */
int dead;
/* Pointer to module that registered the agi command */
/*! AGI command syntax description */
char *syntax;
/*! See also content */
char *seealso;
/*! Where the documentation come from. */
enum ast_doc_src docsrc;
/*! Pointer to module that registered the agi command */
struct ast_module *mod;
/* Linked list pointer */
/*! Linked list pointer */
AST_LIST_ENTRY(agi_command) list;
} agi_command;