Skip to content
Snippets Groups Projects
Commit 1ed8dd39 authored by Mark Spencer's avatar Mark Spencer
Browse files

Add manager doxygen docs (bug #3691)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5117 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent dc297cd0
Branches
Tags
No related merge requests found
...@@ -25,18 +25,22 @@ ...@@ -25,18 +25,22 @@
#include <asterisk/lock.h> #include <asterisk/lock.h>
/* /*!
* Call management packages are text fields of the form a: b. There is \file manager.h
* always exactly one space after the colon. \brief The AMI - Asterisk Manager Interface - is a TCP protocol created to
* manage Asterisk with third-party software.
* The first header type is the "Event" header. Other headers vary from
* event to event. Headers end with standard \r\n termination. Manager protocol packages are text fields of the form a: b. There is
* always exactly one space after the colon.
* Some standard headers:
* The first header type is the "Event" header. Other headers vary from
* Action: <action> -- request or notification of a particular action event to event. Headers end with standard \r\n termination.
* Response: <response> -- response code, like "200 OK"
* Some standard headers:
Action: <action> -- request or notification of a particular action
Response: <response> -- response code, like "200 OK"
*/ */
#define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */ #define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */
...@@ -54,16 +58,26 @@ ...@@ -54,16 +58,26 @@
#define MAX_LEN 256 #define MAX_LEN 256
struct mansession { struct mansession {
/*! Execution thread */
pthread_t t; pthread_t t;
/*! Thread lock */
ast_mutex_t lock; ast_mutex_t lock;
/*! socket address */
struct sockaddr_in sin; struct sockaddr_in sin;
/*! TCP socket */
int fd; int fd;
int blocking; int blocking;
/*! Logged in username */
char username[80]; char username[80];
/*! Authentication challenge */
char challenge[10]; char challenge[10];
/*! Authentication status */
int authenticated; int authenticated;
/*! Authorization for reading */
int readperm; int readperm;
/*! Authorization for writing */
int writeperm; int writeperm;
/*! Buffer */
char inbuf[MAX_LEN]; char inbuf[MAX_LEN];
int inlen; int inlen;
int send_events; int send_events;
...@@ -95,20 +109,45 @@ int ast_carefulwrite(int fd, char *s, int len, int timeoutms); ...@@ -95,20 +109,45 @@ int ast_carefulwrite(int fd, char *s, int len, int timeoutms);
/* External routines may register/unregister manager callbacks this way */ /* External routines may register/unregister manager callbacks this way */
#define ast_manager_register(a, b, c, d) ast_manager_register2(a, b, c, d, NULL) #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); /* Use ast_manager_register2 to register with help text for new manager commands */
/*! Register a manager command with the manager interface */
/*! \param action Name of the requested Action:
\param authority Required authority for this command
\param func Function to call for this command
\param synopsis Help text (one line, up to 30 chars) for CLI manager show commands
\param description Help text, several lines
*/
int ast_manager_register2(
char *action,
int authority,
int (*func)(struct mansession *s, struct message *m),
char *synopsis,
char *description);
/*! Unregister a registred manager command */
/*! \param action Name of registred Action:
*/
int ast_manager_unregister( char *action ); int ast_manager_unregister( char *action );
/* External routines may send asterisk manager events this way */ /*! External routines may send asterisk manager events this way */
/*! \param category Event category, matches manager authorization
\param event Event name
\param contents Contents of event
*/
extern int manager_event(int category, char *event, char *contents, ...) extern int manager_event(int category, char *event, char *contents, ...)
__attribute__ ((format (printf, 3,4))); __attribute__ ((format (printf, 3,4)));
/*! Get header from mananger transaction */
extern char *astman_get_header(struct message *m, char *var); extern char *astman_get_header(struct message *m, char *var);
/*! Send error in manager transaction */
extern void astman_send_error(struct mansession *s, struct message *m, char *error); extern void astman_send_error(struct mansession *s, struct message *m, char *error);
extern void astman_send_response(struct mansession *s, struct message *m, char *resp, char *msg); extern void astman_send_response(struct mansession *s, struct message *m, char *resp, char *msg);
extern void astman_send_ack(struct mansession *s, struct message *m, char *msg); extern void astman_send_ack(struct mansession *s, struct message *m, char *msg);
/* Called by Asterisk initialization */ /*! Called by Asterisk initialization */
extern int init_manager(void); extern int init_manager(void);
/*! Called by Asterisk initialization */
extern int reload_manager(void); extern int reload_manager(void);
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment