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
   390   391   392   393   394   395   396   397   398   399   400