Page 527 - Asterisk™: The Future of Telephony
P. 527
See Also
SendURL()
CUT Cuts a string based on a given delimiter
CUT(varname,char-delim,range-s)
CUT() works in a similar manner to the cut(1) Unix command-line tool, and is, in fact,
designed based upon that tool.
In the dialplan, you may specify character offsets to select a substring of a variable based
purely on the uniform length of characters (namely 1). CUT() is designed to help you
work with data that may have multiple, variable-length sections, divided by a common
delimiter.
The most common case is the name of a channel, which is composed of two parts, a
base name and a unique identifier (e.g., SIP/tom-abcd1234 or SIP/bert-1a2b3c4d).
CUT() may be used to trim the unique identifier, no matter how long the base name may
be:
; Trim the unique identifier from the current channel name
exten => 123,1,Set(chan=${CUT(CHANNEL,-,1)})
varname is the name of the variable that will be operated on. Note that CUT() operates
on the name of a variable, rather than upon the value of a variable. CUT() is somewhat
unique in this regard.
char-delim is the character that will serve as the delimiter ('-' is the default)
range-spec allows you to define which fields are returned. The range-spec can be speci-
fied as a range with - (e.g., 1-3) or a group of ranges and field numbers by separating
each with & (e.g., 1&3-4). Note that if multiple field numbers are specified, the resulting
value will have its fields separated by the same delimiter.
range-spec uses a 1-based offset. That is, the first field is field 1 (as
opposed to a 0-based offset, where the first field would be 0).
See Also
FIELDQTY()
DB Read or write to AstDB
DB(family/key)
CUT | 499