diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-01-12 03:23:35 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-01-12 03:23:35 +0000 |
commit | 7858c6e9c0828442dfc7220558a29d60514b2670 (patch) | |
tree | e7db838f765a28c620daf1f6da2078e41c35e8e2 /README.variables | |
parent | 2e38e1fea41c5b767e3f3ee7fe7ebea2d283bfda (diff) |
Move lots of README's
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1970 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'README.variables')
-rwxr-xr-x | README.variables | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/README.variables b/README.variables deleted file mode 100755 index 69a5769e5..000000000 --- a/README.variables +++ /dev/null @@ -1,150 +0,0 @@ -GENERAL ENCHANCEMENTS TO EXTENSION LOGIC : - -QUOTING: - -exten => s,5,BackGround,blabla - -The parameter (blabla) can be quoted ("blabla"). In this case, a -comma does not terminate the field. - -Also, characters special to variable substitution, expression evaluation, etc -(see below), can be quoted. For example, to literally use a $ on the -string "$1231", quote it with a preceeding \. Special characters that must -be quoted to be used, are [ ] $ " \. (to write \ itself, use \\). - -VARIABLES: - -Parameter strings can include variables. Variable names are arbitrary strings. -They are stored in the respective channel structure. - -To set a variable to a particular value, do : - -;exten => 1,2,SetVar,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} - -There are also the following special variables: - -${CALLERID} Caller ID -${CALLERIDNAME} Caller ID Name only -${CALLERIDNUM} Caller ID Number only -${EXTEN} Current extension -${CONTEXT} Current context -${PRIORITY} Current priority -${CHANNEL} Current channel name -${ENV(VAR)} Environmental variable VAR -${LEN(VAR)} String length of VAR (integer) -${EPOCH} Current unix style epoch -${DATETIME} Current date time in the format: YYYY-MM-DD_HH:MM:SS -${TIMESTAMP} Current date time in the format: YYYYMMDD-HHMMSS -${UNIQUEID} Current call unique identifier -${DNID} Dialed Number Identifier -${RDNIS} Redirected Dial Number ID Service -${HANGUPCAUSE} Hangup cause on last PRI hangup -${ACCOUNTCODE} Account code (if specified) - -${SIPDOMAIN} SIP destination domain of an inbound call (if appropriate) - -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 -(before the =) a variable name, so: - -;exten => 1,2,SetVar,koko=lala -;exten => 1,3,SetVar,${koko}=blabla - -stores to the variable "koko" the value "lala" and to variable "lala" the -value "blabla". - -In fact, everything contained ${here} is just replaced with the value of -the variable "here". - -EXPRESSIONS: - -Everything contained inside a bracket pair prefixed by a $ (like $[this]) is -considered as an expression and it is evaluated. Evaluation works similar to -(but is done on a later stage than) variable substitution: the expression -(including the square brackets) is replaced by the result of the expression -evaluation. The arguments and operands of the expression MUST BE separated -with spaces (take care NOT to leave ANY spaces between opening and closing -square brackets and the first and last arguments). - -For example, after the sequence: - -exten => 1,1,SetVar,"lala=$[1 + 2]"; -exten => 1,2,SetVar,"koko=$[2 * ${lala}]"; - -the value of variable koko is "6". - -Operators are listed below in order of increasing precedence. Operators -with equal precedence are grouped within { } symbols. - - expr1 | expr2 - Return the evaluation of expr1 if it is neither an empty string - nor zero; otherwise, returns the evaluation of expr2. - - expr1 & expr2 - Return the evaluation of expr1 if neither expression evaluates to - an empty string or zero; otherwise, returns zero. - - expr1 {=, >, >=, <, <=, !=} expr2 - Return the results of integer comparison if both arguments are - integers; otherwise, returns the results of string comparison - using the locale-specific collation sequence. The result of each - comparison is 1 if the specified relation is true, or 0 if the - relation is false. - - expr1 {+, -} expr2 - Return the results of addition or subtraction of integer-valued - arguments. - - expr1 {*, /, %} expr2 - Return the results of multiplication, integer division, or - remainder of integer-valued arguments. - - expr1 : expr2 - The `:' operator matches expr1 against expr2, which must be a - regular expression. The regular expression is anchored to the - beginning of the string with an implicit `^'. - - If the match succeeds and the pattern contains at least one regu- - lar expression subexpression `\(...\)', the string correspond- - ing to `\1' is returned; otherwise the matching operator - returns the number of characters matched. If the match fails and - the pattern contains a regular expression subexpression the null - string is returned; otherwise 0. - -Parentheses are used for grouping in the usual manner. - -The parser must be parsed with bison (bison is REQUIRED - yacc cannot -produce pure parsers, which are reentrant) - -CONDITIONALS - -There is one conditional operator - the conditional goto : - -;exten => 1,2,gotoif,condition?label1:label2 - -If condition is true go to label1, else go to label2. Labels are interpreted -exactly as in the normal goto command. - -"condition" is just a string. If the string is empty or "0", the condition -is considered to be false, if it's anything else, the condition is true. -This is designed to be used together with the expression syntax described -above, eg : - -exten => 1,2,gotoif,$[${CALLERID} = 123456]?2|1:3|1 - - -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,5,GotoIf,"$[${varc} = 6]?99|1:s|6"; - |