Call agent login.
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.QueueAddQueueMemberRemoveQueueMemberPauseQueueMemberUnpauseQueueMemberAGENTagents.confqueues.conf
Record agent's outgoing call.
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 has to be configured in the
agents.conf file.Normally the app returns 0 unless the options are passed.agents.conf
Gets information about an Agent
The valid items to retrieve are:(default) The status of the agent (LOGGEDIN | LOGGEDOUT)The password of the agentThe name of the agentMusicOnHold classThe name of the active channel for the Agent (AgentLogin)
Lists agents and their status.
Will list info about all possible agents.
Sets an agent as no longer logged in.
Agent ID of the agent to log off.Set to true to not hangup existing calls.Sets an agent as no longer logged in.
Send digits out of band over a PRI.
This application will send the given string of digits in a Keypad
Facility IE over the current channel.
Send QSIG call rerouting facility over a PRI.
Destination number.Original called number.Diversion reason, if not specified defaults to unknownThis application will send a Callrerouting Facility IE over the
current channel.
Accept an R2 call if its not already accepted (you still need to answer it)
Yes or No.Whether you want to accept the call with charge or without charge.This application will Accept the R2 call either with charge or no charge.
Transfer DAHDI Channel.
DAHDI channel name to transfer.Transfer a DAHDI channel.
Hangup DAHDI Channel.
DAHDI channel name to hangup.Hangup a DAHDI channel.
Dial over DAHDI channel while offhook.
Toggle DAHDI channel Do Not Disturb status ON.
Toggle DAHDI channel Do Not Disturb status OFF.
Show status DAHDI channels.
Fully Restart DAHDI channels (terminates calls).
Provision a calling IAXy with a given template.
If not specified, defaults to default.Provisions the calling IAXy (assuming the calling entity is in fact an IAXy) with the
given template. Returns -1 on error
or 0 on success.
Gets IAX peer information.
If peername is specified to this value, return the IP address of the
endpoint of the current channelIf peername is specified, valid items are:(default) The IP address.The peer's status (if qualify=yes)The configured mailbox.The configured context.The epoch time of the next expire.Is it dynamic? (yes/no).The configured Caller ID name.The configured Caller ID number.The configured codecs.Preferred codec index number x (beginning
with 0)SIPPEER
Sets or retrieves a remote variable.
List IAX peers.
List IAX Peers.
List all the IAX peers.
Show IAX Netstats.
Show IAX channels network statistics.
Show IAX registrations.
Show IAX registrations.
Change the dtmfmode for a SIP call.
Changes the dtmfmode for a SIP call.
Add a SIP header to the outbound call.
Adds a header to a SIP call placed with DIAL.Remember to use 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.
Remove SIP headers previously added with SIPAddHeader
SIPRemoveHeader() allows you to remove headers which were previously
added with SIPAddHeader(). If no parameter is supplied, all previously added
headers will be removed. If a parameter is supplied, only the matching headers
will be removed.For example you have added these 2 headers:SIPAddHeader(P-Asserted-Identity: sip:foo@bar);SIPAddHeader(P-Preferred-Identity: sip:bar@foo);// remove all headersSIPRemoveHeader();// remove all P- headersSIPRemoveHeader(P-);// remove only the PAI header (note the : at the end)SIPRemoveHeader(P-Asserted-Identity:);Always returns 0.
Gets the specified SIP header.
If not specified, defaults to 1.Since there are several headers (such as Via) which can occur multiple
times, SIP_HEADER takes an optional second argument to specify which header with
that name to retrieve. Headers start at offset 1.
Gets SIP peer information.
(default) The ip address.The port number.The configured mailbox.The configured context.The epoch time of the next expire.Is it dynamic? (yes/no).The configured Caller ID name.The configured Caller ID number.The configured Callgroup.The configured Pickupgroup.The configured codecs.Status (if qualify=yes).Registration extension.Call limit (call-limit).Configured call level for signalling busy.Current amount of calls. Only available if call-limit is set.Default language for peer.Account code for this peer.Current user agent id for peer.A channel variable configured with setvar for this peer.Preferred codec index number x (beginning with zero).
Gets the specified SIP parameter from the current channel.
The IP address of the peer.The source IP address of the peer.The URI from the From: header.The URI from the Contact: header.The useragent.The name of the peer.1 if T38 is offered or enabled in this channel,
otherwise 0.
Checks if domain is a local domain.
This function checks if the domain in the argument is configured
as a local SIP domain that this Asterisk server is configured to handle.
Returns the domain name if it is locally handled, otherwise an empty string.
Check the domain= configuration in sip.conf.
List SIP peers (text format).
Lists SIP peers in text format with details on current status.
Peerlist will follow as separate events, followed by a final event called
PeerlistComplete.
show SIP peer (text format).
The peer name you want to check.Show one SIP peer with details on current status.
Qualify SIP peers.
The peer name you want to qualify.Qualify a SIP peer.
Show SIP registrations (text format).
Lists all registration requests and status. Registrations will follow as separate
events. followed by a final event called RegistrationsComplete.
Send a SIP notify.
Peer to receive the notify.At least one variable pair must be specified.
name=valueSends a SIP Notify event.All parameters for this event must be specified in the body of this request
via multiple Variable: name=value sequences.
List SKINNY devices (text format).
Lists Skinny devices in text format with details on current status.
Devicelist will follow as separate events, followed by a final event called
DevicelistComplete.
Show SKINNY device (text format).
The device name you want to check.Show one SKINNY device with details on current status.
List SKINNY lines (text format).
Lists Skinny lines in text format with details on current status.
Linelist will follow as separate events, followed by a final event called
LinelistComplete.
Show SKINNY line (text format).
The line name you want to check.Show one SKINNY line with details on current status.
Load Asterisk ADSI Scripts into phone
adsi script to use. If not given uses the default script asterisk.adsiThis application programs an ADSI Phone with the given scriptGetCPEIDadsi.conf
Provide support for receiving alarm reports from a burglar or fire alarm panel.
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.Only 1 signalling format is supported at this time: Ademco Contact ID.alarmreceiver.conf
Attempt to detect answering machines.
Is maximum initial silence duration before greeting.If this is exceeded set as MACHINEis the maximum length of a greeting.If this is exceeded set as MACHINEIs the silence after detecting a greeting.If this is exceeded set as HUMANIs the maximum time allowed for the algorithmto decide HUMAN or MACHINEIs the minimum duration of Voice considered to be a wordIs the minimum duration of silence after a word to
consider the audio that follows to be a new wordIs the maximum number of words in a greetingIf this is exceeded set as MACHINEHow long do we consider silenceIs the maximum duration of a word to accept.If exceeded set as MACHINEThis 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 the calling AMD
with parameters.This application sets the following channel variables:This is the status of the answering machine detectionIndicates the cause that led to the conclusion
Total Time.
Silence Duration - Initial Silence.
Silence Duration - afterGreetingSilence.
Voice Duration - Greeting.
Word Count - maximum number of words.
WaitForSilenceWaitForNoise
Authenticate a user
Password the user should knowmaximum 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.Override the agent-pass prompt file.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.VMAuthenticateDISA
Tell Asterisk to not maintain a CDR for the current call
This application will tell Asterisk not to maintain a CDR for the current call.
Check channel availability
Optional extra devices to checkIf you need more then one enter them as
Technology2/Resource2&Technology3/Resourse3&.....Specification of the device(s) to check. These must be in the format of
Technology/Resource, where Technology
represents a particular channel driver, and Resource
represents a resource available to that particular channel driver.This application will check to see if any of the specified channels are available.This application sets the following channel variables:The name of the available channel, if one existsThe canonical channel name that was used to create the channelThe status code for the available channel
Redirects given channel to a dialplan target
Sends the specified channel to the specified extension priorityThis application sets the following channel variables upon completionAre set to the result of the redirection
Listen to a channel, and optionally whisper into it.
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'. Note that this feature will be overridden if the 'd' option
is usedThe X option supersedes the three features above in that if a valid
single digit extension exists in the correct context ChanSpy will exit to it.
This also disables choosing a channel based on chanprefix and a digit sequence.ExtenSpy
Listen to a channel, and optionally whisper into it.
Specify extension.Optionally specify a context, defaults to default.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.The X option supersedes the three features above in that if a valid
single digit extension exists in the correct context ChanSpy will exit to it.
This also disables choosing a channel based on chanprefix and a digit sequence.ChanSpy
Scan DAHDI channels to monitor calls.
Limit scanning to a channel group by setting this option.Allows a call center manager to monitor DAHDI channels in a
convenient way. Use # to select the next channel and use * to exit.
Conference bridge application.
The conference numberEnters the user into a specified conference bridge. The user can exit the conference by hangup only.The join sound can be set using the CONFBRIDGE_JOIN_SOUND variable and the leave sound can be set using the CONFBRIDGE_LEAVE_SOUND variable. These can be unique to the caller.
Play a file with fast forward and rewind.
This is number of milliseconds to skip when rewinding or
fast-forwarding.Fast-forward when this DTMF digit is received. (defaults to #)Rewind when this DTMF digit is received. (defaults to *)Stop playback when this DTMF digit is received.Pause playback when this DTMF digit is received.Restart playback when this DTMF digit is received.This application will play back the given filename.It sets the following channel variables upon completion:Contains the status of the attempt as a text stringContains the offset in ms into the file where playback
was at when it stopped. -1 is end of file.If the playback is stopped by the user this variable contains
the key that was pressed.
Barge in (monitor) DAHDI channel.
Channel to barge.Barges in on a specified DAHDI 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.
Executes DAHDI ISDN RAS application.
A list of parameters to pass to the pppd daemon,
separated by , characters.Executes a RAS server using pppd on the given channel.
The channel must be a clear channel (i.e. PRI source) and a DAHDI
channel to be able to use this function (No modem emulation is included).Your pppd must be patched to be DAHDI aware.
Delete a key from the asterisk database.
This application will delete a key from the Asterisk
database.This application has been DEPRECATED in favor of the DB_DELETE function.DB_DELETEDBdeltreeDB
Delete a family or keytree from the asterisk database.
This application will delete a family or keytree
from the Asterisk database.DB_DELETEDBdelDB
Attempt to connect to another device or endpoint and bridge the call.
Specification of the device(s) to dial. These must be in the format of
Technology/Resource, where Technology
represents a particular channel driver, and Resource
represents a resource available to that particular channel driver.Optional extra devices to dial in parallelIf you need more then one enter them as
Technology2/Resource2&Technology3/Resourse3&.....Specifies the number of seconds we attempt to dial the specified devicesIf not specified, this defaults to 136 years.The optional URL will be sent to the called party if the channel driver supports it.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 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.If the OUTBOUND_GROUP variable is set, all peer channels created by this
application will be put into that group (as in Set(GROUP()=...).
If the OUTBOUND_GROUP_ONCE variable is set, all peer channels created by this
application will be put into that group (as in Set(GROUP()=...). Unlike OUTBOUND_GROUP,
however, the variable will be unset after use.This application sets the following channel variables:This is the time from dialing a channel until when it is disconnected.This is the amount of time for actual call.This is the status of the call
For the Privacy and Screening Modes.
Will be set if the called party chooses to send the calling party to the 'Go Away' script.
For the Privacy and Screening Modes.
Will be set if the called party chooses to send the calling party to the 'torture' script.
Place a call, retrying on failure allowing an optional exit extension.
Filename of sound that will be played when no channel can be reachedNumber of seconds to wait after a dial attempt failed before a new attempt is madeNumber of retriesWhen this is reached flow will continue at the next priority in the dialplanSame format as arguments provided to the Dial applicationThis 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 retrying the call.
After retries 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.
Virtual Dictation Machine.
Start dictation machine using optional base_dir for files.
Directed extension call pickup.
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 PICKUPMARK
channel variable with the same value as extension
(in this example, 10). When no parameter is specified, the application
will pickup a channel matching the pickup group of the active channel.
Pickup a ringing channel.
This will pickup a specified channel if ringing.
Provide directory of voicemail extensions.
This is the context within voicemail.conf to use for the Directory. If not specified and
searchcontexts=no in voicemail.conf, then default
will be assumed.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.Only one of the f, l, or b
options may be specified. If more than one is specified, then Directory will act as
if b was specified. The number
of characters for the user to type defaults to 3.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.
Direct Inward System Access.
If you need to present a DISA dialtone without entering a password,
simply set passcode to no-passwordYou may specified a filename instead of a
passcode, this filename must contain individual passcodesSpecifies the dialplan context in which the user-entered extension
will be matched. If no context is specified, the DISA application defaults
to the disa context. Presumably a normal system will have a special
context set up for DISA use with some or a lot of restrictions.Specifies a new (different) callerid to be used for this call.Will cause a stutter-dialtone (indication dialrecall)
to be used, if the specified mailbox contains any new messages.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 within context on which a call may be placed.
If the user enters an invalid extension and extension i exists in the specified
context, it will be used.
Be aware that using this may compromise 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 (filename).The file that contains the passcodes (if used) allows a complete
specification of all of the same arguments available on the command
line, with the sole exception of the options. The file may contain blank
lines, or comments starting with # or ;.AuthenticateVMAuthenticate
Dump Info About The Calling Channel.
Minimun verbose levelDisplays information on channel and listing of all channel
variables. If level is specified, output is only
displayed when the verbose level is currently set to that number
or greater.NoOpVerbose
Echo audio, video, DTMF back to the calling party
Echos back any audio, video or DTMF frames read from the calling
channel back to itself. Note: If '#' detected application exits
Executes dialplan application.
Application name and arguments of the dialplan application to execute.Allows an arbitrary application to be invoked even when not
hard coded 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.
Executes dialplan application, always returning.
Allows an arbitrary application to be invoked even when not
hard coded into the dialplan. To invoke external applications
see the application System. Always returns to the dialplan.
The channel variable TRYSTATUS will be set to one of:
If the application returned zero.
If the application returned non-zero.
If the application was not found or was not specified.
Executes dialplan application, conditionally.
If expr is true, execute and return the
result of appiftrue(args).If expr is true, but appiftrue is not found,
then the application will return a non-zero value.
Send a Fax
Filename of TIFF file to faxMakes the application behave as the answering machine(Default behavior is as calling machine)Send a given TIFF file to the channel as a FAX.This application sets the following channel variables:To identify itself to the remote endTo generate a header line on each pageCause of failureThe CSID of the remote sideNumber of pages sentTransmission rateResolution of sent fax
Receive a Fax
Filename of TIFF file save incoming faxMakes the application behave as the calling machine(Default behavior is as answering machine)Receives a FAX from the channel into the given filename
overwriting the file if it already exists.File created will be in TIFF format.This application sets the following channel variables:To identify itself to the remote endTo generate a header line on each pageCause of failureThe CSID of the remote sideNumber of pages sentTransmission rateResolution of sent fax
Say text to the user.
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).
Flashes a DAHDI Trunk.
Performs a flash on a DAHDI trunk. This can be used to access features
provided on an incoming analogue circuit such as conference and call waiting.
Use with SendDTMF() to perform external transfers.SendDTMF
Find-Me/Follow-Me application.
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.Returns -1 on hangup.
Forks the Call Data Record.
Causes the Call Data Record to fork an additional cdr record starting from the time
of the fork call. This new cdr record will be linked to end of the list of cdr records attached
to the channel. The original CDR has a LOCKED flag set, which forces most cdr operations to skip
it, except for the functions that set the answer and end times, which ignore the LOCKED flag. This
allows all the cdr records in the channel to be 'ended' together when the channel is closed.The CDR() func (when setting CDR values) normally ignores the LOCKED flag also, but has options
to vary its behavior. The 'T' option (described below), can override this behavior, but beware
the risks.First, this app finds the last cdr record in the list, and makes a copy of it. This new copy
will be the newly forked cdr record. Next, this new record is linked to the end of the cdr record list.
Next, The new cdr record is RESET (unless you use an option to prevent this)This means that: 1. All flags are unset on the cdr record 2. the start, end, and answer times are all set to zero. 3. the billsec and duration fields are set to zero. 4. the start time is set to the current time. 5. the disposition is set to NULL.Next, unless you specified the v option, all variables will be removed from
the original cdr record. Thus, the v option allows any CDR variables to be replicated
to all new forked cdr records. Without the v option, the variables on the original
are effectively moved to the new forked cdr record.Next, if the s option is set, the provided variable and value are set on the
original cdr record.Next, if the a option is given, and the original cdr record has an answer time
set, then the new forked cdr record will have its answer time set to its start time. If the old answer
time were carried forward, the answer time would be earlier than the start time, giving strange
duration and billsec times.If the d option was specified, the disposition is copied from
the original cdr record to the new forked cdr. If the D option was specified,
the destination channel field in the new forked CDR is erased. If the e option
was specified, the 'end' time for the original cdr record is set to the current time. Future hang-up or
ending events will not override this time stamp. If the A option is specified,
the original cdr record will have it ANS_LOCKED flag set, which prevent future answer events from updating
the original cdr record's disposition. Normally, an ANSWERED event would mark all cdr
records in the chain as ANSWERED. If the T option is specified,
the original cdr record will have its DONT_TOUCH flag set, which will force the
cdr_answer, cdr_end, and cdr_setvar functions to leave that cdr record alone.And, last but not least, the original cdr record has its LOCKED flag set. Almost all internal
CDR functions (except for the funcs that set the end, and answer times, and set a variable) will honor
this flag and leave a LOCKED cdr record alone. This means that the newly created forked cdr record
will be affected by events transpiring within Asterisk, with the previously noted exceptions.CDRNoCDRResetCDR
Get ADSI CPE ID.
Obtains and displays ADSI CPE ID and other information in order
to properly setup dahdi.conf for on-hook operations.
Encode and stream using 'ices'.
ICES configuration file.Streams to an icecast server using ices (available separately).
A configuration file must be supplied for ices (see contrib/asterisk-ices.xml).ICES version 2 client and server required.
Sends an image file.
Path of the filename (image) to send.Send an image file on a channel supporting it.Result of transmission will be stored in SENDIMAGESTATUS
Transmission succeeded.
Transmission failed.
Image transmission not supported by channel.
SendTextSendURL
IVR Demo Application.
This is a skeleton application that shows you the basic structure to create your
own asterisk applications and demonstrates the IVR demo.
Jack Audio Connection Kit
When executing this application, two jack ports will be created;
one input and one output. Other applications can be hooked up to
these ports to access audio coming from, or being send to the channel.
Macro Implementation.
The name of the macroExecutes a macro using the context macro-name,
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.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.
It is advised that if you need to deeply nest macro calls, that you use the Gosub application
(now allows arguments like a Macro) with explict Return() calls instead.Use of the application WaitExten within a macro will not function
as expected. Please use the Read application in order to read DTMF from a channel
currently executing a macro.MacroExitGotoGosub
Conditional Macro implementation.
Executes macro defined in macroiftrue if
expr is true (otherwise macroiffalse
if provided)Arguments and return values as in application Macro()GotoIfGosubIfIF
Exclusive Macro Implementation.
The name of the macroExecutes macro defined in the context macro-name.
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()Macro
Exit from Macro.
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.Macro
MeetMe conference bridge.
The conference numberEnters the user into a specified MeetMe conference. If the confno
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 #.The DAHDI kernel modules and at least one hardware driver (or dahdi_dummy)
must be present for conferencing to operate properly. In addition, the chan_dahdi channel driver
must be loaded for the i and r options to operate at
all.MeetMeCountMeetMeAdminMeetMeChannelAdmin
MeetMe participant count.
Conference number.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 application completion, MeetMeCount will hangup
the channel, unless priority n+1 exists, in which case priority progress will
continue.MeetMe
MeetMe conference administration.
Run admin command for conference confno.Will additionally set the variable MEETMEADMINSTATUS with one of
the following values:
Invalid arguments.
User specified was not found.
Another failure occurred.
The operation was completed successfully.
MeetMe
MeetMe conference Administration (channel specific).
Run admin command for a specific
channel in any coference.
Shared Line Appearance Station.
Station nameThis 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_line1On exit, this application will set the variable SLASTATION_STATUS to
one of the following values:
Shared Line Appearance Trunk.
Trunk nameThis 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.On exit, this application will set the variable SLATRUNK_STATUS to
one of the following values:
Mute a Meetme user.
Unmute a Meetme user.
List participants in a conference.
Conference number.Lists all users in a particular MeetMe conference.
MeetmeList will follow as separate events, followed by a final event called
MeetmeListComplete.
Generate a Constant 1004Hz tone at 0dbm (mu-law).
Previous versions of this application generated the tone at 1000Hz. If for
some reason you would prefer that behavior, supply the o option to get the
old behavior.
Receive Mini-Voicemail and forward via e-mail.
Voicemail usernameVoicemail domainThis application is part of the Mini-Voicemail system, configured in minivm.confMiniVM records audio file in configured format and forwards message to e-mail and pager.If there's no user account for that address, a temporary account will be used with default options.The recorded file name and path will be stored in MVM_FILENAME and the duration
of the message will be stored in MVM_DURATIONIf the caller hangs up after the recording, the only way to send the message and clean up is to
execute in the h extension. The application will exit if any of the following DTMF digits
are received and the requested extension exist in the current context.This is the status of the record operation
Play Mini-Voicemail prompts.
Voicemail usernameVoicemail domainThis application is part of the Mini-Voicemail system, configured in minivm.conf.MinivmGreet() plays default prompts or user specific prompts for an account.Busy and unavailable messages can be choosen, but will be overridden if a temporary
message exists for the account.This is the status of the greeting playback.
Notify voicemail owner about new messages.
Voicemail usernameVoicemail domainThis application is part of the Mini-Voicemail system, configured in minivm.conf.MiniVMnotify forwards messages about new voicemail to e-mail and pager. If there's no user
account for that address, a temporary account will be used with default options (set in
minivm.conf).If the channel variable MVM_COUNTER is set, this will be used in the message
file name and available in the template for the message.If no template is given, the default email template will be used to send email and default pager
template to send paging message (if the user account is configured with a paging address.This is the status of the notification attempt
Delete Mini-Voicemail voicemail messages.
File to deleteThis application is part of the Mini-Voicemail system, configured in minivm.conf.It deletes voicemail file set in MVM_FILENAME or given filename.This is the status of the delete operation.
Record account specific messages.
Voicemail usernameVoicemail domainThis application is part of the Mini-Voicemail system, configured in minivm.conf.Use this application to record account specific audio/video messages for busy, unavailable
and temporary messages.Account specific directories will be created if they do not exist.This is the result of the attempt to record the specified greeting.FAILED is set if the file can't be created.
Send Message Waiting Notification to subscriber(s) of mailbox.
Voicemail usernameVoicemail domainNumber of urgent messages in mailbox.Number of new messages in mailbox.Number of old messages in mailbox.This application is part of the Mini-Voicemail system, configured in minivm.conf.MinivmMWI is used to send message waiting indication to any devices whose channels have
subscribed to the mailbox passed in the first parameter.
Record a call and mix the audio during the recording.
If filename is an absolute path, uses that path, otherwise
creates the file in the configured monitoring directory from asterisk.conf.Will be executed when the recording is over.Any strings matching ^{X} will be unescaped to X.All variables will be evaluated at the time MixMonitor is called.Records the audio on the current channel to the specified file.Will contain the filename used to record.MonitorStopMixMonitorPauseMonitorUnpauseMonitor
Stop recording a call through MixMonitor.
Stops the audio recording that was started with a call to MixMonitor()
on the current channel.MixMonitor
Plays morse code.
String to playback as morse code to channelPlays the Morse code equivalent of the passed string.This application uses the following variables:Use this value in (ms) for length of ditThe pitch of the tone in (Hz), default is 800SayAlphaSayPhonetic
Play an MP3 file or stream.
Location of the file to be played.
(argument passed to mpg123)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.
Play an NBS local stream.
Executes nbscat to listen to the local NBS stream.
User can exit by pressing any key.
Originate a call.
Channel technology and data for creating the outbound channel.
For example, SIP/1234.This should be app or exten, depending on whether the outbound channel should be connected to an application or extension.If the type is app, then this is the application name. If the type is exten, then this is the context that the channel will be sent to.If the type is app, then this is the data passed as arguments to the application. If the type is exten, then this is the extension that the channel will be sent to.If the type is exten, then this is the priority that the channel is sent to. If the type is app, then this parameter is ignored.This application originates an outbound call and connects it to a specified extension or application. This application will block until the outgoing call fails or gets answered. At that point, this application will exit with the status variable set and dialplan processing will continue.This application sets the following channel variable before exiting:This indicates the result of the call origination.
In practice, you should never see this value. Please report it to the issue tracker if you ever see it.
Page series of phones
Specification of the device(s) to dial. These must be in the format of
Technology/Resource, where Technology
represents a particular channel driver, and Resource represents a resource
available to that particular channel driver.Optional extra devices to dial inparallelIf you need more then one enter them as Technology2/Resource2&
Technology3/Resourse3&.....Specify the length of time that the system will attempt to connect a call.
After this duration, any intercom calls that have not been answered will be hung up by the
system.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 callers leaves.MeetMe
Park and Announce.
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.Time in seconds before the call returns into the return
context.The app_dial style resource to call to make the
announcement. Console/dsp calls the console.The goto-style label to jump the call back into after
timeout. Default priority+1.Park a call into the parkinglot and announce the call to another channel.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.ParkParkedCall
Play a file.
Comma separated list of optionsPlays back given filenames (do not put extension of wav/alaw etc).
The playback command answer the channel if no options are specified.
If the file is non-existant it will failThis application sets the following channel variable upon completion:The status of the playback attempt as a text string.See Also: Background (application) -- for playing sound files that are interruptibleWaitExten (application) -- wait for digits from caller, optionally play music on hold
Play a tone list.
Arg is either the tone name defined in the indications.conf
configuration file, or a directly specified list of frequencies and durations.Plays a tone list. Execution will continue with the next step in the dialplan
immediately while the tones continue to play.See the sample indications.conf for a description of the
specification of a tonelist.StopPlayTones
Stop playing a tone list.
Stop playing a tone list, initiated by PlayTones().PlayTones
Require phone number to be entered, if no CallerID sent
Total tries caller is allowed to input a callerid. Defaults to 3.Minimum allowable digits in the input callerid number. Defaults to 10.Context to check the given callerid against patterns.If no Caller*ID is sent, PrivacyManager answers the channel and asks
the caller to enter their phone number. The caller is given
maxretries attempts to do so. The application does
nothing if Caller*ID was received on the channel.The application sets the following channel variable upon completion:The status of the privacy manager's attempt to collect a phone number from the user.Zapateller
Queue a call for a call queue.
URL will be sent to the called party if the channel supports it.Will cause the queue to fail out after a specified number of
seconds, checked between each queues.conftimeout and
retry cycle.Will setup an AGI script to be executed on the calling party's channel once they are
connected to a queue member.Will run a macro on the calling party's channel once they are connected to a queue member.Will run a gosub on the calling party's channel once they are connected to a queue member.Will cause the queue's defaultrule to be overridden by the rule specified.Attempt to enter the caller into the queue at the numerical position specified. 1
would attempt to enter the caller at the head of the queue, and 3 would attempt to place
the caller third in the queue.In addition to transferring the call, a call may be parked and then picked
up by another user.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.This application sets the following channel variable upon completion:The status of the call as a text string.AddQueueMemberRemoveQueueMemberPauseQueueMemberUnpauseQueueMemberAgentLoginQUEUE_MEMBER_COUNTQUEUE_MEMBER_LISTQUEUE_WAITING_COUNT
Dynamically adds queue members.
Dynamically adds interface to an existing queue. If the interface is
already in the queue it will return an error.This application sets the following channel variable upon completion:The status of the attempt to add a queue member as a text string.RemoveQueueMemberPauseQueueMemberUnpauseQueueMemberAgentLogin
Dynamically removes queue members.
If the interface is NOT in the queue it will return an error.This application sets the following channel variable upon completion:Example: RemoveQueueMember(techsupport,SIP/3000)QueueAddQueueMemberPauseQueueMemberUnpauseQueueMember
Pauses a queue member.
Is used to add extra information to the appropriate queue_log entries and manager events.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. The application will fail if the
interface is not found.This application sets the following channel variable upon completion:The status of the attempt to pause a queue member as a text string.Example: PauseQueueMember(,SIP/3000)UnpauseQueueMember
Unpauses a queue member.
Is used to add extra information to the appropriate queue_log entries and manager events.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.This application sets the following channel variable upon completion:The status of the attempt to unpause a queue member as a text string.Example: UnpauseQueueMember(,SIP/3000)PauseQueueMember
Writes to the queue_log file.
Allows you to write your own events into the queue log.Example: QueueLog(101,${UNIQUEID},${AGENT},WENTONBREAK,600)Queue
Return Queue information in variables.
Maxmimum number of calls allowed.The strategy of the queue.Number of calls currently in the queue.Current average hold time.Number of completed calls for the queue.Number of abandoned calls.Queue service level.Current service level performance.Makes the following queue variables available.Returns 0 if queue is found and setqueuevar is defined, -1 otherwise.
Count number of members answering a queue.
Returns the number of logged-in members for the specified queue.Returns the number of logged-in members for the specified queue available to take a call.Returns the total number of members for the specified queue.Returns the number of members currently associated with the specified queuename.
Count number of members answering a queue.
Returns the number of members currently associated with the specified queuename.This function has been deprecated in favor of the QUEUE_MEMBER() functionQUEUE_MEMBER_LIST
Count number of calls currently waiting in a queue.
Returns the number of callers currently waiting in the specified queuename.
Returns a list of interfaces on a queue.
Returns a comma-separated list of members associated with the specified queuename.QUEUE_MEMBER_COUNT
Gets or sets queue members penalty.
Gets or sets queue members penalty.
Queues.
Show queue status.
Show queue summary.
Add interface to queue.
Remove interface from queue.
Makes a queue member temporarily unavailable.
Adds custom entry in queue_log.
Set the penalty for a queue member.
Queue Rules.
Reload a queue, queues, or any sub-section of a queue or queues.
Reset queue statistics.
Read a variable.
The input digits will be stored in the given variable
name.file(s) to play before reading digits or tone with option iMaximum 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.If greater than 1, that many
attempts will be made in the
event no data is entered.The number of seconds to wait for a digit response. If greater
than 0, that value will override the default timeout.
Can be floating point.Reads a #-terminated string of digits a certain number of times from the
user in to the given variable.This application sets the following channel variable upon completion:This is the status of the read operation.SendDTMF
Read an extension into a variable.
File to play before reading digits or tone with option iContext in which to match extensions.An integer number of seconds to wait for a digit response. If
greater than 0, that value will override the default timeout.Reads a # terminated string of digits from the user into the given variable.Will set READEXTENSTATUS on exit with one of the following statuses:
A valid extension exists in ${variable}.
No extension was entered in the specified time. Also sets ${variable} to "t".
An invalid extension, ${INVALID_EXTEN}, was entered. Also sets ${variable} to "i".
Line was not up and the option 's' was specified.
Invalid arguments were passed.
Determine whether an extension exists or not.
Defaults to the current contextPriority defaults to 1.Returns a true value if the indicated context,
extension, and priority exist.
Read the contents of a text file into a channel variable.
Result stored here.The name of the file to read.Maximum number of characters to capture.If not specified defaults to max.Read the contents of a text file into channel variable varnameReadFile has been deprecated in favor of Set(varname=${FILE(file,0,length)})SystemRead
Record to a file.
Is the format of the file type to be recorded (wav, gsm, etc).Is the number of seconds of silence to allow before returning.Is the maximum recording duration in seconds. If missing
or 0 there is no maximum.If filename contains %d, these characters will be replaced with a number
incremented by one each time the file is recorded.
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 hangs up during a recording, all data will be lost and the application will terminate.Will be set to the final filename of the recording.This is the final status of the commandA terminating DTMF was received ('#' or '*', depending upon option 't')The maximum silence occurred in the recording.The line was not yet answered and the 's' option was specified.The maximum length was reached.The channel was hung up.An unrecoverable error occurred, which resulted in a WARNING to the logs.
Says a specified time in a custom format.
time, in seconds since Jan 1, 1970. May be negative. Defaults to now.timezone, see /usr/share/zoneinfo for a list. Defaults to machine default.a format the time is to be said in. See voicemail.conf.
Defaults to ABdY "digits/at" IMpUses some of the sound files stored in /var/lib/asterisk/sounds to construct a phrase
saying the specified date and/or time in the specified format. STRFTIMESTRPTIMEIFTIME
Says a specified time in a custom format.
time, in seconds since Jan 1, 1970. May be negative. Defaults to now.timezone, see /usr/share/zoneinfo for a list. Defaults to machine default.a format the time is to be said in. See voicemail.conf.
Defaults to ABdY "digits/at" IMpSay the date and time in a specified format.
Sends arbitrary DTMF digits
List of digits 0-9,*#,abcdAmount of time to wait in ms between tones. (defaults to .25s)Duration of each digitDTMF digits sent to a channel with half second pauseIt will pass all digits or terminate if it encounters an error.Read
Play DTMF signal on a specific channel.
Channel name to send digit to.The DTMF digit to play.Plays a dtmf digit on the specified channel.
Send a Text Message.
Sends text to current channel (callee).Result of transmission will be stored in the SENDTEXTSTATUS
Transmission succeeded.
Transmission failed.
Text transmission not supported by channel.
At this moment, text is supposed to be 7 bit ASCII in most channels.SendImageSendURL
Set CallerID Presentation.
Presentation Allowed, Not Screened.Presentation Allowed, Passed Screen.Presentation Allowed, Failed Screen.Presentation Allowed, Network Number.Presentation Prohibited, Not Screened.Presentation Prohibited, Passed Screen.Presentation Prohibited, Failed Screen.Presentation Prohibited, Network Number.Number Unavailable.Set Caller*ID presentation on a call.
Simple one line explaination.
This application is a template to build other applications from.
It shows you the basic structure to create your own Asterisk applications.
Communicates with SMS service centres and SMS capable analogue phones.
The name of the queue used in /var/spool/asterisk/smsSMS handles exchange of SMS data with a call to/from SMS capable 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 and Telecom Italia in Italy.Typical usage is to use to handle calls from the SMS service centre CLI, or to set up a call using
outgoing or manager interface to connect service centre to SMS()."Messages are processed as per text file message queues. smsq (a separate software) is a command to
generate message queues and send messages.The protocol has tight delay bounds. Please use short frames and disable/keep short the
jitter buffer on the ATA to make sure that respones (ACK etc.) are received in time.
Hangs up the requested channel.
Hangs up the requested channel. If there are no channels to
hangup, the application will report it.
Create a Speech Structure.
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.
Activate a grammar.
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.
Start recognizing voice in the audio stream.
Tell the speech recognition engine that it should start trying to get results from audio being
fed to it.
Play a sound file and wait for speech to be recognized.
Timeout integer in seconds. Note the timeout will only start
once the sound file has stopped playing.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 integer in seconds.
Deactivate a grammar.
The grammar name to deactivateThis deactivates the specified grammar so that it is no longer recognized.
Change background processing sound.
This changes the processing sound that SpeechBackground plays back when the speech recognition engine is
processing and working to get results.
End speech recognition.
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.
Load a grammar.
Load a grammar only on the channel, not globally.
Unload a grammar.
Unload a grammar.
Gets the confidence score of a result.
Gets the confidence score of a result.
Gets the recognized text of a result.
Gets the recognized text of a result.
Gets the matched grammar of a result if available.
Gets the matched grammar of a result if available.
Change a speech engine specific attribute.
Changes a speech engine specific attribute.
Sets the type of results that will be returned.
Sets the type of results that will be returned. Valid options are normal or nbest.
Gets information about speech recognition results.
Returns 1 upon speech object existing,
or 0 if notReturns 1 if spoker spoke,
or 0 if notReturns number of results that were recognized.Gets information about speech recognition results.
Jump to label, saving return address.
Jumps to the label specified, saving the return address.GosubIfMacroGotoReturnStackPop
Conditionally jump to label, saving return address.
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.GosubReturnMacroIfIFGotoIf
Return from gosub routine.
Return value.Jumps to the last label on the stack, removing it. The return value, if
any, is saved in the channel variable GOSUB_RETVAL.GosubStackPop
Remove one address from gosub stack.
Removes last label on the stack, discarding it.ReturnGosub
Manage variables local to the gosub stack frame.
Read and write a variable local to the gosub stack frame, once we Return() it will be lost
(or it will go back to whatever value it had before the Gosub()).GosubGosubIfReturn
Retrieve variables hidden by the local gosub stack frame.
Read a variable varname hidden by
n levels of gosub stack frames. Note that ${LOCAL_PEEK(0,foo)}
is the same as foo, since the value of n
peeks under 0 levels of stack frames; in other words, 0 is the current level. If
n exceeds the available number of stack frames, then an empty
string is returned.GosubGosubIfReturn
Execute a system command.
Command to executeExecutes 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:
Could not execute the specified command.
Specified command successfully executed.
Try executing a system command.
Command to executeExecutes a command by using system().Result of execution is returned in the SYSTEMSTATUS channel variable:
Could not execute the specified command.
Specified command successfully executed.
Specified command successfully executed, but returned error code.
Background a file with talk detect.
If not specified, defaults to 1000.If not specified, defaults to 100.If not specified, defaults to infinity.If not specified, defaults to infinity.Plays back 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,
which occurs during the first analysistime ms, then the audio playback is
aborted and processing jumps to the talk extension, if available.
Execute Interface Test Server.
Perform test server function and write call report. Results stored in
/var/log/asterisk/testreports/<testid>-server.txtTestClient
Execute Interface Test Client.
An ID to identify this test.Executes test client with given testid. Results stored in
/var/log/asterisk/testreports/<testid>-client.txtTestServer
Transfer caller to remote extension.
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:
Transfer succeeded.
Transfer failed.
Transfer unsupported by channel driver.
Send a URL.
Requests client go to URL (IAX2) or sends the
URL to the client (other channels).Result is returned in the SENDURLSTATUS channel variable:
URL successfully sent to client.
Failed to send URL.
Client failed to load URL (wait enabled).
Channel does not support URL transport.
SendURL continues normally if the URL was sent correctly or if the channel
does not support HTML transport. Otherwise, the channel is hung up.SendImageSendText
Send an arbitrary event to the manager interface.
Sends an arbitrary event to the manager interface, with an optional
body representing additional arguments. The
body may be specified as
a | delimited 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.
Send arbitrary text to verbose output.
Must be an integer value. If not specified, defaults to 0.Output text message.Sends an arbitrary text message to verbose output.
Send arbitrary text to a selected log level.
Level must be one of ERROR, WARNING, NOTICE,
DEBUG, VERBOSE or DTMF.Output text message.Sends an arbitrary text message to a selected log level.
Leave a Voicemail message.
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: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:This indicates the status of the execution of the VoiceMail application.
Check Voicemail messages.
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.
Check to see if Voicemail mailbox exists.
None 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:This will contain the status of the execution of the MailboxExists application.
Possible values include:
Authenticate with Voicemail passwords.
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.
Tell if a mailbox is configured.
Returns a boolean of whether the corresponding mailbox exists.
If context is not specified, defaults to the default
context.
List All Voicemail User Information.
Wait for Ring Application.
Returns 0 after waiting at least timeout seconds,
and only after the next ring has completed. Returns 0 on success or
-1 on hangup.
Waits for a specified amount of silence.
If not specified, defaults to 1.Is specified only to avoid an infinite loop in cases where silence is never achieved.Waits for up to silencerequired milliseconds of silence,
iterations times. 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.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, twiceWaitForSilence(1000) will wait for 1 second of silence, onceWaitForSilence(300,3,10) will wait for 300ms silence, 3 times, and returns after 10 sec, even if silence
is not detectedSets the channel variable WAITSTATUS to one of these values:
if exited with silence detected.
if exited without silence detected after timeout.
WaitForNoise
Waits for a specified amount of noise.
If not specified, defaults to 1.Is specified only to avoid an infinite loop in cases where silence is never achieved.Waits for up to noiserequired milliseconds of noise,
iterations times. An optional timeout
specified the number of seconds to return after, even if we do not receive the specified amount of noise.
Use timeout with caution, as it may defeat the purpose of this application, which
is to wait indefinitely until noise is detected on the line.WaitForSilence
Wait (sleep) until the current time is the given epoch.
Waits until the given epoch.Sets WAITUNTILSTATUS to one of the following values:
Wait succeeded.
Invalid argument.
Channel hungup before time elapsed.
Time specified had already past.
Start a while loop.
Start a While Loop. Execution will return to this point when
EndWhile() is called until expr is no longer true.EndWhileExitWhileContinueWhile
End a while loop.
Return to the previous called While().WhileExitWhileContinueWhile
End a While loop.
Exits a While() loop, whether or not the conditional has been satisfied.WhileEndWhileContinueWhile
Restart a While loop.
Returns to the top of the while loop and re-evaluates the conditional.WhileEndWhileExitWhile
Block telemarketers with SIT.
Comma delimited list of options.Generates special information tone to block telemarketers from calling you.This application will set the following channel variable upon completion:This will contain the last action accomplished by the
Zapateller application. Possible values include:
Encrypt a string with AES given a 16 character key.
AES KeyInput stringReturns an AES encrypted string encoded in base64.
Decrypt a string encoded in base64 with AES given a 16 character key.
AES KeyInput string.Returns the plain text string.
Set whether an audiohook may be inherited to another channel
The built-in sources in Asterisk areNote that the names are not case-sensitiveBy enabling audiohook inheritance on the channel, you are giving
permission for an audiohook to be inherited by a descendent channel.
Inheritance may be be disabled at any point as well.Example scenario:exten => 2000,1,MixMonitor(blah.wav)exten => 2000,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)exten => 2000,n,Dial(SIP/2000)exten => 4000,1,Dial(SIP/4000)exten => 5000,1,MixMonitor(blah2.wav)exten => 5000,n,Dial(SIP/5000)In this basic dialplan scenario, let's consider the following sample callsCall 1: Caller dials 2000. The person who answers then executes an attended transfer to 4000.Result: Since extension 2000 set MixMonitor to be inheritable, after the transfer to 4000 has completed, the call will continue to be recorded
to blah.wavCall 2: Caller dials 5000. The person who answers then executes an attended transfer to 4000.Result: Since extension 5000 did not set MixMonitor to be inheritable, the recording will stop once the call has been transferred to 4000.
Encode a string in base64.
Input stringReturns the base64 string.
Decode a base64 string.
Input string.Returns the plain text string.
Check if the callerid is on the blacklist.
Uses astdb to check if the Caller*ID is in family blacklist.
Returns 1 or 0.DB
Gets or sets Caller*ID data on the channel.
The allowable datatypes are:Optional Caller*IDGets or sets Caller*ID data on the channel. Uses channel callerid by default or optional
callerid, if specified.
Gets or sets Caller*ID presentation on the channel.
Gets or sets Caller*ID presentation on the channel. The following values
are valid:Presentation Allowed, Not Screened.Presentation Allowed, Passed Screen.Presentation Allowed, Failed Screen.Presentation Allowed, Network Number.Presentation Prohibited, Not Screened.Presentation Prohibited, Passed Screen.Presentation Prohibited, Failed Screen.Presentation Prohibited, Network Number.Number Unavailable.
Gets or sets a CDR variable.
CDR field name:Caller ID.Last application arguments.ANSWERED, NO ANSWER, BUSY.Source.Time the call started.DOCUMENTATION, BILL, IGNORE, etc.Destination.Time the call was answered.The channel's account code.Destination context.Time the call ended.The channel's unique id.Destination channel.Duration of the call.The channel's user specified field.Last application.Duration of the call once it was answered.Channel name.All of the CDR field names are read-only, except for accountcode,
userfield, and amaflags. You may, however, supply
a name not on the above list, and create your own variable, whose value can be changed
with this function, and this variable will be stored on the cdr.For setting CDR values, the l flag does not apply to
setting the accountcode, userfield, or
amaflags.Raw values for disposition:NO ANSWERBUSYFAILEDANSWEREDRaw values for amaflags:OMITBILLINGDOCUMENTATIONExample: exten => 1,1,Set(CDR(userfield)=test)
Gets the list of channels, optionally filtering by a regular expression.
Gets the list of channels, optionally filtering by a regular_expression. If
no argument is provided, all known channels are returned. The
regular_expression must correspond to
the POSIX.2 specification, as shown in regex(7). The list returned
will be space-delimited.
Gets/sets various pieces of information about the channel.
Standard items (provided by all channel technologies) are:R/O format currently being read.R/O format used natively for audio.R/O format currently being written.R/W call groups for call pickup.R/O technology used for channel.R/W language for sounds played.R/W class (from musiconhold.conf) for hold music.The name of the channelR/W parkinglot for parking.R/W set rxgain level on channel drivers that support it.R/O state for channelR/W zone for indications playedR/W ISDN Transfer Capability, one of:R/W set txgain level on channel drivers that support it.R/O format used natively for videoR/W whether or not context tracing is enabled, only available
if CHANNEL_TRACE is defined.chan_sip provides the following additional options:R/O Get the IP address of the peer.R/O Get the source IP address of the peer.R/O Get the URI from the From: header.R/O Get the URI from the Contact: header.R/O Get the useragent.R/O Get the name of the peer.R/O 1 if T38 is offered or enabled in this channel,
otherwise 0R/O Get QOS information about the RTP stream This option takes two additional arguments: Argument 1:audio Get data about the audio streamvideo Get data about the video streamtext Get data about the text stream Argument 2:local_ssrc Local SSRC (stream ID)local_lostpackets Local lost packetslocal_jitter Local calculated jitterlocal_maxjitter Local calculated jitter (maximum)local_minjitter Local calculated jitter (minimum)local_normdevjitterLocal calculated jitter (normal deviation)local_stdevjitter Local calculated jitter (standard deviation)local_count Number of received packetsremote_ssrc Remote SSRC (stream ID)remote_lostpacketsRemote lost packetsremote_jitter Remote reported jitterremote_maxjitter Remote calculated jitter (maximum)remote_minjitter Remote calculated jitter (minimum)remote_normdevjitterRemote calculated jitter (normal deviation)remote_stdevjitterRemote calculated jitter (standard deviation)remote_count Number of transmitted packetsremote_ssrc Remote SSRC (stream ID)remote_lostpacketsRemote lost packetsremote_jitter Remote reported jitterremote_maxjitter Remote calculated jitter (maximum)remote_minjitter Remote calculated jitter (minimum)remote_normdevjitterRemote calculated jitter (normal deviation)remote_stdevjitterRemote calculated jitter (standard deviation)remote_count Number of transmitted packetsrtt Round trip timemaxrtt Round trip time (maximum)minrtt Round trip time (minimum)normdevrtt Round trip time (normal deviation)stdevrtt Round trip time (standard deviation)all All statistics (in a form suited to logging,
but not for parsing)R/O Get remote RTP destination information. This option takes one additional argument: Argument 1:audio Get audio destinationvideo Get video destinationchan_iax2 provides the following additional options:R/W Get or set the OSP token information for a call.R/O Get the peer's ip address.R/O Get the peer's username.Gets/sets various pieces of information about the channel, additional item may
be available from the channel driver; see its documentation for details. Any item
requested that is not available on the current channel will return an empty string.
Retrieve a variable from a configuration file.
This function reads a variable from an Asterisk configuration file.
Gets or sets Connected Line data on the channel.
The allowable datatypes are:If set, this will prevent the channel from sending out protocol
messages because of the value being setGets or sets Connected Line data on the channel.
Sorts a list of key/vals into a list of keys, based upon the vals.
Takes a comma-separated list of keys and values, each separated by a colon, and returns a
comma-separated list of the keys, sorted by their values. Values will be evaluated as
floating-point numbers.
Slices and dices strings, based upon a named delimiter.
Variable you want cutDelimiter, defaults to -Number of the field you want (1-based offset), may also be specified as a range (with -)
or group of ranges and fields (with &)Cut out information from a string (varname), based upon a named delimiter.
Read from or write to the Asterisk database.
This function will read from or write a value to the Asterisk database. On a
read, this function returns the corresponding value from the database, or blank
if it does not exist. Reading a database value will also set the variable
DB_RESULT. If you wish to find out if an entry exists, use the DB_EXISTS
function.DBdelDB_DELETEDBdeltreeDB_EXISTS
Check to see if a key exists in the Asterisk database.
This function will check to see if a key exists in the Asterisk
database. If it exists, the function will return 1. If not,
it will return 0. Checking for existence of a database key will
also set the variable DB_RESULT to the key's value if it exists.DB
Return a value from the database and delete it.
This function will retrieve a value from the Asterisk database
and then remove that key from the database. DB_RESULT
will be set to the key's value if it exists.DBdelDBDBdeltree
Get or Set a device state.
The DEVICE_STATE function can be used to retrieve the device state from any
device state provider. For example:NoOp(SIP/mypeer has state ${DEVICE_STATE(SIP/mypeer)})NoOp(Conference number 1234 has state ${DEVICE_STATE(MeetMe:1234)})The DEVICE_STATE function can also be used to set custom device state from
the dialplan. The Custom: prefix must be used. For example:Set(DEVICE_STATE(Custom:lamp1)=BUSY)Set(DEVICE_STATE(Custom:lamp2)=NOT_INUSE)You can subscribe to the status of a custom device state using a hint in
the dialplan:exten => 1234,hint,Custom:lamp1The possible values for both uses of this function are:UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING |
RINGINUSE | ONHOLD
Get the devices set for a dialplan hint.
The HINT function can be used to retrieve the list of devices that are
mapped to a dialplan hint. For example:NoOp(Hint for Extension 1234 is ${HINT(1234)})
Manages a group of users for dialing.
The operation name, possible values are:add - add a channel name or interface (write-only)del - remove a channel name or interface (write-only)Presents an interface meant to be used in concert with the Dial
application, by presenting a list of channels which should be dialled when
referenced.When DIALGROUP is read from, the argument is interpreted as the particular
group for which a dial should be attempted. When DIALGROUP is written to
with no arguments, the entire list is replaced with the argument specified.Functionality is similar to a queue, except that when no interfaces are
available, execution may continue in the dialplan. This is useful when
you want certain people to be the first to answer any calls, with immediate
fallback to a queue when the front line people are busy or unavailable, but
you still want front line people to log in and out of that group, just like
a queue.Example:exten => 1,1,Set(DIALGROUP(mygroup,add)=SIP/10)exten => 1,n,Set(DIALGROUP(mygroup,add)=SIP/20)exten => 1,n,Dial(${DIALGROUP(mygroup)})
Checks the existence of a dialplan target.
This function returns 1 if the target exits. Otherwise, it returns 0.
Initiate an ENUM query.
If no method-type is given, the default will be
sip.If no zone-suffix is given, the default will be
e164.arpaThis will do a ENUM lookup of the given phone number.
Retrieve results from a ENUMQUERY.
The identifier returned by the ENUMQUERY function.The number of the result that you want to retrieve.Results start at 1. If this argument is specified
as getnum, then it will return the total number of results
that are available.This function will retrieve results from a previous use
of the ENUMQUERY function.
General or specific querying of NAPTR records for ENUM or ENUM-like DNS pointers.
If no method-type is given, the default will be
sip.If no record# is given,
defaults to 1.If no zone-suffix is given, the default will be
e164.arpaFor more information see doc/asterisk.pdf.
TXTCIDNAME looks up a caller name via DNS.
If no zone-suffix is given, the default will be
e164.arpaThis function looks up the given phone number in DNS to retrieve
the caller id name. The result will either be blank or be the value
found in the TXT record in DNS.
Gets or sets the environment variable specified.
Environment variable name
Does a check on the specified file.
Flag may be one of the following:d - Checks if the file is a directory.e - Checks if the file exists.f - Checks if the file is a regular file.m - Returns the file mode (in octal)s - Returns the size (in bytes) of the fileA - Returns the epoch at which the file was last accessed.C - Returns the epoch at which the inode was last changed.M - Returns the epoch at which the file was last modified.
Obtains the contents of a file.
Maybe specified as any number. If negative, offset specifies the number
of bytes back from the end of the file.If specified, will limit the length of the data read to that size. If negative,
trims length bytes from the end of the file.
Get an extension's state.
If it is not specified defaults to default.The EXTENSION_STATE function can be used to retrieve the state from any
hinted extension. For example:NoOp(1234@default has state ${EXTENSION_STATE(1234)})NoOp(4567@home has state ${EXTENSION_STATE(4567@home)})The possible values returned by this function are:UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING |
RINGINUSE | HOLDINUSE | ONHOLD
Gets or sets the global variable specified.
Global variable nameSet or get the value of a global variable specified in varname
Gets or sets the shared variable specified.
Variable nameIf not specified will default to current channel. It is the complete
channel name: SIP/12-abcd1234 or the prefix only SIP/12.Implements a shared variable area, in which you may share variables between
channels.The variables used in this space are separate from the general namespace of
the channel and thus SHARED(foo) and foo
represent two completely different variables, despite sharing the same name.Finally, realize that there is an inherent race between channels operating
at the same time, fiddling with each others' internal variables, which is why
this special variable namespace exists; it is to remind you that variables in
the SHARED namespace may change at any time, without warning. You should
therefore take special care to ensure that when using the SHARED namespace,
you retrieve the variable and store it in a regular channel variable before
using it in a set of calculations (or you might be surprised by the result).
Counts the number of channels in the specified group.
Group name.Category nameCalculates the group count for the specified group, or uses the
channel's current group if not specifed (and non-empty).
Counts the number of channels in the groups matching the specified pattern.
A standard regular expression used to match a group name.Category name.Calculates the group count for all groups that match the specified pattern.
Uses standard regular expression matching (see regex(7)).
Gets or sets the channel group.
Category name.category can be employed for more fine grained group management. Each channel
can only be member of exactly one group per category.
Gets a list of the groups set on a channel.
Gets a list of the groups set on a channel.
Converts charsets of strings.
Input charsetOutput charsetString to convert, from in-charset to out-charsetConverts string from in-charset into out-charset.
For available charsets, use iconv -l on your shell command line.Due to limitations within the API, ICONV will not currently work with
charsets with embedded NULLs. If found, the string will terminate.
Attempt to obtain a named mutex.
Attempts to grab a named lock exclusively, and prevents other channels from
obtaining the same lock. LOCK will wait for the lock to become available.
Returns 1 if the lock was obtained or 0 on error.To avoid the possibility of a deadlock, LOCK will only attempt to
obtain the lock for 3 seconds if the channel already has another lock.
Attempt to obtain a named mutex.
Attempts to grab a named lock exclusively, and prevents other channels
from obtaining the same lock. Returns 1 if the lock was
available or 0 otherwise.
Unlocks a named mutex.
Unlocks a previously locked mutex. Returns 1 if the channel
had a lock or 0 otherwise.It is generally unnecessary to unlock in a hangup routine, as any locks
held are automatically freed when the channel is destroyed.
Check if a value is NULL.
Returns 1 if NULL or 0 otherwise.
SET assigns a value to a channel variable.
Test the existence of a value.
Returns 1 if exists, 0 otherwise.
Check for an expresion.
Returns the data following ? if true, else the data following :
Temporal Conditional.
Returns the data following ? if true, else the data following :
Retrieve the value of a variable from another channel.
Performs Mathematical Functions.
Is of the form:
number1opnumber2
where the possible values for op
are:+,-,/,*,%,<<,>>,^,AND,OR,XOR,<,%gt;,>=,<=,== (and behave as their C equivalents)Wanted type of result:f, float - float(default)i, int - integerh, hex - hexc, char - charPerforms mathematical functions based on two parameters and an operator. The returned
value type is typeExample: Set(i=${MATH(123%16,int)}) - sets var i=11
Increments the value of a variable, while returning the updated value to the dialplan
The variable name to be manipulated, without the braces.
Increments the value of a variable, while returning the updated value to the dialplanExample: INC(MyVAR) - Increments MyVarNote: INC(${MyVAR}) - Is wrong, as INC expects the variable name, not its value
Decrements the value of a variable, while returning the updated value to the dialplan
The variable name to be manipulated, without the braces.
Decrements the value of a variable, while returning the updated value to the dialplanExample: DEC(MyVAR) - Increments MyVarNote: DEC(${MyVAR}) - Is wrong, as INC expects the variable name, not its value
Computes an MD5 digest.
Computes an MD5 digest.
Checks if an Asterisk module is loaded in memory.
Module name complete with .soChecks if a module is loaded. Use the full module name
as shown by the list in module list.
Returns 1 if module exists in memory, otherwise 0
Fetch a row from a multirow query.
For queries which are marked as mode=multirow, the original
query returns a result-id from which results
may be fetched. This function implements the actual fetch of the results.This also sets ODBC_FETCH_STATUS.
If rows are available.
If no rows are available.
Clear the resultset of a sucessful multirow query.
For queries which are marked as mode=multirow, this will clear
any remaining rows of the specified resultset.
Escapes single ticks for use in SQL statements.
Used in SQL templates to escape data which may contain single ticks
' which are otherwise used to delimit data.Example: SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'
Choose a random number in a range.
Choose a random number between min and max.
min defaults to 0, if not specified, while max defaults
to RAND_MAX (2147483647 on many systems).Example: Set(junky=${RAND(1,8)});
Sets junky to a random number between 1 and 8, inclusive.
RealTime Read/Write Functions.
Use delim1 with delim2 on
read and field without delim2 on
writeIf we are reading and delim1 is not specified, defaults
to ,Parameter only used when reading, if not specified defaults to =This function will read or write values from/to a RealTime repository.
REALTIME(....) will read names/values from the repository, and
REALTIME(....)= will write a new value/field to the repository. On a
read, this function returns a delimited text string. The name/value
pairs are delimited by delim1, and the name and value are delimited
between each other with delim2.
If there is no match, NULL will be returned by the function.
On a write, this function will always return NULL.
RealTime Store Function.
This function will insert a new set of values into the RealTime repository.
If RT engine provides an unique ID of the stored record, REALTIME_STORE(...)=..
creates channel variable named RTSTOREID, which contains value of unique ID.
Currently, a maximum of 30 field/value pairs is supported.
RealTime Destroy Function.
This function acts in the same way as REALTIME(....) does, except that
it destroys the matched record in the RT engine.
RealTime query function.
This function retrieves a single item, fieldname
from the RT engine, where fieldmatch contains the value
value. When written to, the REALTIME_FIELD() function
performs identically to the REALTIME() function.
RealTime query function.
This function retrieves a single record from the RT engine, where
fieldmatch contains the value
value and formats the output suitably, such that
it can be assigned to the HASH() function. The HASH() function then provides
a suitable method for retrieving each field value of the record.
Gets or sets Redirecting data on the channel.
The allowable datatypes are:If set, this will prevent the channel from sending out protocol
messages because of the value being setGets or sets Redirecting data on the channel. The allowable values
for the reason field are the following:UnknownCall Forwarding BusyCall Forwarding No ReplyCallee is UnavailableTime of DayDo Not DisturbCall DeflectionFollow MeCalled DTE Out-Of-OrderCallee is AwayCall Forwarding By The Called DTECall Forwarding Unconditional
Computes a SHA1 digest.
Input stringGenerate a SHA1 digest via the SHA1 algorythm.Example: Set(sha1hash=${SHA1(junky)})Sets the asterisk variable sha1hash to the string 60fa5675b9303eb62f99a9cd47f9f5837d18f9a0
which is known as his hash
Executes a command as if you were at a shell.
This is the argument to the function, the command you want to pass to the shell.Returns the value from a system commandExample: Set(foo=${SHELL(echo \bar\)})When using the SHELL() dialplan function, your \SHELL\ is /bin/sh,
which may differ as to the underlying shell, depending upon your production
platform. Also keep in mind that if you are using a common path, you should
be mindful of race conditions that could result from two calls running
SHELL() simultaneously.
Apply automatic gain control to audio on a channel.
This can be either rx or txThe AGC function will apply automatic gain control to the audio on the
channel that it is executed on. Using rx for audio received
and tx for audio transmitted to the channel. When using this
function you set a target audio level. It is primarily intended for use with
analog lines, but could be useful for other channels as well. The target volume
is set with a number between 1-32768. The larger the number
the louder (more gain) the channel will receive.Examples:exten => 1,1,Set(AGC(rx)=8000)exten => 1,2,Set(AGC(tx)=off)
Apply noise reduction to audio on a channel.
This can be either rx or tx
the values that can be set to this are either on and
offThe DENOISE function will apply noise reduction to audio on the channel
that it is executed on. It is very useful for noisy analog lines, especially
when adjusting gains or using AGC. Use rx for audio received from the channel
and tx to apply the filter to the audio being sent to the channel.Examples:exten => 1,1,Set(DENOISE(rx)=on)exten => 1,2,Set(DENOISE(tx)=off)
Format a variable according to a format string.
Parses the format string specified and returns a string matching
that format. Supports most options found in sprintf(3).
Returns a shortened string if a format specifier is not recognized.sprintf(3)
Count the fields with an arbitrary delimiter
The delimiter may be specified as a special or extended ASCII character, by encoding it. The characters
\n, \r, and \t are all recognized as the newline,
carriage return, and tab characters, respectively. Also, octal and hexadecimal specifications are recognized
by the patterns \0nnn and \xHH, respectively. For example, if you wanted
to encode a comma as the delimiter, you could use either \054 or \x2C.Example: If ${example} contains ex-amp-le, then ${FIELDQTY(example,-)} returns 3.Remove an item from a list, by name.Remove value from the list contained in the varname
variable, where the list delimiter is specified by the delim parameter. This is
very useful for removing a single channel name from a list of channels, for example.
Filter the string to include only the allowed characters
Permits all characters listed in allowed-chars,
filtering all others outs. In addition to literally listing the characters,
you may also use ranges of characters (delimited by a -Hexadecimal characters started with a \x(i.e. \x20)Octal characters started with a \0 (i.e. \040)Also \t,\n and \r are recognized.If you want the - character it needs to be prefixed with a
\
Check string against a regular expression.
Return 1 on regular expression match or 0 otherwisePlease note that the space following the double quotes separating the
regex from the data is optional and if present, is skipped. If a space is
desired at the beginning of the data, then put two spaces there; the second
will not be skipped.
Clear the keys from a specified hashname.
Clears all keys out of the specified hashname.
Implementation of a dialplan associative array
In two arguments mode, gets and sets values to corresponding keys within
a named associative array. The single-argument mode will only work when assigned
to from a function defined by func_odbc
Retrieve the keys of the HASH() function.
Returns a comma-delimited list of the current keys of the associative array
defined by the HASH() function. Note that if you iterate over the keys of
the result, adding keys during iteration will cause the result of the HASHKEYS()
function to change.
Hash the letters in string into equivalent keypad numbers.
Example: ${KEYPADHASH(Les)} returns "537"
Allows setting multiple variables at once.
The comma-delimited list passed as a value to which the function is set will
be interpreted as a set of values to which the comma-delimited list of
variable names in the argument should be set.Example: Set(ARRAY(var1,var2)=1,2) will set var1 to 1 and var2 to 2
Returns the epoch of the arbitrary date/time string structured as described by the format.
This is useful for converting a date into EPOCH time,
possibly to pass to an application like SayUnixTime or to calculate the difference
between the two date stringsExample: ${STRPTIME(2006-03-01 07:30:35,America/Chicago,%Y-%m-%d %H:%M:%S)} returns 1141219835
Returns the current date/time in the specified format.
STRFTIME supports all of the same formats as the underlying C function
strftime(3).
It also supports the following format: %[n]q - fractions of a second,
with leading zeros.Example: %3q will give milliseconds and %1q
will give tenths of a second. The default is set at milliseconds (n=3).
The common case is to use it in combination with %S, as in %S.%3q.strftime(3)
Evaluate stored variables
Using EVAL basically causes a string to be evaluated twice.
When a variable or expression is in the dialplan, it will be
evaluated at runtime. However, if the results of the evaluation
is in fact another variable or expression, using EVAL will have it
evaluated a second time.Example: If the MYVAR contains
OTHERVAR, then the result of ${EVAL(
MYVAR)} in the dialplan will be the
contents of OTHERVAR. Normally just
putting MYVAR in the dialplan the result
would be OTHERVAR.
Convert string to all uppercase letters.
Example: ${TOUPPER(Example)} returns "EXAMPLE"
Convert string to all lowercase letters.
Example: ${TOLOWER(Example)} returns "example"
Return the length of the string given.
Example: ${LEN(example)} returns 7
Quotes a given string, escaping embedded quotes as necessary
Example: ${QUOTE(ab"c"de)} will return "abcde"
Removes and returns the first item off of a variable containing delimited text
Example:exten => s,1,Set(array=one,two,three)exten => s,n,While($["${SET(var=${SHIFT(array)})}" != ""])exten => s,n,NoOp(var is ${var})exten => s,n,EndWhileThis would iterate over each value in array, left to right, and
would result in NoOp(var is one), NoOp(var is two), and
NoOp(var is three) being executed.
Removes and returns the last item off of a variable containing delimited text
Example:exten => s,1,Set(array=one,two,three)exten => s,n,While($["${SET(var=${POP(array)})}" != ""])exten => s,n,NoOp(var is ${var})exten => s,n,EndWhileThis would iterate over each value in array, right to left, and
would result in NoOp(var is three), NoOp(var is two), and
NoOp(var is one) being executed.
Appends one or more values to the end of a variable containing delimited text
Example: Set(PUSH(array)=one,two,three) would append one,
two, and three to the end of the values stored in the variable
"array".
Inserts one or more values to the beginning of a variable containing delimited text
Example: Set(UNSHIFT(array)=one,two,three) would insert one,
two, and three before the values stored in the variable
"array".
Gets or sets timeouts on the channel. Timeout values are in seconds.
The timeout that will be manipulated. The possible timeout types
are: absolute, digit or
responseThe timeouts that can be manipulated are:absolute: The absolute maximum amount of time permitted for a call.
Setting of 0 disables the timeout.digit: The maximum amount of time permitted between digits when the
user is typing in an extension. When this timeout expires,
after the user has started to type in an extension, the
extension will be considered complete, and will be
interpreted. Note that if an extension typed in is valid,
it will not have to timeout to be tested, so typically at
the expiry of this timeout, the extension will be considered
invalid (and thus control would be passed to the i
extension, or if it doesn't exist the call would be
terminated). The default timeout is 5 seconds.response: The maximum amount of time permitted after falling through a
series of priorities for a channel in which the user may
begin typing an extension. If the user does not type an
extension in this amount of time, control will pass to the
t extension if it exists, and if not the call would be
terminated. The default timeout is 10 seconds.
Encodes a string to URI-safe encoding according to RFC 2396.
Input string to be encoded.Returns the encoded string defined in data.
Decodes a URI-encoded string according to RFC 2396.
Input string to be decoded.Returns the decoded URI-encoded data string.
Return the Version info for this Asterisk.
The possible values are:A string of digits is returned (right now fixed at 999999).The string representing the user's name whose account
was used to configure Asterisk, is returned.The string representing the name of the host on which Asterisk was configured, is returned.The string representing the type of machine on which Asterisk was configured, is returned.The string representing the OS of the machine on which Asterisk was configured, is returned.The string representing the date on which Asterisk was configured, is returned.The string representing the kernel version of the machine on which Asterisk
was configured, is returned.If there are no arguments, return the version of Asterisk in this format: SVN-branch-1.4-r44830MExample: Set(junky=${VERSION()};Sets junky to the string SVN-branch-1.6-r74830M, or possibly, SVN-trunk-r45126M.
Count the voicemails in a specified mailbox.
If not specified, defaults to default.If not specified, defaults to INBOXCount the number of voicemails in a specified mailbox, you could also specify
the context and the mailbox folder.Example: exten => s,1,Set(foo=${VMCOUNT(125)})
Set the TX or RX volume of a channel.
Must be TX or RX.The VOLUME function can be used to increase or decrease the tx or
rx gain of any channel.For example:Set(VOLUME(TX)=3)Set(VOLUME(RX)=2)
Get DB Entry.
Put DB entry.
Delete DB entry.
Delete DB Tree.
Bridge two channels.
The current channel is bridged to the specified channel.Allows the ability to bridge two channels via the dialplan.This application sets the following channel variable upon completion:The result of the bridge attempt as a text string.
Answer a parked call.
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. If no extension is provided, then the first available
parked call will be acquired.ParkParkAndAnnounce
Park yourself.
A custom parking timeout for this parked call.The context to return the call to after it times out.The extension to return the call to after it times out.The priority to return the call to after it times out.A list of options for this parked call.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.ParkAndAnnounceParkedCall
List parked calls.
List parked calls.
Park a channel.
Channel name to park.Channel to announce park info to (and return to if timeout).Number of milliseconds to wait before callback.Park a channel.
Bridge two channels already in the PBX.
Channel to Bridge to Channel2.Channel to Bridge to Channel1.Play courtesy tone to Channel 2.Bridge together two channels already in the PBX.
Keepalive command.
A 'Ping' action will ellicit a 'Pong' response. Used to keep the
manager connection open.
Control Event Flow.
If all events should be sent.If no events should be sent.To select which flags events should have to be sent.Enable/Disable sending of events to this manager client.
Logoff Manager.
Logoff the current manager session.
Login Manager.
ActionID for this transaction. Will be returned.Login Manager.
Generate Challenge for MD5 Auth.
Generate a challenge for MD5 authentication.
Hangup channel.
The channel name to be hangup.Numeric hangup cause.Hangup a channel.
List channel status.
The name of the channel to query for status.Comma , separated list of variable to include.Will return the status information of each channel along with the
value for the specified channel variables.
Set a channel variable.
Channel to set variable for.Variable name.Variable value.Set a global or local channel variable.
Gets a channel variable.
Channel to read variable from.Variable name.Get the value of a global or local channel variable.
Retrieve configuration.
Configuration filename (e.g. foo.conf).Category in configuration file.This action will dump the contents of a configuration
file by category and contents or optionally by specified category only.
Retrieve configuration (JSON format).
Configuration filename (e.g. foo.conf).This action will dump the contents of a configuration file by category
and contents in JSON format. This only makes sense to be used using rawman over
the HTTP interface.
Update basic configuration.
Configuration filename to read (e.g. foo.conf).Configuration filename to write (e.g. foo.conf)Whether or not a reload should take place (or name of specific module).Action to take.X's represent 6 digit number beginning with 000000.Category to operate on.Variable to work on.Value to work on.Extra match required to match line.Line in category to operate on (used with delete and insert actions).This action will modify, create, or delete configuration elements
in Asterisk configuration files.
Creates an empty file in the configuration directory.
The configuration filename to create (e.g. foo.conf).This action will create an empty file in the configuration
directory. This action is intended to be used before an UpdateConfig
action.
List categories in configuration file.
Configuration filename (e.g. foo.conf).This action will dump the categories in a given file.
Redirect (transfer) a call.
Channel to redirect.Second call leg to transfer (optional).Extension to transfer to.Context to transfer to.Priority to transfer to.Redirect (transfer) a call.
Attended transfer.
Transferer's channel.Extension to transfer to.Context to transfer to.Priority to transfer to.Attended transfer.
Originate a call.
Channel name to call.Extension to use (requires Context and
Priority)Context to use (requires Exten and
Priority)Priority to use (requires Exten and
Context)Application to execute.Data to use (requires Application).How long to wait for call to be answered (in ms).Caller ID to be set on the outgoing channel.Channel variable to set, multiple Variable: headers are allowed.Account code.Set to true for fast origination.Generates an outgoing call to a
Extension/Context/Priority
or Application/Data
Execute Asterisk CLI Command.
Asterisk CLI command to run.Run a CLI command.
Check Extension Status.
Extension to check state on.Context for extension.Report the extension state for given extension. If the extension has a hint,
will use devicestate to check the status of the device connected to the extension.Will return an Extension Status message. The response will include
the hint for the extension and the status.
Set absolute timeout.
Channel name to hangup.Maximum duration of the call (sec).Hangup a channel after a certain time. Acknowledges set time with
Timeout Set message.
Check mailbox.
Full mailbox ID mailbox@vm-context.Checks a voicemail account for status.Returns number of messages.Message: Mailbox Status.Mailbox: mailboxid.Waiting: count.
Check Mailbox Message Count.
Full mailbox ID mailbox@vm-context.Checks a voicemail account for new messages.Returns number of urgent, new and old messages.Message: Mailbox Message CountMailbox: mailboxidUrgentMessages: countNewMessages: countOldMessages: count
List available manager commands.
Returns the action name and synopsis for every action that
is available to the user.
Send text message to channel.
Channel to send message to.Message to send.Sends A Text Message to a channel while in a call.
Send an arbitrary event.
Event string to send.Content1.ContentN.Send an event to manager sessions.
Wait for an event to occur.
Maximum time (in seconds) to wait for events, -1 means forever.This action will ellicit a Success response. Whenever
a manager event is queued. Once WaitEvent has been called on an HTTP manager
session, events will be generated and queued.
Show PBX core settings (version etc).
Query for Core PBX settings.
Show PBX core status variables.
Query for Core PBX status.
Send a reload event.
Name of the module to reload.Send a reload event.
List currently active channels.
List currently defined channels and some information about them.
Module management.
Asterisk module name (including .so extension) or subsystem identifier:The operation to be done on module.If no module is specified for a reload loadtype,
all modules are reloaded.Loads, unloads or reloads an Asterisk module in a running system.
Check if module is loaded.
Asterisk module name (not including extension).Checks if Asterisk module is loaded. Will return Success/Failure.
For success returns, the module revision number is included.
Answer a channel if ringing.
Asterisk will wait this number of milliseconds before returning to
the dialplan after answering the call.Asterisk will send an answer signal to the calling phone, but will not
set the disposition or answer time in the CDR for this call.If the call has not been answered, this application will
answer it. Otherwise, it has no effect on the call.Hangup
Play an audio file while waiting for digits of an extension to go to.
Explicitly specifies which language to attempt to use for the requested sound files.This is the dialplan context that this application will use when exiting
to a dialed extension.This application will play the given list of files (do not put extension)
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.If one of the requested sound files does not exist, call processing will be terminated.This application sets the following channel variable upon completion:The status of the background attempt as a text string.ControlPlaybackWaitExtenBackgroundDetectTIMEOUT
Indicate the Busy condition.
If 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.This application will indicate the busy condition to the calling channel.CongestionProgessPlaytonesHangup
Indicate the Congestion condition.
If 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.This application will indicate the congestion condition to the calling channel.BusyProgessPlaytonesHangup
Conditional application execution based on the current time.
This application will execute the specified dialplan application, with optional
arguments, if the current time matches the given time specification.ExecTryExec
Jump to a particular priority, extension, or context.
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!GotoIfGotoIfTimeGosubMacro
Conditional goto.
Continue at labeliftrue if the condition is true.Continue at labeliffalse if the condition is false.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 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!.GotoGotoIfTimeGosubIfMacroIf
Conditional Goto based on the current time.
This application will set the context, extension, and priority in the channel structure
based on the evaluation of the given time specification. After this application completes,
the pbx engine will continue dialplan execution at the specified location in the dialplan.
If the current time is within the given time specification, the channel will continue at
labeliftrue. Otherwise the channel will continue at labeliffalse.
If the label chosen by the condition is omitted, no jump is performed, and execution passes to the next
instruction. If the target jump location is bogus, the same actions would be taken as for Goto.
Further information on the time specification can be found in examples
illustrating how to do time-based context includes in the dialplan.GotoIfIFTIME
Import a variable from a channel into a new variable.
This application imports a variable from the specified
channel (as opposed to the current one) and stores it as a variable
(newvar) 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.Set
Hang up the calling channel.
If a causecode is given the channel's
hangup cause will be set to the given value.This application will hang up the calling channel.AnswerBusyCongestion
Returns AST_PBX_INCOMPLETE value.
If specified, then Incomplete will not attempt to answer the channel first.Most channel types need to be in Answer state in order to receive DTMF.Signals the PBX routines that the previous matched extension is incomplete
and that further input should be allowed before matching can be considered
to be complete. Can be used within a pattern match when certain criteria warrants
a longer match.
Do Nothing (No Operation).
Any text provided can be viewed at the Asterisk CLI.This application does nothing. However, it is useful for debugging purposes.This method can be used to see the evaluations of variables or functions without having any effect.VerboseLog
Indicate proceeding.
This application will request that a proceeding message be provided to the calling channel.
Indicate progress.
This application will request that in-band progress information be provided to the calling channel.BusyCongestionRingingPlaytones
Handle an exceptional condition.
This application will jump to the e extension in the current context, setting the
dialplan function EXCEPTION(). If the e extension does not exist, the call will hangup.Exception
Resets the Call Data Record.
This application causes the Call Data Record to be reset.ForkCDRNoCDR
Indicate ringing tone.
This application will request that the channel indicate a ringing tone to the user.BusyCongestionProgressPlaytones
Say Alpha.
This application will play the sounds that correspond to the letters of the
given string.SayDigitsSayNumberSayPhoneticCHANNEL
Say 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.SayAlphaSayNumberSayPhoneticCHANNEL
Say Number.
This application will play the sounds that correspond to the given digits.
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.SayAlphaSayDigitsSayPhoneticCHANNEL
Say Phonetic.
This application will play the sounds from the phonetic alphabet that correspond to the
letters in the given string.SayAlphaSayDigitsSayNumber
Set channel variable or function value.
This function can be used to set the value of channel variables or dialplan functions.
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.If (and only if), in /etc/asterisk/asterisk.conf, you have
a [compat] category, and you have app_set = 1.6 under that,then
the behavior of this app changes, and does not strip surrounding quotes from the right hand side as
it did previously in 1.4. The app_set = 1.6 is only inserted if make samples
is executed, or if users insert this by hand into the asterisk.conf file.
The advantages of not stripping out quoting, and not caring about the separator characters (comma and vertical bar)
were sufficient to make these changes in 1.6. Confusion about how many backslashes would be needed to properly
protect separators and quotes in various database access strings has been greatly
reduced by these changes.MSetGLOBALSETENV
Set channel variable(s) or function value(s).
This function can be used to set the value of channel variables or dialplan functions.
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.
MSet behaves in a similar fashion to the way Set worked in 1.2/1.4 and is thus
prone to doing things that you may not expect. For example, it strips surrounding
double-quotes from the right-hand side (value). If you need to put a separator
character (comma or vert-bar), you will need to escape them by inserting a backslash
before them. Avoid its use if possible.Set
Set the AMA Flags.
This application will set the channel's AMA Flags for billing purposes.CDR
Waits for some time.
Can be passed with fractions of a second. For example, 1.5 will ask the
application to wait for 1.5 seconds.This application waits for a specified number of seconds.
Waits for an extension to be entered.
Can be passed with fractions of a second. For example, 1.5 will ask the
application to wait for 1.5 seconds.This application waits for the user to enter a new extension for a specified number
of seconds.BackgroundTIMEOUT
Retrieve the details of the current dialplan exception.
The following fields are available for retrieval:INVALID, ERROR, RESPONSETIMEOUT, ABSOLUTETIMEOUT, or custom
value set by the RaiseException() applicationThe context executing when the exception occurred.The extension executing when the exception occurred.The numeric priority executing when the exception occurred.Retrieve the details (specified field) of the current dialplan exception.RaiseException
La merde se produit.
Show a specific extension.Show a specific context.Show dialplan contexts and extensions. Be aware that showing the full dialplan
may take a lot of capacity.
Answer channel
Answers channel if not already in answer state. Returns -1 on
channel failure, or 0 if successful.hangup
Interrupts Async AGI
Interrupts expected flow of Async AGI commands and returns control to previous source
(typically, the PBX dialplan).hangup
Returns status of the connected channel.
Returns the status of the specified channelname.
If no channel name is given then returns the status of the current channel.Return values:Channel is down and available.Channel is down, but reserved.Channel is off hook.Digits (or equivalent) have been dialed.Line is ringing.Remote end is ringing.Line is up.Line is busy.
Sends audio file on channel and allows the listner to control the stream.
The file extension must not be included in the filename.Defaults to *Defaults to #Send the given file, allowing playback to be controled by the given
digits, if any. Use double quotes for the digits if you wish none to be
permitted. Returns 0 if playback completes without a digit
being pressed, or the ASCII numerical value of the digit if one was pressed,
or -1 on error or if the channel was disconnected.
Removes database key/value
Deletes an entry in the Asterisk database for a given
family and key.Returns 1 if successful, 0
otherwise.
Removes database keytree/value
Deletes a family or specific keytree
within a family in the Asterisk database.Returns 1 if successful, 0 otherwise.
Gets database value
Retrieves an entry in the Asterisk database for a given family
and key.Returns 0 if key is not set.
Returns 1 if key is set and returns the variable
in parenthesis.Example return code: 200 result=1 (testvariable)
Adds/updates database value
Adds or updates an entry in the Asterisk database for a given
family, key, and
value.Returns 1 if successful, 0 otherwise.
Executes a given Application
Executes application with given
options.Returns whatever the application returns, or
-2 on failure to find application.
Prompts for DTMF on a channel
Stream the given file, and recieve DTMF data.Returns the digits received from the channel at the other end.
Evaluates a channel expression
Returns 0 if variablename is not set
or channel does not exist. Returns 1 if variablename
is set and returns the variable in parenthesis. Understands complex variable names and builtin
variables, unlike GET VARIABLE.Example return code: 200 result=1 (testvariable)
Stream file, prompt for DTMF, with timeout.
Behaves similar to STREAM FILE but used with a timeout option.stream file
Gets a channel variable.
Returns 0 if variablename is not set.
Returns 1 if variablename is set and returns
the variable in parentheses.Example return code: 200 result=1 (testvariable)
Hangup the current channel.
Hangs up the specified channel. If no channel name is given, hangs
up the current channel
Does nothing.
Does nothing.
Receives one character from channels supporting it.
The maximum time to wait for input in milliseconds, or 0
for infinite. Most channelsReceives a character of text on a channel. Most channels do not support
the reception of text. Returns the decimal value of the character
if one is received, or 0 if the channel does not support
text reception. Returns -1 only on error/hangup.
Receives text from channels supporting it.
The timeout to be the maximum time to wait for input in
milliseconds, or 0 for infinite.Receives a string of text on a channel. Most channels
do not support the reception of text. Returns -1 for failure
or 1 for success, and the string in parenthesis.
Records to a given file.
Record to a file until a given dtmf digit in the sequence is received.
Returns -1 on hangup or error. The format will specify what kind of file
will be recorded. The timeout is the maximum record time in
milliseconds, or -1 for no timeout.
offset samples is optional, and, if provided, will seek
to the offset without exceeding the end of the file. silence is
the number of seconds of silence allowed before the function returns despite the
lack of dtmf digits or reaching timeout. silence
value must be preceeded by s= and is also optional.
Says a given character string.
Say a given character string, returning early if any of the given DTMF digits
are received on the channel. Returns 0 if playback completes
without a digit being pressed, or the ASCII numerical value of the digit if one
was pressed or -1 on error/hangup.
Says a given digit string.
Say a given digit string, returning early if any of the given DTMF digits
are received on the channel. Returns 0 if playback completes
without a digit being pressed, or the ASCII numerical value of the digit if one
was pressed or -1 on error/hangup.
Says a given number.
Say a given number, returning early if any of the given DTMF digits
are received on the channel. Returns 0 if playback
completes without a digit being pressed, or the ASCII numerical value of
the digit if one was pressed or -1 on error/hangup.
Says a given character string with phonetics.
Say a given character string with phonetics, returning early if any of the
given DTMF digits are received on the channel. Returns 0 if
playback completes without a digit pressed, the ASCII numerical value of the digit
if one was pressed, or -1 on error/hangup.
Says a given date.
Is number of seconds elapsed since 00:00:00 on January 1, 1970.
Coordinated Universal Time (UTC).Say a given date, returning early if any of the given DTMF digits are
received on the channel. Returns 0 if playback
completes without a digit being pressed, or the ASCII numerical value of the
digit if one was pressed or -1 on error/hangup.
Says a given time.
Is number of seconds elapsed since 00:00:00 on January 1, 1970.
Coordinated Universal Time (UTC).Say a given time, returning early if any of the given DTMF digits are
received on the channel. Returns 0 if playback completes
without a digit being pressed, or the ASCII numerical value of the digit if
one was pressed or -1 on error/hangup.
Says a given time as specfied by the format given.
Is number of seconds elapsed since 00:00:00
on January 1, 1970, Coordinated Universal Time (UTC)Is the format the time should be said in. See
voicemail.conf (defaults to ABdY
'digits/at' IMp).Acceptable values can be found in /usr/share/zoneinfo
Defaults to machine default.Say a given time, returning early if any of the given DTMF digits are
received on the channel. Returns 0 if playback
completes without a digit being pressed, or the ASCII numerical value of the
digit if one was pressed or -1 on error/hangup.
Sends images to channels supporting it.
Sends the given image on a channel. Most channels do not support the
transmission of images. Returns 0 if image is sent, or if
the channel does not support image transmission. Returns -1
only on error/hangup. Image names should not include extensions.
Sends text to channels supporting it.
Text consisting of greater than one word should be placed
in quotes since the command only accepts a single argument.Sends the given text on a channel. Most channels do not support the
transmission of text. Returns 0 if text is sent, or if the
channel does not support text transmission. Returns -1 only
on error/hangup.
Autohangup channel in some time.
Cause the channel to automatically hangup at time
seconds in the future. Of course it can be hungup before then as well. Setting to
0 will cause the autohangup feature to be disabled on this channel.
Sets callerid for the current channel.
Changes the callerid of the current channel.
Sets channel context.
Sets the context for continuation upon exiting the application.
Changes channel extension.
Changes the extension for continuation upon exiting the application.
Enable/Disable Music on hold generator
Enables/Disables the music on hold generator. If class
is not specified, then the default music on hold class will be
used.Always returns 0.
Set channel dialplan priority.
Changes the priority for continuation upon exiting the application.
The priority must be a valid priority or label.
Sets a channel variable.
Sets a variable to the current channel.
Sends audio file on channel.
File name to play. The file extension must not be
included in the filename.Use double quotes for the digits if you wish none to be
permitted.If sample offset is provided then the audio will seek to sample
offset before play starts.Send the given file, allowing playback to be interrupted by the given
digits, if any. Returns 0 if playback completes without a digit
being pressed, or the ASCII numerical value of the digit if one was pressed,
or -1 on error or if the channel was disconnected.control stream file
Toggles TDD mode (for the deaf).
Enable/Disable TDD transmission/reception on a channel. Returns 1 if
successful, or 0 if channel is not TDD-capable.
Logs a message to the asterisk verbose log.
Sends message to the console via verbose
message system. level is the the verbose level (1-4).
Always returns 1
Waits for a digit to be pressed.
Waits up to timeout milliseconds for channel to
receive a DTMF digit. Returns -1 on channel failure, 0
if no digit is received in the timeout, or the numerical value of the ascii of the digit if
one is received. Use -1 for the timeout value if
you desire the call to block indefinitely.
Creates a speech object.
Create a speech object to be used by the other Speech AGI commands.
Sets a speech engine setting.
Set an engine-specific setting.
Destroys a speech object.
Destroy the speech object created by SPEECH CREATE.speech create
Loads a grammar.
Loads the specified grammar as the specified name.
Unloads a grammar.
Unloads the specified grammar.
Activates a grammar.
Activates the specified grammar on the speech object.
Deactivates a grammar.
Deactivates the specified grammar on the speech object.
Recognizes speech.
Plays back given prompt while listening for
speech and dtmf.
Executes an AGI compliant application.
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. As of 1.6.0, this channel will
not stop dialplan execution on hangup inside of this application. Dialplan
execution will continue normally, even upon hangup until the AGI application
signals a desire to stop (either by exiting or, in the case of a net script, by
closing the connection). A locally executed AGI script will receive SIGHUP on
hangup from the channel except when using DeadAGI. A fast AGI server will
correspondingly receive a HANGUP in OOB data. Both of these signals may be disabled
by setting the AGISIGHUP channel variable to no
before executing the AGI application.Use the CLI command agi show commnands to list available agi
commands.This application sets the following channel variable upon completion:The status of the attempt to the run the AGI script
text string, one of:EAGIDeadAGI
Executes an EAGI compliant application.
Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
on file descriptor 3.AGIDeadAGI
Executes AGI on a hungup channel.
AGIEAGI
Add an AGI command to execute by Async AGI.
Channel that is currently in Async AGI.Application to execute.This will be sent back in CommandID header of AsyncAGI exec
event notification.Add an AGI command to the execute queue of the channel in Async AGI.
Determine if the calendar is marked busy at this time.
Check the specified calendar's current busy status.
Get calendar event notification data from a notification call.
The VEVENT SUMMARY property or Exchange event 'subject'The text description of the eventThe organizer of the eventThe location of the eventtThe name of the calendar associated with the eventThe unique identifier for this eventThe start time of the eventThe end time of the eventThe busy state of the event 0=FREE, 1=TENTATIVE, 2=BUSYWhenever a calendar event notification call is made, the event data
may be accessed with this function.Query a calendar server and store the data on a channel
The calendar that should be queriedThe start time of the query (in seconds since epoch)The end time of the query (in seconds since epoch)Get a list of events in the currently accessible timeframe of the calendar
The function returns the id for accessing the result with CALENDAR_QUERY_RESULT()
Retrieve data from a previously run CALENDAR_QUERY() call
The query ID returned by CALENDAR_QUERYnumber of events occurring during time rangeA summary of the eventThe full event descriptionThe event organizerThe event locationThe name of the calendar associted with the eventThe unique identifier for the eventThe start time of the event (in seconds since epoch)The end time of the event (in seconds since epoch)The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSYReturn data from a specific event returned by the queryAfter running CALENDAR_QUERY and getting a result id, calling
CALENDAR_QUERY with that id and a field
will return the data for that field. If multiple events matched the query, and entry
is provided, information from that event will be returned.Write an event to a calendarThe calendar to write toA summary of the eventThe full event descriptionThe event organizerThe event locationThe unique identifier for the eventThe start time of the event (in seconds since epoch)The end time of the event (in seconds since epoch)The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSYExample: CALENDAR_WRITE(calendar,field1,field2,field3)=val1,val2,val3The field and value arguments can easily be set/passed using the HASHKEYS() and HASH() functions
Send a Jabber Message
Client or transport Asterisk uses to connect to Jabber.XMPP/Jabber JID (Name) of recipient.Message to be sent to the buddy.Allows user to send a message to a receipent via XMPP.
Retrieve the status of a jabber list member
Client or transport Asterisk users to connect to Jabber.XMPP/Jabber JID (Name) of recipient.Variable to store the status of requested user.This application is deprecated. Please use the JABBER_STATUS() function instead.Retrieves the numeric status associated with the specified buddy JID.
The return value in the Variablewill be one of the following.Online.Chatty.Away.Extended Away.Do Not Disturb.Offline.Not In Roster.
Retrieve the status of a jabber list member
XMPP/Jabber ID (Name) of sender.XMPP/Jabber JID (Name) of recipient.Client or transport Asterisk users to connect to Jabber.Retrieves the numeric status associated with the specified buddy JID.
The return value will be one of the following.Online.Chatty.Away.Extended Away.Do Not Disturb.Offline.Not In Roster.
Sends a message to a Jabber Client.
Client or transport Asterisk uses to connect to JABBER.XMPP/Jabber JID (Name) of recipient.Message to be sent to the buddy.Sends a message to a Jabber Client.
Monitor a channel.
optional, if not set, defaults to wavif set, changes the filename used to the one specified.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.By default, files are stored to /var/spool/asterisk/monitor/.
Returns -1 if monitor files can't be opened or if the channel is
already monitored, otherwise 0.StopMonitor
Stop monitoring a channel.
Stops monitoring a channel. Has no effect if the channel is not monitored.
Change monitoring filename of a channel.
The new filename base to use for monitoring this channel.Changes monitoring filename of a channel. Has no effect if the
channel is not monitored.
Pause monitoring of a channel.
Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.UnpauseMonitor
Unpause monitoring of a channel.
Unpauses monitoring of a channel on which monitoring had
previously been paused with PauseMonitor.PauseMonitor
Monitor a channel.
Used to specify the channel to record.Is the name of the file created in the monitor spool directory.
Defaults to the same name as the channel (with slashes replaced with dashes).Is the audio recording format. Defaults to wav.Boolean parameter as to whether to mix the input and output channels
together after the recording is finished.This action may be used to record the audio on a
specified channel.
Stop monitoring a channel.
The name of the channel monitored.This action may be used to end a previously started 'Monitor' action.
Change monitoring filename of a channel.
Used to specify the channel to record.Is the new name of the file created in the
monitor spool directory.This action may be used to change the file
started by a previous 'Monitor' action.
Pause monitoring of a channel.
Used to specify the channel to record.This action may be used to temporarily stop the
recording of a channel.
Unpause monitoring of a channel.
Used to specify the channel to record.This action may be used to re-enable recording
of a channel after calling PauseMonitor.
Controls ODBC transaction properties.
Gets or sets the active transaction ID. If set, and the transaction ID does not
exist and a database name is specified as an argument, it will be created.Controls whether a transaction will be automatically committed when the channel
hangs up. Defaults to false. If a transaction ID is specified in the optional argument,
the property will be applied to that ID, otherwise to the current active ID.Controls the data isolation on uncommitted transactions. May be one of the
following: read_committed, read_uncommitted,
repeatable_read, or serializable. Defaults to the
database setting in res_odbc.conf or read_committed
if not specified. If a transaction ID is specified as an optional argument, it will be
applied to that ID, otherwise the current active ID.The ODBC() function allows setting several properties to influence how a connected
database processes transactions.
Commits a currently open database transaction.
Commits the database transaction specified by transaction ID
or the current active transaction, if not specified.
Rollback a currently open database transaction.
Rolls back the database transaction specified by transaction ID
or the current active transaction, if not specified.