[asterisk-commits] oej: branch group/bufo-manager-setvar-trunk r336090 - in /team/group/bufo-man...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Sep 15 09:22:46 CDT 2011
Author: oej
Date: Thu Sep 15 09:22:44 2011
New Revision: 336090
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=336090
Log:
Updating branch according to mjordan's excellent review in reviewboard
Modified:
team/group/bufo-manager-setvar-trunk/CHANGES
team/group/bufo-manager-setvar-trunk/configs/manager.conf.sample
team/group/bufo-manager-setvar-trunk/include/asterisk/config.h
team/group/bufo-manager-setvar-trunk/main/config.c
team/group/bufo-manager-setvar-trunk/main/manager.c
Modified: team/group/bufo-manager-setvar-trunk/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/group/bufo-manager-setvar-trunk/CHANGES?view=diff&rev=336090&r1=336089&r2=336090
==============================================================================
--- team/group/bufo-manager-setvar-trunk/CHANGES (original)
+++ team/group/bufo-manager-setvar-trunk/CHANGES Thu Sep 15 09:22:44 2011
@@ -30,6 +30,10 @@
specification of a list of codecs allowed and disallowed, without the
requirement to use two different keywords. For example, to specify all
codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
+
+AMI - Manager
+-------------
+ * Added setvar= option to manager accounts (much like sip.conf)
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
Modified: team/group/bufo-manager-setvar-trunk/configs/manager.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/group/bufo-manager-setvar-trunk/configs/manager.conf.sample?view=diff&rev=336090&r1=336089&r2=336090
==============================================================================
--- team/group/bufo-manager-setvar-trunk/configs/manager.conf.sample (original)
+++ team/group/bufo-manager-setvar-trunk/configs/manager.conf.sample Thu Sep 15 09:22:44 2011
@@ -86,6 +86,12 @@
;secret = mysecret
;deny=0.0.0.0/0.0.0.0
;permit=209.16.236.73/255.255.255.0
+
+;
+;setvar=PBXACCOUNT=edvina
+; The setvar option defines channel variables that will be set when this account
+; originates a call. You can define multiple setvar= commands for one manager
+; user.
;
;eventfilter=Event: Newchannel
;eventfilter=!Channel: DAHDI*
Modified: team/group/bufo-manager-setvar-trunk/include/asterisk/config.h
URL: http://svnview.digium.com/svn/asterisk/team/group/bufo-manager-setvar-trunk/include/asterisk/config.h?view=diff&rev=336090&r1=336089&r2=336090
==============================================================================
--- team/group/bufo-manager-setvar-trunk/include/asterisk/config.h (original)
+++ team/group/bufo-manager-setvar-trunk/include/asterisk/config.h Thu Sep 15 09:22:44 2011
@@ -446,10 +446,11 @@
/*! \brief Check if there's any realtime engines loaded */
int ast_realtime_enabled(void);
-/*! \brief copy variables, preserving order
- * \param in the linked list of variables to copy
- */
-struct ast_variable *ast_variable_copy(struct ast_variable *in);
+/*! \brief copy variables, preserving order
+ * \param in the linked list of variables
+ \note This function is not copying the comment pointers
+*/
+struct ast_variable *ast_variable_copy(const struct ast_variable *in);
/*!
* \brief Free variable list
Modified: team/group/bufo-manager-setvar-trunk/main/config.c
URL: http://svnview.digium.com/svn/asterisk/team/group/bufo-manager-setvar-trunk/main/config.c?view=diff&rev=336090&r1=336089&r2=336090
==============================================================================
--- team/group/bufo-manager-setvar-trunk/main/config.c (original)
+++ team/group/bufo-manager-setvar-trunk/main/config.c Thu Sep 15 09:22:44 2011
@@ -517,20 +517,23 @@
*comment = NULL;
}
-/*! \brief copy variables, preserving order */
-struct ast_variable *ast_variable_copy(struct ast_variable *in)
-{
- /* This really belongs in config.c, and will move there in non-releases */
-
+/*! \brief copy variables, preserving order
+ \note This function is not copying the comment pointers
+*/
+struct ast_variable *ast_variable_copy(const struct ast_variable *in)
+{
struct ast_variable *out = NULL, *tmp, *v, *prev = NULL;
- for (v = in ; v ; v = v->next) {
- if ((tmp = ast_variable_new(v->name, v->value, ""))) {
+ for (v = in; v; v = v->next) {
+ if ((tmp = ast_variable_new(v->name, v->value, v->filename))) {
+ tmp->lineno = v->lineno;
+ tmp->object = v->object;
+ tmp->blanklines = v->blanklines;
if (!out) {
out = tmp; /* The first record */
}
if (prev) {
- prev->next = tmp;
+ prev->next = tmp;
}
prev = tmp;
}
Modified: team/group/bufo-manager-setvar-trunk/main/manager.c
URL: http://svnview.digium.com/svn/asterisk/team/group/bufo-manager-setvar-trunk/main/manager.c?view=diff&rev=336090&r1=336089&r2=336090
==============================================================================
--- team/group/bufo-manager-setvar-trunk/main/manager.c (original)
+++ team/group/bufo-manager-setvar-trunk/main/manager.c Thu Sep 15 09:22:44 2011
@@ -1577,13 +1577,16 @@
" read perm: %s\n"
" write perm: %s\n"
"displayconnects: %s\n",
-/* XXX Add setvar channel variables */
(user->username ? user->username : "(N/A)"),
(user->secret ? "<Set>" : "(N/A)"),
(user->ha ? "yes" : "no"),
authority_to_str(user->readperm, &rauthority),
authority_to_str(user->writeperm, &wauthority),
(user->displayconnects ? "yes" : "no"));
+ ast_cli(a->fd, " Variables: \n");
+ for (v = user->chanvars ; v ; v = v->next) {
+ ast_cli(fd, " %s = %s\n", v->name, v->value);
+ }
AST_RWLIST_UNLOCK(&users);
@@ -4005,26 +4008,19 @@
}
/* Allocate requested channel variables */
- /* read variables from manager command and allocate memory now */
vars = astman_get_variables(m);
if (s->session->chanvars) {
struct ast_variable *v, *old;
old = vars;
vars = NULL;
- /* The variables in the originate command is appended at the
- end of the list, to override */
+ /* The variables in the AMI originate action are appended at the end of the list, to override any user variables that apply*/
vars = ast_variable_copy(s->session->chanvars);
- /* copy channel vars */
if (old ) {
- for (v = vars ; v ; ) {
- if (!v->next) {
- v->next = old; /* Append originate variables at end of list */
- v = NULL;
- } else {
- v = v->next; /* Loop */
- }
+ for (v = vars; v->next; v = v->next );
+ if (v->next) {
+ v->next = old; /* Append originate variables at end of list */
}
}
}
More information about the asterisk-commits
mailing list