Page 395 - Asterisk™: The Future of Telephony
P. 395
APPENDIX B
Application Reference
Applications are the core functionality of the dialplan. Generally these all will operate
on the channel, whereas functions, described in Appendix F, merely return values that
can be used by applications. There are a few applications that still simply return values,
but these will probably be deprecated in a future version and replaced with dialplan
functions.
There are a few things to keep in mind about applications. First, when they exit, they
will either terminate normally or abnormally. Abnormal termination almost always
occurs when an application detects that the channel has hung up (or if it doesn’t, the
dialplan will detect that shortly thereafter). An application may also exit abnormally
when it wishes to indicate to the dialplan that some condition has not been satisfied
and that it should force a hangup. In all other cases, an application will exit normally,
which indicates that processing should continue at the next priority in the dialplan.
In many cases, if you wish to override the application’s wish to cause a hangup, you
may wrap the application in a TryExec().
In many places throughout this reference, you will see what’s described as a label. This
is shorthand for describing a location in the dialplan, whether it is simply a priority;
an extension and a priority; or a context, an extension, and a priority. Note that if a
text label is defined for a particular priority, the priority may be replaced with that
text label in any of those cases. See the GotoIf() application for more information
and an example.
You will find many of the examples in this appendix to contain num-
bered priorities, which is not the preferred method of writing dialplans.
We prefer the use of the 'n' priority for all priority numbers except 1
(which is required), but we have decided to utilize them in order to make
some of the examples more clear.
AddQueueMember() Dynamically adds queue members to the specified call queue
AddQueueMember(queuename[,interface[,penalty,[option,[membername]]]])
367