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".