# Asterisk Project : About Variables

Added by mdavenport , edited by mdavenport on Aug 31, 2010

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,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,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, Set takes as the first argument (before the =) a variable name, so:

    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".
In fact, everything contained ${here} is just replaced with the value of the variable "here".