Merged revisions 58946 via svnmerge from
[asterisk/asterisk.git] / doc / ast_appdocs.tex
1 % This file is automatically generated.  Any manual edits will be lost.
2 \section{AddQueueMember}
3 \subsection{Synopsis}
4 \begin{verbatim}
5 Dynamically adds queue members
6 \end{verbatim}
7 \subsection{Description}
8 \begin{verbatim}
9    AddQueueMember(queuename[|interface[|penalty[|options[|membername]]]]):
10 Dynamically adds interface to an existing queue.
11 If the interface is already in the queue and there exists an n+101 priority
12 then it will then jump to this priority.  Otherwise it will return an error
13 The option string may contain zero or more of the following characters:
14        'j' -- jump to +101 priority when appropriate.
15   This application sets the following channel variable upon completion:
16      AQMSTATUS    The status of the attempt to add a queue member as a 
17                      text string, one of
18            ADDED | MEMBERALREADY | NOSUCHQUEUE 
19 Example: AddQueueMember(techsupport|SIP/3000)
20
21 \end{verbatim}
22
23
24 \section{ADSIProg}
25 \subsection{Synopsis}
26 \begin{verbatim}
27 Load Asterisk ADSI Scripts into phone
28 \end{verbatim}
29 \subsection{Description}
30 \begin{verbatim}
31   ADSIProg(script): This application programs an ADSI Phone with the given
32 script. If nothing is specified, the default script (asterisk.adsi) is used.
33
34 \end{verbatim}
35
36
37 \section{AgentCallbackLogin}
38 \subsection{Synopsis}
39 \begin{verbatim}
40 Call agent callback login
41 \end{verbatim}
42 \subsection{Description}
43 \begin{verbatim}
44   AgentCallbackLogin([AgentNo][|[options][|[exten]@context]]):
45 Asks the agent to login to the system with callback.
46 The agent's callback extension is called (optionally with the specified
47 context).
48 The option string may contain zero or more of the following characters:
49       's' -- silent login - do not announce the login ok segment agent logged in/off
50
51 \end{verbatim}
52
53
54 \section{AgentLogin}
55 \subsection{Synopsis}
56 \begin{verbatim}
57 Call agent login
58 \end{verbatim}
59 \subsection{Description}
60 \begin{verbatim}
61   AgentLogin([AgentNo][|options]):
62 Asks the agent to login to the system.  Always returns -1.  While
63 logged in, the agent can receive calls and will hear a 'beep'
64 when a new call comes in. The agent can dump the call by pressing
65 the star key.
66 The option string may contain zero or more of the following characters:
67       's' -- silent login - do not announce the login ok segment after agent logged in/off
68
69 \end{verbatim}
70
71
72 \section{AgentMonitorOutgoing}
73 \subsection{Synopsis}
74 \begin{verbatim}
75 Record agent's outgoing call
76 \end{verbatim}
77 \subsection{Description}
78 \begin{verbatim}
79   AgentMonitorOutgoing([options]):
80 Tries to figure out the id of the agent who is placing outgoing call based on
81 comparison of the callerid of the current interface and the global variable 
82 placed by the AgentCallbackLogin application. That's why it should be used only
83 with the AgentCallbackLogin app. Uses the monitoring functions in chan_agent 
84 instead of Monitor application. That have to be configured in the agents.conf file.
85
86 Return value:
87 Normally the app returns 0 unless the options are passed. Also if the callerid or
88 the agentid are not specified it'll look for n+101 priority.
89
90 Options:
91         'd' - make the app return -1 if there is an error condition and there is
92               no extension n+101
93         'c' - change the CDR so that the source of the call is 'Agent/agent_id'
94         'n' - don't generate the warnings when there is no callerid or the
95               agentid is not known.
96              It's handy if you want to have one context for agent and non-agent calls.
97
98 \end{verbatim}
99
100
101 \section{AGI}
102 \subsection{Synopsis}
103 \begin{verbatim}
104 Executes an AGI compliant application
105 \end{verbatim}
106 \subsection{Description}
107 \begin{verbatim}
108   [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant
109 program on a channel. AGI allows Asterisk to launch external programs
110 written in any language to control a telephony channel, play audio,
111 read DTMF digits, etc. by communicating with the AGI protocol on stdin
112 and stdout.
113   This channel will stop dialplan execution on hangup inside of this
114 application, except when using DeadAGI.  Otherwise, dialplan execution
115 will continue normally.
116   A locally executed AGI script will receive SIGHUP on hangup from the channel
117 except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
118 variable to "no" before executing the AGI application.
119   Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
120 on file descriptor 3
121
122   Use the CLI command 'agi show' to list available agi commands
123   This application sets the following channel variable upon completion:
124      AGISTATUS      The status of the attempt to the run the AGI script
125                     text string, one of SUCCESS | FAILED | HANGUP
126
127 \end{verbatim}
128
129
130 \section{AlarmReceiver}
131 \subsection{Synopsis}
132 \begin{verbatim}
133 Provide support for receiving alarm reports from a burglar or fire alarm panel
134 \end{verbatim}
135 \subsection{Description}
136 \begin{verbatim}
137   AlarmReceiver(): Only 1 signalling format is supported at this time: Ademco
138 Contact ID. This application should be called whenever there is an alarm
139 panel calling in to dump its events. The application will handshake with the
140 alarm panel, and receive events, validate them, handshake them, and store them
141 until the panel hangs up. Once the panel hangs up, the application will run the
142 system command specified by the eventcmd setting in alarmreceiver.conf and pipe
143 the events to the standard input of the application. The configuration file also
144 contains settings for DTMF timing, and for the loudness of the acknowledgement
145 tones.
146
147 \end{verbatim}
148
149
150 \section{AMD}
151 \subsection{Synopsis}
152 \begin{verbatim}
153 Attempts to detect answering machines
154 \end{verbatim}
155 \subsection{Description}
156 \begin{verbatim}
157   AMD([initialSilence][|greeting][|afterGreetingSilence][|totalAnalysisTime]
158       [|minimumWordLength][|betweenWordsSilence][|maximumNumberOfWords]
159       [|silenceThreshold])
160   This application attempts to detect answering machines at the beginning
161   of outbound calls.  Simply call this application after the call
162   has been answered (outbound only, of course).
163   When loaded, AMD reads amd.conf and uses the parameters specified as
164   default values. Those default values get overwritten when calling AMD
165   with parameters.
166 - 'initialSilence' is the maximum silence duration before the greeting. If
167    exceeded then MACHINE.
168 - 'greeting' is the maximum length of a greeting. If exceeded then MACHINE.
169 - 'afterGreetingSilence' is the silence after detecting a greeting.
170    If exceeded then HUMAN.
171 - 'totalAnalysisTime' is the maximum time allowed for the algorithm to decide
172    on a HUMAN or MACHINE.
173 - 'minimumWordLength'is the minimum duration of Voice to considered as a word.
174 - 'betweenWordsSilence' is the minimum duration of silence after a word to 
175    consider the audio that follows as a new word.
176 - 'maximumNumberOfWords'is the maximum number of words in the greeting. 
177    If exceeded then MACHINE.
178 - 'silenceThreshold' is the silence threshold.
179 This application sets the following channel variable upon completion:
180     AMDSTATUS - This is the status of the answering machine detection.
181                 Possible values are:
182                 MACHINE | HUMAN | NOTSURE | HANGUP
183     AMDCAUSE - Indicates the cause that led to the conclusion.
184                Possible values are:
185                TOOLONG-<%d total_time>
186                INITIALSILENCE-<%d silenceDuration>-<%d initialSilence>
187                HUMAN-<%d silenceDuration>-<%d afterGreetingSilence>
188                MAXWORDS-<%d wordsCount>-<%d maximumNumberOfWords>
189                LONGGREETING-<%d voiceDuration>-<%d greeting>
190
191 \end{verbatim}
192
193
194 \section{Answer}
195 \subsection{Synopsis}
196 \begin{verbatim}
197 Answer a channel if ringing
198 \end{verbatim}
199 \subsection{Description}
200 \begin{verbatim}
201   Answer([delay]): If the call has not been answered, this application will
202 answer it. Otherwise, it has no effect on the call. If a delay is specified,
203 Asterisk will wait this number of milliseconds before returning to
204 the dialplan after answering the call.
205
206 \end{verbatim}
207
208
209 \section{AppendCDRUserField}
210 \subsection{Synopsis}
211 \begin{verbatim}
212 Append to the CDR user field
213 \end{verbatim}
214 \subsection{Description}
215 \begin{verbatim}
216 [Synopsis]
217 AppendCDRUserField(value)
218
219 [Description]
220 AppendCDRUserField(value): Append value to the CDR user field
221        The Call Data Record (CDR) user field is an extra field you
222        can use for data not stored anywhere else in the record.
223        CDR records can be used for billing or storing other arbitrary data
224        (I.E. telephone survey responses)
225        Also see SetCDRUserField().
226
227 This application is deprecated in favor of Set(CDR(userfield)=...)
228
229 \end{verbatim}
230
231
232 \section{Authenticate}
233 \subsection{Synopsis}
234 \begin{verbatim}
235 Authenticate a user
236 \end{verbatim}
237 \subsection{Description}
238 \begin{verbatim}
239   Authenticate(password[|options[|maxdigits]]): This application asks the caller
240 to enter a given password in order to continue dialplan execution. If the password
241 begins with the '/' character, it is interpreted as a file which contains a list of
242 valid passwords, listed 1 password per line in the file.
243   When using a database key, the value associated with the key can be anything.
244 Users have three attempts to authenticate before the channel is hung up. If the
245 passsword is invalid, the 'j' option is specified, and priority n+101 exists,
246 dialplan execution will continnue at this location.
247   Options:
248      a - Set the channels' account code to the password that is entered
249      d - Interpret the given path as database key, not a literal file
250      j - Support jumping to n+101 if authentication fails
251      m - Interpret the given path as a file which contains a list of account
252          codes and password hashes delimited with ':', listed one per line in
253          the file. When one of the passwords is matched, the channel will have
254          its account code set to the corresponding account code in the file.
255      r - Remove the database key upon successful entry (valid with 'd' only)
256      maxdigits  - maximum acceptable number of digits. Stops reading after
257          maxdigits have been entered (without requiring the user to
258          press the '#' key).
259          Defaults to 0 - no limit - wait for the user press the '#' key.
260
261 \end{verbatim}
262
263
264 \section{BackGround}
265 \subsection{Synopsis}
266 \begin{verbatim}
267 Play an audio file while waiting for digits of an extension to go to.
268 \end{verbatim}
269 \subsection{Description}
270 \begin{verbatim}
271   Background(filename1[&filename2...][|options[|langoverride][|context]]):
272 This application will play the given list of files while waiting for an
273 extension to be dialed by the calling channel. To continue waiting for digits
274 after this application has finished playing files, the WaitExten application
275 should be used. The 'langoverride' option explicitly specifies which language
276 to attempt to use for the requested sound files. If a 'context' is specified,
277 this is the dialplan context that this application will use when exiting to a
278 dialed extension.  If one of the requested sound files does not exist, call processing will be
279 terminated.
280   Options:
281     s - Causes the playback of the message to be skipped
282           if the channel is not in the 'up' state (i.e. it
283           hasn't been answered yet). If this happens, the
284           application will return immediately.
285     n - Don't answer the channel before playing the files.
286     m - Only break if a digit hit matches a one digit
287           extension in the destination context.
288
289 \end{verbatim}
290
291
292 \section{BackgroundDetect}
293 \subsection{Synopsis}
294 \begin{verbatim}
295 Background a file with talk detect
296 \end{verbatim}
297 \subsection{Description}
298 \begin{verbatim}
299   BackgroundDetect(filename[|sil[|min|[max]]]):  Plays  back  a  given
300 filename, waiting for interruption from a given digit (the digit must
301 start the beginning of a valid extension, or it will be ignored).
302 During the playback of the file, audio is monitored in the receive
303 direction, and if a period of non-silence which is greater than 'min' ms
304 yet less than 'max' ms is followed by silence for at least 'sil' ms then
305 the audio playback is aborted and processing jumps to the 'talk' extension
306 if available.  If unspecified, sil, min, and max default to 1000, 100, and
307 infinity respectively.
308
309 \end{verbatim}
310
311
312 \section{Busy}
313 \subsection{Synopsis}
314 \begin{verbatim}
315 Indicate the Busy condition
316 \end{verbatim}
317 \subsection{Description}
318 \begin{verbatim}
319   Busy([timeout]): This application will indicate the busy condition to
320 the calling channel. If the optional timeout is specified, the calling channel
321 will be hung up after the specified number of seconds. Otherwise, this
322 application will wait until the calling channel hangs up.
323
324 \end{verbatim}
325
326
327 \section{ChangeMonitor}
328 \subsection{Synopsis}
329 \begin{verbatim}
330 Change monitoring filename of a channel
331 \end{verbatim}
332 \subsection{Description}
333 \begin{verbatim}
334 ChangeMonitor(filename_base)
335 Changes monitoring filename of a channel. Has no effect if the channel is not monitored
336 The argument is the new filename base to use for monitoring this channel.
337
338 \end{verbatim}
339
340
341 \section{ChanIsAvail}
342 \subsection{Synopsis}
343 \begin{verbatim}
344 Check channel availability
345 \end{verbatim}
346 \subsection{Description}
347 \begin{verbatim}
348   ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): 
349 This application will check to see if any of the specified channels are
350 available. The following variables will be set by this application:
351   ${AVAILCHAN}     - the name of the available channel, if one exists
352   ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel
353   ${AVAILSTATUS}   - the status code for the available channel
354   Options:
355     s - Consider the channel unavailable if the channel is in use at all
356     j - Support jumping to priority n+101 if no channel is available
357
358 \end{verbatim}
359
360
361 \section{ChannelRedirect}
362 \subsection{Synopsis}
363 \begin{verbatim}
364 Redirects given channel to a dialplan target.
365 \end{verbatim}
366 \subsection{Description}
367 \begin{verbatim}
368 ChannelRedirect(channel|[[context|]extension|]priority):
369   Sends the specified channel to the specified extension priority
370
371 \end{verbatim}
372
373
374 \section{ChanSpy}
375 \subsection{Synopsis}
376 \begin{verbatim}
377 Listen to a channel, and optionally whisper into it
378 \end{verbatim}
379 \subsection{Description}
380 \begin{verbatim}
381   ChanSpy([chanprefix][|options]): This application is used to listen to the
382 audio from an Asterisk channel. This includes the audio coming in and
383 out of the channel being spied on. If the 'chanprefix' parameter is specified,
384 only channels beginning with this string will be spied upon.
385   While spying, the following actions may be performed:
386     - Dialing # cycles the volume level.
387     - Dialing * will stop spying and look for another channel to spy on.
388     - Dialing a series of digits followed by # builds a channel name to append
389       to 'chanprefix'. For example, executing ChanSpy(Agent) and then dialing
390       the digits '1234#' while spying will begin spying on the channel
391       'Agent/1234'.
392   Options:
393     b             - Only spy on channels involved in a bridged call.
394     g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
395                     contain 'grp' in an optional : delimited list.
396     q             - Don't play a beep when beginning to spy on a channel, or speak the
397                     selected channel name.
398     r[(basename)] - Record the session to the monitor spool directory. An
399                     optional base for the filename may be specified. The
400                     default is 'chanspy'.
401     v([value])    - Adjust the initial volume in the range from -4 to 4. A
402                     negative value refers to a quieter setting.
403     w             - Enable 'whisper' mode, so the spying channel can talk to
404                     the spied-on channel.
405     W             - Enable 'private whisper' mode, so the spying channel can
406                     talk to the spied-on channel but cannot listen to that
407                     channel.
408
409 \end{verbatim}
410
411
412 \section{Congestion}
413 \subsection{Synopsis}
414 \begin{verbatim}
415 Indicate the Congestion condition
416 \end{verbatim}
417 \subsection{Description}
418 \begin{verbatim}
419   Congestion([timeout]): This application will indicate the congestion
420 condition to the calling channel. If the optional timeout is specified, the
421 calling channel will be hung up after the specified number of seconds.
422 Otherwise, this application will wait until the calling channel hangs up.
423
424 \end{verbatim}
425
426
427 \section{ContinueWhile}
428 \subsection{Synopsis}
429 \begin{verbatim}
430 Restart a While loop
431 \end{verbatim}
432 \subsection{Description}
433 \begin{verbatim}
434 Usage:  ContinueWhile()
435 Returns to the top of the while loop and re-evaluates the conditional.
436
437 \end{verbatim}
438
439
440 \section{ControlPlayback}
441 \subsection{Synopsis}
442 \begin{verbatim}
443 Play a file with fast forward and rewind
444 \end{verbatim}
445 \subsection{Description}
446 \begin{verbatim}
447   ControlPlayback(file[|skipms[|ff[|rew[|stop[|pause[|restart|options]]]]]]]):
448 This application will play back the given filename. By default, the '*' key
449 can be used to rewind, and the '#' key can be used to fast-forward.
450 Parameters:
451   skipms  - This is number of milliseconds to skip when rewinding or
452             fast-forwarding.
453   ff      - Fast-forward when this DTMF digit is received.
454   rew     - Rewind when this DTMF digit is received.
455   stop    - Stop playback when this DTMF digit is received.
456   pause   - Pause playback when this DTMF digit is received.
457   restart - Restart playback when this DTMF digit is received.
458 Options:
459   j - Jump to priority n+101 if the requested file is not found.
460 This application sets the following channel variable upon completion:
461   CPLAYBACKSTATUS -  This variable contains the status of the attempt as a text
462                      string, one of: SUCCESS | USERSTOPPED | ERROR
463
464 \end{verbatim}
465
466
467 \section{DateTime}
468 \subsection{Synopsis}
469 \begin{verbatim}
470 Says a specified time in a custom format
471 \end{verbatim}
472 \subsection{Description}
473 \begin{verbatim}
474 DateTime([unixtime][|[timezone][|format]])
475   unixtime: time, in seconds since Jan 1, 1970.  May be negative.
476               defaults to now.
477   timezone: timezone, see /usr/share/zoneinfo for a list.
478               defaults to machine default.
479   format:   a format the time is to be said in.  See voicemail.conf.
480               defaults to "ABdY 'digits/at' IMp"
481
482 \end{verbatim}
483
484
485 \section{DBdel}
486 \subsection{Synopsis}
487 \begin{verbatim}
488 Delete a key from the database
489 \end{verbatim}
490 \subsection{Description}
491 \begin{verbatim}
492   DBdel(family/key): This application will delete a key from the Asterisk
493 database.
494   This application has been DEPRECATED in favor of the DB_DELETE function.
495
496 \end{verbatim}
497
498
499 \section{DBdeltree}
500 \subsection{Synopsis}
501 \begin{verbatim}
502 Delete a family or keytree from the database
503 \end{verbatim}
504 \subsection{Description}
505 \begin{verbatim}
506   DBdeltree(family[/keytree]): This application will delete a family or keytree
507 from the Asterisk database
508
509 \end{verbatim}
510
511
512 \section{DeadAGI}
513 \subsection{Synopsis}
514 \begin{verbatim}
515 Executes AGI on a hungup channel
516 \end{verbatim}
517 \subsection{Description}
518 \begin{verbatim}
519   [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant
520 program on a channel. AGI allows Asterisk to launch external programs
521 written in any language to control a telephony channel, play audio,
522 read DTMF digits, etc. by communicating with the AGI protocol on stdin
523 and stdout.
524   This channel will stop dialplan execution on hangup inside of this
525 application, except when using DeadAGI.  Otherwise, dialplan execution
526 will continue normally.
527   A locally executed AGI script will receive SIGHUP on hangup from the channel
528 except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
529 variable to "no" before executing the AGI application.
530   Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
531 on file descriptor 3
532
533   Use the CLI command 'agi show' to list available agi commands
534   This application sets the following channel variable upon completion:
535      AGISTATUS      The status of the attempt to the run the AGI script
536                     text string, one of SUCCESS | FAILED | HANGUP
537
538 \end{verbatim}
539
540
541 \section{Dial}
542 \subsection{Synopsis}
543 \begin{verbatim}
544 Place a call and connect to the current channel
545 \end{verbatim}
546 \subsection{Description}
547 \begin{verbatim}
548   Dial(Technology/resource[&Tech2/resource2...][|timeout][|options][|URL]):
549 This application will place calls to one or more specified channels. As soon
550 as one of the requested channels answers, the originating channel will be
551 answered, if it has not already been answered. These two channels will then
552 be active in a bridged call. All other channels that were requested will then
553 be hung up.
554   Unless there is a timeout specified, the Dial application will wait
555 indefinitely until one of the called channels answers, the user hangs up, or
556 if all of the called channels are busy or unavailable. Dialplan executing will
557 continue if no requested channels can be called, or if the timeout expires.
558
559   This application sets the following channel variables upon completion:
560     DIALEDTIME   - This is the time from dialing a channel until when it
561                    is disconnected.
562     ANSWEREDTIME - This is the amount of time for actual call.
563     DIALSTATUS   - This is the status of the call:
564                    CHANUNAVAIL | CONGESTION | NOANSWER | BUSY | ANSWER | CANCEL
565                    DONTCALL | TORTURE | INVALIDARGS
566   For the Privacy and Screening Modes, the DIALSTATUS variable will be set to
567 DONTCALL if the called party chooses to send the calling party to the 'Go Away'
568 script. The DIALSTATUS variable will be set to TORTURE if the called party
569 wants to send the caller to the 'torture' script.
570   This application will report normal termination if the originating channel
571 hangs up, or if the call is bridged and either of the parties in the bridge
572 ends the call.
573   The optional URL will be sent to the called party if the channel supports it.
574   If the OUTBOUND_GROUP variable is set, all peer channels created by this
575 application will be put into that group (as in Set(GROUP()=...).
576
577   Options:
578     A(x) - Play an announcement to the called party, using 'x' as the file.
579     C    - Reset the CDR for this call.
580     d    - Allow the calling user to dial a 1 digit extension while waiting for
581            a call to be answered. Exit to that extension if it exists in the
582            current context, or the context defined in the EXITCONTEXT variable,
583            if it exists.
584     D([called][:calling]) - Send the specified DTMF strings *after* the called
585            party has answered, but before the call gets bridged. The 'called'
586            DTMF string is sent to the called party, and the 'calling' DTMF
587            string is sent to the calling party. Both parameters can be used
588            alone.
589     f    - Force the callerid of the *calling* channel to be set as the
590            extension associated with the channel using a dialplan 'hint'.
591            For example, some PSTNs do not allow CallerID to be set to anything
592            other than the number assigned to the caller.
593     g    - Proceed with dialplan execution at the current extension if the
594            destination channel hangs up.
595     G(context^exten^pri) - If the call is answered, transfer the calling party to
596            the specified priority and the called party to the specified priority+1.
597            Optionally, an extension, or extension and context may be specified. 
598            Otherwise, the current extension is used. You cannot use any additional
599            action post answer options in conjunction with this option.
600     h    - Allow the called party to hang up by sending the '*' DTMF digit.
601     H    - Allow the calling party to hang up by hitting the '*' DTMF digit.
602     i    - Asterisk will ignore any forwarding requests it may receive on this
603            dial attempt.
604     j    - Jump to priority n+101 if all of the requested channels were busy.
605     L(x[:y][:z]) - Limit the call to 'x' ms. Play a warning when 'y' ms are
606            left. Repeat the warning every 'z' ms. The following special
607            variables can be used with this option:
608            * LIMIT_PLAYAUDIO_CALLER   yes|no (default yes)
609                                       Play sounds to the caller.
610            * LIMIT_PLAYAUDIO_CALLEE   yes|no
611                                       Play sounds to the callee.
612            * LIMIT_TIMEOUT_FILE       File to play when time is up.
613            * LIMIT_CONNECT_FILE       File to play when call begins.
614            * LIMIT_WARNING_FILE       File to play as warning if 'y' is defined.
615                                       The default is to say the time remaining.
616     m([class]) - Provide hold music to the calling party until a requested
617            channel answers. A specific MusicOnHold class can be
618            specified.
619     M(x[^arg]) - Execute the Macro for the *called* channel before connecting
620            to the calling channel. Arguments can be specified to the Macro
621            using '^' as a delimeter. The Macro can set the variable
622            MACRO_RESULT to specify the following actions after the Macro is
623            finished executing.
624            * ABORT        Hangup both legs of the call.
625            * CONGESTION   Behave as if line congestion was encountered.
626            * BUSY         Behave as if a busy signal was encountered. This will also
627                           have the application jump to priority n+101 if the
628                           'j' option is set.
629            * CONTINUE     Hangup the called party and allow the calling party
630                           to continue dialplan execution at the next priority.
631            * GOTO:<context>^<exten>^<priority> - Transfer the call to the
632                           specified priority. Optionally, an extension, or
633                           extension and priority can be specified.
634            You cannot use any additional action post answer options in conjunction
635            with this option. Also, pbx services are not run on the peer (called) channel,
636            so you will not be able to set timeouts via the TIMEOUT() function in this macro.
637     n    - This option is a modifier for the screen/privacy mode. It specifies
638            that no introductions are to be saved in the priv-callerintros
639            directory.
640     N    - This option is a modifier for the screen/privacy mode. It specifies
641            that if callerID is present, do not screen the call.
642     o    - Specify that the CallerID that was present on the *calling* channel
643            be set as the CallerID on the *called* channel. This was the
644            behavior of Asterisk 1.0 and earlier.
645     O([x]) - "Operator Services" mode (Zaptel channel to Zaptel channel
646              only, if specified on non-Zaptel interface, it will be ignored).
647              When the destination answers (presumably an operator services
648              station), the originator no longer has control of their line.
649              They may hang up, but the switch will not release their line
650              until the destination party hangs up (the operator). Specified
651              without an arg, or with 1 as an arg, the originator hanging up
652              will cause the phone to ring back immediately. With a 2 specified,
653              when the "operator" flashes the trunk, it will ring their phone
654              back.
655     p    - This option enables screening mode. This is basically Privacy mode
656            without memory.
657     P([x]) - Enable privacy mode. Use 'x' as the family/key in the database if
658            it is provided. The current extension is used if a database
659            family/key is not specified.
660     r    - Indicate ringing to the calling party. Pass no audio to the calling
661            party until the called channel has answered.
662     S(x) - Hang up the call after 'x' seconds *after* the called party has
663            answered the call.
664     t    - Allow the called party to transfer the calling party by sending the
665            DTMF sequence defined in features.conf.
666     T    - Allow the calling party to transfer the called party by sending the
667            DTMF sequence defined in features.conf.
668     w    - Allow the called party to enable recording of the call by sending
669            the DTMF sequence defined for one-touch recording in features.conf.
670     W    - Allow the calling party to enable recording of the call by sending
671            the DTMF sequence defined for one-touch recording in features.conf.
672     k    - Allow the called party to enable parking of the call by sending
673            the DTMF sequence defined for call parking in features.conf.
674     K    - Allow the calling party to enable parking of the call by sending
675            the DTMF sequence defined for call parking in features.conf.
676
677 \end{verbatim}
678
679
680 \section{Dictate}
681 \subsection{Synopsis}
682 \begin{verbatim}
683 Virtual Dictation Machine
684 \end{verbatim}
685 \subsection{Description}
686 \begin{verbatim}
687   Dictate([<base_dir>[|<filename>]])
688 Start dictation machine using optional base dir for files.
689
690 \end{verbatim}
691
692
693 \section{Directory}
694 \subsection{Synopsis}
695 \begin{verbatim}
696 Provide directory of voicemail extensions
697 \end{verbatim}
698 \subsection{Description}
699 \begin{verbatim}
700   Directory(vm-context[|dial-context[|options]]): This application will present
701 the calling channel with a directory of extensions from which they can search
702 by name. The list of names and corresponding extensions is retrieved from the
703 voicemail configuration file, voicemail.conf.
704   This application will immediately exit if one of the following DTMF digits are
705 received and the extension to jump to exists:
706     0 - Jump to the 'o' extension, if it exists.
707     * - Jump to the 'a' extension, if it exists.
708
709   Parameters:
710     vm-context   - This is the context within voicemail.conf to use for the
711                    Directory.
712     dial-context - This is the dialplan context to use when looking for an
713                    extension that the user has selected, or when jumping to the
714                    'o' or 'a' extension.
715
716   Options:
717     e - In addition to the name, also read the extension number to the
718         caller before presenting dialing options.
719     f - Allow the caller to enter the first name of a user in the directory
720         instead of using the last name.
721
722 \end{verbatim}
723
724
725 \section{DISA}
726 \subsection{Synopsis}
727 \begin{verbatim}
728 DISA (Direct Inward System Access)
729 \end{verbatim}
730 \subsection{Description}
731 \begin{verbatim}
732 DISA(<numeric passcode>[|<context>]) or DISA(<filename>)
733 The DISA, Direct Inward System Access, application allows someone from 
734 outside the telephone switch (PBX) to obtain an "internal" system 
735 dialtone and to place calls from it as if they were placing a call from 
736 within the switch.
737 DISA plays a dialtone. The user enters their numeric passcode, followed by
738 the pound sign (#). If the passcode is correct, the user is then given
739 system dialtone on which a call may be placed. Obviously, this type
740 of access has SERIOUS security implications, and GREAT care must be
741 taken NOT to compromise your security.
742
743 There is a possibility of accessing DISA without password. Simply
744 exchange your password with "no-password".
745
746     Example: exten => s,1,DISA(no-password|local)
747
748 Be aware that using this compromises the security of your PBX.
749
750 The arguments to this application (in extensions.conf) allow either
751 specification of a single global passcode (that everyone uses), or
752 individual passcodes contained in a file. It also allows specification
753 of the context on which the user will be dialing. If no context is
754 specified, the DISA application defaults the context to "disa".
755 Presumably a normal system will have a special context set up
756 for DISA use with some or a lot of restrictions. 
757
758 The file that contains the passcodes (if used) allows specification
759 of either just a passcode (defaulting to the "disa" context, or
760 passcode|context on each line of the file. The file may contain blank
761 lines, or comments starting with "#" or ";". In addition, the
762 above arguments may have |new-callerid-string appended to them, to
763 specify a new (different) callerid to be used for this call, for
764 example: numeric-passcode|context|"My Phone" <(234) 123-4567> or 
765 full-pathname-of-passcode-file|"My Phone" <(234) 123-4567>.  Last
766 but not least, |mailbox[@context] may be appended, which will cause
767 a stutter-dialtone (indication "dialrecall") to be used, if the
768 specified mailbox contains any new messages, for example:
769 numeric-passcode|context||1234 (w/a changing callerid).  Note that
770 in the case of specifying the numeric-passcode, the context must be
771 specified if the callerid is specified also.
772
773 If login is successful, the application looks up the dialed number in
774 the specified (or default) context, and executes it if found.
775 If the user enters an invalid extension and extension "i" (invalid) 
776 exists in the context, it will be used. Also, if you set the 5th argument
777 to 'NOANSWER', the DISA application will not answer initially.
778
779 \end{verbatim}
780
781
782 \section{DumpChan}
783 \subsection{Synopsis}
784 \begin{verbatim}
785 Dump Info About The Calling Channel
786 \end{verbatim}
787 \subsection{Description}
788 \begin{verbatim}
789    DumpChan([<min_verbose_level>])
790 Displays information on channel and listing of all channel
791 variables. If min_verbose_level is specified, output is only
792 displayed when the verbose level is currently set to that number
793 or greater. 
794
795 \end{verbatim}
796
797
798 \section{EAGI}
799 \subsection{Synopsis}
800 \begin{verbatim}
801 Executes an EAGI compliant application
802 \end{verbatim}
803 \subsection{Description}
804 \begin{verbatim}
805   [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant
806 program on a channel. AGI allows Asterisk to launch external programs
807 written in any language to control a telephony channel, play audio,
808 read DTMF digits, etc. by communicating with the AGI protocol on stdin
809 and stdout.
810   This channel will stop dialplan execution on hangup inside of this
811 application, except when using DeadAGI.  Otherwise, dialplan execution
812 will continue normally.
813   A locally executed AGI script will receive SIGHUP on hangup from the channel
814 except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
815 variable to "no" before executing the AGI application.
816   Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
817 on file descriptor 3
818
819   Use the CLI command 'agi show' to list available agi commands
820   This application sets the following channel variable upon completion:
821      AGISTATUS      The status of the attempt to the run the AGI script
822                     text string, one of SUCCESS | FAILED | HANGUP
823
824 \end{verbatim}
825
826
827 \section{Echo}
828 \subsection{Synopsis}
829 \begin{verbatim}
830 Echo audio, video, or DTMF back to the calling party
831 \end{verbatim}
832 \subsection{Description}
833 \begin{verbatim}
834   Echo(): This application will echo any audio, video, or DTMF frames read from
835 the calling channel back to itself. If the DTMF digit '#' is received, the
836 application will exit.
837
838 \end{verbatim}
839
840
841 \section{EndWhile}
842 \subsection{Synopsis}
843 \begin{verbatim}
844 End a while loop
845 \end{verbatim}
846 \subsection{Description}
847 \begin{verbatim}
848 Usage:  EndWhile()
849 Return to the previous called While
850
851 \end{verbatim}
852
853
854 \section{Exec}
855 \subsection{Synopsis}
856 \begin{verbatim}
857 Executes dialplan application
858 \end{verbatim}
859 \subsection{Description}
860 \begin{verbatim}
861 Usage: Exec(appname(arguments))
862   Allows an arbitrary application to be invoked even when not
863 hardcoded into the dialplan.  If the underlying application
864 terminates the dialplan, or if the application cannot be found,
865 Exec will terminate the dialplan.
866   To invoke external applications, see the application System.
867   If you would like to catch any error instead, see TryExec.
868
869 \end{verbatim}
870
871
872 \section{ExecIf}
873 \subsection{Synopsis}
874 \begin{verbatim}
875 Executes dialplan application, conditionally
876 \end{verbatim}
877 \subsection{Description}
878 \begin{verbatim}
879 Usage:  ExecIF (<expr>|<app>|<data>)
880 If <expr> is true, execute and return the result of <app>(<data>).
881 If <expr> is true, but <app> is not found, then the application
882 will return a non-zero value.
883
884 \end{verbatim}
885
886
887 \section{ExecIfTime}
888 \subsection{Synopsis}
889 \begin{verbatim}
890 Conditional application execution based on the current time
891 \end{verbatim}
892 \subsection{Description}
893 \begin{verbatim}
894   ExecIfTime(<times>|<weekdays>|<mdays>|<months>?appname[|appargs]):
895 This application will execute the specified dialplan application, with optional
896 arguments, if the current time matches the given time specification.
897
898 \end{verbatim}
899
900
901 \section{ExitWhile}
902 \subsection{Synopsis}
903 \begin{verbatim}
904 End a While loop
905 \end{verbatim}
906 \subsection{Description}
907 \begin{verbatim}
908 Usage:  ExitWhile()
909 Exits a While loop, whether or not the conditional has been satisfied.
910
911 \end{verbatim}
912
913
914 \section{ExtenSpy}
915 \subsection{Synopsis}
916 \begin{verbatim}
917 Listen to a channel, and optionally whisper into it
918 \end{verbatim}
919 \subsection{Description}
920 \begin{verbatim}
921   ExtenSpy(exten[@context][|options]): This application is used to listen to the
922 audio from an Asterisk channel. This includes the audio coming in and
923 out of the channel being spied on. Only channels created by outgoing calls for the
924 specified extension will be selected for spying. If the optional context is not
925 supplied, the current channel's context will be used.
926   While spying, the following actions may be performed:
927     - Dialing # cycles the volume level.
928     - Dialing * will stop spying and look for another channel to spy on.
929   Options:
930     b             - Only spy on channels involved in a bridged call.
931     g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
932                     contain 'grp' in an optional : delimited list.
933     q             - Don't play a beep when beginning to spy on a channel, or speak the
934                     selected channel name.
935     r[(basename)] - Record the session to the monitor spool directory. An
936                     optional base for the filename may be specified. The
937                     default is 'chanspy'.
938     v([value])    - Adjust the initial volume in the range from -4 to 4. A
939                     negative value refers to a quieter setting.
940     w             - Enable 'whisper' mode, so the spying channel can talk to
941                     the spied-on channel.
942     W             - Enable 'private whisper' mode, so the spying channel can
943                     talk to the spied-on channel but cannot listen to that
944                     channel.
945
946 \end{verbatim}
947
948
949 \section{ExternalIVR}
950 \subsection{Synopsis}
951 \begin{verbatim}
952 Interfaces with an external IVR application
953 \end{verbatim}
954 \subsection{Description}
955 \begin{verbatim}
956   ExternalIVR(command[|arg[|arg...]]): Forks an process to run the supplied command,
957 and starts a generator on the channel. The generator's play list is
958 controlled by the external application, which can add and clear entries
959 via simple commands issued over its stdout. The external application
960 will receive all DTMF events received on the channel, and notification
961 if the channel is hung up. The application will not be forcibly terminated
962 when the channel is hung up.
963 See doc/externalivr.txt for a protocol specification.
964
965 \end{verbatim}
966
967
968 \section{Festival}
969 \subsection{Synopsis}
970 \begin{verbatim}
971 Say text to the user
972 \end{verbatim}
973 \subsection{Description}
974 \begin{verbatim}
975   Festival(text[|intkeys]):  Connect to Festival, send the argument, get back the waveform,play it to the user, allowing any given interrupt keys to immediately terminate and return
976 the value, or 'any' to allow any number back (useful in dialplan)
977
978 \end{verbatim}
979
980
981 \section{Flash}
982 \subsection{Synopsis}
983 \begin{verbatim}
984 Flashes a Zap Trunk
985 \end{verbatim}
986 \subsection{Description}
987 \begin{verbatim}
988   Flash(): Sends a flash on a zap trunk.  This is only a hack for
989 people who want to perform transfers and such via AGI and is generally
990 quite useless oths application will only work on Zap trunks.
991
992 \end{verbatim}
993
994
995 \section{FollowMe}
996 \subsection{Synopsis}
997 \begin{verbatim}
998 Find-Me/Follow-Me application
999 \end{verbatim}
1000 \subsection{Description}
1001 \begin{verbatim}
1002   FollowMe(followmeid|options):
1003 This application performs Find-Me/Follow-Me functionality for the caller
1004 as defined in the profile matching the <followmeid> parameter in
1005 followme.conf. If the specified <followmeid> profile doesn't exist in
1006 followme.conf, execution will be returned to the dialplan and call
1007 execution will continue at the next priority.
1008
1009   Options:
1010     s    - Playback the incoming status message prior to starting the follow-me step(s)
1011     a    - Record the caller's name so it can be announced to the callee on each step
1012     n    - Playback the unreachable status message if we've run out of steps to reach the
1013            or the callee has elected not to be reachable.
1014 Returns -1 on hangup
1015
1016 \end{verbatim}
1017
1018
1019 \section{ForkCDR}
1020 \subsection{Synopsis}
1021 \begin{verbatim}
1022 Forks the Call Data Record
1023 \end{verbatim}
1024 \subsection{Description}
1025 \begin{verbatim}
1026   ForkCDR([options]):  Causes the Call Data Record to fork an additional
1027 cdr record starting from the time of the fork call
1028 If the option 'v' is passed all cdr variables will be passed along also.
1029
1030 \end{verbatim}
1031
1032
1033 \section{GetCPEID}
1034 \subsection{Synopsis}
1035 \begin{verbatim}
1036 Get ADSI CPE ID
1037 \end{verbatim}
1038 \subsection{Description}
1039 \begin{verbatim}
1040   GetCPEID: Obtains and displays ADSI CPE ID and other information in order
1041 to properly setup zapata.conf for on-hook operations.
1042
1043 \end{verbatim}
1044
1045
1046 \section{Gosub}
1047 \subsection{Synopsis}
1048 \begin{verbatim}
1049 Jump to label, saving return address
1050 \end{verbatim}
1051 \subsection{Description}
1052 \begin{verbatim}
1053 Gosub([[context|]exten|]priority)
1054   Jumps to the label specified, saving the return address.
1055
1056 \end{verbatim}
1057
1058
1059 \section{GosubIf}
1060 \subsection{Synopsis}
1061 \begin{verbatim}
1062 Conditionally jump to label, saving return address
1063 \end{verbatim}
1064 \subsection{Description}
1065 \begin{verbatim}
1066 GosubIf(condition?labeliftrue[:labeliffalse])
1067   If the condition is true, then jump to labeliftrue.  If false, jumps to
1068 labeliffalse, if specified.  In either case, a jump saves the return point
1069 in the dialplan, to be returned to with a Return.
1070
1071 \end{verbatim}
1072
1073
1074 \section{Goto}
1075 \subsection{Synopsis}
1076 \begin{verbatim}
1077 Jump to a particular priority, extension, or context
1078 \end{verbatim}
1079 \subsection{Description}
1080 \begin{verbatim}
1081   Goto([[context|]extension|]priority): This application will set the current
1082 context, extension, and priority in the channel structure. After it completes, the
1083 pbx engine will continue dialplan execution at the specified location.
1084 If no specific extension, or extension and context, are specified, then this
1085 application will just set the specified priority of the current extension.
1086   At least a priority is required as an argument, or the goto will return a -1,
1087 and the channel and call will be terminated.
1088   If the location that is put into the channel information is bogus, and asterisk cannot
1089 find that location in the dialplan,
1090 then the execution engine will try to find and execute the code in the 'i' (invalid)
1091 extension in the current context. If that does not exist, it will try to execute the
1092 'h' extension. If either or neither the 'h' or 'i' extensions have been defined, the
1093 channel is hung up, and the execution of instructions on the channel is terminated.
1094 What this means is that, for example, you specify a context that does not exist, then
1095 it will not be possible to find the 'h' or 'i' extensions, and the call will terminate!
1096
1097 \end{verbatim}
1098
1099
1100 \section{GotoIf}
1101 \subsection{Synopsis}
1102 \begin{verbatim}
1103 Conditional goto
1104 \end{verbatim}
1105 \subsection{Description}
1106 \begin{verbatim}
1107   GotoIf(condition?[labeliftrue]:[labeliffalse]): This application will set the current
1108 context, extension, and priority in the channel structure based on the evaluation of
1109 the given condition. After this application completes, the
1110 pbx engine will continue dialplan execution at the specified location in the dialplan.
1111 The channel will continue at
1112 'labeliftrue' if the condition is true, or 'labeliffalse' if the condition is
1113 false. The labels are specified with the same syntax as used within the Goto
1114 application.  If the label chosen by the condition is omitted, no jump is
1115 performed, and the execution passes to the next instruction.
1116 If the target location is bogus, and does not exist, the execution engine will try 
1117 to find and execute the code in the 'i' (invalid)
1118 extension in the current context. If that does not exist, it will try to execute the
1119 'h' extension. If either or neither the 'h' or 'i' extensions have been defined, the
1120 channel is hung up, and the execution of instructions on the channel is terminated.
1121 Remember that this command can set the current context, and if the context specified
1122 does not exist, then it will not be able to find any 'h' or 'i' extensions there, and
1123 the channel and call will both be terminated!
1124
1125 \end{verbatim}
1126
1127
1128 \section{GotoIfTime}
1129 \subsection{Synopsis}
1130 \begin{verbatim}
1131 Conditional Goto based on the current time
1132 \end{verbatim}
1133 \subsection{Description}
1134 \begin{verbatim}
1135   GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[[context|]exten|]priority):
1136 This application will set the context, extension, and priority in the channel structure
1137 if the current time matches the given time specification. Otherwise, nothing is done.
1138 Further information on the time specification can be found in examples
1139 illustrating how to do time-based context includes in the dialplan.
1140 If the target jump location is bogus, the same actions would be taken as for Goto.
1141
1142 \end{verbatim}
1143
1144
1145 \section{Hangup}
1146 \subsection{Synopsis}
1147 \begin{verbatim}
1148 Hang up the calling channel
1149 \end{verbatim}
1150 \subsection{Description}
1151 \begin{verbatim}
1152   Hangup([causecode]): This application will hang up the calling channel.
1153 If a causecode is given the channel's hangup cause will be set to the given
1154 value.
1155
1156 \end{verbatim}
1157
1158
1159 \section{HasNewVoicemail}
1160 \subsection{Synopsis}
1161 \begin{verbatim}
1162 Conditionally branches to priority + 101 with the right options set
1163 \end{verbatim}
1164 \subsection{Description}
1165 \begin{verbatim}
1166 HasNewVoicemail(vmbox[/folder][@context][|varname[|options]])
1167 Assumes folder 'INBOX' if folder is not specified. Optionally sets <varname> to the number of messages
1168 in that folder.
1169   The option string may contain zero of the following character:
1170         'j' -- jump to priority n+101, if there is new voicemail in folder 'folder' or INBOX
1171   This application sets the following channel variable upon completion:
1172         HASVMSTATUS             The result of the new voicemail check returned as a text string as follows
1173                 <# of messages in the folder, 0 for NONE>
1174
1175 This application has been deprecated in favor of the VMCOUNT() function
1176
1177 \end{verbatim}
1178
1179
1180 \section{HasVoicemail}
1181 \subsection{Synopsis}
1182 \begin{verbatim}
1183 Conditionally branches to priority + 101 with the right options set
1184 \end{verbatim}
1185 \subsection{Description}
1186 \begin{verbatim}
1187 HasVoicemail(vmbox[/folder][@context][|varname[|options]])
1188   Optionally sets <varname> to the number of messages in that folder.  Assumes folder of INBOX if not specified.
1189   The option string may contain zero or the following character:
1190         'j' -- jump to priority n+101, if there is voicemail in the folder indicated.
1191   This application sets the following channel variable upon completion:
1192         HASVMSTATUS             The result of the voicemail check returned as a text string as follows
1193                 <# of messages in the folder, 0 for NONE>
1194
1195 This application has been deprecated in favor of the VMCOUNT() function
1196
1197 \end{verbatim}
1198
1199
1200 \section{IAX2Provision}
1201 \subsection{Synopsis}
1202 \begin{verbatim}
1203 Provision a calling IAXy with a given template
1204 \end{verbatim}
1205 \subsection{Description}
1206 \begin{verbatim}
1207   IAX2Provision([template]): Provisions the calling IAXy (assuming
1208 the calling entity is in fact an IAXy) with the given template or
1209 default if one is not specified.  Returns -1 on error or 0 on success.
1210
1211 \end{verbatim}
1212
1213
1214 \section{ICES}
1215 \subsection{Synopsis}
1216 \begin{verbatim}
1217 Encode and stream using 'ices'
1218 \end{verbatim}
1219 \subsection{Description}
1220 \begin{verbatim}
1221   ICES(config.xml) Streams to an icecast server using ices
1222 (available separately).  A configuration file must be supplied
1223 for ices (see examples/asterisk-ices.conf). 
1224
1225 \end{verbatim}
1226
1227
1228 \section{ImportVar}
1229 \subsection{Synopsis}
1230 \begin{verbatim}
1231 Import a variable from a channel into a new variable
1232 \end{verbatim}
1233 \subsection{Description}
1234 \begin{verbatim}
1235   ImportVar(newvar=channelname|variable): This application imports a variable
1236 from the specified channel (as opposed to the current one) and stores it as
1237 a variable in the current channel (the channel that is calling this
1238 application). Variables created by this application have the same inheritance
1239 properties as those created with the Set application. See the documentation for
1240 Set for more information.
1241
1242 \end{verbatim}
1243
1244
1245 \section{IVRDemo}
1246 \subsection{Synopsis}
1247 \begin{verbatim}
1248 IVR Demo Application
1249 \end{verbatim}
1250 \subsection{Description}
1251 \begin{verbatim}
1252   This is a skeleton application that shows you the basic structure to create your
1253 own asterisk applications and demonstrates the IVR demo.
1254  
1255 \end{verbatim}
1256
1257
1258 \section{JabberSend}
1259 \subsection{Synopsis}
1260 \begin{verbatim}
1261 JabberSend(jabber,screenname,message)
1262 \end{verbatim}
1263 \subsection{Description}
1264 \begin{verbatim}
1265 JabberSend(Jabber,ScreenName,Message)
1266   Jabber - Client or transport Asterisk uses to connect to Jabber
1267   ScreenName - User Name to message.
1268   Message - Message to be sent to the buddy
1269
1270 \end{verbatim}
1271
1272
1273 \section{JabberStatus}
1274 \subsection{Synopsis}
1275 \begin{verbatim}
1276 JabberStatus(Jabber,ScreenName,Variable)
1277 \end{verbatim}
1278 \subsection{Description}
1279 \begin{verbatim}
1280 JabberStatus(Jabber,ScreenName,Variable)
1281   Jabber - Client or transport Asterisk uses to connect to Jabber
1282   ScreenName - User Name to retrieve status from.
1283   Variable - Variable to store presence in will be 1-6.
1284              In order, Online, Chatty, Away, XAway, DND, Offline
1285              If not in roster variable will = 7
1286
1287 \end{verbatim}
1288
1289
1290 \section{Log}
1291 \subsection{Synopsis}
1292 \begin{verbatim}
1293 Send arbitrary text to a selected log level
1294 \end{verbatim}
1295 \subsection{Description}
1296 \begin{verbatim}
1297 Log(<level>|<message>)
1298   level must be one of ERROR, WARNING, NOTICE, DEBUG, VERBOSE, DTMF
1299
1300 \end{verbatim}
1301
1302
1303 \section{LookupBlacklist}
1304 \subsection{Synopsis}
1305 \begin{verbatim}
1306 Look up Caller*ID name/number from blacklist database
1307 \end{verbatim}
1308 \subsection{Description}
1309 \begin{verbatim}
1310   LookupBlacklist(options): Looks up the Caller*ID number on the active
1311 channel in the Asterisk database (family 'blacklist').  
1312 The option string may contain the following character:
1313         'j' -- jump to n+101 priority if the number/name is found in the blacklist
1314 This application sets the following channel variable upon completion:
1315         LOOKUPBLSTATUS          The status of the Blacklist lookup as a text string, one of
1316                 FOUND | NOTFOUND
1317 Example: exten => 1234,1,LookupBlacklist()
1318
1319 This application is deprecated and may be removed from a future release.
1320 Please use the dialplan function BLACKLIST() instead.
1321
1322 \end{verbatim}
1323
1324
1325 \section{LookupCIDName}
1326 \subsection{Synopsis}
1327 \begin{verbatim}
1328 Look up CallerID Name from local database
1329 \end{verbatim}
1330 \subsection{Description}
1331 \begin{verbatim}
1332   LookupCIDName: Looks up the Caller*ID number on the active
1333 channel in the Asterisk database (family 'cidname') and sets the
1334 Caller*ID name.  Does nothing if no Caller*ID was received on the
1335 channel.  This is useful if you do not subscribe to Caller*ID
1336 name delivery, or if you want to change the names on some incoming
1337 calls.
1338
1339 LookupCIDName is deprecated.  Please use ${DB(cidname/${CALLERID(num)})}
1340 instead.
1341
1342 \end{verbatim}
1343
1344
1345 \section{Macro}
1346 \subsection{Synopsis}
1347 \begin{verbatim}
1348 Macro Implementation
1349 \end{verbatim}
1350 \subsection{Description}
1351 \begin{verbatim}
1352   Macro(macroname|arg1|arg2...): Executes a macro using the context
1353 'macro-<macroname>', jumping to the 's' extension of that context and
1354 executing each step, then returning when the steps end. 
1355 The calling extension, context, and priority are stored in ${MACRO_EXTEN}, 
1356 ${MACRO_CONTEXT} and ${MACRO_PRIORITY} respectively.  Arguments become
1357 ${ARG1}, ${ARG2}, etc in the macro context.
1358 If you Goto out of the Macro context, the Macro will terminate and control
1359 will be returned at the location of the Goto.
1360 If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue
1361 at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.
1362 WARNING: Because of the way Macro is implemented (it executes the priorities
1363          contained within it via sub-engine), and a fixed per-thread
1364          memory stack allowance, macros are limited to 7 levels
1365          of nesting (macro calling macro calling macro, etc.); It
1366          may be possible that stack-intensive applications in deeply nested macros
1367          could cause asterisk to crash earlier than this limit.
1368
1369 \end{verbatim}
1370
1371
1372 \section{MacroExclusive}
1373 \subsection{Synopsis}
1374 \begin{verbatim}
1375 Exclusive Macro Implementation
1376 \end{verbatim}
1377 \subsection{Description}
1378 \begin{verbatim}
1379   MacroExclusive(macroname|arg1|arg2...):
1380 Executes macro defined in the context 'macro-macroname'
1381 Only one call at a time may run the macro.
1382 (we'll wait if another call is busy executing in the Macro)
1383 Arguments and return values as in application Macro()
1384
1385 \end{verbatim}
1386
1387
1388 \section{MacroExit}
1389 \subsection{Synopsis}
1390 \begin{verbatim}
1391 Exit From Macro
1392 \end{verbatim}
1393 \subsection{Description}
1394 \begin{verbatim}
1395   MacroExit():
1396 Causes the currently running macro to exit as if it had
1397 ended normally by running out of priorities to execute.
1398 If used outside a macro, will likely cause unexpected
1399 behavior.
1400
1401 \end{verbatim}
1402
1403
1404 \section{MacroIf}
1405 \subsection{Synopsis}
1406 \begin{verbatim}
1407 Conditional Macro Implementation
1408 \end{verbatim}
1409 \subsection{Description}
1410 \begin{verbatim}
1411   MacroIf(<expr>?macroname_a[|arg1][:macroname_b[|arg1]])
1412 Executes macro defined in <macroname_a> if <expr> is true
1413 (otherwise <macroname_b> if provided)
1414 Arguments and return values as in application macro()
1415
1416 \end{verbatim}
1417
1418
1419 \section{MailboxExists}
1420 \subsection{Synopsis}
1421 \begin{verbatim}
1422 Check to see if Voicemail mailbox exists
1423 \end{verbatim}
1424 \subsection{Description}
1425 \begin{verbatim}
1426   MailboxExists(mailbox[@context][|options]): Check to see if the specified
1427 mailbox exists. If no voicemail context is specified, the 'default' context
1428 will be used.
1429   This application will set the following channel variable upon completion:
1430     VMBOXEXISTSSTATUS - This will contain the status of the execution of the
1431                         MailboxExists application. Possible values include:
1432                         SUCCESS | FAILED
1433
1434   Options:
1435     j - Jump to priority n+101 if the mailbox is found.
1436
1437 \end{verbatim}
1438
1439
1440 \section{MeetMe}
1441 \subsection{Synopsis}
1442 \begin{verbatim}
1443 MeetMe conference bridge
1444 \end{verbatim}
1445 \subsection{Description}
1446 \begin{verbatim}
1447   MeetMe([confno][,[options][,pin]]): Enters the user into a specified MeetMe
1448 conference.  If the conference number is omitted, the user will be prompted
1449 to enter one.  User can exit the conference by hangup, or if the 'p' option
1450 is specified, by pressing '#'.
1451 Please note: The Zaptel kernel modules and at least one hardware driver (or ztdummy)
1452              must be present for conferencing to operate properly. In addition, the chan_zap
1453              channel driver must be loaded for the 'i' and 'r' options to operate at all.
1454
1455 The option string may contain zero or more of the following characters:
1456       'a' -- set admin mode
1457       'A' -- set marked mode
1458       'b' -- run AGI script specified in ${MEETME_AGI_BACKGROUND}
1459              Default: conf-background.agi  (Note: This does not work with
1460              non-Zap channels in the same conference)
1461       'c' -- announce user(s) count on joining a conference
1462       'd' -- dynamically add conference
1463       'D' -- dynamically add conference, prompting for a PIN
1464       'e' -- select an empty conference
1465       'E' -- select an empty pinless conference
1466       'F' -- Pass DTMF through the conference.  DTMF used to activate any
1467              conference features will not be passed through.
1468       'i' -- announce user join/leave with review
1469       'I' -- announce user join/leave without review
1470       'l' -- set listen only mode (Listen only, no talking)
1471       'm' -- set initially muted
1472       'M' -- enable music on hold when the conference has a single caller
1473       'o' -- set talker optimization - treats talkers who aren't speaking as
1474              being muted, meaning (a) No encode is done on transmission and
1475              (b) Received audio that is not registered as talking is omitted
1476              causing no buildup in background noise
1477       'p' -- allow user to exit the conference by pressing '#'
1478       'P' -- always prompt for the pin even if it is specified
1479       'q' -- quiet mode (don't play enter/leave sounds)
1480       'r' -- Record conference (records as ${MEETME_RECORDINGFILE}
1481              using format ${MEETME_RECORDINGFORMAT}). Default filename is
1482              meetme-conf-rec-${CONFNO}-${UNIQUEID} and the default format is
1483              wav.
1484       's' -- Present menu (user or admin) when '*' is received ('send' to menu)
1485       't' -- set talk only mode. (Talk only, no listening)
1486       'T' -- set talker detection (sent to manager interface and meetme list)
1487       'w[(<secs>)]'
1488           -- wait until the marked user enters the conference
1489       'x' -- close the conference when last marked user exits
1490       'X' -- allow user to exit the conference by entering a valid single
1491              digit extension ${MEETME_EXIT_CONTEXT} or the current context
1492              if that variable is not defined.
1493       '1' -- do not play message when first person enters
1494
1495 \end{verbatim}
1496
1497
1498 \section{MeetMeAdmin}
1499 \subsection{Synopsis}
1500 \begin{verbatim}
1501 MeetMe conference Administration
1502 \end{verbatim}
1503 \subsection{Description}
1504 \begin{verbatim}
1505   MeetMeAdmin(confno,command[,user]): Run admin command for conference
1506       'e' -- Eject last user that joined
1507       'k' -- Kick one user out of conference
1508       'K' -- Kick all users out of conference
1509       'l' -- Unlock conference
1510       'L' -- Lock conference
1511       'm' -- Unmute one user
1512       'M' -- Mute one user
1513       'n' -- Unmute all users in the conference
1514       'N' -- Mute all non-admin users in the conference
1515       'r' -- Reset one user's volume settings
1516       'R' -- Reset all users volume settings
1517       's' -- Lower entire conference speaking volume
1518       'S' -- Raise entire conference speaking volume
1519       't' -- Lower one user's talk volume
1520       'T' -- Raise one user's talk volume
1521       'u' -- Lower one user's listen volume
1522       'U' -- Raise one user's listen volume
1523       'v' -- Lower entire conference listening volume
1524       'V' -- Raise entire conference listening volume
1525
1526 \end{verbatim}
1527
1528
1529 \section{MeetMeCount}
1530 \subsection{Synopsis}
1531 \begin{verbatim}
1532 MeetMe participant count
1533 \end{verbatim}
1534 \subsection{Description}
1535 \begin{verbatim}
1536   MeetMeCount(confno[|var]): Plays back the number of users in the specified
1537 MeetMe conference. If var is specified, playback will be skipped and the value
1538 will be returned in the variable. Upon app completion, MeetMeCount will hangup
1539 the channel, unless priority n+1 exists, in which case priority progress will
1540 continue.
1541 A ZAPTEL INTERFACE MUST BE INSTALLED FOR CONFERENCING FUNCTIONALITY.
1542
1543 \end{verbatim}
1544
1545
1546 \section{Milliwatt}
1547 \subsection{Synopsis}
1548 \begin{verbatim}
1549 Generate a Constant 1000Hz tone at 0dbm (mu-law)
1550 \end{verbatim}
1551 \subsection{Description}
1552 \begin{verbatim}
1553 Milliwatt(): Generate a Constant 1000Hz tone at 0dbm (mu-law)
1554
1555 \end{verbatim}
1556
1557
1558 \section{MixMonitor}
1559 \subsection{Synopsis}
1560 \begin{verbatim}
1561 Record a call and mix the audio during the recording
1562 \end{verbatim}
1563 \subsection{Description}
1564 \begin{verbatim}
1565   MixMonitor(<file>.<ext>[|<options>[|<command>]])
1566
1567 Records the audio on the current channel to the specified file.
1568 If the filename is an absolute path, uses that path, otherwise
1569 creates the file in the configured monitoring directory from
1570 asterisk.conf.
1571
1572 Valid options:
1573  a      - Append to the file instead of overwriting it.
1574  b      - Only save audio to the file while the channel is bridged.
1575           Note: Does not include conferences or sounds played to each bridged
1576                 party.
1577  v(<x>) - Adjust the heard volume by a factor of <x> (range -4 to 4)
1578  V(<x>) - Adjust the spoken volume by a factor of <x> (range -4 to 4)
1579  W(<x>) - Adjust the both heard and spoken volumes by a factor of <x>
1580          (range -4 to 4)
1581
1582 <command> will be executed when the recording is over
1583 Any strings matching ^{X} will be unescaped to ${X} and 
1584 all variables will be evaluated at that time.
1585 The variable MIXMONITOR_FILENAME will contain the filename used to record.
1586
1587 \end{verbatim}
1588
1589
1590 \section{Monitor}
1591 \subsection{Synopsis}
1592 \begin{verbatim}
1593 Monitor a channel
1594 \end{verbatim}
1595 \subsection{Description}
1596 \begin{verbatim}
1597 Monitor([file_format[:urlbase]|[fname_base]|[options]]):
1598 Used to start monitoring a channel. The channel's input and output
1599 voice packets are logged to files until the channel hangs up or
1600 monitoring is stopped by the StopMonitor application.
1601   file_format           optional, if not set, defaults to "wav"
1602   fname_base            if set, changes the filename used to the one specified.
1603   options:
1604     m   - when the recording ends mix the two leg files into one and
1605           delete the two leg files.  If the variable MONITOR_EXEC is set, the
1606           application referenced in it will be executed instead of
1607           soxmix and the raw leg files will NOT be deleted automatically.
1608           soxmix or MONITOR_EXEC is handed 3 arguments, the two leg files
1609           and a target mixed file name which is the same as the leg file names
1610           only without the in/out designator.
1611           If MONITOR_EXEC_ARGS is set, the contents will be passed on as
1612           additional arguements to MONITOR_EXEC
1613           Both MONITOR_EXEC and the Mix flag can be set from the
1614           administrator interface
1615
1616     b   - Don't begin recording unless a call is bridged to another channel
1617
1618 Returns -1 if monitor files can't be opened or if the channel is already
1619 monitored, otherwise 0.
1620
1621 \end{verbatim}
1622
1623
1624 \section{Morsecode}
1625 \subsection{Synopsis}
1626 \begin{verbatim}
1627 Plays morse code
1628 \end{verbatim}
1629 \subsection{Description}
1630 \begin{verbatim}
1631 Usage: Morsecode(<string>)
1632 Plays the Morse code equivalent of the passed string.  If the variable
1633 MORSEDITLEN is set, it will use that value for the length (in ms) of the dit
1634 (defaults to 80).  Additionally, if MORSETONE is set, it will use that tone
1635 (in Hz).  The tone default is 800.
1636
1637 \end{verbatim}
1638
1639
1640 \section{MP3Player}
1641 \subsection{Synopsis}
1642 \begin{verbatim}
1643 Play an MP3 file or stream
1644 \end{verbatim}
1645 \subsection{Description}
1646 \begin{verbatim}
1647   MP3Player(location) Executes mpg123 to play the given location,
1648 which typically would be a filename or a URL. User can exit by pressing
1649 any key on the dialpad, or by hanging up.
1650 \end{verbatim}
1651
1652
1653 \section{MusicOnHold}
1654 \subsection{Synopsis}
1655 \begin{verbatim}
1656 Play Music On Hold indefinitely
1657 \end{verbatim}
1658 \subsection{Description}
1659 \begin{verbatim}
1660 MusicOnHold(class): Plays hold music specified by class.  If omitted, the default
1661 music source for the channel will be used. Set the default 
1662 class with the SetMusicOnHold() application.
1663 Returns -1 on hangup.
1664 Never returns otherwise.
1665
1666 \end{verbatim}
1667
1668
1669 \section{NBScat}
1670 \subsection{Synopsis}
1671 \begin{verbatim}
1672 Play an NBS local stream
1673 \end{verbatim}
1674 \subsection{Description}
1675 \begin{verbatim}
1676   NBScat: Executes nbscat to listen to the local NBS stream.
1677 User can exit by pressing any key
1678 .
1679 \end{verbatim}
1680
1681
1682 \section{NoCDR}
1683 \subsection{Synopsis}
1684 \begin{verbatim}
1685 Tell Asterisk to not maintain a CDR for the current call
1686 \end{verbatim}
1687 \subsection{Description}
1688 \begin{verbatim}
1689   NoCDR(): This application will tell Asterisk not to maintain a CDR for the
1690 current call.
1691
1692 \end{verbatim}
1693
1694
1695 \section{NoOp}
1696 \subsection{Synopsis}
1697 \begin{verbatim}
1698 Do Nothing
1699 \end{verbatim}
1700 \subsection{Description}
1701 \begin{verbatim}
1702   NoOp(): This applicatiion does nothing. However, it is useful for debugging
1703 purposes. Any text that is provided as arguments to this application can be
1704 viewed at the Asterisk CLI. This method can be used to see the evaluations of
1705 variables or functions without having any effect.
1706 \end{verbatim}
1707
1708
1709 \section{Page}
1710 \subsection{Synopsis}
1711 \begin{verbatim}
1712 Pages phones
1713 \end{verbatim}
1714 \subsection{Description}
1715 \begin{verbatim}
1716 Page(Technology/Resource&Technology2/Resource2[|options])
1717   Places outbound calls to the given technology / resource and dumps
1718 them into a conference bridge as muted participants.  The original
1719 caller is dumped into the conference as a speaker and the room is
1720 destroyed when the original caller leaves.  Valid options are:
1721         d - full duplex audio
1722         q - quiet, do not play beep to caller
1723         r - record the page into a file (see 'r' for app_meetme)
1724
1725 \end{verbatim}
1726
1727
1728 \section{Park}
1729 \subsection{Synopsis}
1730 \begin{verbatim}
1731 Park yourself
1732 \end{verbatim}
1733 \subsection{Description}
1734 \begin{verbatim}
1735 Park():Used to park yourself (typically in combination with a supervised
1736 transfer to know the parking space). This application is always
1737 registered internally and does not need to be explicitly added
1738 into the dialplan, although you should include the 'parkedcalls'
1739 context (or the context specified in features.conf).
1740
1741 If you set the PARKINGEXTEN variable to an extension in your
1742 parking context, park() will park the call on that extension, unless
1743 it already exists. In that case, execution will continue at next
1744 priority.
1745
1746 \end{verbatim}
1747
1748
1749 \section{ParkAndAnnounce}
1750 \subsection{Synopsis}
1751 \begin{verbatim}
1752 Park and Announce
1753 \end{verbatim}
1754 \subsection{Description}
1755 \begin{verbatim}
1756   ParkAndAnnounce(announce:template|timeout|dial|[return_context]):
1757 Park a call into the parkinglot and announce the call to another channel.
1758
1759 announce template: Colon-separated list of files to announce.  The word PARKED
1760                    will be replaced by a say_digits of the extension in which
1761                    the call is parked.
1762 timeout:           Time in seconds before the call returns into the return
1763                    context.
1764 dial:              The app_dial style resource to call to make the
1765                    announcement.  Console/dsp calls the console.
1766 return_context:    The goto-style label to jump the call back into after
1767                    timeout.  Default <priority+1>.
1768
1769 The variable ${PARKEDAT} will contain the parking extension into which the
1770 call was placed.  Use with the Local channel to allow the dialplan to make
1771 use of this information.
1772
1773 \end{verbatim}
1774
1775
1776 \section{ParkedCall}
1777 \subsection{Synopsis}
1778 \begin{verbatim}
1779 Answer a parked call
1780 \end{verbatim}
1781 \subsection{Description}
1782 \begin{verbatim}
1783 ParkedCall(exten):Used to connect to a parked call.  This application is always
1784 registered internally and does not need to be explicitly added
1785 into the dialplan, although you should include the 'parkedcalls'
1786 context.
1787
1788 \end{verbatim}
1789
1790
1791 \section{PauseMonitor}
1792 \subsection{Synopsis}
1793 \begin{verbatim}
1794 Pause monitoring of a channel
1795 \end{verbatim}
1796 \subsection{Description}
1797 \begin{verbatim}
1798 PauseMonitor
1799 Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.
1800
1801 \end{verbatim}
1802
1803
1804 \section{PauseQueueMember}
1805 \subsection{Synopsis}
1806 \begin{verbatim}
1807 Pauses a queue member
1808 \end{verbatim}
1809 \subsection{Description}
1810 \begin{verbatim}
1811    PauseQueueMember([queuename]|interface[|options]):
1812 Pauses (blocks calls for) a queue member.
1813 The given interface will be paused in the given queue.  This prevents
1814 any calls from being sent from the queue to the interface until it is
1815 unpaused with UnpauseQueueMember or the manager interface.  If no
1816 queuename is given, the interface is paused in every queue it is a
1817 member of.  If the interface is not in the named queue, or if no queue
1818 is given and the interface is not in any queue, it will jump to
1819 priority n+101, if it exists and the appropriate options are set.
1820 The application will fail if the interface is not found and no extension
1821 to jump to exists.
1822 The option string may contain zero or more of the following characters:
1823        'j' -- jump to +101 priority when appropriate.
1824   This application sets the following channel variable upon completion:
1825      PQMSTATUS      The status of the attempt to pause a queue member as a
1826                      text string, one of
1827            PAUSED | NOTFOUND
1828 Example: PauseQueueMember(|SIP/3000)
1829
1830 \end{verbatim}
1831
1832
1833 \section{Pickup}
1834 \subsection{Synopsis}
1835 \begin{verbatim}
1836 Directed Call Pickup
1837 \end{verbatim}
1838 \subsection{Description}
1839 \begin{verbatim}
1840   Pickup(extension[@context][&extension2@context...]): This application can pickup any ringing channel
1841 that is calling the specified extension. If no context is specified, the current
1842 context will be used. If you use the special string "PICKUPMARK" for the context parameter, for example
1843 10@PICKUPMARK, this application tries to find a channel which has defined a channel variable with the same content
1844 as "extension".
1845 \end{verbatim}
1846
1847
1848 \section{Playback}
1849 \subsection{Synopsis}
1850 \begin{verbatim}
1851 Play a file
1852 \end{verbatim}
1853 \subsection{Description}
1854 \begin{verbatim}
1855   Playback(filename[&filename2...][|option]):  Plays back given filenames (do not put
1856 extension). Options may also be included following a pipe symbol. The 'skip'
1857 option causes the playback of the message to be skipped if the channel
1858 is not in the 'up' state (i.e. it hasn't been  answered  yet). If 'skip' is 
1859 specified, the application will return immediately should the channel not be
1860 off hook.  Otherwise, unless 'noanswer' is specified, the channel will
1861 be answered before the sound is played. Not all channels support playing
1862 messages while still on hook. If 'j' is specified, the application
1863 will jump to priority n+101 if present when a file specified to be played
1864 does not exist.
1865 This application sets the following channel variable upon completion:
1866  PLAYBACKSTATUS    The status of the playback attempt as a text string, one of
1867                SUCCESS | FAILED
1868
1869 \end{verbatim}
1870
1871
1872 \section{PlayTones}
1873 \subsection{Synopsis}
1874 \begin{verbatim}
1875 Play a tone list
1876 \end{verbatim}
1877 \subsection{Description}
1878 \begin{verbatim}
1879 PlayTones(arg): Plays a tone list. Execution will continue with the next step immediately,
1880 while the tones continue to play.
1881 Arg is either the tone name defined in the indications.conf configuration file, or a directly
1882 specified list of frequencies and durations.
1883 See the sample indications.conf for a description of the specification of a tonelist.
1884
1885 Use the StopPlayTones application to stop the tones playing. 
1886
1887 \end{verbatim}
1888
1889
1890 \section{PrivacyManager}
1891 \subsection{Synopsis}
1892 \begin{verbatim}
1893 Require phone number to be entered, if no CallerID sent
1894 \end{verbatim}
1895 \subsection{Description}
1896 \begin{verbatim}
1897   PrivacyManager([maxretries[|minlength[|options]]]): If no Caller*ID 
1898 is sent, PrivacyManager answers the channel and asks the caller to
1899 enter their phone number. The caller is given 3 attempts to do so.
1900 The application does nothing if Caller*ID was received on the channel.
1901   Configuration file privacy.conf contains two variables:
1902    maxretries  default 3  -maximum number of attempts the caller is allowed 
1903                to input a callerid.
1904    minlength   default 10 -minimum allowable digits in the input callerid number.
1905 If you don't want to use the config file and have an i/o operation with
1906 every call, you can also specify maxretries and minlength as application
1907 parameters. Doing so supercedes any values set in privacy.conf.
1908 The option string may contain the following character: 
1909   'j' -- jump to n+101 priority after <maxretries> failed attempts to collect
1910          the minlength number of digits.
1911 The application sets the following channel variable upon completion: 
1912 PRIVACYMGRSTATUS  The status of the privacy manager's attempt to collect 
1913                   a phone number from the user. A text string that is either:
1914           SUCCESS | FAILED 
1915
1916 \end{verbatim}
1917
1918
1919 \section{Progress}
1920 \subsection{Synopsis}
1921 \begin{verbatim}
1922 Indicate progress
1923 \end{verbatim}
1924 \subsection{Description}
1925 \begin{verbatim}
1926   Progress(): This application will request that in-band progress information
1927 be provided to the calling channel.
1928
1929 \end{verbatim}
1930
1931
1932 \section{Queue}
1933 \subsection{Synopsis}
1934 \begin{verbatim}
1935 Queue a call for a call queue
1936 \end{verbatim}
1937 \subsection{Description}
1938 \begin{verbatim}
1939   Queue(queuename[|options[|URL][|announceoverride][|timeout][|AGI]):
1940 Queues an incoming call in a particular call queue as defined in queues.conf.
1941 This application will return to the dialplan if the queue does not exist, or
1942 any of the join options cause the caller to not enter the queue.
1943 The option string may contain zero or more of the following characters:
1944       'd' -- data-quality (modem) call (minimum delay).
1945       'h' -- allow callee to hang up by hitting *.
1946       'H' -- allow caller to hang up by hitting *.
1947       'n' -- no retries on the timeout; will exit this application and 
1948              go to the next step.
1949       'i' -- ignore call forward requests from queue members and do nothing
1950              when they are requested.
1951       'r' -- ring instead of playing MOH
1952       't' -- allow the called user transfer the calling user
1953       'T' -- to allow the calling user to transfer the call.
1954       'w' -- allow the called user to write the conversation to disk via Monitor
1955       'W' -- allow the calling user to write the conversation to disk via Monitor
1956   In addition to transferring the call, a call may be parked and then picked
1957 up by another user.
1958   The optional URL will be sent to the called party if the channel supports
1959 it.
1960   The optional AGI parameter will setup an AGI script to be executed on the 
1961 calling party's channel once they are connected to a queue member.
1962   The timeout will cause the queue to fail out after a specified number of
1963 seconds, checked between each queues.conf 'timeout' and 'retry' cycle.
1964   This application sets the following channel variable upon completion:
1965       QUEUESTATUS    The status of the call as a text string, one of
1966              TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL
1967
1968 \end{verbatim}
1969
1970
1971 \section{QueueLog}
1972 \subsection{Synopsis}
1973 \begin{verbatim}
1974 Writes to the queue_log
1975 \end{verbatim}
1976 \subsection{Description}
1977 \begin{verbatim}
1978    QueueLog(queuename|uniqueid|agent|event[|additionalinfo]):
1979 Allows you to write your own events into the queue log
1980 Example: QueueLog(101|${UNIQUEID}|${AGENT}|WENTONBREAK|600)
1981
1982 \end{verbatim}
1983
1984
1985 \section{Random}
1986 \subsection{Synopsis}
1987 \begin{verbatim}
1988 Conditionally branches, based upon a probability
1989 \end{verbatim}
1990 \subsection{Description}
1991 \begin{verbatim}
1992 Random([probability]:[[context|]extension|]priority)
1993   probability := INTEGER in the range 1 to 100
1994 DEPRECATED: Use GotoIf($[${RAND(1,100)} > <number>]?<label>)
1995
1996 \end{verbatim}
1997
1998
1999 \section{Read}
2000 \subsection{Synopsis}
2001 \begin{verbatim}
2002 Read a variable
2003 \end{verbatim}
2004 \subsection{Description}
2005 \begin{verbatim}
2006   Read(variable[|filename][|maxdigits][|option][|attempts][|timeout])
2007
2008 Reads a #-terminated string of digits a certain number of times from the
2009 user in to the given variable.
2010   filename   -- file to play before reading digits or tone with option i
2011   maxdigits  -- maximum acceptable number of digits. Stops reading after
2012                 maxdigits have been entered (without requiring the user to
2013                 press the '#' key).
2014                 Defaults to 0 - no limit - wait for the user press the '#' key.
2015                 Any value below 0 means the same. Max accepted value is 255.
2016   option     -- options are 's' , 'i', 'n'
2017                 's' to return immediately if the line is not up,
2018                 'i' to play  filename as an indication tone from your indications.conf
2019                 'n' to read digits even if the line is not up.
2020   attempts   -- if greater than 1, that many attempts will be made in the 
2021                 event no data is entered.
2022   timeout    -- An integer number of seconds to wait for a digit response. If greater
2023                 than 0, that value will override the default timeout.
2024
2025 Read should disconnect if the function fails or errors out.
2026
2027 \end{verbatim}
2028
2029
2030 \section{ReadFile}
2031 \subsection{Synopsis}
2032 \begin{verbatim}
2033 ReadFile(varname=file,length)
2034 \end{verbatim}
2035 \subsection{Description}
2036 \begin{verbatim}
2037 ReadFile(varname=file,length)
2038   Varname - Result stored here.
2039   File - The name of the file to read.
2040   Length - Maximum number of characters to capture.
2041
2042 \end{verbatim}
2043
2044
2045 \section{RealTime}
2046 \subsection{Synopsis}
2047 \begin{verbatim}
2048 Realtime Data Lookup
2049 \end{verbatim}
2050 \subsection{Description}
2051 \begin{verbatim}
2052 Use the RealTime config handler system to read data into channel variables.
2053 RealTime(<family>|<colmatch>|<value>[|<prefix>])
2054
2055 All unique column names will be set as channel variables with optional prefix
2056 to the name.  For example, a prefix of 'var_' would make the column 'name'
2057 become the variable ${var_name}.  REALTIMECOUNT will be set with the number
2058 of values read.
2059
2060 \end{verbatim}
2061
2062
2063 \section{RealTimeUpdate}
2064 \subsection{Synopsis}
2065 \begin{verbatim}
2066 Realtime Data Rewrite
2067 \end{verbatim}
2068 \subsection{Description}
2069 \begin{verbatim}
2070 Use the RealTime config handler system to update a value
2071 RealTimeUpdate(<family>|<colmatch>|<value>|<newcol>|<newval>)
2072
2073 The column <newcol> in 'family' matching column <colmatch>=<value> will be
2074 updated to <newval>.  REALTIMECOUNT will be set with the number of rows
2075 updated or -1 if an error occurs.
2076
2077 \end{verbatim}
2078
2079
2080 \section{Record}
2081 \subsection{Synopsis}
2082 \begin{verbatim}
2083 Record to a file
2084 \end{verbatim}
2085 \subsection{Description}
2086 \begin{verbatim}
2087   Record(filename.format|silence[|maxduration][|options])
2088
2089 Records from the channel into a given filename. If the file exists it will
2090 be overwritten.
2091 - 'format' is the format of the file type to be recorded (wav, gsm, etc).
2092 - 'silence' is the number of seconds of silence to allow before returning.
2093 - 'maxduration' is the maximum recording duration in seconds. If missing
2094 or 0 there is no maximum.
2095 - 'options' may contain any of the following letters:
2096      'a' : append to existing recording rather than replacing
2097      'n' : do not answer, but record anyway if line not yet answered
2098      'q' : quiet (do not play a beep tone)
2099      's' : skip recording if the line is not yet answered
2100      't' : use alternate '*' terminator key (DTMF) instead of default '#'
2101      'x' : ignore all terminator keys (DTMF) and keep recording until hangup
2102
2103 If filename contains '%d', these characters will be replaced with a number
2104 incremented by one each time the file is recorded. A channel variable
2105 named RECORDED_FILE will also be set, which contains the final filemname.
2106
2107 Use 'core show file formats' to see the available formats on your system
2108
2109 User can press '#' to terminate the recording and continue to the next priority.
2110
2111 If the user should hangup during a recording, all data will be lost and the
2112 application will teminate. 
2113
2114 \end{verbatim}
2115
2116
2117 \section{RemoveQueueMember}
2118 \subsection{Synopsis}
2119 \begin{verbatim}
2120 Dynamically removes queue members
2121 \end{verbatim}
2122 \subsection{Description}
2123 \begin{verbatim}
2124    RemoveQueueMember(queuename[|interface[|options]]):
2125 Dynamically removes interface to an existing queue
2126 If the interface is NOT in the queue and there exists an n+101 priority
2127 then it will then jump to this priority.  Otherwise it will return an error
2128 The option string may contain zero or more of the following characters:
2129        'j' -- jump to +101 priority when appropriate.
2130   This application sets the following channel variable upon completion:
2131      RQMSTATUS      The status of the attempt to remove a queue member as a
2132                      text string, one of
2133            REMOVED | NOTINQUEUE | NOSUCHQUEUE 
2134 Example: RemoveQueueMember(techsupport|SIP/3000)
2135
2136 \end{verbatim}
2137
2138
2139 \section{ResetCDR}
2140 \subsection{Synopsis}
2141 \begin{verbatim}
2142 Resets the Call Data Record
2143 \end{verbatim}
2144 \subsection{Description}
2145 \begin{verbatim}
2146   ResetCDR([options]):  This application causes the Call Data Record to be
2147 reset.
2148   Options:
2149     w -- Store the current CDR record before resetting it.
2150     a -- Store any stacked records.
2151     v -- Save CDR variables.
2152
2153 \end{verbatim}
2154
2155
2156 \section{RetryDial}
2157 \subsection{Synopsis}
2158 \begin{verbatim}
2159 Place a call, retrying on failure allowing optional exit extension.
2160 \end{verbatim}
2161 \subsection{Description}
2162 \begin{verbatim}
2163   RetryDial(announce|sleep|retries|dialargs): This application will attempt to
2164 place a call using the normal Dial application. If no channel can be reached,
2165 the 'announce' file will be played. Then, it will wait 'sleep' number of
2166 seconds before retying the call. After 'retires' number of attempts, the
2167 calling channel will continue at the next priority in the dialplan. If the
2168 'retries' setting is set to 0, this application will retry endlessly.
2169   While waiting to retry a call, a 1 digit extension may be dialed. If that
2170 extension exists in either the context defined in ${EXITCONTEXT} or the current
2171 one, The call will jump to that extension immediately.
2172   The 'dialargs' are specified in the same format that arguments are provided
2173 to the Dial application.
2174
2175 \end{verbatim}
2176
2177
2178 \section{Return}
2179 \subsection{Synopsis}
2180 \begin{verbatim}
2181 Return from gosub routine
2182 \end{verbatim}
2183 \subsection{Description}
2184 \begin{verbatim}
2185 Return()
2186   Jumps to the last label on the stack, removing it.
2187
2188 \end{verbatim}
2189
2190
2191 \section{Ringing}
2192 \subsection{Synopsis}
2193 \begin{verbatim}
2194 Indicate ringing tone
2195 \end{verbatim}
2196 \subsection{Description}
2197 \begin{verbatim}
2198   Ringing(): This application will request that the channel indicate a ringing
2199 tone to the user.
2200
2201 \end{verbatim}
2202
2203
2204 \section{Rpt}
2205 \subsection{Synopsis}
2206 \begin{verbatim}
2207 Radio Repeater/Remote Base Control System
2208 \end{verbatim}
2209 \subsection{Description}
2210 \begin{verbatim}
2211   Rpt(nodename[|options]):  Radio Remote Link or Remote Base Link Endpoint Process.
2212
2213     Not specifying an option puts it in normal endpoint mode (where source
2214     IP and nodename are verified).
2215
2216     Options are as follows:
2217
2218         X - Normal endpoint mode WITHOUT security check. Only specify
2219             this if you have checked security already (like with an IAX2
2220             user/password or something).
2221
2222         Rannounce-string[|timeout[|timeout-destination]] - Amateur Radio
2223             Reverse Autopatch. Caller is put on hold, and announcement (as
2224             specified by the 'announce-string') is played on radio system.
2225             Users of radio system can access autopatch, dial specified
2226             code, and pick up call. Announce-string is list of names of
2227             recordings, or "PARKED" to substitute code for un-parking,
2228             or "NODE" to substitute node number.
2229
2230         P - Phone Control mode. This allows a regular phone user to have
2231             full control and audio access to the radio system. For the
2232             user to have DTMF control, the 'phone_functions' parameter
2233             must be specified for the node in 'rpt.conf'. An additional
2234             function (cop,6) must be listed so that PTT control is available.
2235
2236         D - Dumb Phone Control mode. This allows a regular phone user to
2237             have full control and audio access to the radio system. In this
2238             mode, the PTT is activated for the entire length of the call.
2239             For the user to have DTMF control (not generally recomended in
2240             this mode), the 'dphone_functions' parameter must be specified
2241             for the node in 'rpt.conf'. Otherwise no DTMF control will be
2242             available to the phone user.
2243
2244
2245 \end{verbatim}
2246
2247
2248 \section{SayAlpha}
2249 \subsection{Synopsis}
2250 \begin{verbatim}
2251 Say Alpha
2252 \end{verbatim}
2253 \subsection{Description}
2254 \begin{verbatim}
2255   SayAlpha(string): This application will play the sounds that correspond to
2256 the letters of the given string.
2257
2258 \end{verbatim}
2259
2260
2261 \section{SayDigits}
2262 \subsection{Synopsis}
2263 \begin{verbatim}
2264 Say Digits
2265 \end{verbatim}
2266 \subsection{Description}
2267 \begin{verbatim}
2268   SayDigits(digits): This application will play the sounds that correspond
2269 to the digits of the given number. This will use the language that is currently
2270 set for the channel. See the LANGUAGE function for more information on setting
2271 the language for the channel.
2272
2273 \end{verbatim}
2274
2275
2276 \section{SayNumber}
2277 \subsection{Synopsis}
2278 \begin{verbatim}
2279 Say Number
2280 \end{verbatim}
2281 \subsection{Description}
2282 \begin{verbatim}
2283   SayNumber(digits[,gender]): This application will play the sounds that
2284 correspond to the given number. Optionally, a gender may be specified.
2285 This will use the language that is currently set for the channel. See the
2286 LANGUAGE function for more information on setting the language for the channel.
2287
2288 \end{verbatim}
2289
2290
2291 \section{SayPhonetic}
2292 \subsection{Synopsis}
2293 \begin{verbatim}
2294 Say Phonetic
2295 \end{verbatim}
2296 \subsection{Description}
2297 \begin{verbatim}
2298   SayPhonetic(string): This application will play the sounds from the phonetic
2299 alphabet that correspond to the letters in the given string.
2300
2301 \end{verbatim}
2302
2303
2304 \section{SayUnixTime}
2305 \subsection{Synopsis}
2306 \begin{verbatim}
2307 Says a specified time in a custom format
2308 \end{verbatim}
2309 \subsection{Description}
2310 \begin{verbatim}
2311 SayUnixTime([unixtime][|[timezone][|format]])
2312   unixtime: time, in seconds since Jan 1, 1970.  May be negative.
2313               defaults to now.
2314   timezone: timezone, see /usr/share/zoneinfo for a list.
2315               defaults to machine default.
2316   format:   a format the time is to be said in.  See voicemail.conf.
2317               defaults to "ABdY 'digits/at' IMp"
2318
2319 \end{verbatim}
2320
2321
2322 \section{SendDTMF}
2323 \subsection{Synopsis}
2324 \begin{verbatim}
2325 Sends arbitrary DTMF digits
2326 \end{verbatim}
2327 \subsection{Description}
2328 \begin{verbatim}
2329  SendDTMF(digits[|timeout_ms]): Sends DTMF digits on a channel. 
2330  Accepted digits: 0-9, *#abcd, w (.5s pause)
2331  The application will either pass the assigned digits or terminate if it
2332  encounters an error.
2333
2334 \end{verbatim}
2335
2336
2337 \section{SendImage}
2338 \subsection{Synopsis}
2339 \begin{verbatim}
2340 Send an image file
2341 \end{verbatim}
2342 \subsection{Description}
2343 \begin{verbatim}
2344   SendImage(filename): Sends an image on a channel. 
2345 If the channel supports image transport but the image send
2346 fails, the channel will be hung up. Otherwise, the dialplan
2347 continues execution.
2348 The option string may contain the following character:
2349         'j' -- jump to priority n+101 if the channel doesn't support image transport
2350 This application sets the following channel variable upon completion:
2351         SENDIMAGESTATUS         The status is the result of the attempt as a text string, one of
2352                 OK | NOSUPPORT 
2353
2354 \end{verbatim}
2355
2356
2357 \section{SendText}
2358 \subsection{Synopsis}
2359 \begin{verbatim}
2360 Send a Text Message
2361 \end{verbatim}
2362 \subsection{Description}
2363 \begin{verbatim}
2364   SendText(text[|options]): Sends text to current channel (callee).
2365 Result of transmission will be stored in the SENDTEXTSTATUS
2366 channel variable:
2367       SUCCESS      Transmission succeeded
2368       FAILURE      Transmission failed
2369       UNSUPPORTED  Text transmission not supported by channel
2370
2371 At this moment, text is supposed to be 7 bit ASCII in most channels.
2372 The option string many contain the following character:
2373 'j' -- jump to n+101 priority if the channel doesn't support
2374        text transport
2375
2376 \end{verbatim}
2377
2378
2379 \section{SendURL}
2380 \subsection{Synopsis}
2381 \begin{verbatim}
2382 Send a URL
2383 \end{verbatim}
2384 \subsection{Description}
2385 \begin{verbatim}
2386   SendURL(URL[|option]): Requests client go to URL (IAX2) or sends the 
2387 URL to the client (other channels).
2388 Result is returned in the SENDURLSTATUS channel variable:
2389     SUCCESS       URL successfully sent to client
2390     FAILURE       Failed to send URL
2391     NOLOAD        Client failed to load URL (wait enabled)
2392     UNSUPPORTED   Channel does not support URL transport
2393
2394 If the option 'wait' is specified, execution will wait for an
2395 acknowledgement that the URL has been loaded before continuing
2396
2397 If jumping is specified as an option (the 'j' flag), the client does not
2398 support Asterisk "html" transport, and there exists a step with priority
2399 n + 101, then execution will continue at that step.
2400
2401 SendURL continues normally if the URL was sent correctly or if the channel
2402 does not support HTML transport.  Otherwise, the channel is hung up.
2403
2404 \end{verbatim}
2405
2406
2407 \section{Set}
2408 \subsection{Synopsis}
2409 \begin{verbatim}
2410 Set channel variable(s) or function value(s)
2411 \end{verbatim}
2412 \subsection{Description}
2413 \begin{verbatim}
2414   Set(name1=value1|name2=value2|..[|options])
2415 This function can be used to set the value of channel variables or dialplan
2416 functions. It will accept up to 24 name/value pairs. When setting variables,
2417 if the variable name is prefixed with _, the variable will be inherited into
2418 channels created from the current channel. If the variable name is prefixed
2419 with __, the variable will be inherited into channels created from the current
2420 channel and all children channels.
2421   Options:
2422     g - Set variable globally instead of on the channel
2423         (applies only to variables, not functions)
2424
2425 The use of Set to set multiple variables at once and the g flag have both
2426 been deprecated.  Please use multiple Set calls and the GLOBAL() dialplan
2427 function instead.
2428
2429 \end{verbatim}
2430
2431
2432 \section{SetAMAFlags}
2433 \subsection{Synopsis}
2434 \begin{verbatim}
2435 Set the AMA Flags
2436 \end{verbatim}
2437 \subsection{Description}
2438 \begin{verbatim}
2439   SetAMAFlags([flag]): This application will set the channel's AMA Flags for
2440   billing purposes.
2441
2442 \end{verbatim}
2443
2444
2445 \section{SetCallerID}
2446 \subsection{Synopsis}
2447 \begin{verbatim}
2448 Set CallerID
2449 \end{verbatim}
2450 \subsection{Description}
2451 \begin{verbatim}
2452   SetCallerID(clid[|a]): Set Caller*ID on a call to a new
2453 value.  Sets ANI as well if a flag is used. 
2454
2455 This application has been deprecated in favor of Set(CALLERID(all)=...)
2456
2457 \end{verbatim}
2458
2459
2460 \section{SetCallerPres}
2461 \subsection{Synopsis}
2462 \begin{verbatim}
2463 Set CallerID Presentation
2464 \end{verbatim}
2465 \subsection{Description}
2466 \begin{verbatim}
2467   SetCallerPres(presentation): Set Caller*ID presentation on a call.
2468   Valid presentations are:
2469
2470       allowed_not_screened    : Presentation Allowed, Not Screened
2471       allowed_passed_screen   : Presentation Allowed, Passed Screen
2472       allowed_failed_screen   : Presentation Allowed, Failed Screen
2473       allowed                 : Presentation Allowed, Network Number
2474       prohib_not_screened     : Presentation Prohibited, Not Screened
2475       prohib_passed_screen    : Presentation Prohibited, Passed Screen
2476       prohib_failed_screen    : Presentation Prohibited, Failed Screen
2477       prohib                  : Presentation Prohibited, Network Number
2478       unavailable             : Number Unavailable
2479
2480
2481 \end{verbatim}
2482
2483
2484 \section{SetCDRUserField}
2485 \subsection{Synopsis}
2486 \begin{verbatim}
2487 Set the CDR user field
2488 \end{verbatim}
2489 \subsection{Description}
2490 \begin{verbatim}
2491 [Synopsis]
2492 SetCDRUserField(value)
2493
2494 [Description]
2495 SetCDRUserField(value): Set the CDR 'user field' to value
2496        The Call Data Record (CDR) user field is an extra field you
2497        can use for data not stored anywhere else in the record.
2498        CDR records can be used for billing or storing other arbitrary data
2499        (I.E. telephone survey responses)
2500        Also see AppendCDRUserField().
2501
2502 This application has been deprecated in favor of Set(CDR(userfield)=...)
2503
2504 \end{verbatim}
2505
2506
2507 \section{SetGlobalVar}
2508 \subsection{Synopsis}
2509 \begin{verbatim}
2510 Set a global variable to a given value
2511 \end{verbatim}
2512 \subsection{Description}
2513 \begin{verbatim}
2514   SetGlobalVar(variable=value): This application sets a given global variable to
2515 the specified value.
2516
2517 This application has been deprecated in favor of Set(GLOBAL(var)=value)
2518
2519 \end{verbatim}
2520
2521
2522 \section{SetMusicOnHold}
2523 \subsection{Synopsis}
2524 \begin{verbatim}
2525 Set default Music On Hold class
2526 \end{verbatim}
2527 \subsection{Description}
2528 \begin{verbatim}
2529 SetMusicOnHold(class): Sets the default class for music on hold for a given channel.  When
2530 music on hold is activated, this class will be used to select which
2531 music is played.
2532
2533 \end{verbatim}
2534
2535
2536 \section{SetTransferCapability}
2537 \subsection{Synopsis}
2538 \begin{verbatim}
2539 Set ISDN Transfer Capability
2540 \end{verbatim}
2541 \subsection{Description}
2542 \begin{verbatim}
2543   SetTransferCapability(transfercapability): Set the ISDN Transfer 
2544 Capability of a call to a new value.
2545 Valid Transfer Capabilities are:
2546
2547   SPEECH             : 0x00 - Speech (default, voice calls)
2548   DIGITAL            : 0x08 - Unrestricted digital information (data calls)
2549   RESTRICTED_DIGITAL : 0x09 - Restricted digital information
2550   3K1AUDIO           : 0x10 - 3.1kHz Audio (fax calls)
2551   DIGITAL_W_TONES    : 0x11 - Unrestricted digital information with tones/announcements
2552   VIDEO              : 0x18 - Video
2553
2554 This application has been deprecated in favor of Set(CHANNEL(transfercapability)=...)
2555
2556 \end{verbatim}
2557
2558
2559 \section{SIPAddHeader}
2560 \subsection{Synopsis}
2561 \begin{verbatim}
2562 Add a SIP header to the outbound call
2563 \end{verbatim}
2564 \subsection{Description}
2565 \begin{verbatim}
2566   SIPAddHeader(Header: Content)
2567 Adds a header to a SIP call placed with DIAL.
2568 Remember to user the X-header if you are adding non-standard SIP
2569 headers, like "X-Asterisk-Accountcode:". Use this with care.
2570 Adding the wrong headers may jeopardize the SIP dialog.
2571 Always returns 0
2572
2573 \end{verbatim}
2574
2575
2576 \section{SIPDtmfMode}
2577 \subsection{Synopsis}
2578 \begin{verbatim}
2579 Change the dtmfmode for a SIP call
2580 \end{verbatim}
2581 \subsection{Description}
2582 \begin{verbatim}
2583 SIPDtmfMode(inband|info|rfc2833): Changes the dtmfmode for a SIP call
2584
2585 \end{verbatim}
2586
2587
2588 \section{SLAStation}
2589 \subsection{Synopsis}
2590 \begin{verbatim}
2591 Shared Line Appearance Station
2592 \end{verbatim}
2593 \subsection{Description}
2594 \begin{verbatim}
2595   SLAStation(station):
2596 This application should be executed by an SLA station.  The argument depends
2597 on how the call was initiated.  If the phone was just taken off hook, then
2598 the argument "station" should be just the station name.  If the call was
2599 initiated by pressing a line key, then the station name should be preceded
2600 by an underscore and the trunk name associated with that line button.
2601 For example: "station1_line1".
2602 \end{verbatim}
2603
2604
2605 \section{SLATrunk}
2606 \subsection{Synopsis}
2607 \begin{verbatim}
2608 Shared Line Appearance Trunk
2609 \end{verbatim}
2610 \subsection{Description}
2611 \begin{verbatim}
2612   SLATrunk(trunk):
2613 This application should be executed by an SLA trunk on an inbound call.
2614 The channel calling this application should correspond to the SLA trunk
2615 with the name "trunk" that is being passed as an argument.
2616
2617 \end{verbatim}
2618
2619
2620 \section{SMS}
2621 \subsection{Synopsis}
2622 \begin{verbatim}
2623 Communicates with SMS service centres and SMS capable analogue phones
2624 \end{verbatim}
2625 \subsection{Description}
2626 \begin{verbatim}
2627   SMS(name|[a][s]):  SMS handles exchange of SMS data with a call to/from SMS capabale
2628 phone or SMS PSTN service center. Can send and/or receive SMS messages.
2629 Works to ETSI ES 201 912 compatible with BT SMS PSTN service in UK
2630 Typical usage is to use to handle called from the SMS service centre CLI,
2631 or to set up a call using 'outgoing' or manager interface to connect
2632 service centre to SMS()
2633 name is the name of the queue used in /var/spool/asterisk/sms
2634 Arguments:
2635  a: answer, i.e. send initial FSK packet.
2636  s: act as service centre talking to a phone.
2637 Messages are processed as per text file message queues.
2638 smsq (a separate software) is a command to generate message
2639 queues and send messages.
2640
2641 \end{verbatim}
2642
2643
2644 \section{SoftHangup}
2645 \subsection{Synopsis}
2646 \begin{verbatim}
2647 Soft Hangup Application
2648 \end{verbatim}
2649 \subsection{Description}
2650 \begin{verbatim}
2651   SoftHangup(Technology/resource|options)
2652 Hangs up the requested channel.  If there are no channels to hangup,
2653 the application will report it.
2654 - 'options' may contain the following letter:
2655      'a' : hang up all channels on a specified device instead of a single resource
2656
2657 \end{verbatim}
2658
2659
2660 \section{SpeechActivateGrammar}
2661 \subsection{Synopsis}
2662 \begin{verbatim}
2663 Activate a Grammar
2664 \end{verbatim}
2665 \subsection{Description}
2666 \begin{verbatim}
2667 SpeechActivateGrammar(Grammar Name)
2668 This activates the specified grammar to be recognized by the engine. A grammar tells the speech recognition engine what to recognize, 
2669 and how to portray it back to you in the dialplan. The grammar name is the only argument to this application.
2670
2671 \end{verbatim}
2672
2673
2674 \section{SpeechBackground}
2675 \subsection{Synopsis}
2676 \begin{verbatim}
2677 Play a sound file and wait for speech to be recognized
2678 \end{verbatim}
2679 \subsection{Description}
2680 \begin{verbatim}
2681 SpeechBackground(Sound File|Timeout)
2682 This application plays a sound file and waits for the person to speak. Once they start speaking playback of the file stops, and silence is heard.
2683 Once they stop talking the processing sound is played to indicate the speech recognition engine is working.
2684 Once results are available the application returns and results (score and text) are available using dialplan functions.
2685 The first text and score are ${SPEECH_TEXT(0)} AND ${SPEECH_SCORE(0)} while the second are ${SPEECH_TEXT(1)} and ${SPEECH_SCORE(1)}.
2686 The first argument is the sound file and the second is the timeout. Note the timeout will only start once the sound file has stopped playing.
2687
2688 \end{verbatim}
2689
2690
2691 \section{SpeechCreate}
2692 \subsection{Synopsis}
2693 \begin{verbatim}
2694 Create a Speech Structure
2695 \end{verbatim}
2696 \subsection{Description}
2697 \begin{verbatim}
2698 SpeechCreate(engine name)
2699 This application creates information to be used by all the other applications. It must be called before doing any speech recognition activities such as activating a grammar.
2700 It takes the engine name to use as the argument, if not specified the default engine will be used.
2701
2702 \end{verbatim}
2703
2704
2705 \section{SpeechDeactivateGrammar}
2706 \subsection{Synopsis}
2707 \begin{verbatim}
2708 Deactivate a Grammar
2709 \end{verbatim}
2710 \subsection{Description}
2711 \begin{verbatim}
2712 SpeechDeactivateGrammar(Grammar Name)
2713 This deactivates the specified grammar so that it is no longer recognized. The only argument is the grammar name to deactivate.
2714
2715 \end{verbatim}
2716
2717
2718 \section{SpeechDestroy}
2719 \subsection{Synopsis}
2720 \begin{verbatim}
2721 End speech recognition
2722 \end{verbatim}
2723 \subsection{Description}
2724 \begin{verbatim}
2725 SpeechDestroy()
2726 This destroys the information used by all the other speech recognition applications.
2727 If you call this application but end up wanting to recognize more speech, you must call SpeechCreate
2728 again before calling any other application. It takes no arguments.
2729
2730 \end{verbatim}
2731
2732
2733 \section{SpeechLoadGrammar}
2734 \subsection{Synopsis}
2735 \begin{verbatim}
2736 Load a Grammar
2737 \end{verbatim}
2738 \subsection{Description}
2739 \begin{verbatim}
2740 SpeechLoadGrammar(Grammar Name|Path)
2741 Load a grammar only on the channel, not globally.
2742 It takes the grammar name as first argument and path as second.
2743
2744 \end{verbatim}
2745
2746
2747 \section{SpeechProcessingSound}
2748 \subsection{Synopsis}
2749 \begin{verbatim}
2750 Change background processing sound
2751 \end{verbatim}
2752 \subsection{Description}
2753 \begin{verbatim}
2754 SpeechProcessingSound(Sound File)
2755 This changes the processing sound that SpeechBackground plays back when the speech recognition engine is processing and working to get results.
2756 It takes the sound file as the only argument.
2757
2758 \end{verbatim}
2759
2760
2761 \section{SpeechStart}
2762 \subsection{Synopsis}
2763 \begin{verbatim}
2764 Start recognizing voice in the audio stream
2765 \end{verbatim}
2766 \subsection{Description}
2767 \begin{verbatim}
2768 SpeechStart()
2769 Tell the speech recognition engine that it should start trying to get results from audio being fed to it. This has no arguments.
2770
2771 \end{verbatim}
2772
2773
2774 \section{SpeechUnloadGrammar}
2775 \subsection{Synopsis}
2776 \begin{verbatim}
2777 Unload a Grammar
2778 \end{verbatim}
2779 \subsection{Description}
2780 \begin{verbatim}
2781 SpeechUnloadGrammar(Grammar Name)
2782 Unload a grammar. It takes the grammar name as the only argument.
2783
2784 \end{verbatim}
2785
2786
2787 \section{StackPop}
2788 \subsection{Synopsis}
2789 \begin{verbatim}
2790 Remove one address from gosub stack
2791 \end{verbatim}
2792 \subsection{Description}
2793 \begin{verbatim}
2794 StackPop()
2795   Removes last label on the stack, discarding it.
2796
2797 \end{verbatim}
2798
2799
2800 \section{StartMusicOnHold}
2801 \subsection{Synopsis}
2802 \begin{verbatim}
2803 Play Music On Hold
2804 \end{verbatim}
2805 \subsection{Description}
2806 \begin{verbatim}
2807 StartMusicOnHold(class): Starts playing music on hold, uses default music class for channel.
2808 Starts playing music specified by class.  If omitted, the default
2809 music source for the channel will be used.  Always returns 0.
2810
2811 \end{verbatim}
2812
2813
2814 \section{StopMixMonitor}
2815 \subsection{Synopsis}
2816 \begin{verbatim}
2817 Stop recording a call through MixMonitor
2818 \end{verbatim}
2819 \subsection{Description}
2820 \begin{verbatim}
2821   StopMixMonitor()
2822
2823 Stops the audio recording that was started with a call to MixMonitor()
2824 on the current channel.
2825
2826 \end{verbatim}
2827
2828
2829 \section{StopMonitor}
2830 \subsection{Synopsis}
2831 \begin{verbatim}
2832 Stop monitoring a channel
2833 \end{verbatim}
2834 \subsection{Description}
2835 \begin{verbatim}
2836 StopMonitor
2837 Stops monitoring a channel. Has no effect if the channel is not monitored
2838
2839 \end{verbatim}
2840
2841
2842 \section{StopMusicOnHold}
2843 \subsection{Synopsis}
2844 \begin{verbatim}
2845 Stop Playing Music On Hold
2846 \end{verbatim}
2847 \subsection{Description}
2848 \begin{verbatim}
2849 StopMusicOnHold: Stops playing music on hold.
2850
2851 \end{verbatim}
2852
2853
2854 \section{StopPlayTones}
2855 \subsection{Synopsis}
2856 \begin{verbatim}
2857 Stop playing a tone list
2858 \end{verbatim}
2859 \subsection{Description}
2860 \begin{verbatim}
2861 Stop playing a tone list
2862 \end{verbatim}
2863
2864
2865 \section{System}
2866 \subsection{Synopsis}
2867 \begin{verbatim}
2868 Execute a system command
2869 \end{verbatim}
2870 \subsection{Description}
2871 \begin{verbatim}
2872   System(command): Executes a command  by  using  system(). If the command
2873 fails, the console should report a fallthrough. 
2874 Result of execution is returned in the SYSTEMSTATUS channel variable:
2875    FAILURE      Could not execute the specified command
2876    SUCCESS      Specified command successfully executed
2877
2878 Old behaviour:
2879 If the command itself executes but is in error, and if there exists
2880 a priority n + 101, where 'n' is the priority of the current instance,
2881 then  the  channel  will  be  setup to continue at that priority level.
2882 Note that this jump functionality has been deprecated and will only occur
2883 if the global priority jumping option is enabled in extensions.conf.
2884
2885 \end{verbatim}
2886
2887
2888 \section{TestClient}
2889 \subsection{Synopsis}
2890 \begin{verbatim}
2891 Execute Interface Test Client
2892 \end{verbatim}
2893 \subsection{Description}
2894 \begin{verbatim}
2895 TestClient(testid): Executes test client with given testid.
2896 Results stored in /var/log/asterisk/testreports/<testid>-client.txt
2897 \end{verbatim}
2898
2899
2900 \section{TestServer}
2901 \subsection{Synopsis}
2902 \begin{verbatim}
2903 Execute Interface Test Server
2904 \end{verbatim}
2905 \subsection{Description}
2906 \begin{verbatim}
2907 TestServer(): Perform test server function and write call report.
2908 Results stored in /var/log/asterisk/testreports/<testid>-server.txt
2909 \end{verbatim}
2910
2911
2912 \section{Transfer}
2913 \subsection{Synopsis}
2914 \begin{verbatim}
2915 Transfer caller to remote extension
2916 \end{verbatim}
2917 \subsection{Description}
2918 \begin{verbatim}
2919   Transfer([Tech/]dest[|options]):  Requests the remote caller be transferred
2920 to a given destination. If TECH (SIP, IAX2, LOCAL etc) is used, only
2921 an incoming call with the same channel technology will be transfered.
2922 Note that for SIP, if you transfer before call is setup, a 302 redirect
2923 SIP message will be returned to the caller.
2924
2925 The result of the application will be reported in the TRANSFERSTATUS
2926 channel variable:
2927        SUCCESS      Transfer succeeded
2928        FAILURE      Transfer failed
2929        UNSUPPORTED  Transfer unsupported by channel driver
2930 The option string many contain the following character:
2931 'j' -- jump to n+101 priority if the channel transfer attempt
2932        fails
2933
2934 \end{verbatim}
2935
2936
2937 \section{TryExec}
2938 \subsection{Synopsis}
2939 \begin{verbatim}
2940 Executes dialplan application, always returning
2941 \end{verbatim}
2942 \subsection{Description}
2943 \begin{verbatim}
2944 Usage: TryExec(appname(arguments))
2945   Allows an arbitrary application to be invoked even when not
2946 hardcoded into the dialplan. To invoke external applications
2947 see the application System.  Always returns to the dialplan.
2948 The channel variable TRYSTATUS will be set to:
2949     SUCCESS   if the application returned zero
2950     FAILED    if the application returned non-zero
2951     NOAPP     if the application was not found or was not specified
2952
2953 \end{verbatim}
2954
2955
2956 \section{TrySystem}
2957 \subsection{Synopsis}
2958 \begin{verbatim}
2959 Try executing a system command
2960 \end{verbatim}
2961 \subsection{Description}
2962 \begin{verbatim}
2963   TrySystem(command): Executes a command  by  using  system().
2964 on any situation.
2965 Result of execution is returned in the SYSTEMSTATUS channel variable:
2966    FAILURE      Could not execute the specified command
2967    SUCCESS      Specified command successfully executed
2968    APPERROR     Specified command successfully executed, but returned error code
2969
2970 Old behaviour:
2971 If  the command itself executes but is in error, and if
2972 there exists a priority n + 101, where 'n' is the priority of the current
2973 instance, then  the  channel  will  be  setup  to continue at that
2974 priority level.  Otherwise, System will terminate.
2975
2976 \end{verbatim}
2977
2978
2979 \section{UnpauseMonitor}
2980 \subsection{Synopsis}
2981 \begin{verbatim}
2982 Unpause monitoring of a channel
2983 \end{verbatim}
2984 \subsection{Description}
2985 \begin{verbatim}
2986 UnpauseMonitor
2987 Unpauses monitoring of a channel on which monitoring had
2988 previously been paused with PauseMonitor.
2989
2990 \end{verbatim}
2991
2992
2993 \section{UnpauseQueueMember}
2994 \subsection{Synopsis}
2995 \begin{verbatim}
2996 Unpauses a queue member
2997 \end{verbatim}
2998 \subsection{Description}
2999 \begin{verbatim}
3000    UnpauseQueueMember([queuename]|interface[|options]):
3001 Unpauses (resumes calls to) a queue member.
3002 This is the counterpart to PauseQueueMember and operates exactly the
3003 same way, except it unpauses instead of pausing the given interface.
3004 The option string may contain zero or more of the following characters:
3005        'j' -- jump to +101 priority when appropriate.
3006   This application sets the following channel variable upon completion:
3007      UPQMSTATUS       The status of the attempt to unpause a queue 
3008                       member as a text string, one of
3009             UNPAUSED | NOTFOUND
3010 Example: UnpauseQueueMember(|SIP/3000)
3011
3012 \end{verbatim}
3013
3014
3015 \section{UserEvent}
3016 \subsection{Synopsis}
3017 \begin{verbatim}
3018 Send an arbitrary event to the manager interface
3019 \end{verbatim}
3020 \subsection{Description}
3021 \begin{verbatim}
3022   UserEvent(eventname[|body]): Sends an arbitrary event to the manager
3023 interface, with an optional body representing additional arguments.  The
3024 body may be specified as a | delimeted list of headers. Each additional
3025 argument will be placed on a new line in the event. The format of the
3026 event will be:
3027     Event: UserEvent
3028     UserEvent: <specified event name>
3029     [body]
3030 If no body is specified, only Event and UserEvent headers will be present.
3031
3032 \end{verbatim}
3033
3034
3035 \section{Verbose}
3036 \subsection{Synopsis}
3037 \begin{verbatim}
3038 Send arbitrary text to verbose output
3039 \end{verbatim}
3040 \subsection{Description}
3041 \begin{verbatim}
3042 Verbose([<level>|]<message>)
3043   level must be an integer value.  If not specified, defaults to 0.
3044
3045 \end{verbatim}
3046
3047
3048 \section{VMAuthenticate}
3049 \subsection{Synopsis}
3050 \begin{verbatim}
3051 Authenticate with Voicemail passwords
3052 \end{verbatim}
3053 \subsection{Description}
3054 \begin{verbatim}
3055   VMAuthenticate([mailbox][@context][|options]): This application behaves the
3056 same way as the Authenticate application, but the passwords are taken from
3057 voicemail.conf.
3058   If the mailbox is specified, only that mailbox's password will be considered
3059 valid. If the mailbox is not specified, the channel variable AUTH_MAILBOX will
3060 be set with the authenticated mailbox.
3061
3062   Options:
3063     s - Skip playing the initial prompts.
3064
3065 \end{verbatim}
3066
3067
3068 \section{VoiceMail}
3069 \subsection{Synopsis}
3070 \begin{verbatim}
3071 Leave a Voicemail message
3072 \end{verbatim}
3073 \subsection{Description}
3074 \begin{verbatim}
3075   VoiceMail(mailbox[@context][&mailbox[@context]][...][|options]): This
3076 application allows the calling party to leave a message for the specified
3077 list of mailboxes. When multiple mailboxes are specified, the greeting will
3078 be taken from the first mailbox specified. Dialplan execution will stop if the
3079 specified mailbox does not exist.
3080   The Voicemail application will exit if any of the following DTMF digits are
3081 received:
3082     0 - Jump to the 'o' extension in the current dialplan context.
3083     * - Jump to the 'a' extension in the current dialplan context.
3084   This application will set the following channel variable upon completion:
3085     VMSTATUS - This indicates the status of the execution of the VoiceMail
3086                application. The possible values are:
3087                SUCCESS | USEREXIT | FAILED
3088
3089   Options:
3090     b    - Play the 'busy' greeting to the calling party.
3091     g(#) - Use the specified amount of gain when recording the voicemail
3092            message. The units are whole-number decibels (dB).
3093     s    - Skip the playback of instructions for leaving a message to the
3094            calling party.
3095     u    - Play the 'unavailable greeting.
3096     j    - Jump to priority n+101 if the mailbox is not found or some other
3097            error occurs.
3098
3099 \end{verbatim}
3100
3101
3102 \section{VoiceMailMain}
3103 \subsection{Synopsis}
3104 \begin{verbatim}
3105 Check Voicemail messages
3106 \end{verbatim}
3107 \subsection{Description}
3108 \begin{verbatim}
3109   VoiceMailMain([mailbox][@context][|options]): This application allows the
3110 calling party to check voicemail messages. A specific mailbox, and optional
3111 corresponding context, may be specified. If a mailbox is not provided, the
3112 calling party will be prompted to enter one. If a context is not specified,
3113 the 'default' context will be used.
3114
3115   Options:
3116     p    - Consider the mailbox parameter as a prefix to the mailbox that
3117            is entered by the caller.
3118     g(#) - Use the specified amount of gain when recording a voicemail
3119            message. The units are whole-number decibels (dB).
3120     s    - Skip checking the passcode for the mailbox.
3121     a(#) - Skip folder prompt and go directly to folder specified.
3122            Defaults to INBOX
3123
3124 \end{verbatim}
3125
3126
3127 \section{Wait}
3128 \subsection{Synopsis}
3129 \begin{verbatim}
3130 Waits for some time
3131 \end{verbatim}
3132 \subsection{Description}
3133 \begin{verbatim}
3134   Wait(seconds): This application waits for a specified number of seconds.
3135 Then, dialplan execution will continue at the next priority.
3136   Note that the seconds can be passed with fractions of a second. For example,
3137 '1.5' will ask the application to wait for 1.5 seconds.
3138
3139 \end{verbatim}
3140
3141
3142 \section{WaitExten}
3143 \subsection{Synopsis}
3144 \begin{verbatim}
3145 Waits for an extension to be entered
3146 \end{verbatim}
3147 \subsection{Description}
3148 \begin{verbatim}
3149   WaitExten([seconds][|options]): This application waits for the user to enter
3150 a new extension for a specified number of seconds.
3151   Note that the seconds can be passed with fractions of a second. For example,
3152 '1.5' will ask the application to wait for 1.5 seconds.
3153   Options:
3154     m[(x)] - Provide music on hold to the caller while waiting for an extension.
3155                Optionally, specify the class for music on hold within parenthesis.
3156
3157 \end{verbatim}
3158
3159
3160 \section{WaitForRing}
3161 \subsection{Synopsis}
3162 \begin{verbatim}
3163 Wait for Ring Application
3164 \end{verbatim}
3165 \subsection{Description}
3166 \begin{verbatim}
3167   WaitForRing(timeout)
3168 Returns 0 after waiting at least timeout seconds. and
3169 only after the next ring has completed.  Returns 0 on
3170 success or -1 on hangup
3171
3172 \end{verbatim}
3173
3174
3175 \section{WaitForSilence}
3176 \subsection{Synopsis}
3177 \begin{verbatim}
3178 Waits for a specified amount of silence
3179 \end{verbatim}
3180 \subsection{Description}
3181 \begin{verbatim}
3182   WaitForSilence(silencerequired[|iterations][|timeout]) 
3183 Wait for Silence: Waits for up to 'silencerequired' 
3184 milliseconds of silence, 'iterations' times or once if omitted.
3185 An optional timeout specified the number of seconds to return
3186 after, even if we do not receive the specified amount of silence.
3187 Use 'timeout' with caution, as it may defeat the purpose of this
3188 application, which is to wait indefinitely until silence is detected
3189 on the line.  This is particularly useful for reverse-911-type
3190 call broadcast applications where you need to wait for an answering
3191 machine to complete its spiel before playing a message.
3192 The timeout parameter is specified only to avoid an infinite loop in
3193 cases where silence is never achieved.  Typically you will want to
3194 include two or more calls to WaitForSilence when dealing with an answering
3195 machine; first waiting for the spiel to finish, then waiting for the beep, etc.
3196
3197 Examples:
3198   - WaitForSilence(500|2) will wait for 1/2 second of silence, twice
3199   - WaitForSilence(1000) will wait for 1 second of silence, once
3200   - WaitForSilence(300|3|10) will wait for 300ms silence, 3 times,
3201      and returns after 10 sec, even if silence is not detected
3202
3203 Sets the channel variable WAITSTATUS with to one of these values:
3204 SILENCE - if exited with silence detected
3205 TIMEOUT - if exited without silence detected after timeout
3206
3207 \end{verbatim}
3208
3209
3210 \section{WaitMusicOnHold}
3211 \subsection{Synopsis}
3212 \begin{verbatim}
3213 Wait, playing Music On Hold
3214 \end{verbatim}
3215 \subsection{Description}
3216 \begin{verbatim}
3217 WaitMusicOnHold(delay): Plays hold music specified number of seconds.  Returns 0 when
3218 done, or -1 on hangup.  If no hold music is available, the delay will
3219 still occur with no sound.
3220
3221 \end{verbatim}
3222
3223
3224 \section{While}
3225 \subsection{Synopsis}
3226 \begin{verbatim}
3227 Start a while loop
3228 \end{verbatim}
3229 \subsection{Description}
3230 \begin{verbatim}
3231 Usage:  While(<expr>)
3232 Start a While Loop.  Execution will return to this point when
3233 EndWhile is called until expr is no longer true.
3234
3235 \end{verbatim}
3236
3237
3238 \section{Zapateller}
3239 \subsection{Synopsis}
3240 \begin{verbatim}
3241 Block telemarketers with SIT
3242 \end{verbatim}
3243 \subsection{Description}
3244 \begin{verbatim}
3245   Zapateller(options):  Generates special information tone to block
3246 telemarketers from calling you.  Options is a pipe-delimited list of
3247 options.  The following options are available:
3248 'answer' causes the line to be answered before playing the tone,
3249 'nocallerid' causes Zapateller to only play the tone if there
3250 is no callerid information available.  Options should be separated by |
3251 characters
3252
3253 \end{verbatim}
3254
3255
3256 \section{ZapBarge}
3257 \subsection{Synopsis}
3258 \begin{verbatim}
3259 Barge in (monitor) Zap channel
3260 \end{verbatim}
3261 \subsection{Description}
3262 \begin{verbatim}
3263   ZapBarge([channel]): Barges in on a specified zap
3264 channel or prompts if one is not specified.  Returns
3265 -1 when caller user hangs up and is independent of the
3266 state of the channel being monitored.
3267 \end{verbatim}
3268
3269
3270 \section{ZapRAS}
3271 \subsection{Synopsis}
3272 \begin{verbatim}
3273 Executes Zaptel ISDN RAS application
3274 \end{verbatim}
3275 \subsection{Description}
3276 \begin{verbatim}
3277   ZapRAS(args): Executes a RAS server using pppd on the given channel.
3278 The channel must be a clear channel (i.e. PRI source) and a Zaptel
3279 channel to be able to use this function (No modem emulation is included).
3280 Your pppd must be patched to be zaptel aware. Arguments should be
3281 separated by | characters.
3282
3283 \end{verbatim}
3284
3285
3286 \section{ZapScan}
3287 \subsection{Synopsis}
3288 \begin{verbatim}
3289 Scan Zap channels to monitor calls
3290 \end{verbatim}
3291 \subsection{Description}
3292 \begin{verbatim}
3293   ZapScan([group]) allows a call center manager to monitor Zap channels in
3294 a convenient way.  Use '#' to select the next channel and use '*' to exit
3295 Limit scanning to a channel GROUP by setting the option group argument.
3296
3297 \end{verbatim}
3298
3299
3300 \section{ZapSendKeypadFacility}
3301 \subsection{Synopsis}
3302 \begin{verbatim}
3303 Send digits out of band over a PRI
3304 \end{verbatim}
3305 \subsection{Description}
3306 \begin{verbatim}
3307   ZapSendKeypadFacility(): This application will send the given string of digits in a Keypad Facility
3308   IE over the current channel.
3309
3310 \end{verbatim}
3311
3312