rename SetVar application to Set, deprecate SetVar
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5688 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
5e4013d613
commit
8dfde59f95
31
UPGRADE.txt
31
UPGRADE.txt
|
@ -35,6 +35,9 @@ IAX:
|
|||
|
||||
Applications:
|
||||
|
||||
* With the addition of dialplan functions (which operate similarly
|
||||
to variables), the SetVar application has been renamed to Set.
|
||||
|
||||
* The CallerPres application has been removed. Use SetCallerPres
|
||||
instead. It accepts both numeric and symbolic names.
|
||||
|
||||
|
@ -42,9 +45,9 @@ Applications:
|
|||
CheckGroup have been deprecated in favor of functions. Here is a
|
||||
table of their replacements:
|
||||
|
||||
GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) SetVar(GROUPCOUNT=${GROUP_COUNT()})
|
||||
GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) SetVar(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
|
||||
SetGroup(groupname[@category]) GROUP([category])=groupname SetVar(GROUP()=test)
|
||||
GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})
|
||||
GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
|
||||
SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)
|
||||
CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
|
||||
|
||||
Note that CheckGroup does not have a direct replacement. There is
|
||||
|
@ -56,35 +59,35 @@ Applications:
|
|||
* The applications DBGet and DBPut have been deprecated in favor of
|
||||
functions. Here is a table of their replacements:
|
||||
|
||||
DBGet(foo=family/key) SetVar(foo=${DB(family/key)})
|
||||
DBPut(family/key=${foo}) SetVar(${DB(family/key)}=${foo})
|
||||
DBGet(foo=family/key) Set(foo=${DB(family/key)})
|
||||
DBPut(family/key=${foo}) Set(${DB(family/key)}=${foo})
|
||||
|
||||
* The application SetLanguage has been deprecated in favor of the
|
||||
function LANGUAGE().
|
||||
|
||||
SetLanguage(fr) SetVar(LANGUAGE()=fr)
|
||||
SetLanguage(fr) Set(LANGUAGE()=fr)
|
||||
|
||||
The LANGUAGE function can also return the currently set language:
|
||||
|
||||
SetVar(MYLANG=${LANGUAGE()})
|
||||
Set(MYLANG=${LANGUAGE()})
|
||||
|
||||
* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
|
||||
have been deprecated in favor of the function TIMEOUT(timeouttype):
|
||||
|
||||
AbsoluteTimeout(300) SetVar(TIMEOUT(absolute)=300)
|
||||
DigitTimeout(15) SetVar(TIMEOUT(digit)=15)
|
||||
ResponseTimeout(15) SetVar(TIMEOUT(response)=15)
|
||||
AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)
|
||||
DigitTimeout(15) Set(TIMEOUT(digit)=15)
|
||||
ResponseTimeout(15) Set(TIMEOUT(response)=15)
|
||||
|
||||
The TIMEOUT() function can also return the currently set timeouts:
|
||||
|
||||
SetVar(DTIMEOUT=${TIMEOUT(digit)})
|
||||
Set(DTIMEOUT=${TIMEOUT(digit)})
|
||||
|
||||
* The applications SetCIDName, SetCIDNum, and SetRDNIS have been
|
||||
deprecated in favor of the CALLERID(datatype) function:
|
||||
|
||||
SetCIDName(Joe Cool) SetVar(CALLERID(name)=Joe Cool)
|
||||
SetCIDNum(2025551212) SetVar(CALLERID(number)=2025551212)
|
||||
SetRDNIS(2024561414) SetVar(CALLERID(RDNIS)=2024561414)
|
||||
SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)
|
||||
SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)
|
||||
SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)
|
||||
|
||||
Queues:
|
||||
|
||||
|
|
|
@ -227,7 +227,7 @@ static char *group_count_descrip =
|
|||
static char *group_set_descrip =
|
||||
"Usage: SetGroup(groupname[@category])\n"
|
||||
" Sets the channel group to the specified value. Equivalent to\n"
|
||||
"SetVar(GROUP=group). Always returns 0.\n";
|
||||
"Set(GROUP=group). Always returns 0.\n";
|
||||
|
||||
static char *group_check_descrip =
|
||||
"Usage: CheckGroup(max[@category])\n"
|
||||
|
|
|
@ -51,7 +51,7 @@ static int setcallerid_exec(struct ast_channel *chan, void *data)
|
|||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "SetCIDName is deprecated, please use SetVar(CALLERID(name)=value) instead.\n");
|
||||
ast_log(LOG_WARNING, "SetCIDName is deprecated, please use Set(CALLERID(name)=value) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ static int setcallerid_exec(struct ast_channel *chan, void *data)
|
|||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "SetCIDNum is deprecated, please use SetVar(CALLERID(number)=value) instead.\n");
|
||||
ast_log(LOG_WARNING, "SetCIDNum is deprecated, please use Set(CALLERID(number)=value) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ static int setrdnis_exec(struct ast_channel *chan, void *data)
|
|||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "SetRDNIS is deprecated, please use SetVar(CALLERID(rdnis)=value) instead.\n");
|
||||
ast_log(LOG_WARNING, "SetRDNIS is deprecated, please use Set(CALLERID(rdnis)=value) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ persistentmembers = yes
|
|||
; To enable monitoring, simply specify "monitor-format"; it will be disabled
|
||||
; otherwise.
|
||||
;
|
||||
; You can specify the monitor filename with by calling SetVar(MONITOR_FILENAME=foo)
|
||||
; You can specify the monitor filename with by calling Set(MONITOR_FILENAME=foo)
|
||||
; Otherwise it will use ${UNIQUEID}
|
||||
;
|
||||
; monitor-format = gsm|wav|wav49
|
||||
|
|
|
@ -30,7 +30,6 @@ Applications
|
|||
* Authenticate Authenticates and sets the account code
|
||||
* SetCDRUserField Set CDR user field
|
||||
* AppendCDRUserField Append data to CDR User field
|
||||
* SetVarCDR Set CDR Vars
|
||||
|
||||
For more information, use the "show application" command.
|
||||
You can set default account codes and AMA flags for devices in
|
||||
|
@ -77,7 +76,7 @@ ____________________________________
|
|||
CDR Variables
|
||||
------------------------------------
|
||||
|
||||
If the channel has a cdr, that cdr record has it's own set of variables which
|
||||
If the channel has a cdr, that cdr record has its own set of variables which
|
||||
can be accessed just like channel variables. The following builtin variables
|
||||
are available.
|
||||
|
||||
|
@ -100,11 +99,7 @@ ${CDR(accountcode)} The channel's account code.
|
|||
${CDR(uniqueid)} The channel's unique id.
|
||||
${CDR(userfield)} The channels uses specified field.
|
||||
|
||||
|
||||
In addition, you can set your own extra variables with the application SetVarCDR(var=val)
|
||||
or a traditional SetVAR(CDR(var=val) to anything you want.
|
||||
|
||||
SetVar(CDR(var)=val) will set the var to all cdr in a stack of cdrs.
|
||||
In addition, you can set your own extra variables by using Set(CDR(name)=value).
|
||||
|
||||
______________________________
|
||||
cdr_csv2
|
||||
|
|
|
@ -41,23 +41,23 @@ They are stored in the respective channel structure.
|
|||
|
||||
To set a variable to a particular value, do :
|
||||
|
||||
exten => 1,2,SetVar(varname=value)
|
||||
exten => 1,2,Set(varname=value)
|
||||
|
||||
You can substitute the value of a variable everywhere using ${variablename}.
|
||||
For example, to stringwise append $lala to $blabla and store result in $koko,
|
||||
do:
|
||||
|
||||
exten => 1,2,SetVar(koko=${blabla}${lala})
|
||||
exten => 1,2,Set(koko=${blabla}${lala})
|
||||
|
||||
|
||||
There are two reference modes - reference by value and reference by name.
|
||||
To refer to a variable with its name (as an argument to a function that
|
||||
requires a variable), just write the name. To refer to the variable's value,
|
||||
enclose it inside ${}. For example, SetVar takes as the first argument
|
||||
enclose it inside ${}. For example, Set takes as the first argument
|
||||
(before the =) a variable name, so:
|
||||
|
||||
exten => 1,2,SetVar(koko=lala)
|
||||
exten => 1,3,SetVar(${koko}=blabla)
|
||||
exten => 1,2,Set(koko=lala)
|
||||
exten => 1,3,Set(${koko}=blabla)
|
||||
|
||||
stores to the variable "koko" the value "lala" and to variable "lala" the
|
||||
value "blabla".
|
||||
|
@ -78,7 +78,7 @@ to a variable, simply append a colon and the number of characters to
|
|||
remove from the beginning of the string to the variable name.
|
||||
|
||||
;Remove the first character of extension, save in "number" variable
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:1})
|
||||
exten => _9X.,1,Set(number=${EXTEN:1})
|
||||
|
||||
Assuming we've dialed 918005551234, the value saved to the 'number' variable
|
||||
would be 18005551234. This is useful in situations when we require users to
|
||||
|
@ -91,7 +91,7 @@ example will save the numbers 1234 to the 'number' variable, still assuming
|
|||
we've dialed 918005551234.
|
||||
|
||||
;Remove everything before the last four digits of the dialed string
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:-4})
|
||||
exten => _9X.,1,Set(number=${EXTEN:-4})
|
||||
|
||||
We can also limit the number of characters from our offset position that we
|
||||
wish to use. This is done by appending a second colon and length value to the
|
||||
|
@ -99,7 +99,7 @@ variable name. The following example will save the numbers 555 to the 'number'
|
|||
variable.
|
||||
|
||||
;Only save the middle numbers 555 from the string 918005551234
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:5:3})
|
||||
exten => _9X.,1,Set(number=${EXTEN:5:3})
|
||||
|
||||
The length value can also be used in conjunction with a negative offset. This
|
||||
may be useful if the length of the string is unknown, but the trailing digits
|
||||
|
@ -108,7 +108,7 @@ even if the string starts with more characters than expected (unlike the
|
|||
previous example).
|
||||
|
||||
;Save the numbers 555 to the 'number' variable
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:-7:3})
|
||||
exten => _9X.,1,Set(number=${EXTEN:-7:3})
|
||||
|
||||
If a negative length value is entered, it is ignored and Asterisk will match
|
||||
to the end of the string.
|
||||
|
@ -127,14 +127,14 @@ by at least one space.
|
|||
|
||||
For example, after the sequence:
|
||||
|
||||
exten => 1,1,SetVar(lala=$[1 + 2])
|
||||
exten => 1,2,SetVar(koko=$[2 * ${lala}])
|
||||
exten => 1,1,Set(lala=$[1 + 2])
|
||||
exten => 1,2,Set(koko=$[2 * ${lala}])
|
||||
|
||||
the value of variable koko is "6".
|
||||
|
||||
And, further:
|
||||
|
||||
exten => 1,1,SetVar(lala=$[1+2]);
|
||||
exten => 1,1,Set(lala=$[1+2]);
|
||||
|
||||
will not work as you might have expected. Since all the chars in the single
|
||||
token "1+2" are not numbers, it will be evaluated as the string "1+2". Again,
|
||||
|
@ -143,7 +143,7 @@ uses a space (at least one), to separate "tokens".
|
|||
|
||||
and, further:
|
||||
|
||||
exten => 1,1,SetVar,"lala=$[ 1 + 2 ]";
|
||||
exten => 1,1,Set,"lala=$[ 1 + 2 ]";
|
||||
|
||||
will parse as intended. Extra spaces are ignored.
|
||||
|
||||
|
@ -242,9 +242,9 @@ above, eg :
|
|||
|
||||
Example of use :
|
||||
|
||||
exten => s,2,SetVar(vara=1)
|
||||
exten => s,3,SetVar(varb=$[${vara} + 2])
|
||||
exten => s,4,SetVar(varc=$[${varb} * 2])
|
||||
exten => s,2,Set(vara=1)
|
||||
exten => s,3,Set(varb=$[${vara} + 2])
|
||||
exten => s,4,Set(varc=$[${varb} * 2])
|
||||
exten => s,5,GotoIf($[${varc} = 6]?99|1:s|6)
|
||||
|
||||
___________________________
|
||||
|
|
61
pbx.c
61
pbx.c
|
@ -205,6 +205,7 @@ static int pbx_builtin_saynumber(struct ast_channel *, void *);
|
|||
static int pbx_builtin_saydigits(struct ast_channel *, void *);
|
||||
static int pbx_builtin_saycharacters(struct ast_channel *, void *);
|
||||
static int pbx_builtin_sayphonetic(struct ast_channel *, void *);
|
||||
static int pbx_builtin_setvar_old(struct ast_channel *, void *);
|
||||
int pbx_builtin_setvar(struct ast_channel *, void *);
|
||||
static int pbx_builtin_importvar(struct ast_channel *, void *);
|
||||
|
||||
|
@ -231,7 +232,7 @@ static struct pbx_builtin {
|
|||
"Set absolute maximum time of call",
|
||||
" AbsoluteTimeout(seconds): Set the absolute maximum amount of time permitted\n"
|
||||
"for a call. A setting of 0 disables the timeout. Always returns 0.\n"
|
||||
"AbsoluteTimeout has been deprecated in favor of SetVar(TIMEOUT(absolute)=timeout)\n"
|
||||
"AbsoluteTimeout has been deprecated in favor of Set(TIMEOUT(absolute)=timeout)\n"
|
||||
},
|
||||
|
||||
{ "Answer", pbx_builtin_answer,
|
||||
|
@ -284,7 +285,7 @@ static struct pbx_builtin {
|
|||
"(and thus control would be passed to the 'i' extension, or if it doesn't\n"
|
||||
"exist the call would be terminated). The default timeout is 5 seconds.\n"
|
||||
"Always returns 0.\n"
|
||||
"DigitTimeout has been deprecated in favor of SetVar(TIMEOUT(digit)=timeout)\n"
|
||||
"DigitTimeout has been deprecated in favor of Set(TIMEOUT(digit)=timeout)\n"
|
||||
},
|
||||
|
||||
{ "Goto", pbx_builtin_goto,
|
||||
|
@ -368,7 +369,7 @@ static struct pbx_builtin {
|
|||
"amount of time, control will pass to the 't' extension if it exists, and\n"
|
||||
"if not the call would be terminated. The default timeout is 10 seconds.\n"
|
||||
"Always returns 0.\n"
|
||||
"ResponseTimeout has been deprecated in favor of SetVar(TIMEOUT(response)=timeout)\n"
|
||||
"ResponseTimeout has been deprecated in favor of Set(TIMEOUT(response)=timeout)\n"
|
||||
},
|
||||
|
||||
{ "Ringing", pbx_builtin_ringing,
|
||||
|
@ -428,19 +429,29 @@ static struct pbx_builtin {
|
|||
"For some language codes, SetLanguage also changes the syntax of some\n"
|
||||
"Asterisk functions, like SayNumber.\n"
|
||||
"Always returns 0.\n"
|
||||
"SetLanguage has been deprecated in favor of SetVar(LANGUAGE()=language)\n"
|
||||
"SetLanguage has been deprecated in favor of Set(LANGUAGE()=language)\n"
|
||||
},
|
||||
|
||||
{ "SetVar", pbx_builtin_setvar,
|
||||
"Set channel variable(s)",
|
||||
" SetVar(name1=value1|name2=value2|..[|options])\n"
|
||||
"You can specify up to 24 name / value pairs to be set as channel variables.\n"
|
||||
"If a variable name is prefixed with _, it will be inherited into channels\n"
|
||||
"created from this one. If a variable name is prefixed with __, it will be\n"
|
||||
"inherited into channels created from this one and all child channels.\n"
|
||||
"The last arg (if it doesn't contain '=') is interpreted as a string of\n"
|
||||
"options. Valid options are:\n"
|
||||
" g - Set variable globally instead of on the channel\n"
|
||||
{ "Set", pbx_builtin_setvar,
|
||||
"Set channel variable(s) or function value(s)",
|
||||
" Set(name1=value1|name2=value2|..[|options])\n"
|
||||
"This function can be used to set the value of channel variables\n"
|
||||
"or dialplan functions. It will accept up to 24 name/value pairs.\n"
|
||||
"When setting variables, if the variable name is prefixed with _,\n"
|
||||
"the variable will be inherited into channels created from the\n"
|
||||
"current channel. If the variable name is prefixed with __,\n"
|
||||
"the variable will be inherited into channels created from the\n"
|
||||
"current channel and all child channels.\n"
|
||||
"The last argument, if it does not contain '=', is interpreted\n"
|
||||
"as a string of options. The valid options are:\n"
|
||||
" g - Set variable globally instead of on the channel\n"
|
||||
" (applies only to variables, not functions)\n"
|
||||
},
|
||||
|
||||
{ "SetVar", pbx_builtin_setvar_old,
|
||||
"Set channel variable(s)",
|
||||
" SetVar(name1=value1|name2=value2|..[|options])\n"
|
||||
"SetVar has been deprecated in favor of Set.\n"
|
||||
},
|
||||
|
||||
{ "ImportVar", pbx_builtin_importvar,
|
||||
|
@ -5260,7 +5271,7 @@ static int pbx_builtin_setlanguage(struct ast_channel *chan, void *data)
|
|||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "SetLanguage is deprecated, please use SetVar(LANGUAGE()=language) instead.\n");
|
||||
ast_log(LOG_WARNING, "SetLanguage is deprecated, please use Set(LANGUAGE()=language) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
@ -5580,7 +5591,7 @@ static int pbx_builtin_atimeout(struct ast_channel *chan, void *data)
|
|||
int x = atoi((char *) data);
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "AbsoluteTimeout is deprecated, please use SetVar(TIMEOUT(absolute)=timeout) instead.\n");
|
||||
ast_log(LOG_WARNING, "AbsoluteTimeout is deprecated, please use Set(TIMEOUT(absolute)=timeout) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
@ -5596,7 +5607,7 @@ static int pbx_builtin_rtimeout(struct ast_channel *chan, void *data)
|
|||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "ResponseTimeout is deprecated, please use SetVar(TIMEOUT(response)=timeout) instead.\n");
|
||||
ast_log(LOG_WARNING, "ResponseTimeout is deprecated, please use Set(TIMEOUT(response)=timeout) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
@ -5616,7 +5627,7 @@ static int pbx_builtin_dtimeout(struct ast_channel *chan, void *data)
|
|||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "DigitTimeout is deprecated, please use SetVar(TIMEOUT(digit)=timeout) instead.\n");
|
||||
ast_log(LOG_WARNING, "DigitTimeout is deprecated, please use Set(TIMEOUT(digit)=timeout) instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
|
@ -5722,6 +5733,18 @@ void pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const
|
|||
}
|
||||
}
|
||||
|
||||
int pbx_builtin_setvar_old(struct ast_channel *chan, void *data)
|
||||
{
|
||||
static int deprecation_warning = 0;
|
||||
|
||||
if (!deprecation_warning) {
|
||||
ast_log(LOG_WARNING, "SetVar is deprecated, please use Set instead.\n");
|
||||
deprecation_warning = 1;
|
||||
}
|
||||
|
||||
return pbx_builtin_setvar(chan, data);
|
||||
}
|
||||
|
||||
int pbx_builtin_setvar(struct ast_channel *chan, void *data)
|
||||
{
|
||||
char *name, *value, *mydata;
|
||||
|
@ -5731,7 +5754,7 @@ int pbx_builtin_setvar(struct ast_channel *chan, void *data)
|
|||
int x;
|
||||
|
||||
if (!data || ast_strlen_zero(data)) {
|
||||
ast_log(LOG_WARNING, "SetVar requires at least one variable name/value pair.\n");
|
||||
ast_log(LOG_WARNING, "Set requires at least one variable name/value pair.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue