diff options
Diffstat (limited to 'doc/ast_appdocs.tex')
-rw-r--r-- | doc/ast_appdocs.tex | 3225 |
1 files changed, 3225 insertions, 0 deletions
diff --git a/doc/ast_appdocs.tex b/doc/ast_appdocs.tex new file mode 100644 index 000000000..7d59d80a1 --- /dev/null +++ b/doc/ast_appdocs.tex @@ -0,0 +1,3225 @@ +% This file is automatically generated. Any manual edits will be lost. +\section{AddQueueMember} +\subsection{Synopsis} +\begin{verbatim} +Dynamically adds queue members +\end{verbatim} +\subsection{Description} +\begin{verbatim} + AddQueueMember(queuename[|interface[|penalty[|options[|membername]]]]): +Dynamically adds interface to an existing queue. +If the interface is already in the queue and there exists an n+101 priority +then it will then jump to this priority. Otherwise it will return an error +The option string may contain zero or more of the following characters: + 'j' -- jump to +101 priority when appropriate. + This application sets the following channel variable upon completion: + AQMSTATUS The status of the attempt to add a queue member as a + text string, one of + ADDED | MEMBERALREADY | NOSUCHQUEUE +Example: AddQueueMember(techsupport|SIP/3000) + +\end{verbatim} + + +\section{ADSIProg} +\subsection{Synopsis} +\begin{verbatim} +Load Asterisk ADSI Scripts into phone +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ADSIProg(script): This application programs an ADSI Phone with the given +script. If nothing is specified, the default script (asterisk.adsi) is used. + +\end{verbatim} + + +\section{AgentCallbackLogin} +\subsection{Synopsis} +\begin{verbatim} +Call agent callback login +\end{verbatim} +\subsection{Description} +\begin{verbatim} + AgentCallbackLogin([AgentNo][|[options][|[exten]@context]]): +Asks the agent to login to the system with callback. +The agent's callback extension is called (optionally with the specified +context). +The option string may contain zero or more of the following characters: + 's' -- silent login - do not announce the login ok segment agent logged in/off + +\end{verbatim} + + +\section{AgentLogin} +\subsection{Synopsis} +\begin{verbatim} +Call agent login +\end{verbatim} +\subsection{Description} +\begin{verbatim} + AgentLogin([AgentNo][|options]): +Asks the agent to login to the system. Always returns -1. While +logged in, the agent can receive calls and will hear a 'beep' +when a new call comes in. The agent can dump the call by pressing +the star key. +The option string may contain zero or more of the following characters: + 's' -- silent login - do not announce the login ok segment after agent logged in/off + +\end{verbatim} + + +\section{AgentMonitorOutgoing} +\subsection{Synopsis} +\begin{verbatim} +Record agent's outgoing call +\end{verbatim} +\subsection{Description} +\begin{verbatim} + AgentMonitorOutgoing([options]): +Tries to figure out the id of the agent who is placing outgoing call based on +comparison of the callerid of the current interface and the global variable +placed by the AgentCallbackLogin application. That's why it should be used only +with the AgentCallbackLogin app. Uses the monitoring functions in chan_agent +instead of Monitor application. That have to be configured in the agents.conf file. + +Return value: +Normally the app returns 0 unless the options are passed. Also if the callerid or +the agentid are not specified it'll look for n+101 priority. + +Options: + 'd' - make the app return -1 if there is an error condition and there is + no extension n+101 + 'c' - change the CDR so that the source of the call is 'Agent/agent_id' + 'n' - don't generate the warnings when there is no callerid or the + agentid is not known. + It's handy if you want to have one context for agent and non-agent calls. + +\end{verbatim} + + +\section{AGI} +\subsection{Synopsis} +\begin{verbatim} +Executes an AGI compliant application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant +program on a channel. AGI allows Asterisk to launch external programs +written in any language to control a telephony channel, play audio, +read DTMF digits, etc. by communicating with the AGI protocol on stdin +and stdout. + This channel will stop dialplan execution on hangup inside of this +application, except when using DeadAGI. Otherwise, dialplan execution +will continue normally. + A locally executed AGI script will receive SIGHUP on hangup from the channel +except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel +variable to "no" before executing the AGI application. + Using 'EAGI' provides enhanced AGI, with incoming audio available out of band +on file descriptor 3 + + Use the CLI command 'agi show' to list available agi commands + This application sets the following channel variable upon completion: + AGISTATUS The status of the attempt to the run the AGI script + text string, one of SUCCESS | FAILED | HANGUP + +\end{verbatim} + + +\section{AlarmReceiver} +\subsection{Synopsis} +\begin{verbatim} +Provide support for receiving alarm reports from a burglar or fire alarm panel +\end{verbatim} +\subsection{Description} +\begin{verbatim} + AlarmReceiver(): Only 1 signalling format is supported at this time: Ademco +Contact ID. This application should be called whenever there is an alarm +panel calling in to dump its events. The application will handshake with the +alarm panel, and receive events, validate them, handshake them, and store them +until the panel hangs up. Once the panel hangs up, the application will run the +system command specified by the eventcmd setting in alarmreceiver.conf and pipe +the events to the standard input of the application. The configuration file also +contains settings for DTMF timing, and for the loudness of the acknowledgement +tones. + +\end{verbatim} + + +\section{AMD} +\subsection{Synopsis} +\begin{verbatim} +Attempts to detect answering machines +\end{verbatim} +\subsection{Description} +\begin{verbatim} + AMD([initialSilence][|greeting][|afterGreetingSilence][|totalAnalysisTime] + [|minimumWordLength][|betweenWordsSilence][|maximumNumberOfWords] + [|silenceThreshold]) + This application attempts to detect answering machines at the beginning + of outbound calls. Simply call this application after the call + has been answered (outbound only, of course). + When loaded, AMD reads amd.conf and uses the parameters specified as + default values. Those default values get overwritten when calling AMD + with parameters. +- 'initialSilence' is the maximum silence duration before the greeting. If + exceeded then MACHINE. +- 'greeting' is the maximum length of a greeting. If exceeded then MACHINE. +- 'afterGreetingSilence' is the silence after detecting a greeting. + If exceeded then HUMAN. +- 'totalAnalysisTime' is the maximum time allowed for the algorithm to decide + on a HUMAN or MACHINE. +- 'minimumWordLength'is the minimum duration of Voice to considered as a word. +- 'betweenWordsSilence' is the minimum duration of silence after a word to + consider the audio that follows as a new word. +- 'maximumNumberOfWords'is the maximum number of words in the greeting. + If exceeded then MACHINE. +- 'silenceThreshold' is the silence threshold. +This application sets the following channel variable upon completion: + AMDSTATUS - This is the status of the answering machine detection. + Possible values are: + MACHINE | HUMAN | NOTSURE | HANGUP + AMDCAUSE - Indicates the cause that led to the conclusion. + Possible values are: + TOOLONG-<%d total_time> + INITIALSILENCE-<%d silenceDuration>-<%d initialSilence> + HUMAN-<%d silenceDuration>-<%d afterGreetingSilence> + MAXWORDS-<%d wordsCount>-<%d maximumNumberOfWords> + LONGGREETING-<%d voiceDuration>-<%d greeting> + +\end{verbatim} + + +\section{Answer} +\subsection{Synopsis} +\begin{verbatim} +Answer a channel if ringing +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Answer([delay]): If the call has not been answered, this application will +answer it. Otherwise, it has no effect on the call. If a delay is specified, +Asterisk will wait this number of milliseconds before returning to +the dialplan after answering the call. + +\end{verbatim} + + +\section{AppendCDRUserField} +\subsection{Synopsis} +\begin{verbatim} +Append to the CDR user field +\end{verbatim} +\subsection{Description} +\begin{verbatim} +[Synopsis] +AppendCDRUserField(value) + +[Description] +AppendCDRUserField(value): Append value to the CDR user field + The Call Data Record (CDR) user field is an extra field you + can use for data not stored anywhere else in the record. + CDR records can be used for billing or storing other arbitrary data + (I.E. telephone survey responses) + Also see SetCDRUserField(). + +\end{verbatim} + + +\section{Authenticate} +\subsection{Synopsis} +\begin{verbatim} +Authenticate a user +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Authenticate(password[|options[|maxdigits]]): This application asks the caller +to enter a given password in order to continue dialplan execution. If the password +begins with the '/' character, it is interpreted as a file which contains a list of +valid passwords, listed 1 password per line in the file. + When using a database key, the value associated with the key can be anything. +Users have three attempts to authenticate before the channel is hung up. If the +passsword is invalid, the 'j' option is specified, and priority n+101 exists, +dialplan execution will continnue at this location. + Options: + a - Set the channels' account code to the password that is entered + d - Interpret the given path as database key, not a literal file + j - Support jumping to n+101 if authentication fails + m - Interpret the given path as a file which contains a list of account + codes and password hashes delimited with ':', listed one per line in + the file. When one of the passwords is matched, the channel will have + its account code set to the corresponding account code in the file. + r - Remove the database key upon successful entry (valid with 'd' only) + maxdigits - maximum acceptable number of digits. Stops reading after + maxdigits have been entered (without requiring the user to + press the '#' key). + Defaults to 0 - no limit - wait for the user press the '#' key. + +\end{verbatim} + + +\section{BackGround} +\subsection{Synopsis} +\begin{verbatim} +Play an audio file while waiting for digits of an extension to go to. +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Background(filename1[&filename2...][|options[|langoverride][|context]]): +This application will play the given list of files while waiting for an +extension to be dialed by the calling channel. To continue waiting for digits +after this application has finished playing files, the WaitExten application +should be used. The 'langoverride' option explicitly specifies which language +to attempt to use for the requested sound files. If a 'context' is specified, +this is the dialplan context that this application will use when exiting to a +dialed extension. If one of the requested sound files does not exist, call processing will be +terminated. + Options: + s - Causes the playback of the message to be skipped + if the channel is not in the 'up' state (i.e. it + hasn't been answered yet). If this happens, the + application will return immediately. + n - Don't answer the channel before playing the files. + m - Only break if a digit hit matches a one digit + extension in the destination context. + +\end{verbatim} + + +\section{BackgroundDetect} +\subsection{Synopsis} +\begin{verbatim} +Background a file with talk detect +\end{verbatim} +\subsection{Description} +\begin{verbatim} + BackgroundDetect(filename[|sil[|min|[max]]]): Plays back a given +filename, waiting for interruption from a given digit (the digit must +start the beginning of a valid extension, or it will be ignored). +During the playback of the file, audio is monitored in the receive +direction, and if a period of non-silence which is greater than 'min' ms +yet less than 'max' ms is followed by silence for at least 'sil' ms then +the audio playback is aborted and processing jumps to the 'talk' extension +if available. If unspecified, sil, min, and max default to 1000, 100, and +infinity respectively. + +\end{verbatim} + + +\section{Busy} +\subsection{Synopsis} +\begin{verbatim} +Indicate the Busy condition +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Busy([timeout]): This application will indicate the busy condition to +the calling channel. If the optional timeout is specified, the calling channel +will be hung up after the specified number of seconds. Otherwise, this +application will wait until the calling channel hangs up. + +\end{verbatim} + + +\section{ChangeMonitor} +\subsection{Synopsis} +\begin{verbatim} +Change monitoring filename of a channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} +ChangeMonitor(filename_base) +Changes monitoring filename of a channel. Has no effect if the channel is not monitored +The argument is the new filename base to use for monitoring this channel. + +\end{verbatim} + + +\section{ChanIsAvail} +\subsection{Synopsis} +\begin{verbatim} +Check channel availability +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): +This application will check to see if any of the specified channels are +available. The following variables will be set by this application: + ${AVAILCHAN} - the name of the available channel, if one exists + ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel + ${AVAILSTATUS} - the status code for the available channel + Options: + s - Consider the channel unavailable if the channel is in use at all + j - Support jumping to priority n+101 if no channel is available + +\end{verbatim} + + +\section{ChannelRedirect} +\subsection{Synopsis} +\begin{verbatim} +Redirects given channel to a dialplan target. +\end{verbatim} +\subsection{Description} +\begin{verbatim} +ChannelRedirect(channel|[[context|]extension|]priority): + Sends the specified channel to the specified extension priority + +\end{verbatim} + + +\section{ChanSpy} +\subsection{Synopsis} +\begin{verbatim} +Listen to a channel, and optionally whisper into it +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ChanSpy([chanprefix][|options]): This application is used to listen to the +audio from an Asterisk channel. This includes the audio coming in and +out of the channel being spied on. If the 'chanprefix' parameter is specified, +only channels beginning with this string will be spied upon. + While spying, the following actions may be performed: + - Dialing # cycles the volume level. + - Dialing * will stop spying and look for another channel to spy on. + - Dialing a series of digits followed by # builds a channel name to append + to 'chanprefix'. For example, executing ChanSpy(Agent) and then dialing + the digits '1234#' while spying will begin spying on the channel + 'Agent/1234'. + Options: + b - Only spy on channels involved in a bridged call. + g(grp) - Match only channels where their ${SPYGROUP} variable is set to + contain 'grp' in an optional : delimited list. + q - Don't play a beep when beginning to spy on a channel, or speak the + selected channel name. + r[(basename)] - Record the session to the monitor spool directory. An + optional base for the filename may be specified. The + default is 'chanspy'. + v([value]) - Adjust the initial volume in the range from -4 to 4. A + negative value refers to a quieter setting. + w - Enable 'whisper' mode, so the spying channel can talk to + the spied-on channel. + W - Enable 'private whisper' mode, so the spying channel can + talk to the spied-on channel but cannot listen to that + channel. + +\end{verbatim} + + +\section{Congestion} +\subsection{Synopsis} +\begin{verbatim} +Indicate the Congestion condition +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Congestion([timeout]): This application will indicate the congestion +condition to the calling channel. If the optional timeout is specified, the +calling channel will be hung up after the specified number of seconds. +Otherwise, this application will wait until the calling channel hangs up. + +\end{verbatim} + + +\section{ContinueWhile} +\subsection{Synopsis} +\begin{verbatim} +Restart a While loop +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: ContinueWhile() +Returns to the top of the while loop and re-evaluates the conditional. + +\end{verbatim} + + +\section{ControlPlayback} +\subsection{Synopsis} +\begin{verbatim} +Play a file with fast forward and rewind +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ControlPlayback(file[|skipms[|ff[|rew[|stop[|pause[|restart|options]]]]]]]): +This application will play back the given filename. By default, the '*' key +can be used to rewind, and the '#' key can be used to fast-forward. +Parameters: + skipms - This is number of milliseconds to skip when rewinding or + fast-forwarding. + ff - Fast-forward when this DTMF digit is received. + rew - Rewind when this DTMF digit is received. + stop - Stop playback when this DTMF digit is received. + pause - Pause playback when this DTMF digit is received. + restart - Restart playback when this DTMF digit is received. +Options: + j - Jump to priority n+101 if the requested file is not found. +This application sets the following channel variable upon completion: + CPLAYBACKSTATUS - This variable contains the status of the attempt as a text + string, one of: SUCCESS | USERSTOPPED | ERROR + +\end{verbatim} + + +\section{DateTime} +\subsection{Synopsis} +\begin{verbatim} +Says a specified time in a custom format +\end{verbatim} +\subsection{Description} +\begin{verbatim} +DateTime([unixtime][|[timezone][|format]]) + unixtime: time, in seconds since Jan 1, 1970. May be negative. + defaults to now. + timezone: timezone, see /usr/share/zoneinfo for a list. + defaults to machine default. + format: a format the time is to be said in. See voicemail.conf. + defaults to "ABdY 'digits/at' IMp" + +\end{verbatim} + + +\section{DBdel} +\subsection{Synopsis} +\begin{verbatim} +Delete a key from the database +\end{verbatim} +\subsection{Description} +\begin{verbatim} + DBdel(family/key): This application will delete a key from the Asterisk +database. + This application has been DEPRECATED in favor of the DB_DELETE function. + +\end{verbatim} + + +\section{DBdeltree} +\subsection{Synopsis} +\begin{verbatim} +Delete a family or keytree from the database +\end{verbatim} +\subsection{Description} +\begin{verbatim} + DBdeltree(family[/keytree]): This application will delete a family or keytree +from the Asterisk database + +\end{verbatim} + + +\section{DeadAGI} +\subsection{Synopsis} +\begin{verbatim} +Executes AGI on a hungup channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} + [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant +program on a channel. AGI allows Asterisk to launch external programs +written in any language to control a telephony channel, play audio, +read DTMF digits, etc. by communicating with the AGI protocol on stdin +and stdout. + This channel will stop dialplan execution on hangup inside of this +application, except when using DeadAGI. Otherwise, dialplan execution +will continue normally. + A locally executed AGI script will receive SIGHUP on hangup from the channel +except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel +variable to "no" before executing the AGI application. + Using 'EAGI' provides enhanced AGI, with incoming audio available out of band +on file descriptor 3 + + Use the CLI command 'agi show' to list available agi commands + This application sets the following channel variable upon completion: + AGISTATUS The status of the attempt to the run the AGI script + text string, one of SUCCESS | FAILED | HANGUP + +\end{verbatim} + + +\section{Dial} +\subsection{Synopsis} +\begin{verbatim} +Place a call and connect to the current channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Dial(Technology/resource[&Tech2/resource2...][|timeout][|options][|URL]): +This application will place calls to one or more specified channels. As soon +as one of the requested channels answers, the originating channel will be +answered, if it has not already been answered. These two channels will then +be active in a bridged call. All other channels that were requested will then +be hung up. + Unless there is a timeout specified, the Dial application will wait +indefinitely until one of the called channels answers, the user hangs up, or +if all of the called channels are busy or unavailable. Dialplan executing will +continue if no requested channels can be called, or if the timeout expires. + + This application sets the following channel variables upon completion: + DIALEDTIME - This is the time from dialing a channel until when it + is disconnected. + ANSWEREDTIME - This is the amount of time for actual call. + DIALSTATUS - This is the status of the call: + CHANUNAVAIL | CONGESTION | NOANSWER | BUSY | ANSWER | CANCEL + DONTCALL | TORTURE | INVALIDARGS + For the Privacy and Screening Modes, the DIALSTATUS variable will be set to +DONTCALL if the called party chooses to send the calling party to the 'Go Away' +script. The DIALSTATUS variable will be set to TORTURE if the called party +wants to send the caller to the 'torture' script. + This application will report normal termination if the originating channel +hangs up, or if the call is bridged and either of the parties in the bridge +ends the call. + The optional URL will be sent to the called party if the channel supports it. + If the OUTBOUND_GROUP variable is set, all peer channels created by this +application will be put into that group (as in Set(GROUP()=...). + + Options: + A(x) - Play an announcement to the called party, using 'x' as the file. + C - Reset the CDR for this call. + d - Allow the calling user to dial a 1 digit extension while waiting for + a call to be answered. Exit to that extension if it exists in the + current context, or the context defined in the EXITCONTEXT variable, + if it exists. + D([called][:calling]) - Send the specified DTMF strings *after* the called + party has answered, but before the call gets bridged. The 'called' + DTMF string is sent to the called party, and the 'calling' DTMF + string is sent to the calling party. Both parameters can be used + alone. + f - Force the callerid of the *calling* channel to be set as the + extension associated with the channel using a dialplan 'hint'. + For example, some PSTNs do not allow CallerID to be set to anything + other than the number assigned to the caller. + g - Proceed with dialplan execution at the current extension if the + destination channel hangs up. + G(context^exten^pri) - If the call is answered, transfer the calling party to + the specified priority and the called party to the specified priority+1. + Optionally, an extension, or extension and context may be specified. + Otherwise, the current extension is used. You cannot use any additional + action post answer options in conjunction with this option. + h - Allow the called party to hang up by sending the '*' DTMF digit. + H - Allow the calling party to hang up by hitting the '*' DTMF digit. + i - Asterisk will ignore any forwarding requests it may receive on this + dial attempt. + j - Jump to priority n+101 if all of the requested channels were busy. + L(x[:y][:z]) - Limit the call to 'x' ms. Play a warning when 'y' ms are + left. Repeat the warning every 'z' ms. The following special + variables can be used with this option: + * LIMIT_PLAYAUDIO_CALLER yes|no (default yes) + Play sounds to the caller. + * LIMIT_PLAYAUDIO_CALLEE yes|no + Play sounds to the callee. + * LIMIT_TIMEOUT_FILE File to play when time is up. + * LIMIT_CONNECT_FILE File to play when call begins. + * LIMIT_WARNING_FILE File to play as warning if 'y' is defined. + The default is to say the time remaining. + m([class]) - Provide hold music to the calling party until a requested + channel answers. A specific MusicOnHold class can be + specified. + M(x[^arg]) - Execute the Macro for the *called* channel before connecting + to the calling channel. Arguments can be specified to the Macro + using '^' as a delimeter. The Macro can set the variable + MACRO_RESULT to specify the following actions after the Macro is + finished executing. + * ABORT Hangup both legs of the call. + * CONGESTION Behave as if line congestion was encountered. + * BUSY Behave as if a busy signal was encountered. This will also + have the application jump to priority n+101 if the + 'j' option is set. + * CONTINUE Hangup the called party and allow the calling party + to continue dialplan execution at the next priority. + * GOTO:<context>^<exten>^<priority> - Transfer the call to the + specified priority. Optionally, an extension, or + extension and priority can be specified. + You cannot use any additional action post answer options in conjunction + with this option. Also, pbx services are not run on the peer (called) channel, + so you will not be able to set timeouts via the TIMEOUT() function in this macro. + n - This option is a modifier for the screen/privacy mode. It specifies + that no introductions are to be saved in the priv-callerintros + directory. + N - This option is a modifier for the screen/privacy mode. It specifies + that if callerID is present, do not screen the call. + o - Specify that the CallerID that was present on the *calling* channel + be set as the CallerID on the *called* channel. This was the + behavior of Asterisk 1.0 and earlier. + O([x]) - "Operator Services" mode (Zaptel channel to Zaptel channel + only, if specified on non-Zaptel interface, it will be ignored). + When the destination answers (presumably an operator services + station), the originator no longer has control of their line. + They may hang up, but the switch will not release their line + until the destination party hangs up (the operator). Specified + without an arg, or with 1 as an arg, the originator hanging up + will cause the phone to ring back immediately. With a 2 specified, + when the "operator" flashes the trunk, it will ring their phone + back. + p - This option enables screening mode. This is basically Privacy mode + without memory. + P([x]) - Enable privacy mode. Use 'x' as the family/key in the database if + it is provided. The current extension is used if a database + family/key is not specified. + r - Indicate ringing to the calling party. Pass no audio to the calling + party until the called channel has answered. + S(x) - Hang up the call after 'x' seconds *after* the called party has + answered the call. + t - Allow the called party to transfer the calling party by sending the + DTMF sequence defined in features.conf. + T - Allow the calling party to transfer the called party by sending the + DTMF sequence defined in features.conf. + w - Allow the called party to enable recording of the call by sending + the DTMF sequence defined for one-touch recording in features.conf. + W - Allow the calling party to enable recording of the call by sending + the DTMF sequence defined for one-touch recording in features.conf. + k - Allow the called party to enable parking of the call by sending + the DTMF sequence defined for call parking in features.conf. + K - Allow the calling party to enable parking of the call by sending + the DTMF sequence defined for call parking in features.conf. + +\end{verbatim} + + +\section{Dictate} +\subsection{Synopsis} +\begin{verbatim} +Virtual Dictation Machine +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Dictate([<base_dir>[|<filename>]]) +Start dictation machine using optional base dir for files. + +\end{verbatim} + + +\section{Directory} +\subsection{Synopsis} +\begin{verbatim} +Provide directory of voicemail extensions +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Directory(vm-context[|dial-context[|options]]): This application will present +the calling channel with a directory of extensions from which they can search +by name. The list of names and corresponding extensions is retrieved from the +voicemail configuration file, voicemail.conf. + This application will immediately exit if one of the following DTMF digits are +received and the extension to jump to exists: + 0 - Jump to the 'o' extension, if it exists. + * - Jump to the 'a' extension, if it exists. + + Parameters: + vm-context - This is the context within voicemail.conf to use for the + Directory. + dial-context - This is the dialplan context to use when looking for an + extension that the user has selected, or when jumping to the + 'o' or 'a' extension. + + Options: + e - In addition to the name, also read the extension number to the + caller before presenting dialing options. + f - Allow the caller to enter the first name of a user in the directory + instead of using the last name. + +\end{verbatim} + + +\section{DISA} +\subsection{Synopsis} +\begin{verbatim} +DISA (Direct Inward System Access) +\end{verbatim} +\subsection{Description} +\begin{verbatim} +DISA(<numeric passcode>[|<context>]) or DISA(<filename>) +The DISA, Direct Inward System Access, application allows someone from +outside the telephone switch (PBX) to obtain an "internal" system +dialtone and to place calls from it as if they were placing a call from +within the switch. +DISA plays a dialtone. The user enters their numeric passcode, followed by +the pound sign (#). If the passcode is correct, the user is then given +system dialtone on which a call may be placed. Obviously, this type +of access has SERIOUS security implications, and GREAT care must be +taken NOT to compromise your security. + +There is a possibility of accessing DISA without password. Simply +exchange your password with "no-password". + + Example: exten => s,1,DISA(no-password|local) + +Be aware that using this compromises the security of your PBX. + +The arguments to this application (in extensions.conf) allow either +specification of a single global passcode (that everyone uses), or +individual passcodes contained in a file. It also allows specification +of the context on which the user will be dialing. If no context is +specified, the DISA application defaults the context to "disa". +Presumably a normal system will have a special context set up +for DISA use with some or a lot of restrictions. + +The file that contains the passcodes (if used) allows specification +of either just a passcode (defaulting to the "disa" context, or +passcode|context on each line of the file. The file may contain blank +lines, or comments starting with "#" or ";". In addition, the +above arguments may have |new-callerid-string appended to them, to +specify a new (different) callerid to be used for this call, for +example: numeric-passcode|context|"My Phone" <(234) 123-4567> or +full-pathname-of-passcode-file|"My Phone" <(234) 123-4567>. Last +but not least, |mailbox[@context] may be appended, which will cause +a stutter-dialtone (indication "dialrecall") to be used, if the +specified mailbox contains any new messages, for example: +numeric-passcode|context||1234 (w/a changing callerid). Note that +in the case of specifying the numeric-passcode, the context must be +specified if the callerid is specified also. + +If login is successful, the application looks up the dialed number in +the specified (or default) context, and executes it if found. +If the user enters an invalid extension and extension "i" (invalid) +exists in the context, it will be used. Also, if you set the 5th argument +to 'NOANSWER', the DISA application will not answer initially. + +\end{verbatim} + + +\section{DumpChan} +\subsection{Synopsis} +\begin{verbatim} +Dump Info About The Calling Channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} + DumpChan([<min_verbose_level>]) +Displays information on channel and listing of all channel +variables. If min_verbose_level is specified, output is only +displayed when the verbose level is currently set to that number +or greater. + +\end{verbatim} + + +\section{EAGI} +\subsection{Synopsis} +\begin{verbatim} +Executes an EAGI compliant application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant +program on a channel. AGI allows Asterisk to launch external programs +written in any language to control a telephony channel, play audio, +read DTMF digits, etc. by communicating with the AGI protocol on stdin +and stdout. + This channel will stop dialplan execution on hangup inside of this +application, except when using DeadAGI. Otherwise, dialplan execution +will continue normally. + A locally executed AGI script will receive SIGHUP on hangup from the channel +except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel +variable to "no" before executing the AGI application. + Using 'EAGI' provides enhanced AGI, with incoming audio available out of band +on file descriptor 3 + + Use the CLI command 'agi show' to list available agi commands + This application sets the following channel variable upon completion: + AGISTATUS The status of the attempt to the run the AGI script + text string, one of SUCCESS | FAILED | HANGUP + +\end{verbatim} + + +\section{Echo} +\subsection{Synopsis} +\begin{verbatim} +Echo audio, video, or DTMF back to the calling party +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Echo(): This application will echo any audio, video, or DTMF frames read from +the calling channel back to itself. If the DTMF digit '#' is received, the +application will exit. + +\end{verbatim} + + +\section{EndWhile} +\subsection{Synopsis} +\begin{verbatim} +End a while loop +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: EndWhile() +Return to the previous called While + +\end{verbatim} + + +\section{Exec} +\subsection{Synopsis} +\begin{verbatim} +Executes dialplan application +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: Exec(appname(arguments)) + Allows an arbitrary application to be invoked even when not +hardcoded into the dialplan. If the underlying application +terminates the dialplan, or if the application cannot be found, +Exec will terminate the dialplan. + To invoke external applications, see the application System. + If you would like to catch any error instead, see TryExec. + +\end{verbatim} + + +\section{ExecIf} +\subsection{Synopsis} +\begin{verbatim} +Executes dialplan application, conditionally +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: ExecIF (<expr>|<app>|<data>) +If <expr> is true, execute and return the result of <app>(<data>). +If <expr> is true, but <app> is not found, then the application +will return a non-zero value. + +\end{verbatim} + + +\section{ExecIfTime} +\subsection{Synopsis} +\begin{verbatim} +Conditional application execution based on the current time +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ExecIfTime(<times>|<weekdays>|<mdays>|<months>?appname[|appargs]): +This application will execute the specified dialplan application, with optional +arguments, if the current time matches the given time specification. + +\end{verbatim} + + +\section{ExitWhile} +\subsection{Synopsis} +\begin{verbatim} +End a While loop +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: ExitWhile() +Exits a While loop, whether or not the conditional has been satisfied. + +\end{verbatim} + + +\section{ExtenSpy} +\subsection{Synopsis} +\begin{verbatim} +Listen to a channel, and optionally whisper into it +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ExtenSpy(exten[@context][|options]): This application is used to listen to the +audio from an Asterisk channel. This includes the audio coming in and +out of the channel being spied on. Only channels created by outgoing calls for the +specified extension will be selected for spying. If the optional context is not +supplied, the current channel's context will be used. + While spying, the following actions may be performed: + - Dialing # cycles the volume level. + - Dialing * will stop spying and look for another channel to spy on. + Options: + b - Only spy on channels involved in a bridged call. + g(grp) - Match only channels where their ${SPYGROUP} variable is set to + contain 'grp' in an optional : delimited list. + q - Don't play a beep when beginning to spy on a channel, or speak the + selected channel name. + r[(basename)] - Record the session to the monitor spool directory. An + optional base for the filename may be specified. The + default is 'chanspy'. + v([value]) - Adjust the initial volume in the range from -4 to 4. A + negative value refers to a quieter setting. + w - Enable 'whisper' mode, so the spying channel can talk to + the spied-on channel. + W - Enable 'private whisper' mode, so the spying channel can + talk to the spied-on channel but cannot listen to that + channel. + +\end{verbatim} + + +\section{ExternalIVR} +\subsection{Synopsis} +\begin{verbatim} +Interfaces with an external IVR application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ExternalIVR(command[|arg[|arg...]]): Forks an process to run the supplied command, +and starts a generator on the channel. The generator's play list is +controlled by the external application, which can add and clear entries +via simple commands issued over its stdout. The external application +will receive all DTMF events received on the channel, and notification +if the channel is hung up. The application will not be forcibly terminated +when the channel is hung up. +See doc/externalivr.txt for a protocol specification. + +\end{verbatim} + + +\section{Festival} +\subsection{Synopsis} +\begin{verbatim} +Say text to the user +\end{verbatim} +\subsection{Description} +\begin{verbatim} + 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 +the value, or 'any' to allow any number back (useful in dialplan) + +\end{verbatim} + + +\section{Flash} +\subsection{Synopsis} +\begin{verbatim} +Flashes a Zap Trunk +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Flash(): Sends a flash on a zap trunk. This is only a hack for +people who want to perform transfers and such via AGI and is generally +quite useless oths application will only work on Zap trunks. + +\end{verbatim} + + +\section{FollowMe} +\subsection{Synopsis} +\begin{verbatim} +Find-Me/Follow-Me application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + FollowMe(followmeid|options): +This application performs Find-Me/Follow-Me functionality for the caller +as defined in the profile matching the <followmeid> parameter in +followme.conf. If the specified <followmeid> profile doesn't exist in +followme.conf, execution will be returned to the dialplan and call +execution will continue at the next priority. + + Options: + s - Playback the incoming status message prior to starting the follow-me step(s) + a - Record the caller's name so it can be announced to the callee on each step + n - Playback the unreachable status message if we've run out of steps to reach the + or the callee has elected not to be reachable. +Returns -1 on hangup + +\end{verbatim} + + +\section{ForkCDR} +\subsection{Synopsis} +\begin{verbatim} +Forks the Call Data Record +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ForkCDR([options]): Causes the Call Data Record to fork an additional +cdr record starting from the time of the fork call +If the option 'v' is passed all cdr variables will be passed along also. + +\end{verbatim} + + +\section{GetCPEID} +\subsection{Synopsis} +\begin{verbatim} +Get ADSI CPE ID +\end{verbatim} +\subsection{Description} +\begin{verbatim} + GetCPEID: Obtains and displays ADSI CPE ID and other information in order +to properly setup zapata.conf for on-hook operations. + +\end{verbatim} + + +\section{Gosub} +\subsection{Synopsis} +\begin{verbatim} +Jump to label, saving return address +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Gosub([[context|]exten|]priority) + Jumps to the label specified, saving the return address. + +\end{verbatim} + + +\section{GosubIf} +\subsection{Synopsis} +\begin{verbatim} +Conditionally jump to label, saving return address +\end{verbatim} +\subsection{Description} +\begin{verbatim} +GosubIf(condition?labeliftrue[:labeliffalse]) + If the condition is true, then jump to labeliftrue. If false, jumps to +labeliffalse, if specified. In either case, a jump saves the return point +in the dialplan, to be returned to with a Return. + +\end{verbatim} + + +\section{Goto} +\subsection{Synopsis} +\begin{verbatim} +Jump to a particular priority, extension, or context +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Goto([[context|]extension|]priority): This application will set the current +context, extension, and priority in the channel structure. After it completes, the +pbx engine will continue dialplan execution at the specified location. +If no specific extension, or extension and context, are specified, then this +application will just set the specified priority of the current extension. + At least a priority is required as an argument, or the goto will return a -1, +and the channel and call will be terminated. + If the location that is put into the channel information is bogus, and asterisk cannot +find that location in the dialplan, +then the execution engine will try to find and execute the code in the 'i' (invalid) +extension in the current context. If that does not exist, it will try to execute the +'h' extension. If either or neither the 'h' or 'i' extensions have been defined, the +channel is hung up, and the execution of instructions on the channel is terminated. +What this means is that, for example, you specify a context that does not exist, then +it will not be possible to find the 'h' or 'i' extensions, and the call will terminate! + +\end{verbatim} + + +\section{GotoIf} +\subsection{Synopsis} +\begin{verbatim} +Conditional goto +\end{verbatim} +\subsection{Description} +\begin{verbatim} + GotoIf(condition?[labeliftrue]:[labeliffalse]): This application will set the current +context, extension, and priority in the channel structure based on the evaluation of +the given condition. After this application completes, the +pbx engine will continue dialplan execution at the specified location in the dialplan. +The channel will continue at +'labeliftrue' if the condition is true, or 'labeliffalse' if the condition is +false. The labels are specified with the same syntax as used within the Goto +application. If the label chosen by the condition is omitted, no jump is +performed, and the execution passes to the next instruction. +If the target location is bogus, and does not exist, the execution engine will try +to find and execute the code in the 'i' (invalid) +extension in the current context. If that does not exist, it will try to execute the +'h' extension. If either or neither the 'h' or 'i' extensions have been defined, the +channel is hung up, and the execution of instructions on the channel is terminated. +Remember that this command can set the current context, and if the context specified +does not exist, then it will not be able to find any 'h' or 'i' extensions there, and +the channel and call will both be terminated! + +\end{verbatim} + + +\section{GotoIfTime} +\subsection{Synopsis} +\begin{verbatim} +Conditional Goto based on the current time +\end{verbatim} +\subsection{Description} +\begin{verbatim} + GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[[context|]exten|]priority): +This application will set the context, extension, and priority in the channel structure +if the current time matches the given time specification. Otherwise, nothing is done. +Further information on the time specification can be found in examples +illustrating how to do time-based context includes in the dialplan. +If the target jump location is bogus, the same actions would be taken as for Goto. + +\end{verbatim} + + +\section{Hangup} +\subsection{Synopsis} +\begin{verbatim} +Hang up the calling channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Hangup([causecode]): This application will hang up the calling channel. +If a causecode is given the channel's hangup cause will be set to the given +value. + +\end{verbatim} + + +\section{HasNewVoicemail} +\subsection{Synopsis} +\begin{verbatim} +Conditionally branches to priority + 101 with the right options set +\end{verbatim} +\subsection{Description} +\begin{verbatim} +HasNewVoicemail(vmbox[/folder][@context][|varname[|options]]) +Assumes folder 'INBOX' if folder is not specified. Optionally sets <varname> to the number of messages +in that folder. + The option string may contain zero of the following character: + 'j' -- jump to priority n+101, if there is new voicemail in folder 'folder' or INBOX + This application sets the following channel variable upon completion: + HASVMSTATUS The result of the new voicemail check returned as a text string as follows + <# of messages in the folder, 0 for NONE> + +\end{verbatim} + + +\section{HasVoicemail} +\subsection{Synopsis} +\begin{verbatim} +Conditionally branches to priority + 101 with the right options set +\end{verbatim} +\subsection{Description} +\begin{verbatim} +HasVoicemail(vmbox[/folder][@context][|varname[|options]]) + Optionally sets <varname> to the number of messages in that folder. Assumes folder of INBOX if not specified. + The option string may contain zero or the following character: + 'j' -- jump to priority n+101, if there is voicemail in the folder indicated. + This application sets the following channel variable upon completion: + HASVMSTATUS The result of the voicemail check returned as a text string as follows + <# of messages in the folder, 0 for NONE> + +\end{verbatim} + + +\section{IAX2Provision} +\subsection{Synopsis} +\begin{verbatim} +Provision a calling IAXy with a given template +\end{verbatim} +\subsection{Description} +\begin{verbatim} + IAX2Provision([template]): Provisions the calling IAXy (assuming +the calling entity is in fact an IAXy) with the given template or +default if one is not specified. Returns -1 on error or 0 on success. + +\end{verbatim} + + +\section{ICES} +\subsection{Synopsis} +\begin{verbatim} +Encode and stream using 'ices' +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ICES(config.xml) Streams to an icecast server using ices +(available separately). A configuration file must be supplied +for ices (see examples/asterisk-ices.conf). + +\end{verbatim} + + +\section{ImportVar} +\subsection{Synopsis} +\begin{verbatim} +Import a variable from a channel into a new variable +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ImportVar(newvar=channelname|variable): This application imports a variable +from the specified channel (as opposed to the current one) and stores it as +a variable in the current channel (the channel that is calling this +application). Variables created by this application have the same inheritance +properties as those created with the Set application. See the documentation for +Set for more information. + +\end{verbatim} + + +\section{JabberSend} +\subsection{Synopsis} +\begin{verbatim} +JabberSend(jabber,screenname,message) +\end{verbatim} +\subsection{Description} +\begin{verbatim} +JabberSend(Jabber,ScreenName,Message) + Jabber - Client or transport Asterisk uses to connect to Jabber + ScreenName - User Name to message. + Message - Message to be sent to the buddy + +\end{verbatim} + + +\section{JabberStatus} +\subsection{Synopsis} +\begin{verbatim} +JabberStatus(Jabber,ScreenName,Variable) +\end{verbatim} +\subsection{Description} +\begin{verbatim} +JabberStatus(Jabber,ScreenName,Variable) + Jabber - Client or transport Asterisk uses to connect to Jabber + ScreenName - User Name to retrieve status from. + Variable - Variable to store presence in will be 1-6. + In order, Online, Chatty, Away, XAway, DND, Offline + If not in roster variable will = 7 + +\end{verbatim} + + +\section{Log} +\subsection{Synopsis} +\begin{verbatim} +Send arbitrary text to a selected log level +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Log(<level>|<message>) + level must be one of ERROR, WARNING, NOTICE, DEBUG, VERBOSE, DTMF + +\end{verbatim} + + +\section{LookupBlacklist} +\subsection{Synopsis} +\begin{verbatim} +Look up Caller*ID name/number from blacklist database +\end{verbatim} +\subsection{Description} +\begin{verbatim} + LookupBlacklist(options): Looks up the Caller*ID number on the active +channel in the Asterisk database (family 'blacklist'). +The option string may contain the following character: + 'j' -- jump to n+101 priority if the number/name is found in the blacklist +This application sets the following channel variable upon completion: + LOOKUPBLSTATUS The status of the Blacklist lookup as a text string, one of + FOUND | NOTFOUND +Example: exten => 1234,1,LookupBlacklist() + +This application is deprecated and may be removed from a future release. +Please use the dialplan function BLACKLIST() instead. + +\end{verbatim} + + +\section{LookupCIDName} +\subsection{Synopsis} +\begin{verbatim} +Look up CallerID Name from local database +\end{verbatim} +\subsection{Description} +\begin{verbatim} + LookupCIDName: Looks up the Caller*ID number on the active +channel in the Asterisk database (family 'cidname') and sets the +Caller*ID name. Does nothing if no Caller*ID was received on the +channel. This is useful if you do not subscribe to Caller*ID +name delivery, or if you want to change the names on some incoming +calls. + +LookupCIDName is deprecated. Please use ${DB(cidname/${CALLERID(num)})} +instead. + +\end{verbatim} + + +\section{Macro} +\subsection{Synopsis} +\begin{verbatim} +Macro Implementation +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Macro(macroname|arg1|arg2...): Executes a macro using the context +'macro-<macroname>', jumping to the 's' extension of that context and +executing each step, then returning when the steps end. +The calling extension, context, and priority are stored in ${MACRO_EXTEN}, +${MACRO_CONTEXT} and ${MACRO_PRIORITY} respectively. Arguments become +${ARG1}, ${ARG2}, etc in the macro context. +If you Goto out of the Macro context, the Macro will terminate and control +will be returned at the location of the Goto. +If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue +at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise. +WARNING: Because of the way Macro is implemented (it executes the priorities + contained within it via sub-engine), and a fixed per-thread + memory stack allowance, macros are limited to 7 levels + of nesting (macro calling macro calling macro, etc.); It + may be possible that stack-intensive applications in deeply nested macros + could cause asterisk to crash earlier than this limit. + +\end{verbatim} + + +\section{MacroExclusive} +\subsection{Synopsis} +\begin{verbatim} +Exclusive Macro Implementation +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MacroExclusive(macroname|arg1|arg2...): +Executes macro defined in the context 'macro-macroname' +Only one call at a time may run the macro. +(we'll wait if another call is busy executing in the Macro) +Arguments and return values as in application Macro() + +\end{verbatim} + + +\section{MacroExit} +\subsection{Synopsis} +\begin{verbatim} +Exit From Macro +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MacroExit(): +Causes the currently running macro to exit as if it had +ended normally by running out of priorities to execute. +If used outside a macro, will likely cause unexpected +behavior. + +\end{verbatim} + + +\section{MacroIf} +\subsection{Synopsis} +\begin{verbatim} +Conditional Macro Implementation +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MacroIf(<expr>?macroname_a[|arg1][:macroname_b[|arg1]]) +Executes macro defined in <macroname_a> if <expr> is true +(otherwise <macroname_b> if provided) +Arguments and return values as in application macro() + +\end{verbatim} + + +\section{MailboxExists} +\subsection{Synopsis} +\begin{verbatim} +Check to see if Voicemail mailbox exists +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MailboxExists(mailbox[@context][|options]): Check to see if the specified +mailbox exists. If no voicemail context is specified, the 'default' context +will be used. + This application will set the following channel variable upon completion: + VMBOXEXISTSSTATUS - This will contain the status of the execution of the + MailboxExists application. Possible values include: + SUCCESS | FAILED + + Options: + j - Jump to priority n+101 if the mailbox is found. + +\end{verbatim} + + +\section{MeetMe} +\subsection{Synopsis} +\begin{verbatim} +MeetMe conference bridge +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MeetMe([confno][,[options][,pin]]): Enters the user into a specified MeetMe +conference. If the conference number is omitted, the user will be prompted +to enter one. User can exit the conference by hangup, or if the 'p' option +is specified, by pressing '#'. +Please note: The Zaptel kernel modules and at least one hardware driver (or ztdummy) + must be present for conferencing to operate properly. In addition, the chan_zap + channel driver must be loaded for the 'i' and 'r' options to operate at all. + +The option string may contain zero or more of the following characters: + 'a' -- set admin mode + 'A' -- set marked mode + 'b' -- run AGI script specified in ${MEETME_AGI_BACKGROUND} + Default: conf-background.agi (Note: This does not work with + non-Zap channels in the same conference) + 'c' -- announce user(s) count on joining a conference + 'd' -- dynamically add conference + 'D' -- dynamically add conference, prompting for a PIN + 'e' -- select an empty conference + 'E' -- select an empty pinless conference + 'F' -- Pass DTMF through the conference. DTMF used to activate any + conference features will not be passed through. + 'i' -- announce user join/leave with review + 'I' -- announce user join/leave without review + 'l' -- set listen only mode (Listen only, no talking) + 'm' -- set initially muted + 'M' -- enable music on hold when the conference has a single caller + 'o' -- set talker optimization - treats talkers who aren't speaking as + being muted, meaning (a) No encode is done on transmission and + (b) Received audio that is not registered as talking is omitted + causing no buildup in background noise + 'p' -- allow user to exit the conference by pressing '#' + 'P' -- always prompt for the pin even if it is specified + 'q' -- quiet mode (don't play enter/leave sounds) + 'r' -- Record conference (records as ${MEETME_RECORDINGFILE} + using format ${MEETME_RECORDINGFORMAT}). Default filename is + meetme-conf-rec-${CONFNO}-${UNIQUEID} and the default format is + wav. + 's' -- Present menu (user or admin) when '*' is received ('send' to menu) + 't' -- set talk only mode. (Talk only, no listening) + 'T' -- set talker detection (sent to manager interface and meetme list) + 'w[(<secs>)]' + -- wait until the marked user enters the conference + 'x' -- close the conference when last marked user exits + 'X' -- allow user to exit the conference by entering a valid single + digit extension ${MEETME_EXIT_CONTEXT} or the current context + if that variable is not defined. + '1' -- do not play message when first person enters + +\end{verbatim} + + +\section{MeetMeAdmin} +\subsection{Synopsis} +\begin{verbatim} +MeetMe conference Administration +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MeetMeAdmin(confno,command[,user]): Run admin command for conference + 'e' -- Eject last user that joined + 'k' -- Kick one user out of conference + 'K' -- Kick all users out of conference + 'l' -- Unlock conference + 'L' -- Lock conference + 'm' -- Unmute one user + 'M' -- Mute one user + 'n' -- Unmute all users in the conference + 'N' -- Mute all non-admin users in the conference + 'r' -- Reset one user's volume settings + 'R' -- Reset all users volume settings + 's' -- Lower entire conference speaking volume + 'S' -- Raise entire conference speaking volume + 't' -- Lower one user's talk volume + 'T' -- Raise one user's talk volume + 'u' -- Lower one user's listen volume + 'U' -- Raise one user's listen volume + 'v' -- Lower entire conference listening volume + 'V' -- Raise entire conference listening volume + +\end{verbatim} + + +\section{MeetMeCount} +\subsection{Synopsis} +\begin{verbatim} +MeetMe participant count +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MeetMeCount(confno[|var]): Plays back the number of users in the specified +MeetMe conference. If var is specified, playback will be skipped and the value +will be returned in the variable. Upon app completion, MeetMeCount will hangup +the channel, unless priority n+1 exists, in which case priority progress will +continue. +A ZAPTEL INTERFACE MUST BE INSTALLED FOR CONFERENCING FUNCTIONALITY. + +\end{verbatim} + + +\section{Milliwatt} +\subsection{Synopsis} +\begin{verbatim} +Generate a Constant 1000Hz tone at 0dbm (mu-law) +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Milliwatt(): Generate a Constant 1000Hz tone at 0dbm (mu-law) + +\end{verbatim} + + +\section{MixMonitor} +\subsection{Synopsis} +\begin{verbatim} +Record a call and mix the audio during the recording +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MixMonitor(<file>.<ext>[|<options>[|<command>]]) + +Records the audio on the current channel to the specified file. +If the filename is an absolute path, uses that path, otherwise +creates the file in the configured monitoring directory from +asterisk.conf. + +Valid options: + a - Append to the file instead of overwriting it. + b - Only save audio to the file while the channel is bridged. + Note: Does not include conferences or sounds played to each bridged + party. + v(<x>) - Adjust the heard volume by a factor of <x> (range -4 to 4) + V(<x>) - Adjust the spoken volume by a factor of <x> (range -4 to 4) + W(<x>) - Adjust the both heard and spoken volumes by a factor of <x> + (range -4 to 4) + +<command> will be executed when the recording is over +Any strings matching ^{X} will be unescaped to ${X} and +all variables will be evaluated at that time. +The variable MIXMONITOR_FILENAME will contain the filename used to record. + +\end{verbatim} + + +\section{Monitor} +\subsection{Synopsis} +\begin{verbatim} +Monitor a channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Monitor([file_format[:urlbase]|[fname_base]|[options]]): +Used to start monitoring a channel. The channel's input and output +voice packets are logged to files until the channel hangs up or +monitoring is stopped by the StopMonitor application. + file_format optional, if not set, defaults to "wav" + fname_base if set, changes the filename used to the one specified. + options: + m - when the recording ends mix the two leg files into one and + delete the two leg files. If the variable MONITOR_EXEC is set, the + application referenced in it will be executed instead of + soxmix and the raw leg files will NOT be deleted automatically. + soxmix or MONITOR_EXEC is handed 3 arguments, the two leg files + and a target mixed file name which is the same as the leg file names + only without the in/out designator. + If MONITOR_EXEC_ARGS is set, the contents will be passed on as + additional arguements to MONITOR_EXEC + Both MONITOR_EXEC and the Mix flag can be set from the + administrator interface + + b - Don't begin recording unless a call is bridged to another channel + +Returns -1 if monitor files can't be opened or if the channel is already +monitored, otherwise 0. + +\end{verbatim} + + +\section{Morsecode} +\subsection{Synopsis} +\begin{verbatim} +Plays morse code +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: Morsecode(<string>) +Plays the Morse code equivalent of the passed string. If the variable +MORSEDITLEN is set, it will use that value for the length (in ms) of the dit +(defaults to 80). Additionally, if MORSETONE is set, it will use that tone +(in Hz). The tone default is 800. + +\end{verbatim} + + +\section{MP3Player} +\subsection{Synopsis} +\begin{verbatim} +Play an MP3 file or stream +\end{verbatim} +\subsection{Description} +\begin{verbatim} + MP3Player(location) Executes mpg123 to play the given location, +which typically would be a filename or a URL. User can exit by pressing +any key on the dialpad, or by hanging up. +\end{verbatim} + + +\section{MusicOnHold} +\subsection{Synopsis} +\begin{verbatim} +Play Music On Hold indefinitely +\end{verbatim} +\subsection{Description} +\begin{verbatim} +MusicOnHold(class): Plays hold music specified by class. If omitted, the default +music source for the channel will be used. Set the default +class with the SetMusicOnHold() application. +Returns -1 on hangup. +Never returns otherwise. + +\end{verbatim} + + +\section{NBScat} +\subsection{Synopsis} +\begin{verbatim} +Play an NBS local stream +\end{verbatim} +\subsection{Description} +\begin{verbatim} + NBScat: Executes nbscat to listen to the local NBS stream. +User can exit by pressing any key +. +\end{verbatim} + + +\section{NoCDR} +\subsection{Synopsis} +\begin{verbatim} +Tell Asterisk to not maintain a CDR for the current call +\end{verbatim} +\subsection{Description} +\begin{verbatim} + NoCDR(): This application will tell Asterisk not to maintain a CDR for the +current call. + +\end{verbatim} + + +\section{NoOp} +\subsection{Synopsis} +\begin{verbatim} +Do Nothing +\end{verbatim} +\subsection{Description} +\begin{verbatim} + NoOp(): This applicatiion does nothing. However, it is useful for debugging +purposes. Any text that is provided as arguments to this application can be +viewed at the Asterisk CLI. This method can be used to see the evaluations of +variables or functions without having any effect. +\end{verbatim} + + +\section{Page} +\subsection{Synopsis} +\begin{verbatim} +Pages phones +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Page(Technology/Resource&Technology2/Resource2[|options]) + Places outbound calls to the given technology / resource and dumps +them into a conference bridge as muted participants. The original +caller is dumped into the conference as a speaker and the room is +destroyed when the original caller leaves. Valid options are: + d - full duplex audio + q - quiet, do not play beep to caller + r - record the page into a file (see 'r' for app_meetme) + +\end{verbatim} + + +\section{Park} +\subsection{Synopsis} +\begin{verbatim} +Park yourself +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Park():Used to park yourself (typically in combination with a supervised +transfer to know the parking space). This application is always +registered internally and does not need to be explicitly added +into the dialplan, although you should include the 'parkedcalls' +context (or the context specified in features.conf). + +If you set the PARKINGEXTEN variable to an extension in your +parking context, park() will park the call on that extension, unless +it already exists. In that case, execution will continue at next +priority. + +\end{verbatim} + + +\section{ParkAndAnnounce} +\subsection{Synopsis} +\begin{verbatim} +Park and Announce +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ParkAndAnnounce(announce:template|timeout|dial|[return_context]): +Park a call into the parkinglot and announce the call to another channel. + +announce template: Colon-separated list of files to announce. The word PARKED + will be replaced by a say_digits of the extension in which + the call is parked. +timeout: Time in seconds before the call returns into the return + context. +dial: The app_dial style resource to call to make the + announcement. Console/dsp calls the console. +return_context: The goto-style label to jump the call back into after + timeout. Default <priority+1>. + +The variable ${PARKEDAT} will contain the parking extension into which the +call was placed. Use with the Local channel to allow the dialplan to make +use of this information. + +\end{verbatim} + + +\section{ParkedCall} +\subsection{Synopsis} +\begin{verbatim} +Answer a parked call +\end{verbatim} +\subsection{Description} +\begin{verbatim} +ParkedCall(exten):Used to connect to a parked call. This application is always +registered internally and does not need to be explicitly added +into the dialplan, although you should include the 'parkedcalls' +context. + +\end{verbatim} + + +\section{PauseMonitor} +\subsection{Synopsis} +\begin{verbatim} +Pause monitoring of a channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} +PauseMonitor +Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor. + +\end{verbatim} + + +\section{PauseQueueMember} +\subsection{Synopsis} +\begin{verbatim} +Pauses a queue member +\end{verbatim} +\subsection{Description} +\begin{verbatim} + PauseQueueMember([queuename]|interface[|options]): +Pauses (blocks calls for) a queue member. +The given interface will be paused in the given queue. This prevents +any calls from being sent from the queue to the interface until it is +unpaused with UnpauseQueueMember or the manager interface. If no +queuename is given, the interface is paused in every queue it is a +member of. If the interface is not in the named queue, or if no queue +is given and the interface is not in any queue, it will jump to +priority n+101, if it exists and the appropriate options are set. +The application will fail if the interface is not found and no extension +to jump to exists. +The option string may contain zero or more of the following characters: + 'j' -- jump to +101 priority when appropriate. + This application sets the following channel variable upon completion: + PQMSTATUS The status of the attempt to pause a queue member as a + text string, one of + PAUSED | NOTFOUND +Example: PauseQueueMember(|SIP/3000) + +\end{verbatim} + + +\section{Pickup} +\subsection{Synopsis} +\begin{verbatim} +Directed Call Pickup +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Pickup(extension[@context][&extension2@context...]): This application can pickup any ringing channel +that is calling the specified extension. If no context is specified, the current +context will be used. If you use the special string "PICKUPMARK" for the context parameter, for example +10@PICKUPMARK, this application tries to find a channel which has defined a channel variable with the same content +as "extension". +\end{verbatim} + + +\section{Playback} +\subsection{Synopsis} +\begin{verbatim} +Play a file +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Playback(filename[&filename2...][|option]): Plays back given filenames (do not put +extension). Options may also be included following a pipe symbol. The 'skip' +option causes the playback of the message to be skipped if the channel +is not in the 'up' state (i.e. it hasn't been answered yet). If 'skip' is +specified, the application will return immediately should the channel not be +off hook. Otherwise, unless 'noanswer' is specified, the channel will +be answered before the sound is played. Not all channels support playing +messages while still on hook. If 'j' is specified, the application +will jump to priority n+101 if present when a file specified to be played +does not exist. +This application sets the following channel variable upon completion: + PLAYBACKSTATUS The status of the playback attempt as a text string, one of + SUCCESS | FAILED + +\end{verbatim} + + +\section{PlayTones} +\subsection{Synopsis} +\begin{verbatim} +Play a tone list +\end{verbatim} +\subsection{Description} +\begin{verbatim} +PlayTones(arg): Plays a tone list. Execution will continue with the next step immediately, +while the tones continue to play. +Arg is either the tone name defined in the indications.conf configuration file, or a directly +specified list of frequencies and durations. +See the sample indications.conf for a description of the specification of a tonelist. + +Use the StopPlayTones application to stop the tones playing. + +\end{verbatim} + + +\section{PrivacyManager} +\subsection{Synopsis} +\begin{verbatim} +Require phone number to be entered, if no CallerID sent +\end{verbatim} +\subsection{Description} +\begin{verbatim} + PrivacyManager([maxretries[|minlength[|options]]]): If no Caller*ID +is sent, PrivacyManager answers the channel and asks the caller to +enter their phone number. The caller is given 3 attempts to do so. +The application does nothing if Caller*ID was received on the channel. + Configuration file privacy.conf contains two variables: + maxretries default 3 -maximum number of attempts the caller is allowed + to input a callerid. + minlength default 10 -minimum allowable digits in the input callerid number. +If you don't want to use the config file and have an i/o operation with +every call, you can also specify maxretries and minlength as application +parameters. Doing so supercedes any values set in privacy.conf. +The option string may contain the following character: + 'j' -- jump to n+101 priority after <maxretries> failed attempts to collect + the minlength number of digits. +The application sets the following channel variable upon completion: +PRIVACYMGRSTATUS The status of the privacy manager's attempt to collect + a phone number from the user. A text string that is either: + SUCCESS | FAILED + +\end{verbatim} + + +\section{Progress} +\subsection{Synopsis} +\begin{verbatim} +Indicate progress +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Progress(): This application will request that in-band progress information +be provided to the calling channel. + +\end{verbatim} + + +\section{Queue} +\subsection{Synopsis} +\begin{verbatim} +Queue a call for a call queue +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Queue(queuename[|options[|URL][|announceoverride][|timeout][|AGI]): +Queues an incoming call in a particular call queue as defined in queues.conf. +This application will return to the dialplan if the queue does not exist, or +any of the join options cause the caller to not enter the queue. +The option string may contain zero or more of the following characters: + 'd' -- data-quality (modem) call (minimum delay). + 'h' -- allow callee to hang up by hitting *. + 'H' -- allow caller to hang up by hitting *. + 'n' -- no retries on the timeout; will exit this application and + go to the next step. + 'i' -- ignore call forward requests from queue members and do nothing + when they are requested. + 'r' -- ring instead of playing MOH + 't' -- allow the called user transfer the calling user + 'T' -- to allow the calling user to transfer the call. + 'w' -- allow the called user to write the conversation to disk via Monitor + 'W' -- allow the calling user to write the conversation to disk via Monitor + In addition to transferring the call, a call may be parked and then picked +up by another user. + The optional URL will be sent to the called party if the channel supports +it. + The optional AGI parameter will setup an AGI script to be executed on the +calling party's channel once they are connected to a queue member. + The timeout will cause the queue to fail out after a specified number of +seconds, checked between each queues.conf 'timeout' and 'retry' cycle. + This application sets the following channel variable upon completion: + QUEUESTATUS The status of the call as a text string, one of + TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL + +\end{verbatim} + + +\section{QueueLog} +\subsection{Synopsis} +\begin{verbatim} +Writes to the queue_log +\end{verbatim} +\subsection{Description} +\begin{verbatim} + QueueLog(queuename|uniqueid|agent|event[|additionalinfo]): +Allows you to write your own events into the queue log +Example: QueueLog(101|${UNIQUEID}|${AGENT}|WENTONBREAK|600) + +\end{verbatim} + + +\section{Random} +\subsection{Synopsis} +\begin{verbatim} +Conditionally branches, based upon a probability +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Random([probability]:[[context|]extension|]priority) + probability := INTEGER in the range 1 to 100 +DEPRECATED: Use GotoIf($[${RAND(1,100)} > <number>]?<label>) + +\end{verbatim} + + +\section{Read} +\subsection{Synopsis} +\begin{verbatim} +Read a variable +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Read(variable[|filename][|maxdigits][|option][|attempts][|timeout]) + +Reads a #-terminated string of digits a certain number of times from the +user in to the given variable. + filename -- file to play before reading digits or tone with option i + maxdigits -- maximum acceptable number of digits. Stops reading after + maxdigits have been entered (without requiring the user to + press the '#' key). + Defaults to 0 - no limit - wait for the user press the '#' key. + Any value below 0 means the same. Max accepted value is 255. + option -- options are 's' , 'i', 'n' + 's' to return immediately if the line is not up, + 'i' to play filename as an indication tone from your indications.conf + 'n' to read digits even if the line is not up. + attempts -- if greater than 1, that many attempts will be made in the + event no data is entered. + timeout -- An integer number of seconds to wait for a digit response. If greater + than 0, that value will override the default timeout. + +Read should disconnect if the function fails or errors out. + +\end{verbatim} + + +\section{ReadFile} +\subsection{Synopsis} +\begin{verbatim} +ReadFile(varname=file,length) +\end{verbatim} +\subsection{Description} +\begin{verbatim} +ReadFile(varname=file,length) + Varname - Result stored here. + File - The name of the file to read. + Length - Maximum number of characters to capture. + +\end{verbatim} + + +\section{RealTime} +\subsection{Synopsis} +\begin{verbatim} +Realtime Data Lookup +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Use the RealTime config handler system to read data into channel variables. +RealTime(<family>|<colmatch>|<value>[|<prefix>]) + +All unique column names will be set as channel variables with optional prefix +to the name. For example, a prefix of 'var_' would make the column 'name' +become the variable ${var_name}. REALTIMECOUNT will be set with the number +of values read. + +\end{verbatim} + + +\section{RealTimeUpdate} +\subsection{Synopsis} +\begin{verbatim} +Realtime Data Rewrite +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Use the RealTime config handler system to update a value +RealTimeUpdate(<family>|<colmatch>|<value>|<newcol>|<newval>) + +The column <newcol> in 'family' matching column <colmatch>=<value> will be +updated to <newval>. REALTIMECOUNT will be set with the number of rows +updated or -1 if an error occurs. + +\end{verbatim} + + +\section{Record} +\subsection{Synopsis} +\begin{verbatim} +Record to a file +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Record(filename.format|silence[|maxduration][|options]) + +Records from the channel into a given filename. If the file exists it will +be overwritten. +- 'format' is the format of the file type to be recorded (wav, gsm, etc). +- 'silence' is the number of seconds of silence to allow before returning. +- 'maxduration' is the maximum recording duration in seconds. If missing +or 0 there is no maximum. +- 'options' may contain any of the following letters: + 'a' : append to existing recording rather than replacing + 'n' : do not answer, but record anyway if line not yet answered + 'q' : quiet (do not play a beep tone) + 's' : skip recording if the line is not yet answered + 't' : use alternate '*' terminator key (DTMF) instead of default '#' + 'x' : ignore all terminator keys (DTMF) and keep recording until hangup + +If filename contains '%d', these characters will be replaced with a number +incremented by one each time the file is recorded. A channel variable +named RECORDED_FILE will also be set, which contains the final filemname. + +Use 'core show file formats' to see the available formats on your system + +User can press '#' to terminate the recording and continue to the next priority. + +If the user should hangup during a recording, all data will be lost and the +application will teminate. + +\end{verbatim} + + +\section{RemoveQueueMember} +\subsection{Synopsis} +\begin{verbatim} +Dynamically removes queue members +\end{verbatim} +\subsection{Description} +\begin{verbatim} + RemoveQueueMember(queuename[|interface[|options]]): +Dynamically removes interface to an existing queue +If the interface is NOT in the queue and there exists an n+101 priority +then it will then jump to this priority. Otherwise it will return an error +The option string may contain zero or more of the following characters: + 'j' -- jump to +101 priority when appropriate. + This application sets the following channel variable upon completion: + RQMSTATUS The status of the attempt to remove a queue member as a + text string, one of + REMOVED | NOTINQUEUE | NOSUCHQUEUE +Example: RemoveQueueMember(techsupport|SIP/3000) + +\end{verbatim} + + +\section{ResetCDR} +\subsection{Synopsis} +\begin{verbatim} +Resets the Call Data Record +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ResetCDR([options]): This application causes the Call Data Record to be +reset. + Options: + w -- Store the current CDR record before resetting it. + a -- Store any stacked records. + v -- Save CDR variables. + +\end{verbatim} + + +\section{RetryDial} +\subsection{Synopsis} +\begin{verbatim} +Place a call, retrying on failure allowing optional exit extension. +\end{verbatim} +\subsection{Description} +\begin{verbatim} + RetryDial(announce|sleep|retries|dialargs): This application will attempt to +place a call using the normal Dial application. If no channel can be reached, +the 'announce' file will be played. Then, it will wait 'sleep' number of +seconds before retying the call. After 'retires' number of attempts, the +calling channel will continue at the next priority in the dialplan. If the +'retries' setting is set to 0, this application will retry endlessly. + While waiting to retry a call, a 1 digit extension may be dialed. If that +extension exists in either the context defined in ${EXITCONTEXT} or the current +one, The call will jump to that extension immediately. + The 'dialargs' are specified in the same format that arguments are provided +to the Dial application. + +\end{verbatim} + + +\section{Return} +\subsection{Synopsis} +\begin{verbatim} +Return from gosub routine +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Return() + Jumps to the last label on the stack, removing it. + +\end{verbatim} + + +\section{Ringing} +\subsection{Synopsis} +\begin{verbatim} +Indicate ringing tone +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Ringing(): This application will request that the channel indicate a ringing +tone to the user. + +\end{verbatim} + + +\section{SayAlpha} +\subsection{Synopsis} +\begin{verbatim} +Say Alpha +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SayAlpha(string): This application will play the sounds that correspond to +the letters of the given string. + +\end{verbatim} + + +\section{SayDigits} +\subsection{Synopsis} +\begin{verbatim} +Say Digits +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SayDigits(digits): This application will play the sounds that correspond +to the digits of the given number. This will use the language that is currently +set for the channel. See the LANGUAGE function for more information on setting +the language for the channel. + +\end{verbatim} + + +\section{SayNumber} +\subsection{Synopsis} +\begin{verbatim} +Say Number +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SayNumber(digits[,gender]): This application will play the sounds that +correspond to the given number. Optionally, a gender may be specified. +This will use the language that is currently set for the channel. See the +LANGUAGE function for more information on setting the language for the channel. + +\end{verbatim} + + +\section{SayPhonetic} +\subsection{Synopsis} +\begin{verbatim} +Say Phonetic +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SayPhonetic(string): This application will play the sounds from the phonetic +alphabet that correspond to the letters in the given string. + +\end{verbatim} + + +\section{SayUnixTime} +\subsection{Synopsis} +\begin{verbatim} +Says a specified time in a custom format +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SayUnixTime([unixtime][|[timezone][|format]]) + unixtime: time, in seconds since Jan 1, 1970. May be negative. + defaults to now. + timezone: timezone, see /usr/share/zoneinfo for a list. + defaults to machine default. + format: a format the time is to be said in. See voicemail.conf. + defaults to "ABdY 'digits/at' IMp" + +\end{verbatim} + + +\section{SendDTMF} +\subsection{Synopsis} +\begin{verbatim} +Sends arbitrary DTMF digits +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SendDTMF(digits[|timeout_ms]): Sends DTMF digits on a channel. + Accepted digits: 0-9, *#abcd, w (.5s pause) + The application will either pass the assigned digits or terminate if it + encounters an error. + +\end{verbatim} + + +\section{SendImage} +\subsection{Synopsis} +\begin{verbatim} +Send an image file +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SendImage(filename): Sends an image on a channel. +If the channel supports image transport but the image send +fails, the channel will be hung up. Otherwise, the dialplan +continues execution. +The option string may contain the following character: + 'j' -- jump to priority n+101 if the channel doesn't support image transport +This application sets the following channel variable upon completion: + SENDIMAGESTATUS The status is the result of the attempt as a text string, one of + OK | NOSUPPORT + +\end{verbatim} + + +\section{SendText} +\subsection{Synopsis} +\begin{verbatim} +Send a Text Message +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SendText(text[|options]): Sends text to current channel (callee). +Result of transmission will be stored in the SENDTEXTSTATUS +channel variable: + SUCCESS Transmission succeeded + FAILURE Transmission failed + UNSUPPORTED Text transmission not supported by channel + +At this moment, text is supposed to be 7 bit ASCII in most channels. +The option string many contain the following character: +'j' -- jump to n+101 priority if the channel doesn't support + text transport + +\end{verbatim} + + +\section{SendURL} +\subsection{Synopsis} +\begin{verbatim} +Send a URL +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SendURL(URL[|option]): Requests client go to URL (IAX2) or sends the +URL to the client (other channels). +Result is returned in the SENDURLSTATUS channel variable: + SUCCESS URL successfully sent to client + FAILURE Failed to send URL + NOLOAD Client failed to load URL (wait enabled) + UNSUPPORTED Channel does not support URL transport + +If the option 'wait' is specified, execution will wait for an +acknowledgement that the URL has been loaded before continuing + +If jumping is specified as an option (the 'j' flag), the client does not +support Asterisk "html" transport, and there exists a step with priority +n + 101, then execution will continue at that step. + +SendURL continues normally if the URL was sent correctly or if the channel +does not support HTML transport. Otherwise, the channel is hung up. + +\end{verbatim} + + +\section{Set} +\subsection{Synopsis} +\begin{verbatim} +Set channel variable(s) or function value(s) +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Set(name1=value1|name2=value2|..[|options]) +This function can be used to set the value of channel variables or dialplan +functions. It will accept up to 24 name/value pairs. When setting variables, +if the variable name is prefixed with _, the variable will be inherited into +channels created from the current channel. If the variable name is prefixed +with __, the variable will be inherited into channels created from the current +channel and all children channels. + Options: + g - Set variable globally instead of on the channel + (applies only to variables, not functions) + +\end{verbatim} + + +\section{SetAMAFlags} +\subsection{Synopsis} +\begin{verbatim} +Set the AMA Flags +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SetAMAFlags([flag]): This application will set the channel's AMA Flags for + billing purposes. + +\end{verbatim} + + +\section{SetCallerID} +\subsection{Synopsis} +\begin{verbatim} +Set CallerID +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SetCallerID(clid[|a]): Set Caller*ID on a call to a new +value. Sets ANI as well if a flag is used. + +\end{verbatim} + + +\section{SetCallerPres} +\subsection{Synopsis} +\begin{verbatim} +Set CallerID Presentation +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SetCallerPres(presentation): Set Caller*ID presentation on a call. + Valid presentations are: + + allowed_not_screened : Presentation Allowed, Not Screened + allowed_passed_screen : Presentation Allowed, Passed Screen + allowed_failed_screen : Presentation Allowed, Failed Screen + allowed : Presentation Allowed, Network Number + prohib_not_screened : Presentation Prohibited, Not Screened + prohib_passed_screen : Presentation Prohibited, Passed Screen + prohib_failed_screen : Presentation Prohibited, Failed Screen + prohib : Presentation Prohibited, Network Number + unavailable : Number Unavailable + + +\end{verbatim} + + +\section{SetCDRUserField} +\subsection{Synopsis} +\begin{verbatim} +Set the CDR user field +\end{verbatim} +\subsection{Description} +\begin{verbatim} +[Synopsis] +SetCDRUserField(value) + +[Description] +SetCDRUserField(value): Set the CDR 'user field' to value + The Call Data Record (CDR) user field is an extra field you + can use for data not stored anywhere else in the record. + CDR records can be used for billing or storing other arbitrary data + (I.E. telephone survey responses) + Also see AppendCDRUserField(). + +\end{verbatim} + + +\section{SetGlobalVar} +\subsection{Synopsis} +\begin{verbatim} +Set a global variable to a given value +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SetGlobalVar(variable=value): This application sets a given global variable to +the specified value. + +\end{verbatim} + + +\section{SetMusicOnHold} +\subsection{Synopsis} +\begin{verbatim} +Set default Music On Hold class +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SetMusicOnHold(class): Sets the default class for music on hold for a given channel. When +music on hold is activated, this class will be used to select which +music is played. + +\end{verbatim} + + +\section{SetTransferCapability} +\subsection{Synopsis} +\begin{verbatim} +Set ISDN Transfer Capability +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SetTransferCapability(transfercapability): Set the ISDN Transfer +Capability of a call to a new value. +Valid Transfer Capabilities are: + + SPEECH : 0x00 - Speech (default, voice calls) + DIGITAL : 0x08 - Unrestricted digital information (data calls) + RESTRICTED_DIGITAL : 0x09 - Restricted digital information + 3K1AUDIO : 0x10 - 3.1kHz Audio (fax calls) + DIGITAL_W_TONES : 0x11 - Unrestricted digital information with tones/announcements + VIDEO : 0x18 - Video + + +\end{verbatim} + + +\section{SIPAddHeader} +\subsection{Synopsis} +\begin{verbatim} +Add a SIP header to the outbound call +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SIPAddHeader(Header: Content) +Adds a header to a SIP call placed with DIAL. +Remember to user the X-header if you are adding non-standard SIP +headers, like "X-Asterisk-Accountcode:". Use this with care. +Adding the wrong headers may jeopardize the SIP dialog. +Always returns 0 + +\end{verbatim} + + +\section{SIPDtmfMode} +\subsection{Synopsis} +\begin{verbatim} +Change the dtmfmode for a SIP call +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SIPDtmfMode(inband|info|rfc2833): Changes the dtmfmode for a SIP call + +\end{verbatim} + + +\section{SLAStation} +\subsection{Synopsis} +\begin{verbatim} +Shared Line Appearance Station +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SLAStation(station): +This application should be executed by an SLA station. The argument depends +on how the call was initiated. If the phone was just taken off hook, then +the argument "station" should be just the station name. If the call was +initiated by pressing a line key, then the station name should be preceded +by an underscore and the trunk name associated with that line button. +For example: "station1_line1". +\end{verbatim} + + +\section{SLATrunk} +\subsection{Synopsis} +\begin{verbatim} +Shared Line Appearance Trunk +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SLATrunk(trunk): +This application should be executed by an SLA trunk on an inbound call. +The channel calling this application should correspond to the SLA trunk +with the name "trunk" that is being passed as an argument. + +\end{verbatim} + + +\section{SMS} +\subsection{Synopsis} +\begin{verbatim} +Communicates with SMS service centres and SMS capable analogue phones +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SMS(name|[a][s]): SMS handles exchange of SMS data with a call to/from SMS capabale +phone or SMS PSTN service center. Can send and/or receive SMS messages. +Works to ETSI ES 201 912 compatible with BT SMS PSTN service in UK +Typical usage is to use to handle called from the SMS service centre CLI, +or to set up a call using 'outgoing' or manager interface to connect +service centre to SMS() +name is the name of the queue used in /var/spool/asterisk/sms +Arguments: + a: answer, i.e. send initial FSK packet. + s: act as service centre talking to a phone. +Messages are processed as per text file message queues. +smsq (a separate software) is a command to generate message +queues and send messages. + +\end{verbatim} + + +\section{SoftHangup} +\subsection{Synopsis} +\begin{verbatim} +Soft Hangup Application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + SoftHangup(Technology/resource|options) +Hangs up the requested channel. If there are no channels to hangup, +the application will report it. +- 'options' may contain the following letter: + 'a' : hang up all channels on a specified device instead of a single resource + +\end{verbatim} + + +\section{SpeechActivateGrammar} +\subsection{Synopsis} +\begin{verbatim} +Activate a Grammar +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechActivateGrammar(Grammar Name) +This activates the specified grammar to be recognized by the engine. A grammar tells the speech recognition engine what to recognize, +and how to portray it back to you in the dialplan. The grammar name is the only argument to this application. + +\end{verbatim} + + +\section{SpeechBackground} +\subsection{Synopsis} +\begin{verbatim} +Play a sound file and wait for speech to be recognized +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechBackground(Sound File|Timeout) +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. +Once they stop talking the processing sound is played to indicate the speech recognition engine is working. +Once results are available the application returns and results (score and text) are available using dialplan functions. +The first text and score are ${SPEECH_TEXT(0)} AND ${SPEECH_SCORE(0)} while the second are ${SPEECH_TEXT(1)} and ${SPEECH_SCORE(1)}. +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. + +\end{verbatim} + + +\section{SpeechCreate} +\subsection{Synopsis} +\begin{verbatim} +Create a Speech Structure +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechCreate(engine name) +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. +It takes the engine name to use as the argument, if not specified the default engine will be used. + +\end{verbatim} + + +\section{SpeechDeactivateGrammar} +\subsection{Synopsis} +\begin{verbatim} +Deactivate a Grammar +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechDeactivateGrammar(Grammar Name) +This deactivates the specified grammar so that it is no longer recognized. The only argument is the grammar name to deactivate. + +\end{verbatim} + + +\section{SpeechDestroy} +\subsection{Synopsis} +\begin{verbatim} +End speech recognition +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechDestroy() +This destroys the information used by all the other speech recognition applications. +If you call this application but end up wanting to recognize more speech, you must call SpeechCreate +again before calling any other application. It takes no arguments. + +\end{verbatim} + + +\section{SpeechLoadGrammar} +\subsection{Synopsis} +\begin{verbatim} +Load a Grammar +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechLoadGrammar(Grammar Name|Path) +Load a grammar only on the channel, not globally. +It takes the grammar name as first argument and path as second. + +\end{verbatim} + + +\section{SpeechProcessingSound} +\subsection{Synopsis} +\begin{verbatim} +Change background processing sound +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechProcessingSound(Sound File) +This changes the processing sound that SpeechBackground plays back when the speech recognition engine is processing and working to get results. +It takes the sound file as the only argument. + +\end{verbatim} + + +\section{SpeechStart} +\subsection{Synopsis} +\begin{verbatim} +Start recognizing voice in the audio stream +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechStart() +Tell the speech recognition engine that it should start trying to get results from audio being fed to it. This has no arguments. + +\end{verbatim} + + +\section{SpeechUnloadGrammar} +\subsection{Synopsis} +\begin{verbatim} +Unload a Grammar +\end{verbatim} +\subsection{Description} +\begin{verbatim} +SpeechUnloadGrammar(Grammar Name) +Unload a grammar. It takes the grammar name as the only argument. + +\end{verbatim} + + +\section{StackPop} +\subsection{Synopsis} +\begin{verbatim} +Remove one address from gosub stack +\end{verbatim} +\subsection{Description} +\begin{verbatim} +StackPop() + Removes last label on the stack, discarding it. + +\end{verbatim} + + +\section{StartMusicOnHold} +\subsection{Synopsis} +\begin{verbatim} +Play Music On Hold +\end{verbatim} +\subsection{Description} +\begin{verbatim} +StartMusicOnHold(class): Starts playing music on hold, uses default music class for channel. +Starts playing music specified by class. If omitted, the default +music source for the channel will be used. Always returns 0. + +\end{verbatim} + + +\section{StopMixMonitor} +\subsection{Synopsis} +\begin{verbatim} +Stop recording a call through MixMonitor +\end{verbatim} +\subsection{Description} +\begin{verbatim} + StopMixMonitor() + +Stops the audio recording that was started with a call to MixMonitor() +on the current channel. + +\end{verbatim} + + +\section{StopMonitor} +\subsection{Synopsis} +\begin{verbatim} +Stop monitoring a channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} +StopMonitor +Stops monitoring a channel. Has no effect if the channel is not monitored + +\end{verbatim} + + +\section{StopMusicOnHold} +\subsection{Synopsis} +\begin{verbatim} +Stop Playing Music On Hold +\end{verbatim} +\subsection{Description} +\begin{verbatim} +StopMusicOnHold: Stops playing music on hold. + +\end{verbatim} + + +\section{StopPlayTones} +\subsection{Synopsis} +\begin{verbatim} +Stop playing a tone list +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Stop playing a tone list +\end{verbatim} + + +\section{System} +\subsection{Synopsis} +\begin{verbatim} +Execute a system command +\end{verbatim} +\subsection{Description} +\begin{verbatim} + System(command): Executes a command by using system(). If the command +fails, the console should report a fallthrough. +Result of execution is returned in the SYSTEMSTATUS channel variable: + FAILURE Could not execute the specified command + SUCCESS Specified command successfully executed + +Old behaviour: +If the command itself executes but is in error, and if there exists +a priority n + 101, where 'n' is the priority of the current instance, +then the channel will be setup to continue at that priority level. +Note that this jump functionality has been deprecated and will only occur +if the global priority jumping option is enabled in extensions.conf. + +\end{verbatim} + + +\section{TestClient} +\subsection{Synopsis} +\begin{verbatim} +Execute Interface Test Client +\end{verbatim} +\subsection{Description} +\begin{verbatim} +TestClient(testid): Executes test client with given testid. +Results stored in /var/log/asterisk/testreports/<testid>-client.txt +\end{verbatim} + + +\section{TestServer} +\subsection{Synopsis} +\begin{verbatim} +Execute Interface Test Server +\end{verbatim} +\subsection{Description} +\begin{verbatim} +TestServer(): Perform test server function and write call report. +Results stored in /var/log/asterisk/testreports/<testid>-server.txt +\end{verbatim} + + +\section{Transfer} +\subsection{Synopsis} +\begin{verbatim} +Transfer caller to remote extension +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Transfer([Tech/]dest[|options]): Requests the remote caller be transferred +to a given destination. If TECH (SIP, IAX2, LOCAL etc) is used, only +an incoming call with the same channel technology will be transfered. +Note that for SIP, if you transfer before call is setup, a 302 redirect +SIP message will be returned to the caller. + +The result of the application will be reported in the TRANSFERSTATUS +channel variable: + SUCCESS Transfer succeeded + FAILURE Transfer failed + UNSUPPORTED Transfer unsupported by channel driver +The option string many contain the following character: +'j' -- jump to n+101 priority if the channel transfer attempt + fails + +\end{verbatim} + + +\section{TryExec} +\subsection{Synopsis} +\begin{verbatim} +Executes dialplan application, always returning +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: TryExec(appname(arguments)) + Allows an arbitrary application to be invoked even when not +hardcoded into the dialplan. To invoke external applications +see the application System. Always returns to the dialplan. +The channel variable TRYSTATUS will be set to: + SUCCESS if the application returned zero + FAILED if the application returned non-zero + NOAPP if the application was not found or was not specified + +\end{verbatim} + + +\section{TrySystem} +\subsection{Synopsis} +\begin{verbatim} +Try executing a system command +\end{verbatim} +\subsection{Description} +\begin{verbatim} + TrySystem(command): Executes a command by using system(). +on any situation. +Result of execution is returned in the SYSTEMSTATUS channel variable: + FAILURE Could not execute the specified command + SUCCESS Specified command successfully executed + APPERROR Specified command successfully executed, but returned error code + +Old behaviour: +If the command itself executes but is in error, and if +there exists a priority n + 101, where 'n' is the priority of the current +instance, then the channel will be setup to continue at that +priority level. Otherwise, System will terminate. + +\end{verbatim} + + +\section{UnpauseMonitor} +\subsection{Synopsis} +\begin{verbatim} +Unpause monitoring of a channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} +UnpauseMonitor +Unpauses monitoring of a channel on which monitoring had +previously been paused with PauseMonitor. + +\end{verbatim} + + +\section{UnpauseQueueMember} +\subsection{Synopsis} +\begin{verbatim} +Unpauses a queue member +\end{verbatim} +\subsection{Description} +\begin{verbatim} + UnpauseQueueMember([queuename]|interface[|options]): +Unpauses (resumes calls to) a queue member. +This is the counterpart to PauseQueueMember and operates exactly the +same way, except it unpauses instead of pausing the given interface. +The option string may contain zero or more of the following characters: + 'j' -- jump to +101 priority when appropriate. + This application sets the following channel variable upon completion: + UPQMSTATUS The status of the attempt to unpause a queue + member as a text string, one of + UNPAUSED | NOTFOUND +Example: UnpauseQueueMember(|SIP/3000) + +\end{verbatim} + + +\section{UserEvent} +\subsection{Synopsis} +\begin{verbatim} +Send an arbitrary event to the manager interface +\end{verbatim} +\subsection{Description} +\begin{verbatim} + UserEvent(eventname[|body]): Sends an arbitrary event to the manager +interface, with an optional body representing additional arguments. The +body may be specified as a | delimeted list of headers. Each additional +argument will be placed on a new line in the event. The format of the +event will be: + Event: UserEvent + UserEvent: <specified event name> + [body] +If no body is specified, only Event and UserEvent headers will be present. + +\end{verbatim} + + +\section{Verbose} +\subsection{Synopsis} +\begin{verbatim} +Send arbitrary text to verbose output +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Verbose([<level>|]<message>) + level must be an integer value. If not specified, defaults to 0. + +\end{verbatim} + + +\section{VMAuthenticate} +\subsection{Synopsis} +\begin{verbatim} +Authenticate with Voicemail passwords +\end{verbatim} +\subsection{Description} +\begin{verbatim} + VMAuthenticate([mailbox][@context][|options]): This application behaves the +same way as the Authenticate application, but the passwords are taken from +voicemail.conf. + If the mailbox is specified, only that mailbox's password will be considered +valid. If the mailbox is not specified, the channel variable AUTH_MAILBOX will +be set with the authenticated mailbox. + + Options: + s - Skip playing the initial prompts. + +\end{verbatim} + + +\section{VoiceMail} +\subsection{Synopsis} +\begin{verbatim} +Leave a Voicemail message +\end{verbatim} +\subsection{Description} +\begin{verbatim} + VoiceMail(mailbox[@context][&mailbox[@context]][...][|options]): This +application allows the calling party to leave a message for the specified +list of mailboxes. When multiple mailboxes are specified, the greeting will +be taken from the first mailbox specified. Dialplan execution will stop if the +specified mailbox does not exist. + The Voicemail application will exit if any of the following DTMF digits are +received: + 0 - Jump to the 'o' extension in the current dialplan context. + * - Jump to the 'a' extension in the current dialplan context. + This application will set the following channel variable upon completion: + VMSTATUS - This indicates the status of the execution of the VoiceMail + application. The possible values are: + SUCCESS | USEREXIT | FAILED + + Options: + b - Play the 'busy' greeting to the calling party. + g(#) - Use the specified amount of gain when recording the voicemail + message. The units are whole-number decibels (dB). + s - Skip the playback of instructions for leaving a message to the + calling party. + u - Play the 'unavailable greeting. + j - Jump to priority n+101 if the mailbox is not found or some other + error occurs. + +\end{verbatim} + + +\section{VoiceMailMain} +\subsection{Synopsis} +\begin{verbatim} +Check Voicemail messages +\end{verbatim} +\subsection{Description} +\begin{verbatim} + VoiceMailMain([mailbox][@context][|options]): This application allows the +calling party to check voicemail messages. A specific mailbox, and optional +corresponding context, may be specified. If a mailbox is not provided, the +calling party will be prompted to enter one. If a context is not specified, +the 'default' context will be used. + + Options: + p - Consider the mailbox parameter as a prefix to the mailbox that + is entered by the caller. + g(#) - Use the specified amount of gain when recording a voicemail + message. The units are whole-number decibels (dB). + s - Skip checking the passcode for the mailbox. + a(#) - Skip folder prompt and go directly to folder specified. + Defaults to INBOX + +\end{verbatim} + + +\section{Wait} +\subsection{Synopsis} +\begin{verbatim} +Waits for some time +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Wait(seconds): This application waits for a specified number of seconds. +Then, dialplan execution will continue at the next priority. + Note that the seconds can be passed with fractions of a second. For example, +'1.5' will ask the application to wait for 1.5 seconds. + +\end{verbatim} + + +\section{WaitExten} +\subsection{Synopsis} +\begin{verbatim} +Waits for an extension to be entered +\end{verbatim} +\subsection{Description} +\begin{verbatim} + WaitExten([seconds][|options]): This application waits for the user to enter +a new extension for a specified number of seconds. + Note that the seconds can be passed with fractions of a second. For example, +'1.5' will ask the application to wait for 1.5 seconds. + Options: + m[(x)] - Provide music on hold to the caller while waiting for an extension. + Optionally, specify the class for music on hold within parenthesis. + +\end{verbatim} + + +\section{WaitForRing} +\subsection{Synopsis} +\begin{verbatim} +Wait for Ring Application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + WaitForRing(timeout) +Returns 0 after waiting at least timeout seconds. and +only after the next ring has completed. Returns 0 on +success or -1 on hangup + +\end{verbatim} + + +\section{WaitForSilence} +\subsection{Synopsis} +\begin{verbatim} +Waits for a specified amount of silence +\end{verbatim} +\subsection{Description} +\begin{verbatim} + WaitForSilence(silencerequired[|iterations][|timeout]) +Wait for Silence: Waits for up to 'silencerequired' +milliseconds of silence, 'iterations' times or once if omitted. +An optional timeout specified the number of seconds to return +after, even if we do not receive the specified amount of silence. +Use 'timeout' with caution, as it may defeat the purpose of this +application, which is to wait indefinitely until silence is detected +on the line. This is particularly useful for reverse-911-type +call broadcast applications where you need to wait for an answering +machine to complete its spiel before playing a message. +The timeout parameter is specified only to avoid an infinite loop in +cases where silence is never achieved. Typically you will want to +include two or more calls to WaitForSilence when dealing with an answering +machine; first waiting for the spiel to finish, then waiting for the beep, etc. + +Examples: + - WaitForSilence(500|2) will wait for 1/2 second of silence, twice + - WaitForSilence(1000) will wait for 1 second of silence, once + - WaitForSilence(300|3|10) will wait for 300ms silence, 3 times, + and returns after 10 sec, even if silence is not detected + +Sets the channel variable WAITSTATUS with to one of these values: +SILENCE - if exited with silence detected +TIMEOUT - if exited without silence detected after timeout + +\end{verbatim} + + +\section{WaitMusicOnHold} +\subsection{Synopsis} +\begin{verbatim} +Wait, playing Music On Hold +\end{verbatim} +\subsection{Description} +\begin{verbatim} +WaitMusicOnHold(delay): Plays hold music specified number of seconds. Returns 0 when +done, or -1 on hangup. If no hold music is available, the delay will +still occur with no sound. + +\end{verbatim} + + +\section{While} +\subsection{Synopsis} +\begin{verbatim} +Start a while loop +\end{verbatim} +\subsection{Description} +\begin{verbatim} +Usage: While(<expr>) +Start a While Loop. Execution will return to this point when +EndWhile is called until expr is no longer true. + +\end{verbatim} + + +\section{Zapateller} +\subsection{Synopsis} +\begin{verbatim} +Block telemarketers with SIT +\end{verbatim} +\subsection{Description} +\begin{verbatim} + Zapateller(options): Generates special information tone to block +telemarketers from calling you. Options is a pipe-delimited list of +options. The following options are available: +'answer' causes the line to be answered before playing the tone, +'nocallerid' causes Zapateller to only play the tone if there +is no callerid information available. Options should be separated by | +characters + +\end{verbatim} + + +\section{ZapBarge} +\subsection{Synopsis} +\begin{verbatim} +Barge in (monitor) Zap channel +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ZapBarge([channel]): Barges in on a specified zap +channel or prompts if one is not specified. Returns +-1 when caller user hangs up and is independent of the +state of the channel being monitored. +\end{verbatim} + + +\section{ZapRAS} +\subsection{Synopsis} +\begin{verbatim} +Executes Zaptel ISDN RAS application +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ZapRAS(args): Executes a RAS server using pppd on the given channel. +The channel must be a clear channel (i.e. PRI source) and a Zaptel +channel to be able to use this function (No modem emulation is included). +Your pppd must be patched to be zaptel aware. Arguments should be +separated by | characters. + +\end{verbatim} + + +\section{ZapScan} +\subsection{Synopsis} +\begin{verbatim} +Scan Zap channels to monitor calls +\end{verbatim} +\subsection{Description} +\begin{verbatim} + ZapScan([group]) allows a call center manager to monitor Zap channels in +a convenient way. Use '#' to select the next channel and use '*' to exit +Limit scanning to a channel GROUP by setting the option group argument. + +\end{verbatim} + + |