Asterisk může v argumentech příkazů používat globální a kanálové proměnné. K proměnné v dialplanu (extensions.conf) lze přistupovat pomocí následující syntaxe:
${foo}
kde foo je název proměnné. Název proměnné může obsahovat libovolnou posloupnost číslic a písmen a musí začínat písmenem. Uživatelsky definované názvy proměnných jsou case-insensitive: ${FOO} a ${Foo} odkazují na stejnou proměnnou; proměnné Asterisku jsou však case-sensitive: ${EXTEN} funguje, ale ${exten} ne.
Existují 3 typy proměnných: globální, kanálové a proměnné prostředí.
Globální proměnné se nastavují buď v sekci [global] souboru extensions.conf, nebo pomocí příkazu Set(GLOBAL(var)=value). Nastavená proměnná je dostupná všem kanálům kdykoliv.
Kanálové proměnné se nastavují příkazem Set. Každý kanál má svůj vlastní prostor proměnných, takže nedochází ke konfliktům mezi kanály a proměnná je automaticky odstraněna po ukončení kanálu.
Proměnné prostředí umožňují přístup z Asterisku k proměnným prostředí UNIXu. Seznam je uveden níže na této stránce.
Pokud deklarujete kanálovou proměnnou se stejným názvem jako globální (pamatujte: názvy uživatelských proměnných jsou case-insensitive, odkazy na tuto proměnnou budou vracet hodnotu kanálové proměnné). Například jste definovali kontext [FooTest] s jediným číslem 100:
[FooTest]
exten => 100,1,Set(GLOBAL(FOO)=5)
exten => 100,2,NoOp(${FOO})
exten => 100,3,NoOp(${foo})
exten => 100,4,Set(foo=8)
exten => 100,5,NoOp(${FOO})
exten => 100,6,NoOp(${foo})
Při volání na číslo 100 v kontextu [FooTest] se na konzoli s podrobným výstupem zobrazí přibližně následující:
[2008-10-28 08:35:00]     -- Executing [100@comlib-operator:1] Set("SIP/700-b6c28b40", "GLOBAL(FOO)=5") in new stack
[2008-10-28 08:35:00]   == Setting global variable 'FOO' to '5'
[2008-10-28 08:35:00]     -- Executing [100@comlib-operator:2] NoOp("SIP/700-b6c28b40", "5") in new stack
[2008-10-28 08:35:00]     -- Executing [100@comlib-operator:3] NoOp("SIP/700-b6c28b40", "5") in new stack
[2008-10-28 08:35:00]     -- Executing [100@comlib-operator:4] Set("SIP/700-b6c28b40", "foo=8") in new stack
[2008-10-28 08:35:00]     -- Executing [100@comlib-operator:5] NoOp("SIP/700-b6c28b40", "8") in new stack
[2008-10-28 08:35:00]     -- Executing [100@comlib-operator:6] NoOp("SIP/700-b6c28b40", "8") in new stack
Zjistili jsme, že po volání Set(GLOBAL(FOO=5)) vrací ${FOO} i ${foo} hodnotu globální proměnné, tedy 5. Po volání Set(foo=5) je globální proměnná FOO překryta kanálovou proměnnou foo; ${FOO} i ${foo} obě vrací hodnotu 8. Hodnota globální proměnné zůstává nezměněna, tedy 5, a jiné kanály, které přistupují k ${foo}, získají hodnotu 5.
Předdefinované kanálové proměnné
Asterisk definuje několik kanálových proměnných, ke kterým lze přistupovat v dialplanu. Názvy proměnných definovaných Asteriskem jsou case-sensitive.
${CONTEXT}: Název aktuálního kontextu
${DATETIME}: Aktuální datum a čas ve formátu: !YYYY-MM-DD_HH:MM:SS
${TIMESTAMP}: Aktuální datum a čas ve formátu: YYYYMMDD-HHMMSS
${EPOCH}: Aktuální čas UNIXové epochy (počet sekund od 1. ledna 1970)
${EXTEN}: Aktuální telefonní číslo (extension)
${INVALID_EXTEN}: Zvolené telefonní číslo při přesměrování na i (invalid) extension
${LANGUAGE}: Aktuální hodnota jazyka. Viz podpora národních jazyků v Asterisku
${PRIORITY}: Aktuální priorita
${CALLINGPRES}: Proměnná prezentace ID hovoru PRI pro příchozí hovory (viz callingpres)
${CALLERID}: Identifikátor volajícího (jméno a číslo)
${CALLERIDNAME}: Identifikátor volajícího: jméno
${CALLERIDNUM}: Identifikátor volajícího: číslo
${CHANNEL}: Název aktuálního kanálu
${RDNIS}: Aktuální přesměrovávající DNIS, Caller ID, který přesměroval hovor. Viz RDNIS
${SIPDOMAIN}: Doména cíle SIP příchozího hovoru (pokud je to vhodné)
${SIP_CODEC}: Používá se k nastavení kodeku SIP pro hovor
${SIPCALLID}: Hlavička Call-ID dialogu SIP
${SIPUSERAGENT}: Hlavička uživatelského agenta SIP
${UNIQUEID}: Unikátní ID aktuálního hovoru SIP
${HANGUPCAUSE}: Poslední návratový kód odpojení na kanálu Zap připojeném k rozhraní PRI
${DNID}: Identifikátor volaného čísla
${ACCOUNTCODE}: Kód účtu, pokud je zadán - viz fakturace Asterisku