    			Call agent login.

`` ``

silent login - do not announce the login ok segment after agent logged on/off

``

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.

Queue AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember AGENT agents.conf queues.conf

    			Record agent's outgoing call.

``

make the app return `-1` if there is an error condition.

` `

change the CDR so that the source of the call is `Agent/agent_id`

` `

don't generate the warnings when there is no callerid or the agentid is not known. It's handy if you want to have one context for agent and non-agent calls.

``

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 agent

The name of the agent

MusicOnHold class

The name of the active channel for the Agent (AgentLogin)

The untruncated 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 an ISDN call rerouting/deflection facility message.

`

Destination number.

` `

Original called number.

` `

Diversion reason, if not specified defaults to `unknown`

`

This application will send an ISDN switch specific call rerouting/deflection facility message over the current channel. Supported switches depend upon the version of libpri in use.

    			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 number to transfer.

Simulate a flash hook event by the user connected to the channel.

Valid only for analog channels.

    			Hangup DAHDI Channel.

DAHDI channel number to hangup.

Simulate an on-hook event by the user connected to the channel.

Valid only for analog channels.

    			Dial over DAHDI channel while offhook.

DAHDI channel number to dial digits.

Digits to dial.

Generate DTMF control frames to the bridged peer.

    			Toggle DAHDI channel Do Not Disturb status ON.

DAHDI channel number to set DND on.

Equivalent to the CLI command "dahdi set dnd channel on".

Feature only supported by analog channels.

    			Toggle DAHDI channel Do Not Disturb status OFF.

DAHDI channel number to set DND off.

Equivalent to the CLI command "dahdi set dnd channel off".

Feature only supported by analog channels.

    			Show status of DAHDI channels.

Specify the specific channel number to show. Show all channels if zero or not present.

Similar to the CLI command "dahdi show channels".

    			Fully Restart DAHDI channels (terminates calls).

Equivalent to the CLI command "dahdi restart".

    			Show status of PRI spans.

Specify the specific span to show. Show all spans if zero or not present.

Similar to the CLI command "pri show spans".

    			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 channel

If 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`)

Gets information associated with the specified IAX2 peer.

SIPPEER

    			Sets or retrieves a remote variable.

Gets or sets a variable that is sent to a remote IAX2 peer during call setup.

    			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.

    			Optimize away a local channel when possible.

The channel name to optimize away.

A local channel created with "/n" will not automatically optimize away. Calling this command on the local channel will clear that flag and allow it to optimize away if it's bridged or when it becomes bridged.

    			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 headers

SIPRemoveHeader();

// remove all P- headers

SIPRemoveHeader(P-);

// remove only the PAI header (note the : at the end)

SIPRemoveHeader(P-Asserted-Identity:);

Always returns `0`.

    			Send a custom INFO frame on specified channels.

`` ``

SIPSendCustomINFO() allows you to send a custom INFO message on all active SIP channels or on channels with the specified User Agent. This application is only available if TEST_FRAMEWORK is defined.

    			Gets the specified SIP header from an incoming INVITE message.

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`.

Please observe that contents of the SDP (an attachment to the SIP request) can't be accessed with this function.

    			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 Named Callgroup.

The configured Named Pickupgroup.

The configured codecs.

Status (if qualify=yes).

Extension activated at registration.

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 header used by peer.

The value used for SIP loop prevention in outbound requests

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 SIP URI from the `From:` header.

The SIP URI from the `Contact:` header.

The Useragent header used by the peer.

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=value

Sends a SIP Notify event.

All parameters for this event must be specified in the body of this request via multiple `Variable: name=value` sequences.

    			Show the status of one or all of the sip peers.

The peer name you want to check.

Retrieves the status of one or all of the sip peers. If no peer name is specified, status for all of the sip peers will be retrieved.

The `from` parameter can be a configured peer name or in the form of "display-name" <URI>.

Specifying a prefix of `sip:` will send the message as a SIP MESSAGE request.

    			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.

    			Launch subroutine built with AEL

`

Named subroutine to execute.

` ``

Execute the named subroutine, defined in AEL, from another dialplan language, such as extensions.conf, Realtime extensions, or Lua.

The purpose of this application is to provide a sane entry point into AEL subroutines, the implementation of which may change from time to time.

    			Do a DUNDi lookup of a phone number.

If not specified the default will be `e164`.

Bypass the internal DUNDi cache

This will do a DUNDi lookup of the given phone number.

This function will return the Technology/Resource found in the first result in the DUNDi lookup. If no results were found, the result will be blank.

    			Initiate a DUNDi query.

If not specified the default will be `e164`.

Bypass the internal DUNDi cache

This will do a DUNDi lookup of the given phone number.

The result of this function will be a numeric ID that can be used to retrieve the results with the `DUNDIRESULT` function.

    			Retrieve results from a DUNDIQUERY.

The identifier returned by the `DUNDIQUERY` function.

The number of the result that you want to retrieve, this starts at `1`

The total number of results that are available.

This function will retrieve results from a previous use\n" of the `DUNDIQUERY` function.

    			Load Asterisk ADSI Scripts into phone

`

adsi script to use. If not given uses the default script `asterisk.adsi`

`

This application programs an ADSI Phone with the given script

GetCPEID adsi.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 MACHINE

` `

is the maximum length of a greeting.

If this is exceeded set as MACHINE

` `

Is the silence after detecting a greeting.

If this is exceeded set as HUMAN

` `

Is the maximum time allowed for the algorithm

to decide HUMAN or MACHINE

` `

Is the minimum duration of Voice considered to be a word

` `

Is the minimum duration of silence after a word to consider the audio that follows to be a new word

` `

Is the maximum number of words in a greeting

If this is exceeded set as MACHINE

` `

How long do we consider silence

` `

Is the maximum duration of a word to accept.

If exceeded set as MACHINE

`

This application attempts to detect answering machines at the beginning of outbound calls. Simply call this application after the call has been answered (outbound only, of course).

When loaded, AMD reads amd.conf and uses the parameters specified as default values. Those default values get overwritten when the calling AMD with parameters.

This application sets the following channel variables:

This is the status of the answering machine detection

Indicates 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.

WaitForSilence WaitForNoise

    			Authenticate a user

`

Password the user should know

` ``

Set the channels' account code to the password that is entered

` `

Interpret the given path as database key, not a literal file.

The value is not used at all in the authentication when using this option. If the family/key is set to `/pin/100` (value does not matter) then the password field needs to be set to `/pin` and the pin entered by the user would be authenticated against `100`.

` `

Interpret the given path as a file which contains a list of account codes and password hashes delimited with `:`, listed one per line in the file. When one of the passwords is matched, the channel will have its account code set to the corresponding account code in the file.

` `

Remove the database key upon successful entry (valid with `d` only)

`` `

maximum acceptable number of digits. Stops reading after maxdigits have been entered (without requiring the user to press the `#` key). Defaults to 0 - no limit - wait for the user press the `#` key.

` `

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.

VMAuthenticate DISA

    			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.

    			Generates a CEL User Defined Event.

`

Extra text to be included with the event.

`

A CEL event will be immediately generated by this channel, with the supplied name for a type.

    			Check channel availability

`

Optional extra devices to check

If 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.

` ``

Check for all available channels, not only the first one

` `

Consider the channel unavailable if the channel is in use at all

` `

Simply checks if specified channels exist in the channel list

``

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 exists

The canonical channel name that was used to create the channel

The device state for the device

The cause code returned when requesting the channel

    			Redirects given channel to a dialplan target

`` `` `` ``

Sends the specified channel to the specified extension priority

This application sets the following channel variables upon completion

Are set to the result of the redirection

    			Listen to a channel, and optionally whisper into it.

`` ``

Only spy on channels involved in a bridged call.

` `

Instead of whispering on a single channel barge in on both channels involved in the call.

` `

Specify a DTMF digit that can be used to spy on the next available channel.

` `

Override the typical numeric DTMF functionality and instead use DTMF to switch between spy modes.

spy mode

whisper mode

barge mode

` `

Enable enforced mode, so the spying channel can only monitor extensions whose name is in the ext : delimited list.

` `

Exit when the spied-on channel hangs up.

` `

Only spy on channels in which one or more of the groups listed in grp matches one or more groups from the SPYGROUP variable set on the channel to be spied upon.

both grp and SPYGROUP can contain either a single group or a colon-delimited list of groups, such as `sales:support:accounting`.

` `

Say the name of the person being spied on if that person has recorded his/her name. If a context is specified, then that voicemail context will be searched when retrieving the name, otherwise the `default` context be used when searching for the name (i.e. if SIP/1000 is the channel being spied on and no mailbox is specified, then `1000` will be used when searching for the name).

` `

Only listen to audio coming from this channel.

` `

Don't play a beep when beginning to spy on a channel, or speak the selected channel name.

` `

Record the session to the monitor spool directory. An optional base for the filename may be specified. The default is `chanspy`.

` `

Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.

` `

Stop when no more channels are left to spy on.

` `

Adjust the initial volume in the range from `-4` to `4`. A negative value refers to a quieter setting.

` `

Enable `whisper` mode, so the spying channel can talk to the spied-on channel.

` `

Enable `private whisper` mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.

` `

Specify a DTMF digit that can be used to exit the application.

` `

Allow the user to exit ChanSpy to a valid single digit numeric extension in the current context or the context specified by the SPY_EXIT_CONTEXT channel variable. The name of the last channel that was spied on will be stored in the SPY_CHANNEL variable.

``

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 used

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.

ExtenSpy

    			Listen to a channel, and optionally whisper into it.

`

Specify extension.

Optionally specify a context, defaults to `default`.

` ``

Only spy on channels involved in a bridged call.

` `

Instead of whispering on a single channel barge in on both channels involved in the call.

` `

Specify a DTMF digit that can be used to spy on the next available channel.

` `

Override the typical numeric DTMF functionality and instead use DTMF to switch between spy modes.

spy mode

whisper mode

barge mode

` `

Enable enforced mode, so the spying channel can only monitor extensions whose name is in the ext : delimited list.

` `

Exit when the spied-on channel hangs up.

` `

Only spy on channels in which one or more of the groups listed in grp matches one or more groups from the SPYGROUP variable set on the channel to be spied upon.

both grp and SPYGROUP can contain either a single group or a colon-delimited list of groups, such as `sales:support:accounting`.

` `

Say the name of the person being spied on if that person has recorded his/her name. If a context is specified, then that voicemail context will be searched when retrieving the name, otherwise the `default` context be used when searching for the name (i.e. if SIP/1000 is the channel being spied on and no mailbox is specified, then `1000` will be used when searching for the name).

` `

Only listen to audio coming from this channel.

` `

Don't play a beep when beginning to spy on a channel, or speak the selected channel name.

` `

Record the session to the monitor spool directory. An optional base for the filename may be specified. The default is `chanspy`.

` `

Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.

` `

Stop when there are no more extensions left to spy on.

` `

Adjust the initial volume in the range from `-4` to `4`. A negative value refers to a quieter setting.

` `

Enable `whisper` mode, so the spying channel can talk to the spied-on channel.

` `

Enable `private whisper` mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.

` `

Specify a DTMF digit that can be used to exit the application.

` `

Allow the user to exit ChanSpy to a valid single digit numeric extension in the current context or the context specified by the SPY_EXIT_CONTEXT channel variable. The name of the last channel that was spied on will be stored in the SPY_CHANNEL variable.

``

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.

`

Name of the conference bridge. You are not limited to just numbers.

` `

The bridge profile name from confbridge.conf. When left blank, a dynamically built bridge profile created by the CONFBRIDGE dialplan function is searched for on the channel and used. If no dynamic profile is present, the 'default_bridge' profile found in confbridge.conf is used.

It is important to note that while user profiles may be unique for each participant, mixing bridge profiles on a single conference is _NOT_ recommended and will produce undefined results.

` `

The user profile name from confbridge.conf. When left blank, a dynamically built user profile created by the CONFBRIDGE dialplan function is searched for on the channel and used. If no dynamic profile is present, the 'default_user' profile found in confbridge.conf is used.

` `

The name of the DTMF menu in confbridge.conf to be applied to this channel. No menu is applied by default if this option is left blank.

`

Enters the user into a specified conference bridge. The user can exit the conference by hangup or DTMF menu option.

ConfBridge CONFBRIDGE CONFBRIDGE_INFO `

    			Set a custom dynamic bridge and user profile on a channel for the ConfBridge application using the same options defined in confbridge.conf.

`

Type refers to which type of profile the option belongs too. Type can be `bridge` or `user`.

` `

Option refers to `confbridge.conf` option that is being set dynamically on this channel.

`

---- Example 1 ----

In this example the custom set user profile on this channel will automatically be used by the ConfBridge app.

exten => 1,1,Answer()

exten => 1,n,Set(CONFBRIDGE(user,announce_join_leave)=yes)

exten => 1,n,Set(CONFBRIDGE(user,startmuted)=yes)

exten => 1,n,ConfBridge(1)

---- Example 2 ----

This example shows how to use a predefined user or bridge profile in confbridge.conf as a template for a dynamic profile. Here we make a admin/marked user out of the default_user profile that is already defined in confbridge.conf.

exten => 1,1,Answer()

exten => 1,n,Set(CONFBRIDGE(user,template)=default_user)

exten => 1,n,Set(CONFBRIDGE(user,admin)=yes)

exten => 1,n,Set(CONFBRIDGE(user,marked)=yes)

exten => 1,n,ConfBridge(1)

` `

    			Get information about a ConfBridge conference.

`

Type can be `parties`, `admins`, `marked`, or `locked`.

` `

Conf refers to the name of the conference being referenced.

`

This function returns a non-negative integer for valid conference identifiers (0 or 1 for `locked`) and "" for invalid conference identifiers.

`

    			List participants in a conference.

`

Conference number.

`

Lists all users in a particular ConfBridge conference. ConfbridgeList will follow as separate events, followed by a final event called ConfbridgeListComplete.

    			List active conferences.

Lists data about all active conferences. ConfbridgeListRooms will follow as separate events, followed by a final event called ConfbridgeListRoomsComplete.

    			Mute a Confbridge user.

    			Unmute a Confbridge user.

    			Kick a Confbridge user.

    			Lock a Confbridge conference.

    			Unlock a Confbridge conference.

    			Start recording a Confbridge conference.

Start recording a conference. If recording is already present an error will be returned. If RecordFile is not provided, the default record file specified in the conference's bridge profile will be used, if that is not present either a file will automatically be generated in the monitor directory.

    			Stop recording a Confbridge conference.

    			Set a conference user as the single video source distributed to all other participants.

    			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.

` ``

Start at time ms from the beginning of the file.

``

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 string

Contains 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_DELETE DBdeltree DB

    			Delete a family or keytree from the asterisk database.

`` ``

This application will delete a family or keytree from the Asterisk database.

DB_DELETE DBdel DB

    			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 parallel

If you need more then one enter them as Technology2/Resource2&Technology3/Resourse3&.....

` `

Specifies the number of seconds we attempt to dial the specified devices

If not specified, this defaults to 136 years.

` ``

The file to play to the called party

Play an announcement to the called party, where x is the prompt to be played

` `

Immediately answer the calling channel when the called channel answers in all cases. Normally, the calling channel is answered when the called channel answers, but when options such as A() and M() are used, the calling channel is not answered until all actions on the called channel (such as playing an announcement) are completed. This option can be used to answer the calling channel before doing anything on the called channel. You will rarely need to use this option, the default behavior is adequate in most cases.

` `

Before initiating an outgoing call, Gosub to the specified location using the newly created channel. The Gosub will be executed for each destination channel.

` `

Before initiating the outgoing call(s), Gosub to the specified location using the current channel.

` `

Reset the call detail record (CDR) for this call.

` `

If the Dial() application cancels this call, always set HANGUPCAUSE to 'answered elsewhere'

` `

Allow the calling user to dial a 1 digit extension while waiting for a call to be answered. Exit to that extension if it exists in the current context, or the context defined in the EXITCONTEXT variable, if it exists.

Many SIP and ISDN phones cannot send DTMF digits until the call is connected. If you wish to use this option with these phones, you can use the `Answer` application before dialing.

` `

Send the specified DTMF strings after the called party has answered, but before the call gets bridged. The called DTMF string is sent to the called party, and the calling DTMF string is sent to the calling party. Both arguments can be used alone. If progress is specified, its DTMF is sent immediately after receiving a PROGRESS message.

` `

Execute the `h` extension for peer after the call ends

` `

If x is not provided, force the CallerID sent on a call-forward or deflection to the dialplan extension of this Dial() using a dialplan `hint`. For example, some PSTNs do not allow CallerID to be set to anything other than the numbers assigned to you. If x is provided, force the CallerID sent to x.

` `

When the caller hangs up, transfer the called party to the specified destination and start execution at that location.

Any channel variables you want the called channel to inherit from the caller channel must be prefixed with one or two underbars ('_').

` `

When the caller hangs up, transfer the called party to the next priority of the current extension and start execution at that location.

Any channel variables you want the called channel to inherit from the caller channel must be prefixed with one or two underbars ('_').

Using this option from a Macro() or GoSub() might not make sense as there would be no return points.

` `

Proceed with dialplan execution at the next priority in the current extension if the destination channel hangs up.

` `

If the call is answered, transfer the calling party to the specified priority and the called party to the specified priority plus one.

You cannot use any additional action post answer options in conjunction with this option.

` `

Allow the called party to hang up by sending the DTMF sequence defined for disconnect in `features.conf`.

` `

Allow the calling party to hang up by sending the DTMF sequence defined for disconnect in `features.conf`.

Many SIP and ISDN phones cannot send DTMF digits until the call is connected. If you wish to allow DTMF disconnect before the dialed party answers with these phones, you can use the `Answer` application before dialing.

` `

Asterisk will ignore any forwarding requests it may receive on this dial attempt.

` `

Asterisk will ignore any connected line update requests or any redirecting party update requests it may receive on this dial attempt.

` `

Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in `features.conf`.

` `

Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in `features.conf`.

` `

Maximum call time, in milliseconds

Warning time, in milliseconds

Repeat time, in milliseconds

Limit the call to x milliseconds. Play a warning when y milliseconds are left. Repeat the warning every z milliseconds until time expires.

This option is affected by the following variables:

If set, this variable causes Asterisk to play the prompts to the caller.

If set, this variable causes Asterisk to play the prompts to the callee.

If specified, filename specifies the sound prompt to play when the timeout is reached. If not set, the time remaining will be announced.

If specified, filename specifies the sound prompt to play when the call begins. If not set, the time remaining will be announced.

If specified, filename specifies the sound prompt to play as a warning when time x is reached. If not set, the time remaining will be announced.

` `

Provide hold music to the calling party until a requested channel answers. A specific music on hold class (as defined in `musiconhold.conf`) can be specified.

` `

Name of the macro that should be executed.

Macro arguments

Execute the specified macro for the called channel before connecting to the calling channel. Arguments can be specified to the Macro using `^` as a delimiter. The macro can set the variable MACRO_RESULT to specify the following actions after the macro is finished executing:

If set, this action will be taken after the macro finished executing.

Hangup both legs of the call
Behave as if line congestion was encountered
Behave as if a busy signal was encountered
Hangup the called party and allow the calling party to continue dialplan execution at the next priority
Transfer the call to the specified destination.

You cannot use any additional action post answer options in conjunction with this option. Also, pbx services are run on the peer (called) channel, so you will not be able to set timeouts via the TIMEOUT() function in this macro.

Be aware of the limitations that macros have, specifically with regards to use of the `WaitExten` application. For more information, see the documentation for Macro()

` `

With delete either not specified or set to `0`, the recorded introduction will not be deleted if the caller hangs up while the remote party has not yet answered.

With delete set to `1`, the introduction will always be deleted.

This option is a modifier for the call screening/privacy mode. (See the `p` and `P` options.) It specifies that no introductions are to be saved in the priv-callerintros directory.

` `

This option is a modifier for the call screening/privacy mode. It specifies that if Caller*ID is present, do not screen the call.

` `

If x is not provided, specify that the CallerID that was present on the calling channel be stored as the CallerID on the called channel. This was the behavior of Asterisk 1.0 and earlier. If x is provided, specify the CallerID stored on the called channel. Note that o(${CALLERID(all)}) is similar to option o without the parameter.

` `

With mode either not specified or set to `1`, the originator hanging up will cause the phone to ring back immediately.

With mode set to `2`, when the operator flashes the trunk, it will ring their phone back.

Enables operator services mode. This option only works when bridging a DAHDI channel to another DAHDI channel only. if specified on non-DAHDI interfaces, it will be ignored. When the destination answers (presumably an operator services station), the originator no longer has control of their line. They may hang up, but the switch will not release their line until the destination party (the operator) hangs up.

` `

This option enables screening mode. This is basically Privacy mode without memory.

` `

Enable privacy mode. Use x as the family/key in the AstDB database if it is provided. The current extension is used if a database family/key is not specified.

` `

Default: Indicate ringing to the calling party, even if the called party isn't actually ringing. Pass no audio to the calling party until the called channel has answered.

Indicate progress to calling party. Send audio 'tone' from indications.conf

` `

Hang up the call x seconds after the called party has answered the call.

` `

Force the outgoing callerid tag parameter to be set to the string x.

Works with the f option.

` `

Allow the called party to transfer the calling party by sending the DTMF sequence defined in `features.conf`. This setting does not perform policy enforcement on transfers initiated by other methods.

` `

Allow the calling party to transfer the called party by sending the DTMF sequence defined in `features.conf`. This setting does not perform policy enforcement on transfers initiated by other methods.

` `

Name of the subroutine to execute via Gosub

Arguments for the Gosub routine

Execute via Gosub the routine x for the called channel before connecting to the calling channel. Arguments can be specified to the Gosub using `^` as a delimiter. The Gosub routine can set the variable GOSUB_RESULT to specify the following actions after the Gosub returns.

Hangup both legs of the call.
Behave as if line congestion was encountered.
Behave as if a busy signal was encountered.
Hangup the called party and allow the calling party to continue dialplan execution at the next priority.
Transfer the call to the specified destination.

You cannot use any additional action post answer options in conjunction with this option. Also, pbx services are run on the peer (called) channel, so you will not be able to set timeouts via the TIMEOUT() function in this routine.

` `

Force the outgoing callerid presentation indicator parameter to be set to one of the values passed in x: `allowed_not_screened` `allowed_passed_screen` `allowed_failed_screen` `allowed` `prohib_not_screened` `prohib_passed_screen` `prohib_failed_screen` `prohib` `unavailable`

Works with the f option.

` `

Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-touch recording in `features.conf`.

` `

Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-touch recording in `features.conf`.

` `

Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-touch automixmonitor in `features.conf`.

` `

Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-touch automixmonitor in `features.conf`.

` `

On a call forward, cancel any dial timeout which has been set for this call.

`` `

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 reached

` `

Number of seconds to wait after a dial attempt failed before a new attempt is made

` `

Number of retries

When this is reached flow will continue at the next priority in the dialplan

` `

Same format as arguments provided to the Dial application

`

This application will attempt to place a call using the normal Dial application. If no channel can be reached, the announce file will be played. Then, it will wait sleep number of seconds before 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.

`

Specification of the pickup target.

Additional specifications of pickup targets.

`

This application can pickup a specified ringing channel. The channel to pickup can be specified in the following ways.

1) If no extension targets are specified, the application will pickup a channel matching the pickup group of the requesting channel.

2) If the extension is specified with a context of the special string `PICKUPMARK` (for example 10@PICKUPMARK), the application will pickup a channel which has defined the channel variable PICKUPMARK with the same value as extension (in this example, `10`).

3) If the extension is specified with or without a context, the channel with a matching extension and context will be picked up. If no context is specified, the current context will be used.

The extension is typically set on matching channels by the dial application that created the channel. The context is set on matching channels by the channel driver for the device.

    			Pickup a ringing channel.

`` ``

Channel name specified partial name. Used when find channel by callid.

``

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. If not specified, the current context will be used.

` ``

In addition to the name, also read the extension number to the caller before presenting dialing options.

` `

Allow the caller to enter the first name of a user in the directory instead of using the last name. If specified, the optional number argument will be used for the number of characters the user should enter.

` `

Allow the caller to enter the last name of a user in the directory. This is the default. If specified, the optional number argument will be used for the number of characters the user should enter.

` `

Allow the caller to enter either the first or the last name of a user in the directory. If specified, the optional number argument will be used for the number of characters the user should enter.

` `

Instead of reading each name sequentially and asking for confirmation, create a menu of up to 8 names.

` `

Read digits even if the channel is not answered.

` `

Pause for n milliseconds after the digits are typed. This is helpful for people with cellphones, who are not holding the receiver to their ear while entering DTMF.

`

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-password`

You may specified a filename instead of a passcode, this filename must contain individual passcodes

` `

Specifies 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 application will not answer initially.

` `

The extension entered will be considered complete when a `#` is entered.

``

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 `;`.

Authenticate VMAuthenticate

    			Dump Info About The Calling Channel.

`

Minimun verbose level

`

Displays 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.

NoOp Verbose

    			Echo media, DTMF back to the calling party

Echos back any media or DTMF frames read from the calling channel back to itself. This will not echo CONTROL, MODEM, or NULL frames. Note: If '#' detected application exits.

This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().

    			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.

    			Interfaces with an external IVR application.

`` ``

Tells ExternalIVR() not to answer the channel.

` `

Tells ExternalIVR() not to send a hangup and exit when the channel receives a hangup, instead it sends an `I` informative message meaning that the external application MUST hang up the call with an `H` command.

` `

Tells ExternalIVR() to run on a channel that has been hung up and will not look for hangups. The external application must exit with an `E` command.

``

Either forks a process to run given command or makes a socket to connect to given host and starts a generator on the channel. The generator's play list is controlled by the external application, which can add and clear entries via simple commands issued over its stdout. The external application will receive all DTMF events received on the channel, and notification if the channel is hung up. The received on the channel, and notification if the channel is hung up. The application will not be forcibly terminated when the channel is hung up. For more information see `doc/AST.pdf`.

    			Send a Fax

`

Filename of TIFF file to fax

` `

Makes 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 end

To generate a header line on each page

Cause of failure

The CSID of the remote side

Number of pages sent

Transmission rate

Resolution of sent fax

    			Receive a Fax

`

Filename of TIFF file save incoming fax

` `

Makes 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 end

To generate a header line on each page

Cause of failure

The CSID of the remote side

Number of pages sent

Transmission rate

Resolution 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.

`` ``

Record the caller's name so it can be announced to the callee on each step.

` `

Before initiating the outgoing call(s), Gosub to the specified location using the current channel.

` `

Before initiating an outgoing call, Gosub to the specified location using the newly created channel. The Gosub will be executed for each destination channel.

` `

Disable the 'Please hold while we try to connect your call' announcement.

` `

Asterisk will ignore any connected line update requests it may receive on this dial attempt.

` `

Disable local call optimization so that applications with audio hooks between the local bridge don't get dropped when the calls get joined directly.

` `

Don't answer the incoming call until we're ready to connect the caller or give up.

This option is ignored if the call is already answered.

If the call is not already answered, the 'a' and 's' options are ignored while the 'd' option is implicitly enabled.

` `

Playback the unreachable status message if we've run out of steps or the callee has elected not to be reachable.

` `

Playback the incoming status message prior to starting the follow-me step(s)

``

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.

``

Update the answer time on the NEW CDR just after it's been inited. The new CDR may have been answered already. The reset that forkcdr does will erase the answer time. This will bring it back, but the answer time will be a copy of the fork/start time. It will only do this if the initial cdr was indeed already answered.

` `

Lock the original CDR against the answer time being updated. This will allow the disposition on the original CDR to remain the same.

` `

Copy the disposition forward from the old cdr, after the init.

` `

Clear the `dstchannel` on the new CDR after reset.

` `

End the original CDR. Do this after all the necessary data is copied from the original CDR to the new forked CDR.

` `

Do NOT reset the new cdr.

` `

Set the CDR var name in the original CDR, with value val.

` `

Mark the original CDR with a DONT_TOUCH flag. setvar, answer, and end cdr funcs will obey this flag; normally they don't honor the LOCKED flag set on the original CDR record.

Using this flag may cause CDR's not to have their end times updated! It is suggested that if you specify this flag, you might wish to use the `e` flag as well!.

` `

When the new CDR is forked, it gets a copy of the vars attached to the current CDR. The vars attached to the original CDR are removed unless this option is specified.

``

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.

CDR NoCDR ResetCDR

    			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.

SendText SendURL

    			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

``

Connect to the specified jack server name

` `

Connect the output port that gets created to the specified jack input port

` `

Connect the input port that gets created to the specified jack output port

` `

By default, Asterisk will use the channel name for the jack client name.

Use this option to specify a custom client name.

``

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 macro

` ``

Executes 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.

MacroExit Goto Gosub

    			Conditional Macro implementation.

`` ``

Executes macro defined in macroiftrue if expr is true (otherwise macroiffalse if provided)

Arguments and return values as in application Macro()

GotoIf GosubIf IF

    			Exclusive Macro Implementation.

`

The name of the macro

` `` ``

Executes 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 number

` ``

Set admin mode.

` `

Set marked mode.

` `

Run AGI script specified in MEETME_AGI_BACKGROUND Default: `conf-background.agi`.

This does not work with non-DAHDI channels in the same conference).

` `

Announce user(s) count on joining a conference.

` `

Continue in dialplan when kicked out of conference.

` `

Dynamically add conference.

` `

Dynamically add conference, prompting for a PIN.

` `

Select an empty conference.

` `

Select an empty pinless conference.

` `

Pass DTMF through the conference.

` `

The file to playback

Play an intro announcement in conference.

` `

Announce user join/leave with review.

` `

Announce user join/leave without review.

` `

Close the conference if there's only one active participant left at exit.

` `

Set listen only mode (Listen only, no talking).

` `

Set initially muted.

` `

Enable music on hold when the conference has a single caller. Optionally, specify a musiconhold class to use. If one is not provided, it will use the channel's currently set music class, or `default`.

` `

Disable the denoiser. By default, if `func_speex` is loaded, Asterisk will apply a denoiser to channels in the MeetMe conference. However, channel drivers that present audio with a varying rate will experience degraded performance with a denoiser attached. This parameter allows a channel joining the conference to choose not to have a denoiser attached without having to unload `func_speex`.

` `

Set talker optimization - treats talkers who aren't speaking as being muted, meaning (a) No encode is done on transmission and (b) Received audio that is not registered as talking is omitted causing no buildup in background noise.

` `

Allow user to exit the conference by pressing `#` (default) or any of the defined keys. Dial plan execution will continue at the next priority following MeetMe. The key used is set to channel variable MEETME_EXIT_KEY.

Option `s` has priority for `*` since it cannot change its activation code.

` `

Always prompt for the pin even if it is specified.

` `

Quiet mode (don't play enter/leave sounds).

` `

Record conference (records as MEETME_RECORDINGFILE using format MEETME_RECORDINGFORMAT. Default filename is `meetme-conf-rec-${CONFNO}-${UNIQUEID}` and the default format is wav.

` `

Present menu (user or admin) when `*` is received (send to menu).

` `

Set talk only mode. (Talk only, no listening).

` `

Set talker detection (sent to manager interface and meetme list).

` `

Announce when a user is joining or leaving the conference. Use the voicemail greeting as the announcement. If the i or I options are set, the application will fall back to them if no voicemail greeting can be found.

The mailbox and voicemail context to play from. If no context provided, assumed context is default.

` `

Wait until the marked user enters the conference.

` `

Leave the conference when the last marked user leaves.

` `

Allow user to exit the conference by entering a valid single digit extension MEETME_EXIT_CONTEXT or the current context if that variable is not defined.

Option `s` has priority for `*` since it cannot change its activation code.

` `

Do not play message when first person enters

` `

Kick the user x seconds after he entered into the conference.

` `

Limit the conference to x ms. Play a warning when y ms are left. Repeat the warning every z ms. The following special variables can be used with this option:

File to play when time is up.

File to play as warning if y is defined. The default is to say the time remaining.

`` ``

Enters 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 a functional DAHDI timing source (see dahdi_test) 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.

MeetMeCount MeetMeAdmin MeetMeChannelAdmin

    			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.

`` ``

Eject last user that joined.

` `

Extend conference end time, if scheduled.

` `

Kick one user out of conference.

` `

Kick all users out of conference.

` `

Unlock conference.

` `

Lock conference.

` `

Unmute one user.

` `

Mute one user.

` `

Unmute all users in the conference.

` `

Mute all non-admin users in the conference.

` `

Reset one user's volume settings.

` `

Reset all users volume settings.

` `

Lower entire conference speaking volume.

` `

Raise entire conference speaking volume.

` `

Lower one user's talk volume.

` `

Raise one user's talk volume.

` `

Lower one user's listen volume.

` `

Raise one user's listen volume.

` `

Lower entire conference listening volume.

` `

Raise entire conference listening volume.

`` ``

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).

`` ``

Kick the specified user out of the conference he is in.

` `

Unmute the specified user.

` `

Mute the specified user.

``

Run admin command for a specific channel in any conference.

    			Shared Line Appearance Station.

`

Station name

`

This application should be executed by an SLA station. The argument depends on how the call was initiated. If the phone was just taken off hook, then the argument station should be just the station name. If the call was initiated by pressing a line key, then the station name should be preceded by an underscore and the trunk name associated with that line button.

For example: `station1_line1`

On exit, this application will set the variable SLASTATION_STATUS to one of the following values:

    			Shared Line Appearance Trunk.

`

Trunk name

` ``

Play back the specified MOH class instead of ringing

``

This application should be executed by an SLA trunk on an inbound call. The channel calling this application should correspond to the SLA trunk with the name trunk that is being passed as an argument.

On exit, this application will set the variable SLATRUNK_STATUS to one of the following values:

    			Query a given conference of various properties.

Options:

Boolean of whether the corresponding conference is locked.

Number of parties in a given conference

Duration of conference in seconds.

Boolean of whether the corresponding conference is dynamic.

Conference number to retrieve information from.

MeetMe
MeetMeCount
MeetMeAdmin
MeetMeChannelAdmin

    			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.

    			List active conferences.

Lists data about all active conferences. MeetmeListRooms will follow as separate events, followed by a final event called MeetmeListRoomsComplete.

    			Generate a Constant 1004Hz tone at 0dbm (mu-law).

``

Generate the tone at 1000Hz like previous version.

``

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 username

Voicemail domain

` ``

Jump to the `o` extension in the current dialplan context.

` `

Jump to the `a` extension in the current dialplan context.

` `

Amount of gain to use

Use the specified amount of gain when recording the voicemail message. The units are whole-number decibels (dB).

``

This application is part of the Mini-Voicemail system, configured in `minivm.conf`

MiniVM 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_DURATION

If 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 username

Voicemail domain

` ``

Play the `busy` greeting to the calling party.

` `

Skip the playback of instructions for leaving a message to the calling party.

` `

Play the `unavailable` greeting.

``

This 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 username

Voicemail domain

` ``

E-mail template to use for voicemail notification

``

This 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 delete

`

This 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 username

Voicemail domain

` ``

Record the `unavailable` greeting.

` `

Record the `busy` greeting.

` `

Record the temporary greeting.

` `

Account name.

``

This 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 username

Voicemail domain

` `

Number 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.

    		Reads or sets counters for MiniVoicemail message.

If account is given and it exists, the counter is specific for the account.

If account is a domain and the domain directory exists, counters are specific for a domain.

The name of the counter is a string, up to 10 characters.

The counters never goes below zero. Valid operands for changing the value of a counter when assigning a value are:

Increment by value.

Decrement by value.

Set to value.

The operation is atomic and the counter is locked while changing the value. The counters are stored as text files in the minivm account directories. It might be better to use realtime functions if you are using a database to operate your Asterisk.

MinivmRecord
MinivmGreet
MinivmNotify
MinivmDelete
MinivmAccMess
MinivmMWI
MINIVMACCOUNT

    		Gets MiniVoicemail account information.

Valid items are:

Path to account mailbox (if account exists, otherwise temporary mailbox).

1 is static Minivm account exists, 0 otherwise.

Full name of account owner.

Email address used for account.

Email template for account (default template if none is configured).

Pager template for account (default template if none is configured).

Account code for the voicemail account.

Pin code for voicemail account.

Time zone for voicemail account.

Language for voicemail account.

Channel variable value (set in configuration for account).

MinivmRecord
MinivmGreet
MinivmNotify
MinivmDelete
MinivmAccMess
MinivmMWI
MINIVMCOUNTER

    			Record a call and mix the audio during the recording.  Use of StopMixMonitor is required
    			to guarantee the audio file is available for processing during dialplan execution.

`

If filename is an absolute path, uses that path, otherwise creates the file in the configured monitoring directory from `asterisk.conf.`

` ``

Append to the file instead of overwriting it.

` `

Only save audio to the file while the channel is bridged.

Does not include conferences or sounds played to each bridged party

If you utilize this option inside a Local channel, you must make sure the Local channel is not optimized away. To do this, be sure to call your Local channel with the `/n` option. For example: Dial(Local/start@mycontext/n)

` `

Adjust the heard volume by a factor of x (range `-4` to `4`)

` `

Adjust the spoken volume by a factor of x (range `-4` to `4`)

` `

Adjust both, heard and spoken volumes by a factor of x (range `-4` to `4`)

` `

Use the specified file to record the receive audio feed. Like with the basic filename argument, if an absolute path isn't given, it will create the file in the configured monitoring directory.

` `

Use the specified file to record the transmit audio feed. Like with the basic filename argument, if an absolute path isn't given, it will create the file in the configured monitoring directory.

` `

Stores the MixMonitor's ID on this channel variable.

` `

Create a copy of the recording as a voicemail in the indicated mailbox(es) separated by commas eg. m(1111@default,2222@default,...). Folders can be optionally specified using the syntax: mailbox@context/folder

`` `

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.

This application does not automatically answer and should be preceeded by an application such as Answer or Progress().

MixMonitor runs as an audiohook. In order to keep it running through a transfer, AUDIOHOOK_INHERIT must be set for the channel which ran mixmonitor. For more information, including dialplan configuration set for using AUDIOHOOK_INHERIT with MixMonitor, see the function documentation for AUDIOHOOK_INHERIT.

Will contain the filename used to record.

Monitor StopMixMonitor PauseMonitor UnpauseMonitor AUDIOHOOK_INHERIT

    			Stop recording a call through MixMonitor, and free the recording's file handle.

`

If a valid ID is provided, then this command will stop only that specific MixMonitor.

`

Stops the audio recording that was started with a call to `MixMonitor()` on the current channel.

MixMonitor

    			Mute / unMute a Mixmonitor recording.

`

Used to specify the channel to mute.

` `

Which part of the recording to mute: read, write or both (from channel, to channel or both channels).

` `

Turn mute on or off : 1 to turn on, 0 to turn off.

`

This action may be used to mute a MixMonitor recording.

    			Record a call and mix the audio during the recording.  Use of StopMixMonitor is required
    			to guarantee the audio file is available for processing during dialplan execution.

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). This argument is optional if you specify to record unidirectional audio with either the r(filename) or t(filename) options in the options field. If neither MIXMONITOR_FILENAME or this parameter is set, the mixed stream won't be recorded.

Options that apply to the MixMonitor in the same way as they would apply if invoked from the MixMonitor application. For a list of available options, see the documentation for the mixmonitor application.

This action records the audio on the current channel to the specified file.

Will contain the filename used to record the mixed stream.

    			Stop recording a call through MixMonitor, and free the recording's file handle.

The name of the channel monitored.

If a valid ID is provided, then this command will stop only that specific MixMonitor.

This action stops the audio recording that was started with the `MixMonitor` action on the current channel.

    			Plays morse code.

`

String to playback as morse code to channel

`

Plays the Morse code equivalent of the passed string.

This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().

This application uses the following variables:

Use this value in (ms) for length of dit

The pitch of the tone in (Hz), default is 800

SayAlpha SayPhonetic

    			Play an MP3 file or M3U playlist 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 mp3 filename or m3u playlist filename or a URL. Please read http://en.wikipedia.org/wiki/M3U to see how M3U playlist file format is like, Example usage would be exten => 1234,1,MP3Player(/var/lib/asterisk/playlist.m3u) User can exit by pressing any key on the dialpad, or by hanging up.

This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().

    			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.

` `

Timeout in seconds. Default is 30 seconds.

`

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.

    			OSP Authentication.

`

The name of the provider that authenticates the call.

` `

Reserverd.

`

Authenticate a call by OSP.

Input variables:

The last hop IP address.

The inbound OSP token.

Output variables:

The inbound call OSP transaction handle.

The inbound call duration limit in seconds.

This application sets the following channel variable upon completion:

The status of OSPAuth attempt as a text string, one of

OSPLookup OSPNext OSPFinish

    			Lookup destination by OSP.

`

The exten of the call.

` `

The name of the provider that is used to route the call.

` `

generate H323 call id for the outbound call

generate SIP call id for the outbound call. Have not been implemented

generate IAX call id for the outbound call. Have not been implemented

`

Looks up destination via OSP.

Input variables:

The actual source device IP address in indirect mode.

The last hop IP address.

The inbound channel technology for the call.

The inbound call OSP transaction handle.

The inbound call duration limit in seconds.

The inbound source network ID.

The inbound routing number.

The inbound carrier identification code.

The inbound number portability database dip indicator.

The inbound service provider identity.

The inbound operator company number.

The inbound service provider name.

The inbound alternate service provider name.

The inbound mobile country code.

The inbound mobile network code.

The inbound To header host part.

The inbound Remote-Party-ID header user part.

The inbound P-Asserted-Identify header user part.

The inbound Diversion header user part.

The inbound Diversion header host part.

The inbound P-Charge-Info header user part.

The inbound custom information, where `n` is the index beginning with `1` upto `8`.

Output variables:

The outbound call OSP transaction handle.

The outbound channel technology for the call.

The outbound destination IP address.

The outbound calling number.

The outbound called number.

The outbound destination network ID.

The outbound routing number.

The outbound carrier identification code.

The outbound number portability database dip indicator.

The outbound service provider identity.

The outbound operator company number.

The outbound service provider name.

The outbound alternate service provider name.

The outbound mobile country code.

The outbound mobile network code.

The outbound OSP token.

The number of remained destinations.

The outbound call duration limit in seconds.

The outbound Call-ID types.

The outbound Call-ID. Only for H.323.

The outbound Dial command string.

This application sets the following channel variable upon completion:

The status of OSPLookup attempt as a text string, one of

OSPAuth OSPNext OSPFinish

    			Lookup next destination by OSP.

Looks up the next destination via OSP.

Input variables:

The inbound call OSP transaction handle.

The outbound call OSP transaction handle.

The inbound call duration limit in seconds.

The outbound Call-ID types.

The number of remained destinations.

Output variables:

The outbound channel technology.

The destination IP address.

The outbound calling number.

The outbound called number.

The outbound destination network ID.

The outbound routing number.

The outbound carrier identification code.

The outbound number portability database dip indicator.

The outbound service provider identity.

The outbound operator company number.

The outbound service provider name.

The outbound alternate service provider name.

The outbound mobile country code.

The outbound mobile network code.

The outbound OSP token.

The number of remained destinations.

The outbound call duration limit in seconds.

The outbound Call-ID. Only for H.323.

The outbound Dial command string.

This application sets the following channel variable upon completion:

The status of the OSPNext attempt as a text string, one of

OSPAuth OSPLookup OSPFinish

    			Report OSP entry.

`

Hangup cause.

` `

Reserved.

`

Report call state.

Input variables:

The inbound call OSP transaction handle.

The outbound call OSP transaction handle.

The OSPAuth status.

The OSPLookup status.

The OSPNext status.

The inbound call leg audio QoS string.

The outbound call leg audio QoS string.

This application sets the following channel variable upon completion:

The status of the OSPFinish attempt as a text string, one of

OSPAuth OSPLookup OSPNext

    			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 in parallel

If you need more than one, enter them as Technology2/Resource2& Technology3/Resourse3&.....

` ``

Full duplex audio

` `

Ignore attempts to forward the call

` `

Quiet, do not play beep to caller

` `

Record the page into a file (`CONFBRIDGE(bridge,record_conference)`)

` `

Only dial a channel if its device state says that it is `NOT_INUSE`

` `

The announcement to playback to all devices

Play an announcement to all paged participants

` `

Do not play announcement to caller (alters `A(x)` behavior)

`` `

Specify the length of time that the system will attempt to connect a call. After this duration, any page 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 caller leaves.

ConfBridge

    			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.

Park ParkedCall

    			Play a file.

`` `

Comma separated list of options

`

Do not play if not answered

` `

Playback without answering, otherwise the channel will be answered before the sound is played.

Not all channel types support playing messages while still on hook.

``

Plays 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 fail

This 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 interruptible

WaitExten (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`.

` `

Position reserved for options.

` `

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.

`` ``

Mark all calls as "answered elsewhere" when cancelled.

` `

Continue in the dialplan if the callee hangs up.

` `

data-quality (modem) call (minimum delay).

` `

When the caller hangs up, transfer the called member to the specified destination and start execution at that location.

Any channel variables you want the called channel to inherit from the caller channel must be prefixed with one or two underbars ('_').

` `

When the caller hangs up, transfer the called member to the next priority of the current extension and start execution at that location.

Any channel variables you want the called channel to inherit from the caller channel must be prefixed with one or two underbars ('_').

Using this option from a Macro() or GoSub() might not make sense as there would be no return points.

` `

Allow callee to hang up by pressing `*`.

` `

Allow caller to hang up by pressing `*`.

` `

No retries on the timeout; will exit this application and go to the next step.

` `

Ignore call forward requests from queue members and do nothing when they are requested.

` `

Asterisk will ignore any connected line update requests or any redirecting party update requests it may receive on this dial attempt.

` `

Ring instead of playing MOH. Periodic Announcements are still made, if applicable.

` `

Ring instead of playing MOH when a member channel is actually ringing.

` `

Allow the called user to transfer the calling user.

` `

Allow the calling user to transfer the call.

` `

Allow the called user to write the conversation to disk via Monitor.

` `

Allow the calling user to write the conversation to disk via Monitor.

` `

Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in `features.conf`.

` `

Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in `features.conf`.

` `

Allow the called user to write the conversation to disk via MixMonitor.

` `

Allow the calling user to write the conversation to disk via MixMonitor.

`` `

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.conf` timeout 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 does not automatically answer and should be preceeded by an application such as Answer(), Progress(), or Ringing().

This application sets the following channel variable upon completion:

The status of the call as a text string.

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY

    			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.

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY

    			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)

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY

    			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)

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY

    			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)

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY

    			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 QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY `

    			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.

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY` `

    			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 that either can take calls or are currently wrapping up after a previous call.

Returns the number of logged-in members for the specified queue that are immediately available to answer a call.

Returns the total number of members for the specified queue.

Gets or sets queue member penalty.

Gets or sets queue member paused status.

Gets or sets queue member ringinuse.

` ``

Allows access to queue counts [R] and member information [R/W].

queuename is required for all operations interface is required for all member operations.

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY` `

    			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()` function

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY` `

    			Check if a named queue exists on this server

``

Returns 1 if the specified queue exists, 0 if it does not

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY` `

    			Count number of calls currently waiting in a queue.

``

Returns the number of callers currently waiting in the specified queuename.

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY` `

    			Returns a list of interfaces on a queue.

``

Returns a comma-separated list of members associated with the specified queuename.

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY` `

    			Gets or sets queue members penalty.

`` ``

Gets or sets queue members penalty.

This function has been deprecated in favor of the `QUEUE_MEMBER()` function

Queue QueueLog AddQueueMember RemoveQueueMember PauseQueueMember UnpauseQueueMember QUEUE_VARIABLES QUEUE_MEMBER QUEUE_MEMBER_COUNT QUEUE_EXISTS QUEUE_WAITING_COUNT QUEUE_MEMBER_LIST QUEUE_MEMBER_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.

    			Set the ringinuse value 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 i

` `

Maximum acceptable number of digits. Stops reading after maxdigits have been entered (without requiring the user to press the `#` key).

Defaults to `0` - no limit - wait for the user press the `#` key. Any value below `0` means the same. Max accepted value is `255`.

` ``

to return immediately if the line is not up.

` `

to play filename as an indication tone from your `indications.conf`.

` `

to read digits even if the line is not up.

`` `

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 `i`

` `

Context in which to match extensions.

` ``

Return immediately if the channel is not answered.

` `

Play filename as an indication tone from your `indications.conf` or a directly specified list of frequencies and durations.

` `

Read digits even if the channel is not answered.

`` `

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.

    			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 varname

ReadFile has been deprecated in favor of Set(varname=${FILE(file,0,length)})

System Read

    			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.

` ``

Append to existing recording rather than replacing.

` `

Do not answer, but record anyway if line not yet answered.

` `

quiet (do not play a beep tone).

` `

skip recording if the line is not yet answered.

` `

use alternate '*' terminator key (DTMF) instead of default '#'

` `

Ignore all terminator keys (DTMF) and keep recording until hangup.

` `

Keep recorded file upon hangup.

` `

Terminate recording if *any* DTMF digit is received.

``

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 command

A 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.

    			Say a noun in declined form in order to count things

`

The number of things

` `

File name stem for the noun that is the the name of the things

`

Selects and plays the proper singular or plural form of a noun when saying things such as "five calls". English has simple rules for deciding when to say "call" and when to say "calls", but other languages have complicated rules which would be extremely difficult to implement in the Asterisk dialplan language.

The correct sound file is selected by examining the number and adding the appropriate suffix to filename. If the channel language is English, then the suffix will be either empty or "s". If the channel language is Russian or some other Slavic language, then the suffix will be empty for nominative, "x1" for genative singular, and "x2" for genative plural.

Note that combining filename with a suffix will not necessarily produce a correctly spelled plural form. For example, SayCountedNoun(2,man) will play the sound file "mans" rather than "men". This behavior is intentional. Since the file name is never seen by the end user, there is no need to implement complicated spelling rules. We simply record the word "men" in the sound file named "mans".

This application does not automatically answer and should be preceeded by an application such as Answer() or Progress.

SayCountedAdj SayNumber

    			Say a adjective in declined form in order to count things

`

The number of things

` `

File name stem for the adjective

` `

The gender of the noun modified, one of 'm', 'f', 'n', or 'c'

`

Selects and plays the proper form of an adjective according to the gender and of the noun which it modifies and the number of objects named by the noun-verb combination which have been counted. Used when saying things such as "5 new messages". The various singular and plural forms of the adjective are selected by adding suffixes to filename.

If the channel language is English, then no suffix will ever be added (since, in English, adjectives are not declined). If the channel language is Russian or some other slavic language, then the suffix will the specified gender for nominative, and "x" for genative plural. (The genative singular is not used when counting things.) For example, SayCountedAdj(1,new,f) will play sound file "newa" (containing the word "novaya"), but SayCountedAdj(5,new,f) will play sound file "newx" (containing the word "novikh").

This application does not automatically answer and should be preceeded by an application such as Answer(), Progress(), or Proceeding().

SayCountedNoun SayNumber

    			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" IMp`

` ``

Allow the calling user to dial digits to jump to that extension.

``

Uses 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.

STRFTIME STRPTIME IFTIME

    			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" IMp`

`

Say the date and time in a specified format.

    			Sends arbitrary DTMF digits

`

List of digits 0-9,*#,a-d,A-D to send also w for a half second pause, and f or F for a flash-hook if the channel supports flash-hook.

` `

Amount of time to wait in ms between tones. (defaults to .25s)

` `

Duration of each digit

` `

Channel where digits will be played

`

It will send 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.

SendImage SendURL

    			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.

    			An example number guessing game

`` ``

The computer should cheat

` `

How many games to play before hanging up

``

This simple number guessing 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/sms`

` ``

Answer, i.e. send initial FSK packet.

` `

Act as service centre talking to a phone.

` `

Use protocol 2 (default used is protocol 1).

` `

Set the initial delay to N ms (default is `300`). addr and body are a deprecated format to send messages out.

` `

Set the Status Report Request (SRR) bit.

` `

The body should be coded as octets not 7-bit symbols.

`` `` ``

SMS 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.

`` ``

Hang up all channels on a specified device instead of a single resource

``

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.

Sets the ERROR channel variable to 1 if the engine cannot 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.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			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.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			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.

` ``

Don't answer the channel if it has not already been answered.

``

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.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			Deactivate a grammar.

`

The grammar name to deactivate

`

This deactivates the specified grammar so that it is no longer recognized.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			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.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			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.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			Load a grammar.

`` ``

Load a grammar only on the channel, not globally.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			Unload a grammar.

``

Unload a grammar.

Hangs up the channel on failure. If this is not desired, use TryExec.

    			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 not

Returns `1` if spoker spoke, or `0` if not

Returns 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.

GosubIf Macro Goto Return StackPop

    			Conditionally jump to label, saving return address.

`` `

Continue at labeliftrue if the condition is true. Takes the form similar to Goto() of [[context,]extension,]priority.

Continue at labeliffalse if the condition is false. Takes the form similar to Goto() of [[context,]extension,]priority.

`

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.

Gosub Return MacroIf IF GotoIf Goto

    			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.

Gosub StackPop

    			Remove one address from gosub stack.

Removes last label on the stack, discarding it.

Return Gosub `

    			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()).

Gosub GosubIf Return` `

    			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.

Gosub GosubIf Return` `

    			View info about the location which called Gosub

`` `` ``

Read the calling `c`ontext, `e`xtension, `p`riority, or `l`abel, as specified by which, by going up n frames in the Gosub stack. If suppress is true, then if the number of available stack frames is exceeded, then no error message will be printed.

`

    			Cause the channel to execute the specified dialplan subroutine.

`` `` `` ``

Cause the channel to execute the specified dialplan subroutine, returning to the dialplan with execution of a Return().

    			Execute a system command.

`

Command to execute

`

Executes a command by using system(). If the command fails, the console should report a fallthrough.

Result of execution is returned in the SYSTEMSTATUS channel variable:

Could not execute the specified command.
Specified command successfully executed.

    			Try executing a system command.

`

Command to execute

`

Executes 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.txt`

TestClient

    			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.txt`

TestServer

    			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.

`` ``

Execution will wait for an acknowledgement that the URL has been loaded before continuing.

``

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.

SendImage SendText

    			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.

`` ``

Play the `busy` greeting to the calling party.

` `

Accept digits for a new extension in context c, if played during the greeting. Context defaults to the current context.

` `

Use the specified amount of gain when recording the voicemail message. The units are whole-number decibels (dB). Only works on supported technologies, which is DAHDI only.

` `

Skip the playback of instructions for leaving a message to the calling party.

` `

Play the `unavailable` greeting.

` `

Mark message as `URGENT`.

` `

Mark message as `PRIORITY`.

``

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.

VoiceMailMain

    			Check Voicemail messages.

`` ``

Consider the mailbox parameter as a prefix to the mailbox that is entered by the caller.

` `

Use the specified amount of gain when recording a voicemail message. The units are whole-number decibels (dB).

` `

Skip checking the passcode for the mailbox.

` `

Skip folder prompt and go directly to folder specified. Defaults to `INBOX` (or `0`).

INBOX

Old

Work

Family

Friends

Cust1

Cust2

Cust3

Cust4

Cust5

``

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.

The VoiceMailMain application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:

Jump to the `a` extension in the current dialplan context.

VoiceMail

    			Check to see if Voicemail mailbox exists.

`` `

None options.

`

DEPRECATED. Use VM_INFO(mailbox[@context],exists) instead.

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:

VM_INFO

    			Authenticate with Voicemail passwords.

`` ``

Skip playing the initial prompts.

``

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.

The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:

Jump to the `a` extension in the current dialplan context.

    			Play a single voice mail msg from a mailbox by msg id.

`` `

The msg id of the msg to play back.

`

This application sets the following channel variable upon completion:

The status of the playback attempt as a text string.

    			Play the name of a voicemail user

``

This application will say the recorded name of the voicemail user specified as the argument to this application. If no context is provided, `default` is assumed.

    			Tell if a mailbox is configured.

DEPRECATED. Use VM_INFO(mailbox[@context],exists) instead.

Returns a boolean of whether the corresponding mailbox exists. If context is not specified, defaults to the `default` context.

VM_INFO

    			Returns the selected attribute from a mailbox.

Count of messages in specified folder. If folder is not specified, defaults to `INBOX`.

E-mail address associated with the mailbox.

Returns a boolean of whether the corresponding mailbox exists.

Full name associated with the mailbox.

Mailbox language if overridden, otherwise the language of the channel.

Mailbox locale if overridden, otherwise global locale.

Pager e-mail address associated with the mailbox.

Mailbox access password.

Mailbox timezone if overridden, otherwise global timezone

If not specified, `INBOX` is assumed.

Returns the selected attribute from the specified mailbox. If context is not specified, defaults to the `default` context. Where the folder can be specified, common folders include `INBOX`, `Old`, `Work`, `Family` and `Friends`.

    			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, twice

WaitForSilence(1000) will wait for 1 second of silence, once

WaitForSilence(300,3,10) will wait for 300ms silence, 3 times, and returns after 10 sec, even if silence is not detected

Sets the channel variable WAITSTATUS 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.

EndWhile ExitWhile ContinueWhile

    			End a while loop.

Return to the previous called `While()`.

While ExitWhile ContinueWhile

    			End a While loop.

Exits a `While()` loop, whether or not the conditional has been satisfied.

While EndWhile ContinueWhile

    			Restart a While loop.

Returns to the top of the while loop and re-evaluates the conditional.

While EndWhile ExitWhile

    			Block telemarketers with SIT.

`

Comma delimited list of options.

`

Causes the line to be answered before playing the tone.

` `

Causes Zapateller to only play the tone if there is no callerid information available.

``

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 Key

Input string

Returns an AES encrypted string encoded in base64.

AES_DECRYPT
BASE64_ENCODE
BASE64_DECODE

    			Decrypt a string encoded in base64 with AES given a 16 character key.

AES Key

Input string.

Returns the plain text string.

AES_ENCRYPT
BASE64_ENCODE
BASE64_DECODE

    			Set whether an audiohook may be inherited to another channel

The built-in sources in Asterisk are

Note that the names are not case-sensitive

By 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 calls

Call 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.wav

Call 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 string

Returns the base64 string.

BASE64_DECODE
AES_DECRYPT
AES_ENCRYPT

    			Decode a base64 string.

Input string.

Returns the plain text string.

BASE64_ENCODE
AES_DECRYPT
AES_ENCRYPT

    			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

    			Get or set a call completion configuration parameter for a channel.

The allowable options are:

The CALLCOMPLETION function can be used to get or set a call completion configuration parameter for a channel. Note that setting a configuration parameter will only change the parameter for the duration of the call.

For more information see `doc/AST.pdf`. For more information on call completion parameters, see `configs/ccss.conf.sample`.

    			Gets or sets Caller*ID data on the channel.

The allowable datatypes are:

Optional Caller*ID to parse instead of using the Caller*ID from the channel. This parameter is only optional when reading the Caller*ID.

Gets or sets Caller*ID data on the channel. Uses channel callerid by default or optional callerid, if specified.

The allowable values for the name-charset field are the following:

Unknown

ISO8859-1

Withdrawn

ISO8859-2

ISO8859-3

ISO8859-4

ISO8859-5

ISO8859-7

ISO10646 Bmp String

ISO10646 UTF-8 String

    			Gets or sets Caller*ID presentation on the channel.

Gets or sets Caller*ID presentation on the channel. This function is deprecated in favor of CALLERID(num-pres) and CALLERID(name-pres). 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 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 set

Gets or sets Connected Line data on the channel.

The allowable values for the name-charset field are the following:

Unknown

ISO8859-1

Withdrawn

ISO8859-2

ISO8859-3

ISO8859-4

ISO8859-5

ISO8859-7

ISO10646 Bmp String

ISO10646 UTF-8 String

    			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 set

Gets or sets Redirecting data on the channel.

The allowable values for the reason and orig-reason fields are the following:

Unknown

Call Forwarding Busy

Call Forwarding No Reply

Callee is Unavailable

Time of Day

Do Not Disturb

Call Deflection

Follow Me

Called DTE Out-Of-Order

Callee is Away

Call Forwarding By The Called DTE

Call Forwarding Unconditional

The allowable values for the xxx-name-charset field are the following:

Unknown

ISO8859-1

Withdrawn

ISO8859-2

ISO8859-3

ISO8859-4

ISO8859-5

ISO8859-7

ISO10646 Bmp String

ISO10646 UTF-8 String

    			Gets or sets a CDR variable.

CDR field name:

Caller ID.

Last application arguments.

ANSWERED, NO ANSWER, BUSY, FAILED.

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.

CDR sequence number.

Returns billsec or duration fields as floating point values.

Uses the most recent CDR on a channel with multiple records

Searches the entire stack of CDRs on the channel.

Skips any CDR's that are marked 'LOCKED' due to forkCDR() calls. (on setting/writing CDR vars only)

Retrieves the raw, unprocessed value.

For example, 'start', 'answer', and 'end' will be retrieved as epoch values, when the `u` option is passed, but formatted as YYYY-MM-DD HH:MM:SS otherwise. Similarly, disposition and amaflags will return their raw integral values.

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`.

CDRs can only be modified before the bridge between two channels is torn down. For example, CDRs may not be modified after the `Dial` application has returned.

Raw values for `disposition`:

NO ANSWER

NO ANSWER (NULL record)

FAILED

BUSY

ANSWERED

Raw values for `amaflags`:

OMIT

BILLING

DOCUMENTATION

Example: 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 or sets variables on the master channel

Allows access to the channel which created the current channel, if any. If the channel is already a master channel, then accesses local channel variables.

    			Gets/sets various pieces of information about the channel.

Standard items (provided by all channel technologies) are:

R/W the Automatic Message Accounting (AMA) flags on the channel. When read from a channel, the integer value will always be returned. When written to a channel, both the string format or integer value is accepted.

`OMIT`

`BILLING`

`DOCUMENTATION`

R/W the channel's account code.

R/O format currently being read.

R/O format used natively for audio.

R/O format currently being written.

R/W numeric call pickup groups that this channel is a member.

R/W numeric call pickup groups this channel can pickup.

R/W named call pickup groups that this channel is a member.

R/W named call pickup groups this channel can pickup.

R/O technology used for channel.

R/O Whether the channel is hanging up (1/0)

W/O Replace the most recently added hangup handler with a new hangup handler on the channel if supplied. The assigned string is passed to the Gosub application when the channel is hung up. Any optionally omitted context and exten are supplied by the channel pushing the handler before it is pushed.

W/O Push a hangup handler onto the channel hangup handler stack. The assigned string is passed to the Gosub application when the channel is hung up. Any optionally omitted context and exten are supplied by the channel pushing the handler before it is pushed.

W/O Wipe the entire hangup handler stack and replace with a new hangup handler on the channel if supplied. The assigned string is passed to the Gosub application when the channel is hung up. Any optionally omitted context and exten are supplied by the channel pushing the handler before it is pushed.

R/W language for sounds played.

R/W class (from musiconhold.conf) for hold music.

The name of the channel

R/W parkinglot for parking.

R/W set rxgain level on channel drivers that support it.

Whether or not channels bridged to this channel require secure signaling

Whether or not channels bridged to this channel require secure media

R/O state for channel

R/W zone for indications played

R/W ISDN Transfer Capability, one of:

R/W set txgain level on channel drivers that support it.

R/O format used natively for video

R/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 `0`

R/O Get QOS information about the RTP stream

This option takes two additional arguments:

Argument 1:

`audio` Get data about the audio stream

`video` Get data about the video stream

`text` Get data about the text stream

Argument 2:

`local_ssrc` Local SSRC (stream ID)

`local_lostpackets` Local lost packets

`local_jitter` Local calculated jitter

`local_maxjitter` Local calculated jitter (maximum)

`local_minjitter` Local calculated jitter (minimum)

`local_normdevjitter`Local calculated jitter (normal deviation)

`local_stdevjitter` Local calculated jitter (standard deviation)

`local_count` Number of received packets

`remote_ssrc` Remote SSRC (stream ID)

`remote_lostpackets`Remote lost packets

`remote_jitter` Remote reported jitter

`remote_maxjitter` Remote calculated jitter (maximum)

`remote_minjitter` Remote calculated jitter (minimum)

`remote_normdevjitter`Remote calculated jitter (normal deviation)

`remote_stdevjitter`Remote calculated jitter (standard deviation)

`remote_count` Number of transmitted packets

`rtt` Round trip time

`maxrtt` 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 destination

`video` Get video destination

`text` Get text destination

Defaults to `audio` if unspecified.

R/O Get source RTP destination information.

This option takes one additional argument:

Argument 1:

`audio` Get audio destination

`video` Get video destination

`text` Get text destination

Defaults to `audio` if unspecified.

chan_iax2 provides the following additional options:

R/O Get the peer's osptoken.

R/O Get the peer's ip address.

R/O Get the peer's username.

R/O Get the if the IAX channel is secured.

R/O Get the if the IAX channel is secured.

chan_dahdi provides the following additional options:

R/O DAHDI channel related to this channel.

R/O DAHDI span related to this channel.

R/O DAHDI channel type, one of:

R/O PRI Keypad digits that came in with the SETUP message.

R/O PRI Reverse Charging Indication, one of:

None

Reverse Charging Requested

R/O PRI Nonzero if the channel has no B channel. The channel is either on hold or a call waiting call.

W/O Change the channel's buffer policy (for the current call only)

This option takes two arguments:

Number of buffers,

Buffer policy being one of:

`full`

`immediate`

`half`

W/O Change the configuration of the active echo canceller on the channel (if any), for the current call only.

Possible values are:

`on` Normal mode (the echo canceller is actually reinitalized)

`off` Disabled

`fax` FAX/data mode (NLP disabled if possible, otherwise completely disabled)

`voice` Voice mode (returns from FAX mode, reverting the changes that were made)

chan_ooh323 provides the following additional options:

R/W Fax Detect

Returns 0 or 1

Write yes or no

R/W t38support

Returns 0 or 1

Write yes or no

R/0 Returns caller URL

R/0 Returns caller h323id

R/0 Returns caller dialed digits

R/0 Returns caller email

R/0 Returns callee email

R/0 Returns callee dialed digits

R/0 Returns caller URL

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.

    			Retrieve content from a remote web or ftp server

If specified, an `HTTP POST` will be performed with the content of post-data, instead of an `HTTP GET` (default).

CURLOPT

    			Sets various options for future invocations of CURL.

A cookie to send with the request. Multiple cookies are supported.

Number of seconds to wait for a connection to succeed

Number of seconds to wait for DNS to be resolved

For FTP URIs, force a text transfer (boolean)

For FTP URIs, number of seconds to wait for a server response

Include header information in the result (boolean)

For HTTP(S) URIs, number of seconds to wait for a server response

Maximum number of redirects to follow

Hostname or IP address to use as a proxy server

Type of `proxy`

Port number of the `proxy`

A username`:`password combination to use for authenticating requests through a `proxy`

Referer URL to use for the request

UserAgent string to use for the request

A username`:`password to use for authentication when the server response to an initial request indicates a 401 status code.

Whether to verify the server certificate against a list of known root certificate authorities (boolean).

Assuming the responses will be in `key1=value1&key2=value2` format, reformat the response such that it can be used by the `HASH` function.

Also translate `+` to the space character, in violation of current RFC standards.

Options may be set globally or per channel. Per-channel settings will override global settings.

CURL
HASH

    			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 cut

Delimiter, 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.

DBdel
DB_DELETE
DBdeltree
DB_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

    			Obtain a list of keys within the Asterisk database.

This function will return a comma-separated list of keys existing at the prefix specified within the Asterisk database. If no argument is provided, then a list of key families will be returned.

    			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.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be read from the dialplan, and not directly from external protocols. It can, however, be executed as a write operation (`DB_DELETE(family, key)=ignored`)

DBdel
DB
DBdeltree

    			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:lamp1

The 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.

Retrieve name on the hint instead of list of devices.

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`.

    			Determine whether an extension exists or not.

Defaults to the current context

Priority defaults to `1`.

Returns a true value if the indicated context, extension, and priority exist.

This function has been deprecated in favor of the `DIALPLAN_EXISTS()` function

    			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.arpa`

This 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 or -1 on error.

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`.

Returns an integer count of the number of NAPTRs of a certain RR type.

Combination of `c` and Method-type of `ALL` will return a count of all NAPTRs for the record or -1 on error.

Returns the full URI and does not strip off the URI-scheme.

Triggers ISN specific rewriting.

Looks for branches into an Infrastructure ENUM tree.

for a direct DNS lookup without any flipping of digits.

If no record# is given, defaults to `1`.

If no zone-suffix is given, the default will be `e164.arpa`

For more information see `doc/AST.pdf`.

    			TXTCIDNAME looks up a caller name via DNS.

If no zone-suffix is given, the default will be `e164.arpa`

This 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

Variables starting with `AST_` are reserved to the system and may not be set.

    			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 file

A - 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.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

    			Read or write text 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.

Line mode: offset and length are assumed to be measured in lines, instead of byte offsets.

In write mode only, the append option is used to append to the end of the file, instead of overwriting the existing file.

In write mode and line mode only, this option does not automatically append a newline string to the end of a value. This is useful for deleting lines, instead of setting them to blank.

The format parameter may be used to delimit the type of line terminators in line mode.

Unix newline format.

DOS newline format.

Macintosh newline format.

Read and write text file in character and line mode.

Examples:

Read mode (byte):

;reads the entire content of the file.

Set(foo=${FILE(/tmp/test.txt)})

;reads from the 11th byte to the end of the file (i.e. skips the first 10).

Set(foo=${FILE(/tmp/test.txt,10)})

;reads from the 11th to 20th byte in the file (i.e. skip the first 10, then read 10 bytes).

Set(foo=${FILE(/tmp/test.txt,10,10)})

Read mode (line):

; reads the 3rd line of the file.

Set(foo=${FILE(/tmp/test.txt,3,1,l)})

; reads the 3rd and 4th lines of the file.

Set(foo=${FILE(/tmp/test.txt,3,2,l)})

; reads from the third line to the end of the file.

Set(foo=${FILE(/tmp/test.txt,3,,l)})

; reads the last three lines of the file.

Set(foo=${FILE(/tmp/test.txt,-3,,l)})

; reads the 3rd line of a DOS-formatted file.

Set(foo=${FILE(/tmp/test.txt,3,1,l,d)})

Write mode (byte):

; truncate the file and write "bar"

Set(FILE(/tmp/test.txt)=bar)

; Append "bar"

Set(FILE(/tmp/test.txt,,,a)=bar)

; Replace the first byte with "bar" (replaces 1 character with 3)

Set(FILE(/tmp/test.txt,0,1)=bar)

; Replace 10 bytes beginning at the 21st byte of the file with "bar"

Set(FILE(/tmp/test.txt,20,10)=bar)

; Replace all bytes from the 21st with "bar"

Set(FILE(/tmp/test.txt,20)=bar)

; Insert "bar" after the 4th character

Set(FILE(/tmp/test.txt,4,0)=bar)

Write mode (line):

; Replace the first line of the file with "bar"

Set(FILE(/tmp/foo.txt,0,1,l)=bar)

; Replace the last line of the file with "bar"

Set(FILE(/tmp/foo.txt,-1,,l)=bar)

; Append "bar" to the file with a newline

Set(FILE(/tmp/foo.txt,,,al)=bar)

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

FILE_COUNT_LINE
FILE_FORMAT

    			Obtains the number of lines of a text file.

Format may be one of the following:

Unix newline format.

DOS newline format.

Macintosh newline format.

If not specified, an attempt will be made to determine the newline format type.

Returns the number of lines, or `-1` on error.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

FILE
FILE_FORMAT

    			Return the newline format of a text file.

Return the line terminator type:

'u' - Unix "\n" format

'd' - DOS "\r\n" format

'm' - Macintosh "\r" format

'x' - Cannot be determined

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

FILE
FILE_COUNT_LINE

    			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

    			View internal ast_frames as they are read and written on a channel.

A filter can be applied to the trace to limit what frames are viewed. This filter can either be a `white` or `black` list of frame types. When no filter type is present, `white` is used. If no arguments are provided at all, all frames will be output.

Below are the different types of frames that can be filtered.

Examples:

exten => 1,1,Set(FRAME_TRACE(white)=DTMF_BEGIN,DTMF_END); view only DTMF frames.

exten => 1,1,Set(FRAME_TRACE()=DTMF_BEGIN,DTMF_END); view only DTMF frames.

exten => 1,1,Set(FRAME_TRACE(black)=DTMF_BEGIN,DTMF_END); view everything except DTMF frames.

    			Gets or sets the global variable specified.

Global variable name

Set or get the value of a global variable specified in varname

    			Gets or sets the shared variable specified.

Variable name

If 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 name

Calculates 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.

A standard regular expression used to match a category name.

Calculates the group count for all groups that match the specified pattern. Note: category matching is applied after matching based on group. Uses standard regular expression matching on both (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.

    			Gets per-channel hangupcause information from the channel.

The name of the channel for which to retreive cause information.

Parameter describing which type of information is requested. Types are:

Technology-specific cause information

Translated Asterisk cause code

Gets technology-specific or translated Asterisk cause code information from the channel for the specified channel that resulted from a dial.

HANGUPCAUSE_KEYS
HangupCauseClear

    			Gets the list of channels for which hangup causes are available.

Returns a comma-separated list of channel names to be used with the HANGUPCAUSE function.

HANGUPCAUSE
HangupCauseClear

    			Clears hangup cause information from the channel that is available through HANGUPCAUSE.

Clears all channel-specific hangup cause information from the channel. This is never done automatically (i.e. for new Dial()s).

HANGUPCAUSE HANGUPCAUSE_KEYS `

    			Converts charsets of strings.

`

Input charset

` `

Output charset

` `

String to convert, from in-charset to out-charset

`

Converts 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.

` `

    			Add a Jitterbuffer to the Read side of the channel.  This dejitters the audio stream before it reaches the Asterisk core. This is a write only function.

`

Jitterbuffer type can be either `fixed` or `adaptive`.

Used as follows.

Set(JITTERBUFFER(type)=max_size[,resync_threshold[,target_extra]])

Set(JITTERBUFFER(type)=default)

`

max_size: Defaults to 200 ms

Length in milliseconds of buffer.

resync_threshold: Defaults to 1000ms

The length in milliseconds over which a timestamp difference will result in resyncing the jitterbuffer.

target_extra: Defaults to 40ms

This option only affects the adaptive jitterbuffer. It represents the amount time in milliseconds by which the new jitter buffer will pad its size.

Examples:

exten => 1,1,Set(JITTERBUFFER(fixed)=default);Fixed with defaults.

exten => 1,1,Set(JITTERBUFFER(fixed)=200);Fixed with max size 200ms, default resync threshold and target extra.

exten => 1,1,Set(JITTERBUFFER(fixed)=200,1500);Fixed with max size 200ms resync threshold 1500.

exten => 1,1,Set(JITTERBUFFER(adaptive)=default);Adaptive with defaults.

exten => 1,1,Set(JITTERBUFFER(adaptive)=200,,60);Adaptive with max size 200ms, default resync threshold and 40ms target extra.

` `

    			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.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

` `

    			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.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

` `

    			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.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

` `

    			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,<,>,<=,>=,== (and behave as their C equivalents)

` `

Wanted type of result:

f, float - float(default)

i, int - integer

h, hex - hex

c, char - char

`

Performs mathematical functions based on two parameters and an operator. The returned value type is type

Example: 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 dialplan

Example: INC(MyVAR) - Increments MyVar

Note: 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 dialplan

Example: DEC(MyVAR) - Decrements MyVar

Note: DEC(${MyVAR}) - Is wrong, as DEC 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 `.so`

`

Checks 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})}'

    			Pitch shift both tx and rx audio streams on a channel.

Direction can be either `rx`, `tx`, or `both`. The direction can either be set to a valid floating point number between 0.1 and 4.0 or one of the enum values listed below. A value of 1.0 has no effect. Greater than 1 raises the pitch. Lower than 1 lowers the pitch.

The pitch amount can also be set by the following values

Examples:

exten => 1,1,Set(PITCH_SHIFT(tx)=highest); raises pitch an octave

exten => 1,1,Set(PITCH_SHIFT(rx)=higher) ; raises pitch more

exten => 1,1,Set(PITCH_SHIFT(both)=high) ; raises pitch

exten => 1,1,Set(PITCH_SHIFT(rx)=low) ; lowers pitch

exten => 1,1,Set(PITCH_SHIFT(tx)=lower) ; lowers pitch more

exten => 1,1,Set(PITCH_SHIFT(both)=lowest) ; lowers pitch an octave

exten => 1,1,Set(PITCH_SHIFT(rx)=0.8) ; lowers pitch

exten => 1,1,Set(PITCH_SHIFT(tx)=1.5) ; raises pitch

    			Get or Set a presence state.

The provider of the presence, such as `CustomPresence`

Which field of the presence state information is wanted.

The current presence, such as `away`

Further information about the current presence

A custom message that may indicate further details about the presence

On Write - Use this option when the subtype and message provided are Base64 encoded. On Read - Retrieves message/subtype in Base64 encoded form.

The PRESENCE_STATE function can be used to retrieve the presence from any presence provider. For example:

NoOp(SIP/mypeer has presence ${PRESENCE_STATE(SIP/mypeer,value)})

NoOp(Conference number 1234 has presence message ${PRESENCE_STATE(MeetMe:1234,message)})

The PRESENCE_STATE function can also be used to set custom presence state from the dialplan. The `CustomPresence:` prefix must be used. For example:

Set(PRESENCE_STATE(CustomPresence:lamp1)=away,temporary,Out to lunch)

Set(PRESENCE_STATE(CustomPresence:lamp2)=dnd,,Trying to get work done)

Set(PRESENCE_STATE(CustomPresence:lamp3)=xa,T24gdmFjYXRpb24=,,e)

Set(BASE64_LAMP3_PRESENCE=${PRESENCE_STATE(CustomPresence:lamp3,subtype,e)})

You can subscribe to the status of a custom presence state using a hint in the dialplan:

exten => 1234,hint,CustomPresence:lamp1

The possible values for both uses of this function are:

not_set | unavailable | available | away | xa | chat | dnd

    			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 write

If 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
REALTIME_DESTROY
REALTIME_FIELD
REALTIME_HASH

    			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
REALTIME_DESTROY
REALTIME_FIELD
REALTIME_HASH

    			RealTime Destroy Function.

This function acts in the same way as REALTIME(....) does, except that it destroys the matched record in the RT engine.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be read from the dialplan, and not directly from external protocols. It can, however, be executed as a write operation (`REALTIME_DESTROY(family, fieldmatch)=ignored`)

REALTIME
REALTIME_STORE
REALTIME_FIELD
REALTIME_HASH

    			RealTime query function.

This function retrieves a single item, fieldname from the RT engine, where fieldmatch contains the value matchvalue. When written to, the REALTIME_FIELD() function performs identically to the REALTIME() function.

REALTIME
REALTIME_STORE
REALTIME_DESTROY
REALTIME_HASH

    			RealTime query function.

This function retrieves a single record from the RT engine, where fieldmatch contains the value matchvalue 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.

REALTIME
REALTIME_STORE
REALTIME_DESTROY
REALTIME_FIELD

    			Computes a SHA1 digest.

Input string

Generate 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 using the system shell and captures its output.

The command that the shell should execute.

Collects the output generated by a command executed by the system shell

Example: `Set(foo=${SHELL(echo bar)})`

The command supplied to this function will be executed by the system's shell, typically specified in the SHELL environment variable. There are many different system shells available with somewhat different behaviors, so the output generated by this function may vary between platforms.

If `live_dangerously` in `asterisk.conf` is set to `no`, this function can only be executed from the dialplan, and not directly from external protocols.

    			Apply automatic gain control to audio on a channel.

This can be either `rx` or `tx`

The 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 `off`

The 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)

    			Initiate an SRV query.

The service for which to look up SRV records. An example would be something like `_sip._udp.example.com`

This will do an SRV lookup of the given service.

    			Retrieve results from an SRVQUERY.

The identifier returned by the SRVQUERY 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 SRVQUERY function.

    			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.

    			Return the 1-based offset of a field in a list

Search the variable named varname for the string value delimited by delim and return a 1-based offset as to its location. If not found or an error occured, return `0`.

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 ${FIELDNUM(example,-,amp)} returns 2.

    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 `\`

    			Replace a set of characters in a given string with another character.

Iterates through a string replacing all the find-chars with replace-char. replace-char may be either empty or contain one character. If empty, all find-chars will be deleted from the output.

The replacement only occurs in the output. The original variable is not altered.

    			Replace instances of a substring within a string with another string.

Searches for all instances of the find-string in provided variable and replaces them with replace-string. If replace-string is an empty string, this will effecively delete that substring. If max-replacements is specified, this function will stop after performing replacements max-replacements times.

The replacement only occurs in the output. The original variable is not altered.

    			Pass the given argument back as a value.

Literally returns the given string. The intent is to permit other dialplan functions which take a variable name as an argument to be able to take a literal string, instead.

The functions which take a variable name need to be passed var and not ${var}. Similarly, use PASSTHRU() and not ${PASSTHRU()}.

Example: ${CHANNEL} contains SIP/321-1

${CUT(PASSTHRU(${CUT(CHANNEL,-,1)}),/,2)}) will return 321

    			Check string against a regular expression.

Return `1` on regular expression match or `0` otherwise

Please 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 strings

Example: ${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"

    			Quotes a given string for use in a CSV file, escaping embedded quotes as necessary

Example: ${CSV_QUOTE("a,b" 123)} will return """a,b"" 123"

    			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,EndWhile

This 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,EndWhile

This 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".

    			Returns system information specified by parameter.

System load average from past minute.

Number of active calls currently in progress.

System uptime in hours.

This parameter is dependant upon operating system.

Total usable main memory size in KiB.

This parameter is dependant upon operating system.

Available memory size in KiB.

This parameter is dependant upon operating system.

Memory used by buffers in KiB.

This parameter is dependant upon operating system.

Total swap space still available in KiB.

This parameter is dependant upon operating system.

Free swap space still available in KiB.

This parameter is dependant upon operating system.

Number of current processes.

This parameter is dependant upon operating system.

Returns information from a given parameter.

    			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 `response`

The 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, e.g. 10602 for 1.6.2 or 100300 for 10.3.0, or 999999 when using an SVN build.

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-r44830M

Example: 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 `INBOX`

Count 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`.

Enable DTMF volume control

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)

Set(VOLUME(TX,p)=3)

Set(VOLUME(RX,p)=3)

    			Request call completion service for previous call

Request call completion service for a previously failed call attempt.

This application sets the following channel variables:

This is the returned status of the request.

This is the reason the request failed.

    			Cancel call completion service

Cancel a Call Completion Request.

This application sets the following channel variables:

This is the returned status of the cancel.

This is the reason the cancel failed.

    			Retrieve the data api tree.

Retrieve the data api tree.

    			Get DB Entry.

    			Put DB entry.

    			Delete DB entry.

    			Delete DB Tree.

    			Bridge two channels.

`

The current channel is bridged to the specified channel.

` ``

Play a courtesy tone to channel.

` `

When the bridger hangs up, transfer the bridged party to the specified destination and start execution at that location.

Any channel variables you want the called channel to inherit from the caller channel must be prefixed with one or two underbars ('_').

This option will override the 'x' option

` `

When the bridger hangs up, transfer the bridged party to the next priority of the current extension and start execution at that location.

Any channel variables you want the called channel to inherit from the caller channel must be prefixed with one or two underbars ('_').

Using this option from a Macro() or GoSub() might not make sense as there would be no return points.

This option will override the 'x' option

` `

Allow the called party to hang up by sending the * DTMF digit.

` `

Allow the calling party to hang up by pressing the * DTMF digit.

` `

Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in `features.conf`.

` `

Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in `features.conf`.

` `

Limit the call to x ms. Play a warning when y ms are left. Repeat the warning every z ms. The following special variables can be used with this option:

Play sounds to the caller. yes|no (default yes)

Play sounds to the callee. yes|no

File to play when time is up.

File to play when call begins.

File to play as warning if y is defined. The default is to say the time remaining.

` `

Hang up the call after x seconds *after* the called party has answered the call.

` `

Allow the called party to transfer the calling party by sending the DTMF sequence defined in `features.conf`.

` `

Allow the calling party to transfer the called party by sending the DTMF sequence defined in `features.conf`.

` `

Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-touch recording in `features.conf`.

` `

Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-touch recording in `features.conf`.

` `

Cause the called party to be hung up after the bridge, instead of being restarted in the dialplan.

``

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.

    			Retrieve a parked call.

`

Parking space extension to retrieve a parked call. If not provided then the first available parked call in the parking lot will be retrieved.

` `

Specify from which parking lot to retrieve a parked call.

The parking lot used is selected in the following order:

1) parking_lot_name option

2) PARKINGLOT variable

3) `CHANNEL(parkinglot)` function (Possibly preset by the channel driver.)

4) Default parking lot.

`

Used to retrieve a parked call from a parking lot.

Parking lots automatically create and manage dialplan extensions in the parking lot context. You do not need to explicitly use this application in your dialplan. Instead, all you should do is include the parking lot context in your dialplan.

Park ParkAndAnnounce

    			Park yourself.

`

A custom parking timeout for this parked call. Value in milliseconds.

` `

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.

`

Send ringing instead of MOH to the parked call.

` `

Randomize the selection of a parking space.

` `

Silence announcement of the parking space number.

`` `

Specify in which parking lot to park a call.

The parking lot used is selected in the following order:

1) parking_lot_name option

2) PARKINGLOT variable

3) `CHANNEL(parkinglot)` function (Possibly preset by the channel driver.)

4) Default parking lot.

`

Used to park yourself (typically in combination with a supervised transfer to know the parking space).

If you set the PARKINGEXTEN variable to a parking space extension in the parking lot, Park() will attempt to park the call on that extension. If the extension is already is in use then execution will continue at the next priority.

If the `parkeddynamic` option is enabled in `features.conf` the following variables can be used to dynamically create new parking lots.

If you set the PARKINGDYNAMIC variable and this parking lot exists then it will be used as a template for the newly created dynamic lot. Otherwise, the default parking lot will be used.

If you set the PARKINGDYNCONTEXT variable then the newly created dynamic parking lot will use this context.

If you set the PARKINGDYNEXTEN variable then the newly created dynamic parking lot will use this extension to access the parking lot.

If you set the PARKINGDYNPOS variable then the newly created dynamic parking lot will use those parking postitions.

This application must be used as the first extension priority to be recognized as a parking access extension. DTMF transfers and some channel drivers need this distinction to operate properly. The parking access extension in this case is treated like a dialplan hint.

Parking lots automatically create and manage dialplan extensions in the parking lot context. You do not need to explicitly use this application in your dialplan. Instead, all you should do is include the parking lot context in your dialplan.

ParkAndAnnounce ParkedCall

    			List parked calls.

List parked calls.

    			Park a channel.

Channel name to park.

Channel to return to if timeout.

Number of milliseconds to wait before callback.

Specify in which parking lot to park the channel.

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.

    			Get a list of parking lots

List all parking lots as a series of AMI events

    			Get or set a feature option on a channel.

The allowed values are:

Specified in seconds.

When this function is used as a read, it will get the current value of the specified feature option for this channel. It will be the value of this option configured in features.conf if a channel specific value has not been set. This function can also be used to set a channel specific value for the supported feature options.

FEATUREMAP

    			Get or set a feature map to a given value on a specific channel.

The allowed values are:

Attended Transfer

Blind Transfer

Auto Monitor

Call Disconnect

Park Call

Auto MixMonitor

When this function is used as a read, it will get the current digit sequence mapped to the specified feature for this channel. This value will be the one configured in features.conf if a channel specific value has not been set. This function can also be used to set a channel specific value for a feature mapping.

FEATURE

    Raised when a parked call times out.

The parking lot extension.

The name of the parking lot.

ParkedCall

    Raised when a parked call hangs up while in the parking lot.

ParkedCall

    			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.

Username to login with as specified in manager.conf.

Secret to login with as specified in manager.conf.

Login Manager.

    			Generate Challenge for MD5 Auth.

Digest algorithm to use in the challenge. Valid values are:

Generate a challenge for MD5 authentication.

    			Hangup channel.

The exact channel name to be hungup, or to use a regular expression, set this parameter to: /regex/

Example exact channel: SIP/provider-0000012a

Example regular expression: /^SIP/provider-.*$/

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.

If a channel name is not provided then the variable is global.

    			Gets a channel variable.

Channel to read variable from.

Variable name.

Get the value of a global or local channel variable.

If a channel name is not provided then the variable is global.

    			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.

Extension to transfer extrachannel to (optional).

Context to transfer to.

Context to transfer extrachannel to (optional).

Priority to transfer to.

Priority to transfer extrachannel to (optional).

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` to force call bridge on early media..

Set to `true` for fast origination.

Comma-separated list of codecs to use for this call.

Generates an outgoing call to a Extension/Context/Priority or Application/Data

OriginateResponse

    Raised in response to an Originate command.

Originate

    			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.

    			Check Presence State

Presence Provider to check the state of

Report the presence state for the given presence provider.

Will return a `Presence State` message. The response will include the presence state and, if set, a presence subtype and custom message.

    			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 whether there are messages waiting.

Message: Mailbox Status.

Mailbox: mailboxid.

Waiting: `0` if messages waiting, `1` if no messages waiting.

    			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 Count

Mailbox: mailboxid

UrgentMessages: count

NewMessages: count

OldMessages: 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. Subsystem identifiers may only be reloaded.

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.

    			Generate an Advice of Charge message on a channel.

Channel name to generate the AOC message on.

Partial channel prefix. By using this option one can match the beginning part of a channel name without having to put the entire name in. For example if a channel name is SIP/snom-00000001 and this value is set to SIP/snom, then that channel matches and the message will be sent. Note however that only the first matched channel has the message sent on it.

Defines what type of AOC message to create, AOC-D or AOC-E

Defines what kind of charge this message represents.

This represents the amount of units charged. The ETSI AOC standard specifies that this value along with the optional UnitType value are entries in a list. To accommodate this these values take an index value starting at 0 which can be used to generate this list of unit entries. For Example, If two unit entires were required this could be achieved by setting the paramter UnitAmount(0)=1234 and UnitAmount(1)=5678. Note that UnitAmount at index 0 is required when ChargeType=Unit, all other entries in the list are optional.

Defines the type of unit. ETSI AOC standard specifies this as an integer value between 1 and 16, but this value is left open to accept any positive integer. Like the UnitAmount parameter, this value represents a list entry and has an index parameter that starts at 0.

Specifies the currency's name. Note that this value is truncated after 10 characters.

Specifies the charge unit amount as a positive integer. This value is required when ChargeType==Currency.

Specifies the currency multiplier. This value is required when ChargeType==Currency.

Defines what kind of AOC-D total is represented.

Represents a billing ID associated with an AOC-D or AOC-E message. Note that only the first 3 items of the enum are valid AOC-D billing IDs

Charging association identifier. This is optional for AOC-E and can be set to any value between -32768 and 32767

Represents the charging association party number. This value is optional for AOC-E.

Integer representing the charging plan associated with the ChargingAssociationNumber. The value is bits 7 through 1 of the Q.931 octet containing the type-of-number and numbering-plan-identification fields.

Generates an AOC-D or AOC-E message on a channel.

    			Checks attributes of manager accounts

Login name, specified in manager.conf

The manager account attribute to return

The number of sessions for this AMI account

Currently, the only supported parameter is "sessions" which will return the current number of active sessions for this AMI account.

    			Dynamically add filters for the current manager session.

Add a filter.

Filters can be whitelist or blacklist

Example whitelist filter: "Event: Newchannel"

Example blacklist filter: "!Channel: DAHDI.*"

This filter option is used to whitelist or blacklist events per user to be reported with regular expressions and are allowed if both the regex matches and the user has read access as defined in manager.conf. Filters are assumed to be for whitelisting unless preceeded by an exclamation point, which marks it as being black. Evaluation of the filters is as follows:

- If no filters are configured all events are reported as normal.

- If there are white filters only: implied black all filter processed first, then white filters.

- If there are black filters only: implied white all filter processed first, then black filters.

- If there are both white and black filters: implied black all filter processed first, then white filters, and lastly black filters.

The filters added are only used for the current session. Once the connection is closed the filters are removed.

This comand requires the system permission because this command can be used to create filters that may bypass filters defined in manager.conf

    			Show current event filters for this session

The filters displayed are for the current session. Only those filters defined in manager.conf will be present upon starting a new session.

    			Create a message or read fields from a message.

Field of the message to get or set.

Read-only. The destination of the message. When processing an incoming message, this will be set to the destination listed as the recipient of the message that was received by Asterisk.

Read-only. The source of the message. When processing an incoming message, this will be set to the source of the message.

Write-only. Mark or unmark all message headers for an outgoing message. The following values can be set:

Mark all headers for an outgoing message.

Unmark all headers for an outgoing message.

Read/Write. The message body. When processing an incoming message, this includes the body of the message that Asterisk received. When MessageSend() is executed, the contents of this field are used as the body of the outgoing message. The body will always be UTF-8.

This function will read from or write a value to a text message. It is used both to read the data out of an incoming message, as well as modify or create a message that will be sent outbound.

MessageSend

    			Read or write custom data attached to a message.

Field of the message to get or set.

This function will read from or write a value to a text message. It is used both to read the data out of an incoming message, as well as modify a message that will be sent outbound.

If you want to set an outbound message to carry data in the current message, do Set(MESSAGE_DATA(key)=${MESSAGE_DATA(key)}).

MessageSend

    			Send a text message.

`

A To URI for the message.

` `

A From URI for the message if needed for the message technology being used to send this message.

`

Send a text message. The body of the message that will be sent is what is currently set to `MESSAGE(body)`. The technology chosen for sending the message is determined based on a prefix to the `to` parameter.

This application sets the following channel variables:

This is the message delivery status returned by this application.

No handler for the technology part of the URI was found.
The protocol handler reported that the URI was not valid.
Successfully passed on to the protocol handler, but delivery has not necessarily been guaranteed.
The protocol handler reported that it was unabled to deliver the message for some reason.

    			Send an out of call message to an endpoint.

The URI the message is to be sent to.

A From URI for the message if needed for the message technology being used to send this message.

The message body text. This must not contain any newlines as that conflicts with the AMI protocol.

Text bodies requiring the use of newlines have to be base64 encoded in this field. Base64Body will be decoded before being sent out. Base64Body takes precedence over Body.

Message variable to set, multiple Variable: headers are allowed. The header value is a comma separated list of name=value pairs.

    			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.

`` ``

Causes the playback of the message to be skipped if the channel is not in the `up` state (i.e. it hasn't been answered yet). If this happens, the application will return immediately.

` `

Don't answer the channel before playing the files.

` `

Only break if a digit hit matches a one digit extension in the destination context.

`` `

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.

ControlPlayback WaitExten BackgroundDetect TIMEOUT

    			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.

Congestion Progress Playtones Hangup

    			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.

Busy Progress Playtones Hangup

    			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.

Exec ExecIf TryExec GotoIfTime

    			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 neither the `h` nor `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!

GotoIf GotoIfTime Gosub Macro

    			Conditional goto.

`` `

Continue at labeliftrue if the condition is true. Takes the form similar to Goto() of [[context,]extension,]priority.

Continue at labeliffalse if the condition is false. Takes the form similar to Goto() of [[context,]extension,]priority.

`

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 neither the `h` nor `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!.

Goto GotoIfTime GosubIf MacroIf

    			Conditional Goto based on the current time.

`` `

Continue at labeliftrue if the condition is true. Takes the form similar to Goto() of [[context,]extension,]priority.

Continue at labeliffalse if the condition is false. Takes the form similar to Goto() of [[context,]extension,]priority.

`

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.

GotoIf Goto IFTIME TESTTIME

    			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.

Answer Busy Congestion

    			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.

Verbose Log

    			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.

Busy Congestion Ringing Playtones

    			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.

``

Store the current CDR record before resetting it.

` `

Store any stacked records.

` `

Save CDR variables.

` `

Enable CDR only (negate effects of NoCDR).

``

This application causes the Call Data Record to be reset.

ForkCDR NoCDR

    			Indicate ringing tone.

This application will request that the channel indicate a ringing tone to the user.

Busy Congestion Progress Playtones

    			Say Alpha.

``

This application will play the sounds that correspond to the letters of the given string.

SayDigits SayNumber SayPhonetic CHANNEL

    			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.

SayAlpha SayNumber SayPhonetic CHANNEL

    			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 CHANNEL() function for more information on setting the language for the channel.

SayAlpha SayDigits SayPhonetic CHANNEL

    			Say Phonetic.

``

This application will play the sounds from the phonetic alphabet that correspond to the letters in the given string.

SayAlpha SayDigits SayNumber

    			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.4` under that, then the behavior of this app changes, and strips surrounding quotes from the right hand side as it did previously in 1.4. 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.

MSet GLOBAL SET ENV

    			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.

` ``

Provide music on hold to the caller while waiting for an extension.

Specify the class for music on hold. CHANNEL(musicclass) will be used instead if set

``

This application waits for the user to enter a new extension for a specified number of seconds.

Background TIMEOUT `

    			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() application

The 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` `

    			Sets a time to be used with the channel to test logical conditions.

`

Date in ISO 8601 format

` `

Time in HH:MM:SS format (24-hour time)

` `

Timezone name

`

To test dialplan timing conditions at times other than the current time, use this function to set an alternate date and time. For example, you may wish to evaluate whether a location will correctly identify to callers that the area is closed on Christmas Day, when Christmas would otherwise fall on a day when the office is normally open.

GotoIfTime`

    			Show dialplan contexts and extensions

`

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 listener 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 controlled 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 receive 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 a 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 channels

Receives 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 preceded 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 specified 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. This generator will be stopped automatically when playing a file.

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. If musiconhold is playing before calling stream file it will be automatically stopped and will not be restarted after completion.

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 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 inline with the command dialog. Both of theses signals may be disabled by setting the AGISIGHUP channel variable to `no` before executing the AGI application. Alternatively, if you would like the AGI application to exit immediately after a channel hangup is detected, set the AGIEXITONHANGUP variable to `yes`.

Use the CLI command `agi show commands` 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:

EAGI DeadAGI

    			Executes an EAGI compliant application.

Using 'EAGI' provides enhanced AGI, with incoming audio available out of band on file descriptor 3.

AGI DeadAGI

    			Executes AGI on a hungup channel.

AGI EAGI

    			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.

CALENDAR_EVENT
CALENDAR_QUERY
CALENDAR_QUERY_RESULT
CALENDAR_WRITE

    			Get calendar event notification data from a notification call.

The VEVENT SUMMARY property or Exchange event 'subject'

The text description of the event

The organizer of the event

The location of the eventt

The categories of the event

The priority of the event

The name of the calendar associated with the event

The unique identifier for this event

The start time of the event

The end time of the event

The busy state of the event 0=FREE, 1=TENTATIVE, 2=BUSY

Whenever a calendar event notification call is made, the event data may be accessed with this function.

CALENDAR_BUSY
CALENDAR_QUERY
CALENDAR_QUERY_RESULT
CALENDAR_WRITE

    Query a calendar server and store the data on a channel

The calendar that should be queried

The 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()

CALENDAR_BUSY
CALENDAR_EVENT
CALENDAR_QUERY_RESULT
CALENDAR_WRITE

    			Retrieve data from a previously run CALENDAR_QUERY() call

The query ID returned by `CALENDAR_QUERY`

number of events occurring during time range

A summary of the event

The full event description

The event organizer

The event location

The categories of the event

The priority of the event

The name of the calendar associted with the event

The unique identifier for the event

The 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=BUSY

Return data from a specific event returned by the query

After 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.

CALENDAR_BUSY
CALENDAR_EVENT
CALENDAR_QUERY
CALENDAR_WRITE

    Write an event to a calendar

The calendar to write to

A summary of the event

The full event description

The event organizer

The event location

The categories of the event

The priority of the event

The unique identifier for the event

The 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=BUSY

Example: CALENDAR_WRITE(calendar,field1,field2,field3)=val1,val2,val3

The field and value arguments can easily be set/passed using the HASHKEYS() and HASH() functions

The status of the write operation to the calendar

The event was successfully written to the calendar.
The event was not written to the calendar due to network issues, permissions, etc.

CALENDAR_BUSY
CALENDAR_EVENT
CALENDAR_QUERY
CALENDAR_QUERY_RESULT

    			Receive a FAX and save as a TIFF/F file.

`` ``

Enable FAX debugging.

` `

Allow audio fallback FAX transfer on T.38 capable channels.

` `

Force usage of audio mode on T.38 capable channels.

` `

Send progress Manager events (overrides statusevents setting in res_fax.conf).

``

This application is provided by res_fax, which is a FAX technology agnostic module that utilizes FAX technology resource modules to complete a FAX transmission.

Session arguments can be set by the FAXOPT function and to check results of the ReceiveFax() application.

FAXOPT

    			Sends a specified TIFF/F file as a FAX.

`

TIFF file to send as a FAX.

` ``

Enable FAX debugging.

` `

Allow audio fallback FAX transfer on T.38 capable channels.

` `

Force usage of audio mode on T.38 capable channels.

` `

Send progress Manager events (overrides statusevents setting in res_fax.conf).

` `

Initiate a T.38 reinvite on the channel if the remote end does not.

``

This application is provided by res_fax, which is a FAX technology agnostic module that utilizes FAX technology resource modules to complete a FAX transmission.

Session arguments can be set by the FAXOPT function and to check results of the SendFax() application.

FAXOPT `

    			Gets/sets various pieces of information about a fax session.

`

R/W Error Correction Mode (ECM) enable with 'yes', disable with 'no'.

R/O FAX transmission error code upon failure.

R/O Filename of the first file of the FAX transmission.

R/O Filenames of all of the files in the FAX transmission (comma separated).

R/W FAX header information.

R/W Local Station Identification.

R/W Minimum transfer rate set before transmission.

R/W Maximum transfer rate set before transmission.

R/W Modem type (v17/v27/v29).

R/W T38 fax gateway, with optional fax activity timeout in seconds (yes[,timeout]/no)

R/W Enable FAX detect with optional timeout in seconds (yes,t38,cng[,timeout]/no)

R/O Number of pages transferred.

R/O Negotiated transmission rate.

R/O Remote Station Identification after transmission.

R/O Negotiated image resolution after transmission.

R/O Session ID of the FAX transmission.

R/O Result Status of the FAX transmission.

R/O Verbose Result Status of the FAX transmission.

`

FAXOPT can be used to override the settings for a FAX session listed in `res_fax.conf`, it can also be used to retreive information about a FAX session that has finished eg. pages/status.

ReceiveFax SendFax`

    			Sends an XMPP message to a buddy.

`

The local named account to listen on (specified in jabber.conf)

` `

Jabber ID of the buddy to send the message to. It can be a bare JID (username@domain) or a full JID (username@domain/resource).

` `

The message to send.

`

Sends the content of message as text message from the given account to the buddy identified by jid

Example: JabberSend(asterisk,bob@domain.com,Hello world) sends "Hello world" to bob@domain.com as an XMPP message from the account asterisk, configured in jabber.conf.

JABBER_STATUS JABBER_RECEIVE `

    			Reads XMPP messages.

`

The local named account to listen on (specified in jabber.conf)

` `

Jabber ID of the buddy to receive message from. It can be a bare JID (username@domain) or a full JID (username@domain/resource).

` `

In seconds, defaults to `20`.

`

Receives a text message on the given account from the buddy identified by jid and returns the contents.

Example: ${JABBER_RECEIVE(asterisk,bob@domain.com)} returns an XMPP message sent from bob@domain.com (or nothing in case of a time out), to the asterisk XMPP account configured in jabber.conf.

JABBER_STATUS JabberSend` `

    			Retrieves a buddy's status.

`

The local named account to listen on (specified in jabber.conf)

` `

Jabber ID of the buddy to receive message from. It can be a bare JID (username@domain) or a full JID (username@domain/resource).

`

Retrieves the numeric status associated with the buddy identified by jid. If the buddy does not exist in the buddylist, returns 7.

Status will be 1-7.

1=Online, 2=Chatty, 3=Away, 4=XAway, 5=DND, 6=Offline

If not in roster variable will be set to 7.

Example: ${JABBER_STATUS(asterisk,bob@domain.com)} returns 1 if bob@domain.com is online. asterisk is the associated XMPP account configured in jabber.conf.

JABBER_RECEIVE JabberSend`

    			Send a Jabber Message to a specified chat room

`

Client or transport Asterisk uses to connect to Jabber.

` `

XMPP/Jabber JID (Name) of chat room.

` `

Message to be sent to the chat room.

` `

The nickname Asterisk uses in the chat room.

`

Allows user to send a message to a chat room via XMPP.

To be able to send messages to a chat room, a user must have previously joined it. Use the JabberJoin function to do so.

    			Join a chat room

`

Client or transport Asterisk uses to connect to Jabber.

` `

XMPP/Jabber JID (Name) of chat room.

` `

The nickname Asterisk will use in the chat room.

If a different nickname is supplied to an already joined room, the old nick will be changed to the new one.

`

Allows Asterisk to join a chat room.

    			Leave a chat room

`

Client or transport Asterisk uses to connect to Jabber.

` `

XMPP/Jabber JID (Name) of chat room.

` `

The nickname Asterisk uses in the chat room.

`

Allows Asterisk to leave a chat room.

    			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.

    			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 `wav`

` `

if set, changes the filename used to the one specified.

` ``

when the recording ends mix the two leg files into one and delete the two leg files. If the variable MONITOR_EXEC is set, the application referenced in it will be executed instead of soxmix/sox and the raw leg files will NOT be deleted automatically. soxmix/sox or MONITOR_EXEC is handed 3 arguments, the two leg files and a target mixed file name which is the same as the leg file names only without the in/out designator.

If MONITOR_EXEC_ARGS is set, the contents will be passed on as additional arguments to MONITOR_EXEC. Both MONITOR_EXEC and the Mix flag can be set from the administrator interface.

` `

Don't begin recording unless a call is bridged to another channel.

` `

Skip recording of input stream (disables `m` option).

` `

Skip recording of output stream (disables `m` option).

``

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.

    			Play Music On Hold indefinitely.

`` ``

Plays hold music specified by class. If omitted, the default music source for the channel will be used. Change the default class with Set(CHANNEL(musicclass)=...). If duration is given, hold music will be played specified number of seconds. If duration is ommited, music plays indefinitely. Returns `0` when done, `-1` on hangup.

This application does not automatically answer and should be preceeded by an application such as Answer() or Progress().

    			Wait, playing Music On Hold.

``

!!! DEPRECATED. Use MusicOnHold instead !!!

Plays hold music specified number of seconds. Returns `0` when done, or `-1` on hangup. If no hold music is available, the delay will still occur with no sound.

!!! DEPRECATED. Use MusicOnHold instead !!!

    			Set default Music On Hold class.

``

!!! DEPRECATED. USe Set(CHANNEL(musicclass)=...) instead !!!

Sets the default class for music on hold for a given channel. When music on hold is activated, this class will be used to select which music is played.

!!! DEPRECATED. USe Set(CHANNEL(musicclass)=...) instead !!!

    			Play Music On Hold.

``

Starts playing music on hold, uses default music class for channel. Starts playing music specified by class. If omitted, the default music source for the channel will be used. Always returns `0`.

    			Stop playing Music On Hold.

Stops playing music on hold.

    			Muting audio streams in the channel

Must be one of

Inbound stream (to the PBX)

Outbound stream (from the PBX)

Both streams

The MUTEAUDIO function can be used to mute inbound (to the PBX) or outbound audio in a call.

Examples:

MUTEAUDIO(in)=on

MUTEAUDIO(in)=off

    			Mute an audio stream.

The channel you want to mute.

Set muting on inbound audio stream. (to the PBX)

Set muting on outbound audio stream. (from the PBX)

Set muting on inbound and outbound audio streams.

Turn muting on.

Turn muting off.

Mute an incoming or outgoing audio stream on a channel.

    			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.

    			Execute specified template for each extension.

Output the specified template for each extension associated with the specified MAC address.

    			Generate a string for each phoneprov user.

Pass in a string, with phoneprov variables you want substituted in the format of %{VARNAME}, and you will get the string rendered for each user in phoneprov excluding ones with MAC address exclude_mac. Probably not useful outside of res_phoneprov.

Example: ${PP_EACH_USER(<item><fn>%{DISPLAY_NAME}</fn></item>|${MAC})

    			Retrieve an SMDI message.

Instead of searching on the forwarding station, search on the message desk terminal.

Instead of searching on the forwarding station, search on the message desk number.

This function is used to retrieve an incoming SMDI message. It returns an ID which can be used with the SMDI_MSG() function to access details of the message. Note that this is a destructive function in the sense that once an SMDI message is retrieved using this function, it is no longer in the global SMDI message queue, and can not be accessed by any other Asterisk channels. The timeout for this function is optional, and the default is 3 seconds. When providing a timeout, it should be in milliseconds.

The default search is done on the forwarding station ID. However, if you set one of the search key options in the options field, you can change this behavior.

SMDI_MSG

    			Retrieve details about an SMDI message.

Valid message components are:

The message desk number

The message desk terminal

The forwarding station

The callerID of the calling party that was forwarded

The call type. The value here is the exact character that came in on the SMDI link. Typically, example values are:

Options:

Direct Calls

Forward All Calls

Forward Busy Calls

Forward No Answer Calls

This function is used to access details of an SMDI message that was pulled from the incoming SMDI message queue using the SMDI_MSG_RETRIEVE() function.

SMDI_MSG_RETRIEVE

    			Sends an XMPP message to a buddy.

`

The local named account to listen on (specified in xmpp.conf)

` `

Jabber ID of the buddy to send the message to. It can be a bare JID (username@domain) or a full JID (username@domain/resource).

` `

The message to send.

`

Sends the content of message as text message from the given account to the buddy identified by jid

Example: JabberSend(asterisk,bob@domain.com,Hello world) sends "Hello world" to bob@domain.com as an XMPP message from the account asterisk, configured in xmpp.conf.

JABBER_STATUS JABBER_RECEIVE `

    			Reads XMPP messages.

`

The local named account to listen on (specified in xmpp.conf)

` `

Jabber ID of the buddy to receive message from. It can be a bare JID (username@domain) or a full JID (username@domain/resource).

` `

In seconds, defaults to `20`.

`

Receives a text message on the given account from the buddy identified by jid and returns the contents.

Example: ${JABBER_RECEIVE(asterisk,bob@domain.com)} returns an XMPP message sent from bob@domain.com (or nothing in case of a time out), to the asterisk XMPP account configured in xmpp.conf.

JABBER_STATUS JabberSend` `

    			Retrieves a buddy's status.

`

The local named account to listen on (specified in xmpp.conf)

` `

Jabber ID of the buddy to receive message from. It can be a bare JID (username@domain) or a full JID (username@domain/resource).

`

Retrieves the numeric status associated with the buddy identified by jid. If the buddy does not exist in the buddylist, returns 7.

Status will be 1-7.

1=Online, 2=Chatty, 3=Away, 4=XAway, 5=DND, 6=Offline

If not in roster variable will be set to 7.

Example: ${JABBER_STATUS(asterisk,bob@domain.com)} returns 1 if bob@domain.com is online. asterisk is the associated XMPP account configured in xmpp.conf.

JABBER_RECEIVE JabberSend`

    			Send a Jabber Message to a specified chat room

`

Client or transport Asterisk uses to connect to Jabber.

` `

XMPP/Jabber JID (Name) of chat room.

` `

Message to be sent to the chat room.

` `

The nickname Asterisk uses in the chat room.

`

Allows user to send a message to a chat room via XMPP.

To be able to send messages to a chat room, a user must have previously joined it. Use the JabberJoin function to do so.

    			Join a chat room

`

Client or transport Asterisk uses to connect to Jabber.

` `

XMPP/Jabber JID (Name) of chat room.

` `

The nickname Asterisk will use in the chat room.

If a different nickname is supplied to an already joined room, the old nick will be changed to the new one.

`

Allows Asterisk to join a chat room.

    			Leave a chat room

`

Client or transport Asterisk uses to connect to Jabber.

` `

XMPP/Jabber JID (Name) of chat room.

` `

The nickname Asterisk uses in the chat room.

`

Allows Asterisk to leave a chat room.

    			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.

    			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.

Specifying a prefix of `xmpp:` will send the message as an XMPP chat message.

Specifying a prefix of `xmpp:` will specify the account defined in `xmpp.conf` to send the message from. Note that this field is required for XMPP messages.

    			Say Polish counting words.

`` `` `` ``

Polish grammar has some funny rules for counting words. for example 1 zloty, 2 zlote, 5 zlotych. This application will take the words for 1, 2-4 and 5 and decide based on grammar rules which one to use with the number you pass to it.

Example: SayCountPL(zloty,zlote,zlotych,122) will give: zlote