Funkcije za rad sa stringovima
Dužina stringa
${LEN(foo)}
vrća dužinu stringa foo. Na primer,
exten => 100,1,Set(Fruit=pear)
exten => 100,2,NoOp(${LEN(Fruit)})
exten => 100,3,NoOp(${LEN(${Fruit})})
prva komanda NoOp treba da prikaže vrednost 5 (dužina stringa "pear"). Druga komanda NoOp treba da prikaže vrednost 4 (dužina stringa "pear").
Ova metoda omogućava odličnu proveru na prazne stringove i promenljive koje sadrže NULL.
Podstringovi
${foo:offset:length}
vrća podstring stringa foo, počevši od pomaka offset i ograničavajući vraćeni string na length karaktera.
- Ako je vrednost offset negativna, pomak se računa od kraja stringa, a ne od početka.
- Ako je vrednost length izostavljena ili negativna, dužina vraćenog stringa nije ograničena i vratiće se ceo string počevši od pomaka offset.
Primeri:
${123456789:1} - vraća string 23456789
${123456789:-4} - vraća string 6789
${123456789:0:3} - vraća string 123
${123456789:2:3} - vraća string 345
${123456789:-4:3} - vraća string 678
Primer upotrebe:
exten => _NXX.,1,Set(areacode=${EXTEN:0:3}) - dobijamo prve 3 cifre iz promenljive ${EXTEN}
exten => _516XXXXXXX,1,Dial(${EXTEN:3}) - dobijamo vrednost promenljive ${EXTEN} nakon 3. cifre
exten => 100,1,Set(whichVowel=4)
exten => 100,2,Set(foo=AEIOU:${whichVowel}:1) - promenljiva ${foo} će imati vrednost 'U'
Spajanje stringova
Za spajanje dva stringa, jednostavno napišite direktivu kako je prikazano ispod:
${foo}${bar}
555${theNumber}
${longDistancePrefix}555${theNumber}
Matematičke operacije sa promenljivama
Za matematičke radnje sa promenljivama, na primer, inkrement, množenje, sabiranje. Jednostavno napišite:
exten => s,1,Set(SOMEVAR=$[${SOMEVAR} + 1]) ; inkrement
exten => s,2,Set(SOMEVAR=$[2 * ${SOMEVAR}]) ; množenje i tako dalje.
Morate koristiti razmake u izrazima, kao što je prikazano gore.
Počevši od izdanja Asterisk 1.2, dostupna je i funkcija MATH...
exten => s,1,Set(SOMEVAR=${MATH(${SOMEVAR}+1)}) ; inkrement
exten => s,2,Set(SOMEVAR=${MATH(2*${SOMEVAR})}) ; množenje i tako dalje.
Napomene za različite verzije
- Promenljiva CALLINGPRES dodata u CVS HEAD 2004-09-10, uključena u izdanje Asterisk 1.2
- Promenljiva TOUCH_MONITOR dodata u CVS HEAD 2005-01-05, uključena u izdanje Asterisk 1.2
