Add description to manager_action structure, and add some comments.

Add ast_manager_register2 which adds description as an additional arg
Rework how events are added so they get ordered alphabetically
Add 'show manager command <commandname>' (with tab completion) to
	view info on each command

Added descriptions to 'Ping' and 'Originate' but they kinda suck, so we
need other people to come up with good descriptions for each of the
manager commands.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
James Golovich
2004-06-02 20:08:08 +00:00
parent 37ae3cd701
commit ea70485e7b
2 changed files with 126 additions and 21 deletions

View File

@@ -49,7 +49,7 @@
#define EVENT_FLAG_AGENT (1 << 5) /* Ability to read/set agent info */
#define EVENT_FLAG_USER (1 << 6) /* Ability to read/set user info */
/* JDG: export manager structures */
/* Export manager structures */
#define MAX_HEADERS 80
#define MAX_LEN 256
@@ -77,20 +77,27 @@ struct message {
};
struct manager_action {
char action[256];
/*! Name of the action */
char *action;
/*! Short description of the action */
char *synopsis;
/*! Detailed description of the action */
char *description;
/*! Permission required for action. EVENT_FLAG_* */
int authority;
/*! Function to be called */
int (*func)(struct mansession *s, struct message *m);
/*! For easy linking */
struct manager_action *next;
};
int ast_carefulwrite(int fd, char *s, int len, int timeoutms);
/* External routines may register/unregister manager callbacks this way */
int ast_manager_register( char *action, int authority,
int (*func)(struct mansession *s, struct message *m), char *synopsis);
#define ast_manager_register(a, b, c, d) ast_manager_register2(a, b, c, d, NULL)
int ast_manager_register2( char *action, int authority,
int (*func)(struct mansession *s, struct message *m), char *synopsis, char *description);
int ast_manager_unregister( char *action );
/* /JDG */
/* External routines may send asterisk manager events this way */
extern int manager_event(int category, char *event, char *contents, ...)