From bf3b17af69e47cde03441f1978bbe2d176640380 Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 2 Sep 2002 15:20:28 +0000 Subject: Version 0.2.0 from FTP git-svn-id: http://svn.digium.com/svn/asterisk/trunk@512 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 include/asterisk/manager.h (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h new file mode 100755 index 000000000..5eb4965d5 --- /dev/null +++ b/include/asterisk/manager.h @@ -0,0 +1,52 @@ +/* + * Asterisk -- A telephony toolkit for Linux. + * + * External call management support + * + * Copyright (C) 1999, Mark Spencer + * + * Mark Spencer + * + * This program is free software, distributed under the terms of + * the GNU General Public License. + * + * Includes code and algorithms from the Zapata library. + * + */ + +#ifndef _ASTERISK_MANAGER_H +#define _ASTERISK_MANAGER_H + +#include + +/* + * Call management packages are text fields of the form a: b. There is + * always exactly one space after the colon. + * + * The first header type is the "Event" header. Other headers vary from + * event to event. Headers end with standard \r\n termination. + * + * Some standard headers: + * + * Action: -- request or notification of a particular action + * Response: -- response code, like "200 OK" + * + */ + +#define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */ + +#define EVENT_FLAG_SYSTEM (1 << 0) /* System events such as module load/unload */ +#define EVENT_FLAG_CALL (1 << 1) /* Call event, such as state change, etc */ +#define EVENT_FLAG_LOG (1 << 2) /* Log events */ +#define EVENT_FLAG_VERBOSE (1 << 3) /* Verbose messages */ +#define EVENT_FLAG_COMMAND (1 << 4) /* Ability to read/set commands */ +#define EVENT_FLAG_AGENT (1 << 5) /* Ability to read/set agent info */ + +/* External routines may send asterisk manager events this way */ +extern int manager_event(int category, char *event, char *contents, ...) + __attribute__ ((format (printf, 3,4))); + +/* Called by Asterisk initialization */ +extern int init_manager(void); +extern int reload_manager(void); +#endif -- cgit v1.2.3 From c791e0d15a494431933106040f050acdde916918 Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 11 Dec 2002 00:15:13 +0000 Subject: Version 0.3.0 from FTP git-svn-id: http://svn.digium.com/svn/asterisk/trunk@566 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 5eb4965d5..4a267747f 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -18,6 +18,10 @@ #define _ASTERISK_MANAGER_H #include +#include +#include +#include +#include /* * Call management packages are text fields of the form a: b. There is @@ -42,6 +46,46 @@ #define EVENT_FLAG_COMMAND (1 << 4) /* Ability to read/set commands */ #define EVENT_FLAG_AGENT (1 << 5) /* Ability to read/set agent info */ +/* JDG: export manager structures */ +#define MAX_HEADERS 80 +#define MAX_LEN 256 + +struct mansession { + pthread_t t; + pthread_mutex_t lock; + struct sockaddr_in sin; + int fd; + int blocking; + char username[80]; + int authenticated; + int readperm; + int writeperm; + char inbuf[MAX_LEN]; + int inlen; + + struct mansession *next; +}; + + +struct message { + int hdrcount; + char headers[MAX_HEADERS][MAX_LEN]; +}; + +struct manager_action { + char action[256]; + char *synopsis; + int authority; + int (*func)(struct mansession *s, struct message *m); + struct manager_action *next; +}; + +/* 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); +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, ...) __attribute__ ((format (printf, 3,4))); -- cgit v1.2.3 From b8ed719ad6acba6f213f737749c9823af2836708 Mon Sep 17 00:00:00 2001 From: matteo Date: Mon, 10 Mar 2003 06:00:17 +0000 Subject: Mon Mar 10 07:00:00 CET 2003 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@637 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 4a267747f..980909e88 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -57,6 +57,7 @@ struct mansession { int fd; int blocking; char username[80]; + char challenge[10]; int authenticated; int readperm; int writeperm; -- cgit v1.2.3 From 4cc990f4538279b767e085f0d604d3fd81c8118c Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 31 Mar 2003 17:40:18 +0000 Subject: Make some useful management functions global git-svn-id: http://svn.digium.com/svn/asterisk/trunk@730 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 980909e88..3e139982a 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -91,6 +91,11 @@ int ast_manager_unregister( char *action ); extern int manager_event(int category, char *event, char *contents, ...) __attribute__ ((format (printf, 3,4))); +extern char *astman_get_header(struct message *m, char *var); +extern void astman_send_error(struct mansession *s, char *error); +extern void astman_send_response(struct mansession *s, char *resp, char *msg); +extern void astman_send_ack(struct mansession *s, char *msg); + /* Called by Asterisk initialization */ extern int init_manager(void); extern int reload_manager(void); -- cgit v1.2.3 From aa6d8bb8c90bb109331f1c2c5429a99a4f64daa4 Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 14 Apr 2003 18:47:36 +0000 Subject: Add new field for USER info to manager interface perms git-svn-id: http://svn.digium.com/svn/asterisk/trunk@846 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 3e139982a..d5171ecc2 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -45,6 +45,7 @@ #define EVENT_FLAG_VERBOSE (1 << 3) /* Verbose messages */ #define EVENT_FLAG_COMMAND (1 << 4) /* Ability to read/set commands */ #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 */ #define MAX_HEADERS 80 -- cgit v1.2.3 From dbc9edcaac6ec1d2059f4c5bcd27cca6c266f5bf Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 13 Aug 2003 15:25:16 +0000 Subject: Totally revamp thread debugging to support locating and removing deadlocks git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1310 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index d5171ecc2..66da69017 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -23,6 +23,8 @@ #include #include +#include + /* * Call management packages are text fields of the form a: b. There is * always exactly one space after the colon. @@ -53,7 +55,7 @@ struct mansession { pthread_t t; - pthread_mutex_t lock; + ast_mutex_t lock; struct sockaddr_in sin; int fd; int blocking; -- cgit v1.2.3 From ee8cba2208114438d40442616149adf12cc422c2 Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 8 Sep 2003 16:44:36 +0000 Subject: First of Jayson's manager patches git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1485 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 66da69017..ac3a2b2dc 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -95,9 +95,9 @@ extern int manager_event(int category, char *event, char *contents, ...) __attribute__ ((format (printf, 3,4))); extern char *astman_get_header(struct message *m, char *var); -extern void astman_send_error(struct mansession *s, char *error); -extern void astman_send_response(struct mansession *s, char *resp, char *msg); -extern void astman_send_ack(struct mansession *s, char *msg); +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_ack(struct mansession *s, struct message *m, char *msg); /* Called by Asterisk initialization */ extern int init_manager(void); -- cgit v1.2.3 From e45225faef9746b72b093b8a2c404137a1047213 Mon Sep 17 00:00:00 2001 From: markster Date: Mon, 1 Mar 2004 21:12:32 +0000 Subject: Allow semi-blocking fd's on manager (bug #1100) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2287 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index ac3a2b2dc..26abd9d22 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -66,7 +66,7 @@ struct mansession { int writeperm; char inbuf[MAX_LEN]; int inlen; - + int send_events; struct mansession *next; }; @@ -84,6 +84,8 @@ struct manager_action { 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); -- cgit v1.2.3 From 4d278f5a3813862296397db2d11b5759cd177320 Mon Sep 17 00:00:00 2001 From: citats Date: Wed, 2 Jun 2004 20:08:08 +0000 Subject: 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 ' (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: http://svn.digium.com/svn/asterisk/trunk@3132 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 26abd9d22..d25e150d8 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -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, ...) -- cgit v1.2.3 From a5d644afc81be27f8fd17d3bdc93eb7774ddf915 Mon Sep 17 00:00:00 2001 From: anthm Date: Fri, 2 Jul 2004 22:40:09 +0000 Subject: autodial update git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3377 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index d25e150d8..7e3f8d3b7 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -48,6 +48,9 @@ #define EVENT_FLAG_COMMAND (1 << 4) /* Ability to read/set commands */ #define EVENT_FLAG_AGENT (1 << 5) /* Ability to read/set agent info */ #define EVENT_FLAG_USER (1 << 6) /* Ability to read/set user info */ +#define EVENT_FLAG_CUSTOM1 (1 << 7) /* Ability to read/set user info */ +#define EVENT_FLAG_CUSTOM2 (1 << 8) /* Ability to read/set user info */ +#define EVENT_FLAG_CUSTOM3 (1 << 9) /* Ability to read/set user info */ /* Export manager structures */ #define MAX_HEADERS 80 -- cgit v1.2.3 From bf73a8baa85cd114a64397b09012ab05e3fa41ca Mon Sep 17 00:00:00 2001 From: markster Date: Fri, 2 Jul 2004 23:11:14 +0000 Subject: Back out accidental changes by anthm git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3378 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 7e3f8d3b7..d25e150d8 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -48,9 +48,6 @@ #define EVENT_FLAG_COMMAND (1 << 4) /* Ability to read/set commands */ #define EVENT_FLAG_AGENT (1 << 5) /* Ability to read/set agent info */ #define EVENT_FLAG_USER (1 << 6) /* Ability to read/set user info */ -#define EVENT_FLAG_CUSTOM1 (1 << 7) /* Ability to read/set user info */ -#define EVENT_FLAG_CUSTOM2 (1 << 8) /* Ability to read/set user info */ -#define EVENT_FLAG_CUSTOM3 (1 << 9) /* Ability to read/set user info */ /* Export manager structures */ #define MAX_HEADERS 80 -- cgit v1.2.3 From c2146f61501fc13e7ea0483fa1a343b19d3da0ea Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 2 Mar 2005 05:58:13 +0000 Subject: Add manager doxygen docs (bug #3691) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5117 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 71 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 16 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index d25e150d8..6629e72c9 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -25,18 +25,22 @@ #include -/* - * Call management packages are text fields of the form a: b. There is - * always exactly one space after the colon. - * - * The first header type is the "Event" header. Other headers vary from - * event to event. Headers end with standard \r\n termination. - * - * Some standard headers: - * - * Action: -- request or notification of a particular action - * Response: -- response code, like "200 OK" - * +/*! + \file manager.h + \brief The AMI - Asterisk Manager Interface - is a TCP protocol created to + manage Asterisk with third-party software. + + Manager protocol packages are text fields of the form a: b. There is + always exactly one space after the colon. + + The first header type is the "Event" header. Other headers vary from + event to event. Headers end with standard \r\n termination. + + Some standard headers: + + Action: -- request or notification of a particular action + Response: -- response code, like "200 OK" + */ #define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */ @@ -54,16 +58,26 @@ #define MAX_LEN 256 struct mansession { + /*! Execution thread */ pthread_t t; + /*! Thread lock */ ast_mutex_t lock; + /*! socket address */ struct sockaddr_in sin; + /*! TCP socket */ int fd; int blocking; + /*! Logged in username */ char username[80]; + /*! Authentication challenge */ char challenge[10]; + /*! Authentication status */ int authenticated; + /*! Authorization for reading */ int readperm; + /*! Authorization for writing */ int writeperm; + /*! Buffer */ char inbuf[MAX_LEN]; int inlen; int send_events; @@ -95,20 +109,45 @@ int ast_carefulwrite(int fd, char *s, int len, int timeoutms); /* 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) -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 ); -/* 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, ...) __attribute__ ((format (printf, 3,4))); +/*! Get header from mananger transaction */ 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_response(struct mansession *s, struct message *m, char *resp, 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); +/*! Called by Asterisk initialization */ extern int reload_manager(void); #endif -- cgit v1.2.3 From d2d06ed9d22b62132f04a8cf0b1dd4567d2ae6ab Mon Sep 17 00:00:00 2001 From: markster Date: Tue, 22 Mar 2005 19:09:12 +0000 Subject: Fix manager declarations git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5227 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 6629e72c9..2c33d54f0 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -92,11 +92,11 @@ struct message { struct manager_action { /*! Name of the action */ - char *action; + const char *action; /*! Short description of the action */ - char *synopsis; + const char *synopsis; /*! Detailed description of the action */ - char *description; + const char *description; /*! Permission required for action. EVENT_FLAG_* */ int authority; /*! Function to be called */ @@ -120,11 +120,11 @@ int ast_carefulwrite(int fd, char *s, int len, int timeoutms); \param description Help text, several lines */ int ast_manager_register2( - char *action, + const char *action, int authority, int (*func)(struct mansession *s, struct message *m), - char *synopsis, - char *description); + const char *synopsis, + const char *description); /*! Unregister a registred manager command */ /*! \param action Name of registred Action: -- cgit v1.2.3 From 31e8dcf4fe91466bf35a3f6d4de2bd714c43b288 Mon Sep 17 00:00:00 2001 From: kpfleming Date: Thu, 21 Apr 2005 06:02:45 +0000 Subject: use double-quotes instead of angle-brackets for non-system include files (bug #4058) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5490 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 2c33d54f0..62454255d 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -23,7 +23,7 @@ #include #include -#include +#include "asterisk/lock.h" /*! \file manager.h -- cgit v1.2.3 From 195245925855327e6d12be2293c8e9fcc57662cd Mon Sep 17 00:00:00 2001 From: russell Date: Fri, 15 Jul 2005 23:24:51 +0000 Subject: Allow manager originate to specifiy more than one variable to be set. Allow manager originate and spool files to set writable dialplan functions, including those that use the pipe symbol to seperate arguments. Allow CDR dialplan function to be able to set the account code and userfield. This deprecates the use of the Account header in manager originate and spool files, as well as the SetAccount and SetCDRUserField applications. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6147 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 62454255d..0b2712de6 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -141,6 +141,10 @@ extern int manager_event(int category, char *event, char *contents, ...) /*! Get header from mananger transaction */ extern char *astman_get_header(struct message *m, char *var); + +/*! Get a linked list of the Variable: headers */ +struct ast_variable *astman_get_variables(struct message *m); + /*! Send error in manager transaction */ 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); -- cgit v1.2.3 From 3c8955b668c51dce5c07edde28e1c3b3a736a4f5 Mon Sep 17 00:00:00 2001 From: kpfleming Date: Thu, 25 Aug 2005 23:17:47 +0000 Subject: minor doc fixes and copyright header cleanup (issue #5029 with mods) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6409 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 0b2712de6..547c55cd1 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -1,17 +1,17 @@ /* * Asterisk -- A telephony toolkit for Linux. * + * AMI - Asterisk Management Interface * External call management support * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium, Inc. * - * Mark Spencer + * Mark Spencer * * This program is free software, distributed under the terms of * the GNU General Public License. * - * Includes code and algorithms from the Zapata library. - * + * $Revision$ */ #ifndef _ASTERISK_MANAGER_H @@ -35,11 +35,13 @@ The first header type is the "Event" header. Other headers vary from event to event. Headers end with standard \r\n termination. + The last line of the manager response or event is an empty line. + (\r\n) - Some standard headers: - - Action: -- request or notification of a particular action - Response: -- response code, like "200 OK" + ** Please try to re-use existing headers to simplify manager message parsing in clients. + Don't re-use an existing header with a new meaning, please. + You can find a reference of standard headers in + doc/manager.txt */ -- cgit v1.2.3 From 3c4140b8b100b2e54e8ab6db85354576483c9ec5 Mon Sep 17 00:00:00 2001 From: kpfleming Date: Tue, 30 Aug 2005 18:32:10 +0000 Subject: major header file cleanup: license, copyrights, descriptions, markers, etc. remove deprecated config_old.c/config_old.h remove unused cvsid.h git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6454 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 547c55cd1..9d2d77455 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -1,17 +1,24 @@ /* - * Asterisk -- A telephony toolkit for Linux. + * Asterisk -- An open source telephony toolkit. * - * AMI - Asterisk Management Interface - * External call management support - * - * Copyright (C) 1999-2005, Digium, Inc. + * Copyright (C) 1999 - 2005, Digium, Inc. * * Mark Spencer * - * This program is free software, distributed under the terms of - * the GNU General Public License. + * See http://www.asterisk.org for more information about + * the Asterisk project. Please do not directly contact + * any of the maintainers of this project for assistance; + * the project provides a web site, mailing lists and IRC + * channels for your use. * - * $Revision$ + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + */ + +/* + * AMI - Asterisk Management Interface + * External call management support */ #ifndef _ASTERISK_MANAGER_H @@ -156,4 +163,5 @@ extern void astman_send_ack(struct mansession *s, struct message *m, char *msg); extern int init_manager(void); /*! Called by Asterisk initialization */ extern int reload_manager(void); -#endif + +#endif /* _ASTERISK_MANAGER_H */ -- cgit v1.2.3 From 83fdaa72f7001d2f2260b81ea15e0bdcb14b3124 Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 28 Sep 2005 23:10:14 +0000 Subject: Remove possibility of manager deadlocks from manager actions git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6687 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 9d2d77455..0a8edc042 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -66,16 +66,22 @@ #define MAX_HEADERS 80 #define MAX_LEN 256 +struct eventqent { + struct eventqent *next; + char eventdata[0]; +}; + struct mansession { /*! Execution thread */ pthread_t t; - /*! Thread lock */ - ast_mutex_t lock; + /*! Thread lock -- don't use in action callbacks, it's already taken care of */ + ast_mutex_t __lock; /*! socket address */ struct sockaddr_in sin; /*! TCP socket */ int fd; - int blocking; + /*! Whether or not we're busy doing an action */ + int busy; /*! Logged in username */ char username[80]; /*! Authentication challenge */ @@ -90,6 +96,8 @@ struct mansession { char inbuf[MAX_LEN]; int inlen; int send_events; + /* Queued events that we've not had the ability to send yet */ + struct eventqent *eventq; struct mansession *next; }; -- cgit v1.2.3 From 5360fe7571fe151b9b9b5db5449b48688fad17c4 Mon Sep 17 00:00:00 2001 From: markster Date: Thu, 29 Sep 2005 20:37:01 +0000 Subject: Fix manager bug (can't destroy a session while a thread is using it!) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6698 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 0a8edc042..718060646 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -82,6 +82,8 @@ struct mansession { int fd; /*! Whether or not we're busy doing an action */ int busy; + /*! Whether or not we're "dead" */ + int dead; /*! Logged in username */ char username[80]; /*! Authentication challenge */ -- cgit v1.2.3 From f72202f1adcd9fc115e326813341abc79ba36d34 Mon Sep 17 00:00:00 2001 From: kpfleming Date: Fri, 30 Sep 2005 16:49:23 +0000 Subject: ensure structure has enough space for embedded string git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6702 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 718060646..6ee977b20 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -68,7 +68,7 @@ struct eventqent { struct eventqent *next; - char eventdata[0]; + char eventdata[1]; }; struct mansession { -- cgit v1.2.3 From 716df588dee70ce62098d62ace645faebbdb43ef Mon Sep 17 00:00:00 2001 From: kpfleming Date: Tue, 4 Oct 2005 22:25:15 +0000 Subject: allow write timeout to be set on a per-user basis in AMI (issue #5352) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6716 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 6ee977b20..ea8f91de9 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -100,6 +100,8 @@ struct mansession { int send_events; /* Queued events that we've not had the ability to send yet */ struct eventqent *eventq; + /* Timeout for ast_carefulwrite() */ + int writetimeout; struct mansession *next; }; -- cgit v1.2.3 From 2c3b3edc86c6999c3053c131972a3e29e7621bac Mon Sep 17 00:00:00 2001 From: russell Date: Mon, 24 Oct 2005 20:12:06 +0000 Subject: Doxygen documentation update from oej (issue #5505) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6847 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index ea8f91de9..efe6c89b6 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -16,8 +16,8 @@ * at the top of the source tree. */ -/* - * AMI - Asterisk Management Interface +/*! \file + * \brief AMI - Asterisk Management Interface * External call management support */ -- cgit v1.2.3 From 4cc87ee6e1e0ad07889f178b9c843fdd55d826e8 Mon Sep 17 00:00:00 2001 From: russell Date: Wed, 26 Oct 2005 23:11:36 +0000 Subject: clean up a lot of doxygen errors and warnings (issue #5522) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6865 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index efe6c89b6..614eeff45 100755 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -16,11 +16,6 @@ * at the top of the source tree. */ -/*! \file - * \brief AMI - Asterisk Management Interface - * External call management support - */ - #ifndef _ASTERISK_MANAGER_H #define _ASTERISK_MANAGER_H @@ -33,9 +28,9 @@ #include "asterisk/lock.h" /*! - \file manager.h - \brief The AMI - Asterisk Manager Interface - is a TCP protocol created to - manage Asterisk with third-party software. + \file + \brief The AMI - Asterisk Manager Interface - is a TCP protocol created to + manage Asterisk with third-party software. Manager protocol packages are text fields of the form a: b. There is always exactly one space after the colon. @@ -47,9 +42,7 @@ ** Please try to re-use existing headers to simplify manager message parsing in clients. Don't re-use an existing header with a new meaning, please. - You can find a reference of standard headers in - doc/manager.txt - + You can find a reference of standard headers in doc/manager.txt */ #define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */ -- cgit v1.2.3 From 24c1e3c22259fee9f8a08911d5e5c6e2604ead18 Mon Sep 17 00:00:00 2001 From: kpfleming Date: Tue, 29 Nov 2005 18:24:39 +0000 Subject: git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7221 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 include/asterisk/manager.h (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h old mode 100755 new mode 100644 -- cgit v1.2.3 From d26c57d4bed3163484f526f196759cb24a5ad4f5 Mon Sep 17 00:00:00 2001 From: tilghman Date: Sat, 7 Jan 2006 15:23:38 +0000 Subject: Bug 6162 - Constify manager_event arguments git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7853 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 614eeff45..5d62b300b 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -150,7 +150,7 @@ int ast_manager_unregister( char *action ); \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, const char *event, const char *contents, ...) __attribute__ ((format (printf, 3,4))); /*! Get header from mananger transaction */ -- cgit v1.2.3 From 0a0b84d8deb680293d6dcbe15b169f4bf084d8d8 Mon Sep 17 00:00:00 2001 From: russell Date: Sat, 11 Feb 2006 18:31:59 +0000 Subject: Merged revisions 9581 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r9581 | russell | 2006-02-11 13:15:00 -0500 (Sat, 11 Feb 2006) | 2 lines now that CDR is a loadable module, don't depend on it elsewhere (issue #6460) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@9582 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 5d62b300b..523ccfaae 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -56,8 +56,8 @@ #define EVENT_FLAG_USER (1 << 6) /* Ability to read/set user info */ /* Export manager structures */ -#define MAX_HEADERS 80 -#define MAX_LEN 256 +#define AST_MAX_MANHEADERS 80 +#define AST_MAX_MANHEADER_LEN 256 struct eventqent { struct eventqent *next; @@ -88,7 +88,7 @@ struct mansession { /*! Authorization for writing */ int writeperm; /*! Buffer */ - char inbuf[MAX_LEN]; + char inbuf[AST_MAX_MANHEADER_LEN]; int inlen; int send_events; /* Queued events that we've not had the ability to send yet */ @@ -101,7 +101,7 @@ struct mansession { struct message { int hdrcount; - char headers[MAX_HEADERS][MAX_LEN]; + char headers[AST_MAX_MANHEADERS][AST_MAX_MANHEADER_LEN]; }; struct manager_action { -- cgit v1.2.3 From 4f4a24ec6ff72908d14402be9e27324148f2c8f1 Mon Sep 17 00:00:00 2001 From: markster Date: Sat, 25 Mar 2006 23:50:09 +0000 Subject: Add micro-http server and abstract manager interface, make snmp not die on reload. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@14953 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 523ccfaae..53f82f467 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -64,40 +64,7 @@ struct eventqent { char eventdata[1]; }; -struct mansession { - /*! Execution thread */ - pthread_t t; - /*! Thread lock -- don't use in action callbacks, it's already taken care of */ - ast_mutex_t __lock; - /*! socket address */ - struct sockaddr_in sin; - /*! TCP socket */ - int fd; - /*! Whether or not we're busy doing an action */ - int busy; - /*! Whether or not we're "dead" */ - int dead; - /*! Logged in username */ - char username[80]; - /*! Authentication challenge */ - char challenge[10]; - /*! Authentication status */ - int authenticated; - /*! Authorization for reading */ - int readperm; - /*! Authorization for writing */ - int writeperm; - /*! Buffer */ - char inbuf[AST_MAX_MANHEADER_LEN]; - int inlen; - int send_events; - /* Queued events that we've not had the ability to send yet */ - struct eventqent *eventq; - /* Timeout for ast_carefulwrite() */ - int writetimeout; - struct mansession *next; -}; - +struct mansession; struct message { int hdrcount; @@ -164,6 +131,10 @@ extern void astman_send_error(struct mansession *s, struct message *m, char *err 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_append(struct mansession *s, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); + + /*! Called by Asterisk initialization */ extern int init_manager(void); /*! Called by Asterisk initialization */ -- cgit v1.2.3 From ff6c03d35f772c640eeed7ba36b9984a397d5960 Mon Sep 17 00:00:00 2001 From: rizzo Date: Fri, 31 Mar 2006 10:35:25 +0000 Subject: more trailing whitespace and extern removal git-svn-id: http://svn.digium.com/svn/asterisk/trunk@16654 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 53f82f467..fb4514d62 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -29,22 +29,22 @@ /*! \file - \brief The AMI - Asterisk Manager Interface - is a TCP protocol created to + \brief The AMI - Asterisk Manager Interface - is a TCP protocol created to manage Asterisk with third-party software. Manager protocol packages are text fields of the form a: b. There is always exactly one space after the colon. - + The first header type is the "Event" header. Other headers vary from event to event. Headers end with standard \r\n termination. The last line of the manager response or event is an empty line. (\r\n) - + ** Please try to re-use existing headers to simplify manager message parsing in clients. Don't re-use an existing header with a new meaning, please. You can find a reference of standard headers in doc/manager.txt */ - + #define DEFAULT_MANAGER_PORT 5038 /* Default port for Asterisk management via TCP */ #define EVENT_FLAG_SYSTEM (1 << 0) /* System events such as module load/unload */ @@ -100,10 +100,10 @@ int ast_carefulwrite(int fd, char *s, int len, int timeoutms); \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( - const char *action, - int authority, - int (*func)(struct mansession *s, struct message *m), +int ast_manager_register2( + const char *action, + int authority, + int (*func)(struct mansession *s, struct message *m), const char *synopsis, const char *description); @@ -116,28 +116,28 @@ int ast_manager_unregister( char *action ); /*! \param category Event category, matches manager authorization \param event Event name \param contents Contents of event -*/ -extern int manager_event(int category, const char *event, const char *contents, ...) +*/ +int manager_event(int category, const char *event, const char *contents, ...) __attribute__ ((format (printf, 3,4))); /*! Get header from mananger transaction */ -extern char *astman_get_header(struct message *m, char *var); +char *astman_get_header(struct message *m, char *var); /*! Get a linked list of the Variable: headers */ struct ast_variable *astman_get_variables(struct message *m); /*! Send error in manager transaction */ -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_ack(struct mansession *s, struct message *m, char *msg); +void astman_send_error(struct mansession *s, struct message *m, char *error); +void astman_send_response(struct mansession *s, struct message *m, char *resp, char *msg); +void astman_send_ack(struct mansession *s, struct message *m, char *msg); -extern void astman_append(struct mansession *s, const char *fmt, ...) +void astman_append(struct mansession *s, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); /*! Called by Asterisk initialization */ -extern int init_manager(void); +int init_manager(void); /*! Called by Asterisk initialization */ -extern int reload_manager(void); +int reload_manager(void); #endif /* _ASTERISK_MANAGER_H */ -- cgit v1.2.3 From 7302a69879d92e522760a0c9fad7663f97ff413e Mon Sep 17 00:00:00 2001 From: markster Date: Sun, 2 Apr 2006 19:59:55 +0000 Subject: Unify manager behind a single event queue git-svn-id: http://svn.digium.com/svn/asterisk/trunk@16957 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 5 ----- 1 file changed, 5 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index fb4514d62..4541e7f17 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -59,11 +59,6 @@ #define AST_MAX_MANHEADERS 80 #define AST_MAX_MANHEADER_LEN 256 -struct eventqent { - struct eventqent *next; - char eventdata[1]; -}; - struct mansession; struct message { -- cgit v1.2.3 From dfaf45ecc89b3f06fe1348350f06bdb63253d355 Mon Sep 17 00:00:00 2001 From: russell Date: Fri, 5 May 2006 21:01:39 +0000 Subject: move ast_carefulwrite from manager.c to utils.c so that cli.c and res_agi.c no longer depend on manager.h (issue #6397, casper) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@25026 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 4541e7f17..71b5a5966 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -81,8 +81,6 @@ struct manager_action { struct manager_action *next; }; -int ast_carefulwrite(int fd, char *s, int len, int timeoutms); - /* 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) -- cgit v1.2.3 From b972e7626d98f17fa84e7219500a6a54e74ce6dd Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 19 Jul 2006 13:28:38 +0000 Subject: First pass at in-place file manipulation via manager git-svn-id: http://svn.digium.com/svn/asterisk/trunk@37936 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 71b5a5966..96326f07c 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -54,6 +54,7 @@ #define EVENT_FLAG_COMMAND (1 << 4) /* Ability to read/set commands */ #define EVENT_FLAG_AGENT (1 << 5) /* Ability to read/set agent info */ #define EVENT_FLAG_USER (1 << 6) /* Ability to read/set user info */ +#define EVENT_FLAG_CONFIG (1 << 7) /* Ability to modify configurations */ /* Export manager structures */ #define AST_MAX_MANHEADERS 80 -- cgit v1.2.3 From ff5e99c7e0715833cb18c63167d15360fc6998d7 Mon Sep 17 00:00:00 2001 From: anthonyl Date: Tue, 19 Sep 2006 19:28:57 +0000 Subject: 5240 update git-svn-id: http://svn.digium.com/svn/asterisk/trunk@43289 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 96326f07c..906ae1f67 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -106,6 +106,12 @@ int ast_manager_register2( */ int ast_manager_unregister( char *action ); +/*! Add a manager_user to current list of manager */ +int *ast_manager_add(struct ast_manager_user *amu); + +/*! Get an manager by his name */ +struct ast_manager_user *ast_get_manager_by_name_locked(const char *name); + /*! External routines may send asterisk manager events this way */ /*! \param category Event category, matches manager authorization \param event Event name @@ -133,5 +139,11 @@ void astman_append(struct mansession *s, const char *fmt, ...) int init_manager(void); /*! Called by Asterisk initialization */ int reload_manager(void); +/*! Add a manager_user to current list of manager */ +int *ast_manager_add(struct ast_manager_user *amu); +int *ast_manager_user_add(struct ast_manager_user *amu); +/*! Get an manager by his name */ +struct ast_manager_user *ast_get_manager_by_name_locked(const char *name); + #endif /* _ASTERISK_MANAGER_H */ -- cgit v1.2.3 From 46e384f88c5799ec199046c5bfc1b0957a7a5957 Mon Sep 17 00:00:00 2001 From: qwell Date: Tue, 19 Sep 2006 19:58:09 +0000 Subject: After discussing this with other people, we decided we'd like to try to do this a little differently. Stay tuned. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@43290 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 906ae1f67..96326f07c 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -106,12 +106,6 @@ int ast_manager_register2( */ int ast_manager_unregister( char *action ); -/*! Add a manager_user to current list of manager */ -int *ast_manager_add(struct ast_manager_user *amu); - -/*! Get an manager by his name */ -struct ast_manager_user *ast_get_manager_by_name_locked(const char *name); - /*! External routines may send asterisk manager events this way */ /*! \param category Event category, matches manager authorization \param event Event name @@ -139,11 +133,5 @@ void astman_append(struct mansession *s, const char *fmt, ...) int init_manager(void); /*! Called by Asterisk initialization */ int reload_manager(void); -/*! Add a manager_user to current list of manager */ -int *ast_manager_add(struct ast_manager_user *amu); -int *ast_manager_user_add(struct ast_manager_user *amu); -/*! Get an manager by his name */ -struct ast_manager_user *ast_get_manager_by_name_locked(const char *name); - #endif /* _ASTERISK_MANAGER_H */ -- cgit v1.2.3 From a6d4c512c85a5c5a908521066fe4a7ba772e4aec Mon Sep 17 00:00:00 2001 From: kpfleming Date: Fri, 5 Jan 2007 22:16:33 +0000 Subject: reduce stack consumption for AMI and AMI/HTTP requests by nearly 20K in most cases git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@49676 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 96326f07c..cbbe1fb90 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -58,13 +58,12 @@ /* Export manager structures */ #define AST_MAX_MANHEADERS 80 -#define AST_MAX_MANHEADER_LEN 256 struct mansession; struct message { - int hdrcount; - char headers[AST_MAX_MANHEADERS][AST_MAX_MANHEADER_LEN]; + unsigned int hdrcount; + const char *headers[AST_MAX_MANHEADERS]; }; struct manager_action { @@ -77,7 +76,7 @@ struct manager_action { /*! Permission required for action. EVENT_FLAG_* */ int authority; /*! Function to be called */ - int (*func)(struct mansession *s, struct message *m); + int (*func)(struct mansession *s, const struct message *m); /*! For easy linking */ struct manager_action *next; }; @@ -97,7 +96,7 @@ struct manager_action { int ast_manager_register2( const char *action, int authority, - int (*func)(struct mansession *s, struct message *m), + int (*func)(struct mansession *s, const struct message *m), const char *synopsis, const char *description); @@ -111,27 +110,23 @@ int ast_manager_unregister( char *action ); \param event Event name \param contents Contents of event */ -int manager_event(int category, const char *event, const char *contents, ...) - __attribute__ ((format (printf, 3,4))); +int __attribute__ ((format (printf, 3,4))) manager_event(int category, const char *event, const char *contents, ...); /*! Get header from mananger transaction */ -char *astman_get_header(struct message *m, char *var); +const char *astman_get_header(const struct message *m, char *var); /*! Get a linked list of the Variable: headers */ -struct ast_variable *astman_get_variables(struct message *m); +struct ast_variable *astman_get_variables(const struct message *m); /*! Send error in manager transaction */ -void astman_send_error(struct mansession *s, struct message *m, char *error); -void astman_send_response(struct mansession *s, struct message *m, char *resp, char *msg); -void astman_send_ack(struct mansession *s, struct message *m, char *msg); - -void astman_append(struct mansession *s, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); +void astman_send_error(struct mansession *s, const struct message *m, char *error); +void astman_send_response(struct mansession *s, const struct message *m, char *resp, char *msg); +void astman_send_ack(struct mansession *s, const struct message *m, char *msg); +void __attribute__ ((format (printf, 2, 3))) astman_append(struct mansession *s, const char *fmt, ...); /*! Called by Asterisk initialization */ int init_manager(void); -/*! Called by Asterisk initialization */ int reload_manager(void); #endif /* _ASTERISK_MANAGER_H */ -- cgit v1.2.3 From 7c2b7dc7eae81f5c3b69d099697caacefd6fbd7f Mon Sep 17 00:00:00 2001 From: russell Date: Tue, 20 Feb 2007 19:57:07 +0000 Subject: Increase the maximum number of manager headers to 128, at the request of Pari. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@55590 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index cbbe1fb90..aa657d643 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -57,7 +57,7 @@ #define EVENT_FLAG_CONFIG (1 << 7) /* Ability to modify configurations */ /* Export manager structures */ -#define AST_MAX_MANHEADERS 80 +#define AST_MAX_MANHEADERS 128 struct mansession; -- cgit v1.2.3 From 52502ee152be35747e2c65ea19765fd3ef618d91 Mon Sep 17 00:00:00 2001 From: russell Date: Fri, 6 Apr 2007 20:58:43 +0000 Subject: To be able to achieve the things that we would like to achieve with the Asterisk GUI project, we need a fully functional HTTP interface with access to the Asterisk manager interface. One of the things that was intended to be a part of this system, but was never actually implemented, was the ability for the GUI to be able to upload files to Asterisk. So, this commit adds this in the most minimally invasive way that we could come up with. A lot of work on minimime was done by Steve Murphy. He fixed a lot of bugs in the parser, and updated it to be thread-safe. The ability to check permissions of active manager sessions was added by Dwayne Hubbard. Then, hacking this all together and do doing the modifications necessary to the HTTP interface was done by me. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@60603 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index aa657d643..39a0ca478 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -105,6 +105,22 @@ int ast_manager_register2( */ int ast_manager_unregister( char *action ); +/*! + * \brief Verify a session's read permissions against a permission mask. + * \param ident session identity + * \param perm permission mask to verify + * \returns 1 if the session has the permission mask capabilities, otherwise 0 + */ +int astman_verify_session_readpermissions(unsigned long ident, int perm); + +/*! + * \brief Verify a session's write permissions against a permission mask. + * \param ident session identity + * \param perm permission mask to verify + * \returns 1 if the session has the permission mask capabilities, otherwise 0 + */ +int astman_verify_session_writepermissions(unsigned long ident, int perm); + /*! External routines may send asterisk manager events this way */ /*! \param category Event category, matches manager authorization \param event Event name -- cgit v1.2.3 From 42a1c6e99ee9614bf3aeaf19f3c2ce369a7e57a8 Mon Sep 17 00:00:00 2001 From: russell Date: Wed, 23 Apr 2008 17:55:31 +0000 Subject: Store the manager session ID explicitly as 4 byte ID instead of a ulong. The mansession_id cookie is coded to be limited to 8 characters of hex, and this could break logins from 64-bit machines in some cases. (inspired by AST-20) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@114591 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index 39a0ca478..cc4e971c9 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -111,7 +111,7 @@ int ast_manager_unregister( char *action ); * \param perm permission mask to verify * \returns 1 if the session has the permission mask capabilities, otherwise 0 */ -int astman_verify_session_readpermissions(unsigned long ident, int perm); +int astman_verify_session_readpermissions(uint32_t ident, int perm); /*! * \brief Verify a session's write permissions against a permission mask. @@ -119,7 +119,7 @@ int astman_verify_session_readpermissions(unsigned long ident, int perm); * \param perm permission mask to verify * \returns 1 if the session has the permission mask capabilities, otherwise 0 */ -int astman_verify_session_writepermissions(unsigned long ident, int perm); +int astman_verify_session_writepermissions(uint32_t ident, int perm); /*! External routines may send asterisk manager events this way */ /*! \param category Event category, matches manager authorization -- cgit v1.2.3 From 81fa0b3582ba4f23dd3f6bfa576fdd7ac531a127 Mon Sep 17 00:00:00 2001 From: kpfleming Date: Sat, 29 Nov 2008 16:58:29 +0000 Subject: update dev-mode compiler flags to match the ones used by default on Ubuntu Intrepid, so all developers will see the same warnings and errors since this branch already had some printf format attributes, enable checking for them and tag functions that didn't have them format attributes in a consistent way git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@159808 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/manager.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/asterisk/manager.h') diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index cc4e971c9..34ae43235 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -126,7 +126,7 @@ int astman_verify_session_writepermissions(uint32_t ident, int perm); \param event Event name \param contents Contents of event */ -int __attribute__ ((format (printf, 3,4))) manager_event(int category, const char *event, const char *contents, ...); +int __attribute__((format(printf, 3,4))) manager_event(int category, const char *event, const char *contents, ...); /*! Get header from mananger transaction */ const char *astman_get_header(const struct message *m, char *var); @@ -139,7 +139,7 @@ void astman_send_error(struct mansession *s, const struct message *m, char *erro void astman_send_response(struct mansession *s, const struct message *m, char *resp, char *msg); void astman_send_ack(struct mansession *s, const struct message *m, char *msg); -void __attribute__ ((format (printf, 2, 3))) astman_append(struct mansession *s, const char *fmt, ...); +void __attribute__((format(printf, 2, 3))) astman_append(struct mansession *s, const char *fmt, ...); /*! Called by Asterisk initialization */ int init_manager(void); -- cgit v1.2.3