
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Asterisk Dial-Plan
|
393
installed; otherwise, it can be used to connect the call with a fax machine on an
analog channel.)
String Processing in the Dial-Plan
Since the dial-plan defines call flows, it infers programmatic logic. So, when you set
up a dial-plan, you’re really programming the PBX. For that reason, Asterisk includes
some syntactic capabilities that make your life as a PBX programmer simpler. One of
the most important of these capabilities is string processing.
In most dial-plan commands, arguments are supplied as textual expressions. They
may contain a mixture of literal values and variables. These expressions may be used
in whole or in part—through Asterisk’s extensive chopping capabilities. Consider
the following:
exten => 1,1,SetVar(wholename=DestinysEnd)
exten => 1,2,SetVar(firstword=${wholename:1:8})
In this example, ${wholename} is assigned the value DestinysEnd. Then, in the next
priority,
${firstword} is assigned the value of the first eight characters of
${wholename}. The syntax for string chopping and substringing is as follows:
${substring} = ${string:offset:length}
If the offset is less than 0, then it will be an offset from the end of the string, not the
beginning. If length isn’t supplied, the remainder of the string, from the offset on,
will be included in the