Asterisk može da koristi globalne i kanalne promenljive u argumentima komandi. Promenljivoj u dijelanskom planu (extensions.conf) možete pristupiti koristeći sledeći sintaks:
${foo}
gde je foo ime promenljive. Ime promenljive može se sastojati od bilo koje sekvence cifara i slova; i mora početi slovom. Imena korisnički definisanih promenljivih nisu osetljiva na veličinu slova: ${FOO} i ${Foo} se odnose na istu promenljivu; ali Asteriskove promenljive su osetljive na veličinu slova: ${EXTEN} radi, a ${exten} ne radi.
Postoje 3 tipa promenljivih: globalne, kanalne i promenljive okruženja.
Globalne promenljive se postavljaju ili u sekciji [global] fajla extensions.conf ili pomoću komande Set(GLOBAL(var)=value). Postavljena promenljiva je dostupna svim kanalima u svakom trenutku.
Kanalne promenljive se postavljaju komandom Set. Svaki kanal dobija svoj prostor za promenljive, stoga nema konflikata između kanala i promenljiva se automatski briše po završetku kanala.
Promenljive okruženja omogućavaju pristup UNIX promenljivim okruženja iz Asteriska. Spisak je ispod na ovoj stranici.
Ako definišete kanalnu promenljivu sa istim imenom kao i globalna (zapamtite: imena korisničkih promenljivih nisu osetljiva na veličinu slova, pozivi ovoj promenljivoj će vratiti vrednost kanalnu. Na primer, definisali ste kontekst [FooTest] sa jednim brojem 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})
Prilikom poziva broja 100 u kontekstu [FooTest], na konzoli sa detaljnim izlazom biće prikazano otprilike sledeće:
[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
Uočili smo da nakon poziva Set(GLOBAL(FOO=5)), ${FOO} i ${foo} vraćaju vrednost globalne promenljive, dajući vrednost 5. Nakon poziva Set(foo=5), globalna promenljiva FOO je sakrivena kanalnom promenljivom foo; ${FOO} i ${foo} obe daju vrednost 8. Vrednost globalne promenljive ostaje nepromenjena, 5, i drugi kanali, pristupajući ${foo}, dobiće vrednost 5.
Unapred definisane kanalne promenljive
Asterisk definiše nekoliko kanalnih promenljivih kojima se može pristupiti u dijelanskom planu. Imena promenljivih definisanih od strane Asteriska su osetljiva na veličinu slova.
${CONTEXT}: Ime trenutnog konteksta
${DATETIME}: Trenutni datum i vreme u formatu: !YYYY-MM-DD_HH:MM:SS
${TIMESTAMP}: Trenutni datum i vreme u formatu: YYYYMMDD-HHMMSS
${EPOCH}: Trenutno vreme UNIX ere (broj sekundi od 1 Jan 1970)
${EXTEN}: Trenutni telefonski broj (ekstenzija)
${INVALID_EXTEN}: Uključeni telefonski broj pri preusmeravanju na i (invalid) ekstenziju
${LANGUAGE}: Trenutna vrednost jezika. Pogledajte podršku za nacionalne jezike u Asterisku
${PRIORITY}: Trenutni prioritet
${CALLINGPRES}: PRI Call ID Presentation promenljiva za dolazne pozive (Vidi callingpres)
${CALLERID}: Identifikator pozivaoca (ime i broj)
${CALLERIDNAME}: Identifikator pozivaoca: ime
${CALLERIDNUM}: Identifikator pozivaoca: broj
${CHANNEL}: Ime trenutnog kanala
${RDNIS}: Trenutni preusmeravajući DNIS, Caller ID koji je preusmerio poziv. Vidi RDNIS
${SIPDOMAIN}: SIP domen odredišta dolaznog poziva (ako je primenljivo)
${SIP_CODEC}: Koristi se za postavljanje SIP kodeka za poziv
${SIPCALLID}: SIP dialog Call-ID: zaglavlje
${SIPUSERAGENT}: SIP korisnički agent zaglavlje
${UNIQUEID}: Trenutni jedinstveni ID SIP poziva
${HANGUPCAUSE}: Poslednji kod povratnog prekida na Zap kanalu povezanom sa PRI interfejsom
${DNID}: Identifikator biranog broja
${ACCOUNTCODE}: Kod naloga, ako je navedeno - vidi Asterisk naplaćivanje
