Page 173 - Asterisk™: The Future of Telephony
P. 173

CHAPTER 6

                                           More Dialplan Concepts














                                                For a list of all the ways technology has failed to improve
                                                             the quality of life, please press three.
                                                                             —Alice Kahn

               Alrighty. You’ve got the basics of dialplans down, but you know there’s more to come.
               If you don’t have the last chapter sorted out yet, please go back and give it another read.
               We’re about to get into more advanced topics.

               Expressions and Variable Manipulation


               As we begin our dive into the deeper aspects of dialplans, it is time to introduce you to
               a few tools that will greatly add to the power you can exercise in your dialplan. These
               constructs add incredible intelligence to your dialplan by enabling it to make decisions
               based on different criteria you want to define. Put on your thinking cap, and let’s get
               started.

               Basic Expressions

               Expressions are combinations of variables, operators, and values that you string to-
               gether to produce a result. An expression can test values, alter strings, or perform
               mathematical calculations. Let’s say we have a variable called COUNT. In plain English,
               two expressions using that variable might be “COUNT plus 1” and “COUNT divided by 2.”
               Each of these expressions has a particular result or value, depending on the value of
               the given variable.
               In Asterisk, expressions always begin with a dollar sign and an opening square bracket
               and end with a closing square bracket, as shown here:
                   $[expression]
               Thus, we would write the above two examples like this:
                   $[${COUNT} + 1]
                   $[${COUNT} / 2]

                                                                                     145
   168   169   170   171   172   173   174   175   176   177   178