174 applications total
Application | Synopsis |
---|---|
AgentLogin | Call agent login. |
AgentMonitorOutgoing | Record agent's outgoing call. |
DAHDISendKeypadFacility | Send digits out of band over a PRI. |
DAHDISendCallreroutingFacility | Send QSIG call rerouting facility over a PRI. |
DAHDIAcceptR2Call | Accept an R2 call if its not already accepted (you still need to answer it) |
IAX2Provision | Provision a calling IAXy with a given template. |
SIPDtmfMode | Change the dtmfmode for a SIP call. |
SIPAddHeader | Add a SIP header to the outbound call. |
SIPRemoveHeader | Remove SIP headers previously added with SIPAddHeader |
ADSIProg | Load Asterisk ADSI Scripts into phone |
AlarmReceiver | Provide support for receiving alarm reports from a burglar or fire alarm panel. |
AMD | Attempt to detect answering machines. |
Authenticate | Authenticate a user |
NoCDR | Tell Asterisk to not maintain a CDR for the current call |
ChanIsAvail | Check channel availability |
ChannelRedirect | Redirects given channel to a dialplan target |
ChanSpy | Listen to a channel, and optionally whisper into it. |
ExtenSpy | Listen to a channel, and optionally whisper into it. |
DAHDIScan | Scan DAHDI channels to monitor calls. |
ConfBridge | Conference bridge application. |
ControlPlayback | Play a file with fast forward and rewind. |
DAHDIBarge | Barge in (monitor) DAHDI channel. |
DAHDIRAS | Executes DAHDI ISDN RAS application. |
DBdel | Delete a key from the asterisk database. |
DBdeltree | Delete a family or keytree from the asterisk database. |
Dial | Attempt to connect to another device or endpoint and bridge the call. |
RetryDial | Place a call, retrying on failure allowing an optional exit extension. |
Dictate | Virtual Dictation Machine. |
Pickup | Directed extension call pickup. |
PickupChan | Pickup a ringing channel. |
Directory | Provide directory of voicemail extensions. |
DISA | Direct Inward System Access. |
DumpChan | Dump Info About The Calling Channel. |
Echo | Echo audio, video, DTMF back to the calling party |
Exec | Executes dialplan application. |
TryExec | Executes dialplan application, always returning. |
ExecIf | Executes dialplan application, conditionally. |
SendFAX | Send a Fax |
ReceiveFAX | Receive a Fax |
Festival | Say text to the user. |
Flash | Flashes a DAHDI Trunk. |
FollowMe | Find-Me/Follow-Me application. |
ForkCDR | Forks the Call Data Record. |
GetCPEID | Get ADSI CPE ID. |
ICES | Encode and stream using 'ices'. |
SendImage | Sends an image file. |
IVRDemo | IVR Demo Application. |
JACK | Jack Audio Connection Kit |
Macro | Macro Implementation. |
MacroIf | Conditional Macro implementation. |
MacroExclusive | Exclusive Macro Implementation. |
MacroExit | Exit from Macro. |
MeetMe | MeetMe conference bridge. |
MeetMeCount | MeetMe participant count. |
MeetMeAdmin | MeetMe conference administration. |
MeetMeChannelAdmin | MeetMe conference Administration (channel specific). |
SLAStation | Shared Line Appearance Station. |
SLATrunk | Shared Line Appearance Trunk. |
Milliwatt | Generate a Constant 1004Hz tone at 0dbm (mu-law). |
MinivmRecord | Receive Mini-Voicemail and forward via e-mail. |
MinivmGreet | Play Mini-Voicemail prompts. |
MinivmNotify | Notify voicemail owner about new messages. |
MinivmDelete | Delete Mini-Voicemail voicemail messages. |
MinivmAccMess | Record account specific messages. |
MinivmMWI | Send Message Waiting Notification to subscriber(s) of mailbox. |
MixMonitor | Record a call and mix the audio during the recording. |
StopMixMonitor | Stop recording a call through MixMonitor. |
Morsecode | Plays morse code. |
MP3Player | Play an MP3 file or stream. |
NBScat | Play an NBS local stream. |
Originate | Originate a call. |
Page | Page series of phones |
ParkAndAnnounce | Park and Announce. |
Playback | Play a file. |
PlayTones | Play a tone list. |
StopPlayTones | Stop playing a tone list. |
PrivacyManager | Require phone number to be entered, if no CallerID sent |
Queue | Queue a call for a call queue. |
AddQueueMember | Dynamically adds queue members. |
RemoveQueueMember | Dynamically removes queue members. |
PauseQueueMember | Pauses a queue member. |
UnpauseQueueMember | Unpauses a queue member. |
QueueLog | Writes to the queue_log file. |
Read | Read a variable. |
ReadExten | Read an extension into a variable. |
ReadFile | Read the contents of a text file into a channel variable. |
Record | Record to a file. |
SayUnixTime | Says a specified time in a custom format. |
DateTime | Says a specified time in a custom format. |
SendDTMF | Sends arbitrary DTMF digits |
SendText | Send a Text Message. |
SetCallerPres | Set CallerID Presentation. |
Skel | Simple one line explaination. |
SMS | Communicates with SMS service centres and SMS capable analogue phones. |
SoftHangup | Hangs up the requested channel. |
SpeechCreate | Create a Speech Structure. |
SpeechActivateGrammar | Activate a grammar. |
SpeechStart | Start recognizing voice in the audio stream. |
SpeechBackground | Play a sound file and wait for speech to be recognized. |
SpeechDeactivateGrammar | Deactivate a grammar. |
SpeechProcessingSound | Change background processing sound. |
SpeechDestroy | End speech recognition. |
SpeechLoadGrammar | Load a grammar. |
SpeechUnloadGrammar | Unload a grammar. |
Gosub | Jump to label, saving return address. |
GosubIf | Conditionally jump to label, saving return address. |
Return | Return from gosub routine. |
StackPop | Remove one address from gosub stack. |
System | Execute a system command. |
TrySystem | Try executing a system command. |
BackgroundDetect | Background a file with talk detect. |
TestServer | Execute Interface Test Server. |
TestClient | Execute Interface Test Client. |
Transfer | Transfer caller to remote extension. |
SendURL | Send a URL. |
UserEvent | Send an arbitrary event to the manager interface. |
Verbose | Send arbitrary text to verbose output. |
Log | Send arbitrary text to a selected log level. |
VoiceMail | Leave a Voicemail message. |
VoiceMailMain | Check Voicemail messages. |
MailboxExists | Check to see if Voicemail mailbox exists. |
VMAuthenticate | Authenticate with Voicemail passwords. |
WaitForRing | Wait for Ring Application. |
WaitForSilence | Waits for a specified amount of silence. |
WaitForNoise | Waits for a specified amount of noise. |
WaitUntil | Wait (sleep) until the current time is the given epoch. |
While | Start a while loop. |
EndWhile | End a while loop. |
ExitWhile | End a While loop. |
ContinueWhile | Restart a While loop. |
Zapateller | Block telemarketers with SIT. |
ODBCFinish | Clear the resultset of a sucessful multirow query. |
ClearHash | Clear the keys from a specified hashname. |
Bridge | Bridge two channels. |
ParkedCall | Answer a parked call. |
Park | Park yourself. |
Answer | Answer a channel if ringing. |
BackGround | Play an audio file while waiting for digits of an extension to go to. |
Busy | Indicate the Busy condition. |
Congestion | Indicate the Congestion condition. |
ExecIfTime | Conditional application execution based on the current time. |
Goto | Jump to a particular priority, extension, or context. |
GotoIf | Conditional goto. |
GotoIfTime | Conditional Goto based on the current time. |
ImportVar | Import a variable from a channel into a new variable. |
Hangup | Hang up the calling channel. |
Incomplete | Returns AST_PBX_INCOMPLETE value. |
NoOp | Do Nothing (No Operation). |
Proceeding | Indicate proceeding. |
Progress | Indicate progress. |
RaiseException | Handle an exceptional condition. |
ResetCDR | Resets the Call Data Record. |
Ringing | Indicate ringing tone. |
SayAlpha | Say Alpha. |
SayDigits | Say Digits. |
SayNumber | Say Number. |
SayPhonetic | Say Phonetic. |
Set | Set channel variable or function value. |
MSet | Set channel variable(s) or function value(s). |
SetAMAFlags | Set the AMA Flags. |
Wait | Waits for some time. |
WaitExten | Waits for an extension to be entered. |
AGI | Executes an AGI compliant application. |
EAGI | Executes an EAGI compliant application. |
DeadAGI | Executes AGI on a hungup channel. |
JabberSend | Send a Jabber Message |
JabberStatus | Retrieve the status of a jabber list member |
Monitor | Monitor a channel. |
StopMonitor | Stop monitoring a channel. |
ChangeMonitor | Change monitoring filename of a channel. |
PauseMonitor | Pause monitoring of a channel. |
UnpauseMonitor | Unpause monitoring of a channel. |
ODBC_Commit | Commits a currently open database transaction. |
ODBC_Rollback | Rollback a currently open database transaction. |
AgentLogin([AgentNo[,options]])
AgentNo | (no description) | ||
options |
|
Asks the agent to login to the system. Always returns -1
.
While logged in, the agent can receive calls and will hear a beep
when a new call comes in. The agent can dump the call by pressing the star key.
AgentMonitorOutgoing([options])
options |
|
Tries to figure out the id of the agent who is placing outgoing call based on comparison of the callerid of the current interface and the global variable placed by the AgentCallbackLogin application. That's why it should be used only with the AgentCallbackLogin app. Uses the monitoring functions in chan_agent instead of Monitor application. That has to be configured in the agents.conf file.
Normally the app returns 0
unless the options are passed.
DAHDISendKeypadFacility(digits)
digits | (no description) |
This application will send the given string of digits in a Keypad Facility IE over the current channel.
DAHDISendCallreroutingFacility(destination[,original[,reason]])
destination |
Destination number. |
original |
Original called number. |
reason |
Diversion reason, if not specified defaults to |
This application will send a Callrerouting Facility IE over the current channel.
DAHDIAcceptR2Call(charge)
charge |
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.
IAX2Provision([template])
template |
If not specified, defaults to |
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.
SIPDtmfMode(mode)
mode | (no description) |
Changes the dtmfmode for a SIP call.
SIPAddHeader(Header,Content)
Header | (no description) |
Content | (no description) |
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
.
SIPRemoveHeader([Header])
Header | (no description) |
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
.
ADSIProg([script])
script |
adsi script to use. If not given uses the default script asterisk.adsi |
This application programs an ADSI Phone with the given script
AlarmReceiver()
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.
AMD([initialSilence[,greeting[,afterGreetingSilence[,totalAnalysis Time[,miniumWordLength[,betweenWordSilence[,maximumNumberOfWords[,silenceThreshold[,maximumWordLength]]]]]]]]])
initialSilence |
Is maximum initial silence duration before greeting. If this is exceeded set as MACHINE |
greeting |
is the maximum length of a greeting. If this is exceeded set as MACHINE |
afterGreetingSilence |
Is the silence after detecting a greeting. If this is exceeded set as HUMAN |
totalAnalysis Time |
Is the maximum time allowed for the algorithm to decide HUMAN or MACHINE |
miniumWordLength |
Is the minimum duration of Voice considered to be a word |
betweenWordSilence |
Is the minimum duration of silence after a word to consider the audio that follows to be a new word |
maximumNumberOfWords |
Is the maximum number of words in a greeting If this is exceeded set as MACHINE |
silenceThreshold |
How long do we consider silence |
maximumWordLength |
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:
AMDSTATUS |
This is the status of the answering machine detection MACHINE HUMAN NOTSURE HANGUP |
AMDCAUSE |
Indicates the cause that led to the conclusion TOOLONG Total Time.INITIALSILENCE Silence Duration - Initial Silence.HUMAN Silence Duration - afterGreetingSilence.LONGGREETING Voice Duration - Greeting.MAXWORDLENGTH Word Count - maximum number of words. |
Authenticate(password[,options[,maxdigits[,prompt]]])
password |
Password the user should know |
||||||||
options |
|
||||||||
maxdigits |
maximum acceptable number of digits. Stops reading after
maxdigits have been entered (without requiring the user to press the |
||||||||
prompt |
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.
NoCDR()
This application will tell Asterisk not to maintain a CDR for the current call.
ChanIsAvail(Technology/Resource[,options])
Technology/Resource |
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
|
||||||
options |
|
This application will check to see if any of the specified channels are available.
This application sets the following channel variables:
AVAILCHAN |
The name of the available channel, if one exists |
AVAILORIGCHAN |
The canonical channel name that was used to create the channel |
AVAILSTATUS |
The status code for the available channel |
ChannelRedirect([[channel,context,]extension,]priority)
channel | (no description) |
context | (no description) |
extension | (no description) |
priority | (no description) |
Sends the specified channel to the specified extension priority
This application sets the following channel variables upon completion
CHANNELREDIRECT_STATUS |
NOCHANNEL SUCCESS Are set to the result of the redirection |
ChanSpy([chanprefix[,options]])
chanprefix | (no description) | ||||||||||||||||||||||||||||||||
options |
|
This application is used to listen to the audio from an Asterisk channel. This includes the audio
coming in and "out of the channel being spied on. If the chanprefix
parameter is specified,
only channels beginning with this string will be spied upon.
While spying, the following actions may be performed:
- Dialing #
cycles the volume level.
- Dialing *
will stop spying and look for another channel to spy on.
- Dialing a series of digits followed by #
builds a channel name to append
to 'chanprefix'. For example, executing ChanSpy(Agent) and then dialing the digits '1234#'
while spying will begin spying on the channel 'Agent/1234'. 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(exten[,options])
exten |
Specify extension. Optionally specify a context, defaults to |
||||||||||||||||||||||||||||||||
options |
|
This application is used to listen to the audio from an Asterisk channel. This includes the audio coming in and out of the channel being spied on. Only channels created by outgoing calls for the specified extension will be selected for spying. If the optional context is not supplied, the current channel's context will be used.
While spying, the following actions may be performed:
- Dialing #
cycles the volume level.
- Dialing *
will stop spying and look for another channel to spy on.
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.
DAHDIScan([group])
group |
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.
ConfBridge([confno[,options]])
confno |
The conference number |
||||||||||||||||||
options |
|
Enters the user into a specified conference bridge. The user can exit the conference by hangup only.
The join sound can be set using the CONFBRIDGE_JOIN_SOUND
variable and the leave sound can be set using the CONFBRIDGE_LEAVE_SOUND
variable. These can be unique to the caller.
ControlPlayback(filename[,skipms[,ff[,rew[,stop[,pause[,restart[,options]]]]]]])
filename | (no description) | ||
skipms |
This is number of milliseconds to skip when rewinding or fast-forwarding. |
||
ff |
Fast-forward when this DTMF digit is received. (defaults to |
||
rew |
Rewind when this DTMF digit is received. (defaults to |
||
stop |
Stop playback when this DTMF digit is received. |
||
pause |
Pause playback when this DTMF digit is received. |
||
restart |
Restart playback when this DTMF digit is received. |
||
options |
|
This application will play back the given filename.
It sets the following channel variables upon completion:
CPLAYBACKSTATUS |
Contains the status of the attempt as a text string SUCCESS USERSTOPPED ERROR |
CPLAYBACKOFFSET |
Contains the offset in ms into the file where playback
was at when it stopped. |
CPLAYBACKSTOPKEY |
If the playback is stopped by the user this variable contains the key that was pressed. |
DAHDIBarge([channel])
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.
DAHDIRAS(args)
args |
A list of parameters to pass to the pppd daemon,
separated by |
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.
DBdel(family,key)
family | (no description) |
key | (no description) |
This application will delete a key from the Asterisk database.
This application has been DEPRECATED in favor of the DB_DELETE function.
DBdeltree(family[,keytree])
family | (no description) |
keytree | (no description) |
This application will delete a family or keytree from the Asterisk database.
Dial(Technology/Resource[,timeout[,options[,URL]]])
Technology/Resource |
Specification of the device(s) to dial. These must be in the format of
Optional extra devices to dial in parallel If you need more then one enter them as Technology2/Resource2&Technology3/Resourse3&..... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timeout |
Specifies the number of seconds we attempt to dial the specified devices If not specified, this defaults to 136 years. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
options |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
URL |
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:
DIALEDTIME |
This is the time from dialing a channel until when it is disconnected. |
ANSWEREDTIME |
This is the amount of time for actual call. |
DIALSTATUS |
This is the status of the call CHANUNAVAIL CONGESTION NOANSWER BUSY ANSWER CANCEL DONTCALL For the Privacy and Screening Modes. Will be set if the called party chooses to send the calling party to the 'Go Away' script.TORTURE For the Privacy and Screening Modes. Will be set if the called party chooses to send the calling party to the 'torture' script.INVALIDARGS |
RetryDial(announce,sleep,retries,dialargs)
announce |
Filename of sound that will be played when no channel can be reached |
sleep |
Number of seconds to wait after a dial attempt failed before a new attempt is made |
retries |
Number of retries When this is reached flow will continue at the next priority in the dialplan |
dialargs |
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.
Dictate([base_dir[,filename]])
base_dir | (no description) |
filename | (no description) |
Start dictation machine using optional base_dir for files.
Pickup(ext[,ext2])
ext | (no description) |
ext2 | (no description) |
This application can pickup any ringing channel that is calling
the specified extension. If no context
is specified, the current context will be used. If you use the special string PICKUPMARK
for the context parameter, for example 10@PICKUPMARK, this application
tries to find a channel which has defined a PICKUPMARK
channel variable with the same value as extension
(in this example, 10
). When no parameter is specified, the application
will pickup a channel matching the pickup group of the active channel.
PickupChan(channel[,channel2])
channel | (no description) |
channel2 | (no description) |
This will pickup a specified channel if ringing.
Directory([vm-context[,dial-context[,options]]])
vm-context |
This is the context within voicemail.conf to use for the Directory. If not specified and
|
||||||||||||
dial-context |
This is the dialplan context to use when looking for an
extension that the user has selected, or when jumping to the
|
||||||||||||
options |
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 |
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.
DISA(passcode|filename[,context[,cid[,mailbox[,options]]]])
passcode|filename |
If you need to present a DISA dialtone without entering a password,
simply set passcode to You may specified a filename instead of a passcode, this filename must contain individual passcodes |
||||
context |
Specifies the dialplan context in which the user-entered extension
will be matched. If no context is specified, the DISA application defaults
to the |
||||
cid |
Specifies a new (different) callerid to be used for this call. |
||||
mailbox |
Will cause a stutter-dialtone (indication dialrecall) to be used, if the specified mailbox contains any new messages. |
||||
options |
|
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 ;
.
DumpChan([level])
level |
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.
Echo()
Echos back any audio, video or DTMF frames read from the calling channel back to itself. Note: If '#' detected application exits
Exec(appname)
appname |
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.
TryExec(appname)
appname | (no description) |
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:
TRYSTATUS |
SUCCESS If the application returned zero.FAILED If the application returned non-zero.NOAPP If the application was not found or was not specified. |
ExecIf(expression,execapp)
expression | (no description) |
execapp | (no description) |
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.
SendFAX(filename[,a])
filename |
Filename of TIFF file to fax |
a |
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:
LOCALSTATIONID |
To identify itself to the remote end |
LOCALHEADERINFO |
To generate a header line on each page |
FAXSTATUS |
SUCCESS FAILED |
FAXERROR |
Cause of failure |
REMOTESTATIONID |
The CSID of the remote side |
FAXPAGES |
Number of pages sent |
FAXBITRATE |
Transmission rate |
FAXRESOLUTION |
Resolution of sent fax |
ReceiveFAX(filename[,c])
filename |
Filename of TIFF file save incoming fax |
c |
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:
LOCALSTATIONID |
To identify itself to the remote end |
LOCALHEADERINFO |
To generate a header line on each page |
FAXSTATUS |
SUCCESS FAILED |
FAXERROR |
Cause of failure |
REMOTESTATIONID |
The CSID of the remote side |
FAXPAGES |
Number of pages sent |
FAXBITRATE |
Transmission rate |
FAXRESOLUTION |
Resolution of sent fax |
Festival(text[,intkeys])
text | (no description) |
intkeys | (no description) |
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).
Flash()
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.
FollowMe(followmeid[,options])
followmeid | (no description) | ||||||
options |
|
This application performs Find-Me/Follow-Me functionality for the caller as defined in the profile matching the followmeid parameter in followme.conf. If the specified followmeid profile doesn't exist in followme.conf, execution will be returned to the dialplan and call execution will continue at the next priority.
Returns -1 on hangup.
ForkCDR([options])
options |
|
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.
GetCPEID()
Obtains and displays ADSI CPE ID and other information in order to properly setup dahdi.conf for on-hook operations.
ICES(config)
config |
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.
SendImage(filename)
filename |
Path of the filename (image) to send. |
Send an image file on a channel supporting it.
Result of transmission will be stored in SENDIMAGESTATUS
SENDIMAGESTATUS |
SUCCESS Transmission succeeded.FAILURE Transmission failed.UNSUPPORTED Image transmission not supported by channel. |
IVRDemo(filename)
filename | (no description) |
This is a skeleton application that shows you the basic structure to create your own asterisk applications and demonstrates the IVR demo.
JACK([options])
options |
|
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(name[,args])
name |
The name of the macro |
args | (no description) |
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.
MacroIf(expr,destination)
expr | (no description) |
destination | (no description) |
Executes macro defined in macroiftrue if expr is true (otherwise macroiffalse if provided)
Arguments and return values as in application Macro()
MacroExclusive(name[,arg1[,arg2]])
name |
The name of the macro |
arg1 | (no description) |
arg2 | (no description) |
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()
MacroExit()
Causes the currently running macro to exit as if it had ended normally by running out of priorities to execute. If used outside a macro, will likely cause unexpected behavior.
MeetMe([confno[,options[,pin]]])
confno |
The conference number |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
options |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pin | (no description) |
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 at least one hardware driver (or dahdi_dummy)
must be present for conferencing to operate properly. In addition, the chan_dahdi channel driver
must be loaded for the i
and r
options to operate at
all.
MeetMeCount(confno[,var])
confno |
Conference number. |
var | (no description) |
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.
MeetMeAdmin(confno,command[,user])
confno | (no description) | ||||||||||||||||||||||||||||||||||||||||
command |
|
||||||||||||||||||||||||||||||||||||||||
user | (no description) |
Run admin command for conference confno.
Will additionally set the variable MEETMEADMINSTATUS with one of the following values:
MEETMEADMINSTATUS |
NOPARSE Invalid arguments.NOTFOUND User specified was not found.FAILED Another failure occurred.OK The operation was completed successfully. |
MeetMeChannelAdmin(channel,command)
channel | (no description) | ||||||
command |
|
Run admin command for a specific channel in any coference.
SLAStation(station)
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:
SLASTATION_STATUS |
FAILURE CONGESTION SUCCESS |
SLATrunk(trunk[,options])
trunk |
Trunk name |
||
options |
|
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:
SLATRUNK_STATUS |
FAILURE SUCCESS UNANSWERED RINGTIMEOUT |
Milliwatt([options])
options |
|
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.
MinivmRecord(mailbox[,options])
mailbox |
Voicemail username Voicemail domain |
||||||
options |
|
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.
MVM_RECORD_STATUS |
This is the status of the record operation SUCCESS USEREXIT FAILED |
MinivmGreet(mailbox[,options])
mailbox |
Voicemail username Voicemail domain |
||||||
options |
|
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.
MVM_GREET_STATUS |
This is the status of the greeting playback. SUCCESS USEREXIT FAILED |
MinivmNotify(mailbox[,options])
mailbox |
Voicemail username Voicemail domain |
||
options |
|
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.
MVM_NOTIFY_STATUS |
This is the status of the notification attempt SUCCESS FAILED |
MinivmDelete(filename)
filename |
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.
MVM_DELETE_STATUS |
This is the status of the delete operation. SUCCESS FAILED |
MinivmAccMess(mailbox[,options])
mailbox |
Voicemail username Voicemail domain |
||||||||
options |
|
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.
MVM_ACCMESS_STATUS |
This is the result of the attempt to record the specified greeting.
SUCCESS FAILED |
MinivmMWI(mailbox,urgent,new,old)
mailbox |
Voicemail username Voicemail domain |
urgent |
Number of urgent messages in mailbox. |
new |
Number of new messages in mailbox. |
old |
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.
MixMonitor(file[,options[,command]])
file |
If filename is an absolute path, uses that path, otherwise creates the file in the configured monitoring directory from asterisk.conf. |
||||||||||
options |
|
||||||||||
command |
Will be executed when the recording is over. Any strings matching All variables will be evaluated at the time MixMonitor is called. |
Records the audio on the current channel to the specified file.
MIXMONITOR_FILENAME |
Will contain the filename used to record. |
StopMixMonitor()
Stops the audio recording that was started with a call to MixMonitor()
on the current channel.
Morsecode(string)
string |
String to playback as morse code to channel |
Plays the Morse code equivalent of the passed string.
This application uses the following variables:
MORSEDITLEN |
Use this value in (ms) for length of dit |
MORSETONE |
The pitch of the tone in (Hz), default is 800 |
MP3Player(Location)
Location |
Location of the file to be played. (argument passed to mpg123) |
Executes mpg123 to play the given location, which typically would be a filename or a URL. User can exit by pressing any key on the dialpad, or by hanging up.
NBScat()
Executes nbscat to listen to the local NBS stream. User can exit by pressing any key.
Originate(tech_data,type,arg1[,arg2[,arg3]])
tech_data |
Channel technology and data for creating the outbound channel. For example, SIP/1234. |
type |
This should be |
arg1 |
If the type is |
arg2 |
If the type is |
arg3 |
If the type is |
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:
ORIGINATE_STATUS |
This indicates the result of the call origination. FAILED SUCCESS BUSY CONGESTION HANGUP RINGING UNKNOWN In practice, you should never see this value. Please report it to the issue tracker if you ever see it. |
Page(Technology/Resource[,options[,timeout]])
Technology/Resource |
Specification of the device(s) to dial. These must be in the format of
Optional extra devices to dial inparallel If you need more then one enter them as Technology2/Resource2& Technology3/Resourse3&..... |
||||||||||
options |
|
||||||||||
timeout |
Specify the length of time that the system will attempt to connect a call. After this duration, any intercom calls that have not been answered will be hung up by the system. |
Places outbound calls to the given technology/resource and dumps them into a conference bridge as muted participants. The original caller is dumped into the conference as a speaker and the room is destroyed when the original callers leaves.
ParkAndAnnounce(announce_template,timeout,dial[,return_context])
announce_template |
Colon-separated list of files to announce. The word
|
timeout |
Time in seconds before the call returns into the return context. |
dial |
The app_dial style resource to call to make the announcement. Console/dsp calls the console. |
return_context |
The goto-style label to jump the call back into after
timeout. Default |
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.
Playback(filenames[,options])
filenames | (no description) | ||||
options |
Comma separated list of options
|
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:
PLAYBACKSTATUS |
The status of the playback attempt as a text string. SUCCESS FAILED |
See Also: Background (application) -- for playing sound files that are interruptible
WaitExten (application) -- wait for digits from caller, optionally play music on hold
PlayTones(arg)
arg |
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, initiated by PlayTones().
PrivacyManager([maxretries[,minlength[,context]]])
maxretries |
Total tries caller is allowed to input a callerid. Defaults to |
minlength |
Minimum allowable digits in the input callerid number. Defaults to |
context |
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:
PRIVACYMGRSTATUS |
The status of the privacy manager's attempt to collect a phone number from the user. SUCCESS FAILED |
Queue(queuename[,options[,URL[,announceoverride[,timeout[,AGI[,macro[,gosub[,rule[,position]]]]]]]]])
queuename | (no description) | ||||||||||||||||||||||||||||||||||
options |
|
||||||||||||||||||||||||||||||||||
URL |
URL will be sent to the called party if the channel supports it. |
||||||||||||||||||||||||||||||||||
announceoverride | (no description) | ||||||||||||||||||||||||||||||||||
timeout |
Will cause the queue to fail out after a specified number of seconds, checked between each queues.conftimeout and retry cycle. |
||||||||||||||||||||||||||||||||||
AGI |
Will setup an AGI script to be executed on the calling party's channel once they are connected to a queue member. |
||||||||||||||||||||||||||||||||||
macro |
Will run a macro on the calling party's channel once they are connected to a queue member. |
||||||||||||||||||||||||||||||||||
gosub |
Will run a gosub on the calling party's channel once they are connected to a queue member. |
||||||||||||||||||||||||||||||||||
rule |
Will cause the queue's defaultrule to be overridden by the rule specified. |
||||||||||||||||||||||||||||||||||
position |
Attempt to enter the caller into the queue at the numerical position specified. |
In addition to transferring the call, a call may be parked and then picked up by another user.
This application will return to the dialplan if the queue does not exist, or any of the join options cause the caller to not enter the queue.
This application sets the following channel variable upon completion:
QUEUESTATUS |
The status of the call as a text string. TIMEOUT FULL JOINEMPTY LEAVEEMPTY JOINUNAVAIL LEAVEUNAVAIL CONTINUE |
AddQueueMember(queuename[,interface[,penalty[,options[,membername[,stateinterface]]]]])
queuename | (no description) |
interface | (no description) |
penalty | (no description) |
options | (no description) |
membername | (no description) |
stateinterface | (no description) |
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:
AQMSTATUS |
The status of the attempt to add a queue member as a text string. ADDED MEMBERALREADY NOSUCHQUEUE |
RemoveQueueMember(queuename[,interface[,options]])
queuename | (no description) |
interface | (no description) |
options | (no description) |
If the interface is NOT in the queue it will return an error.
This application sets the following channel variable upon completion:
RQMSTATUS |
REMOVED NOTINQUEUE NOSUCHQUEUE |
Example: RemoveQueueMember(techsupport,SIP/3000)
PauseQueueMember([queuename,interface[,options[,reason]]])
queuename | (no description) |
interface | (no description) |
options | (no description) |
reason |
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:
PQMSTATUS |
The status of the attempt to pause a queue member as a text string. PAUSED NOTFOUND |
Example: PauseQueueMember(,SIP/3000)
UnpauseQueueMember([queuename,interface[,options[,reason]]])
queuename | (no description) |
interface | (no description) |
options | (no description) |
reason |
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:
UPQMSTATUS |
The status of the attempt to unpause a queue member as a text string. UNPAUSED NOTFOUND |
Example: UnpauseQueueMember(,SIP/3000)
QueueLog(queuename,uniqueid,agent,event[,additionalinfo])
queuename | (no description) |
uniqueid | (no description) |
agent | (no description) |
event | (no description) |
additionalinfo | (no description) |
Allows you to write your own events into the queue log.
Example: QueueLog(101,${UNIQUEID},${AGENT},WENTONBREAK,600)
Read(variable[,filenames[,maxdigits[,options[,attempts[,timeout]]]]])
variable |
The input digits will be stored in the given variable name. |
||||||
filenames |
file(s) to play before reading digits or tone with option i |
||||||
maxdigits |
Maximum acceptable number of digits. Stops reading after
maxdigits have been entered (without
requiring the user to press the Defaults to |
||||||
options |
|
||||||
attempts |
If greater than |
||||||
timeout |
The number of seconds to wait for a digit response. If greater
than |
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:
READSTATUS |
This is the status of the read operation. OK ERROR HANGUP INTERRUPTED SKIPPED TIMEOUT |
ReadExten(variable[,filename[,context[,option[,timeout]]]])
variable | (no description) | ||||||
filename |
File to play before reading digits or tone with option |
||||||
context |
Context in which to match extensions. |
||||||
option |
|
||||||
timeout |
An integer number of seconds to wait for a digit response. If
greater than |
Reads a #
terminated string of digits from the user into the given variable.
Will set READEXTENSTATUS on exit with one of the following statuses:
READEXTENSTATUS |
OK A valid extension exists in ${variable}.TIMEOUT No extension was entered in the specified time. Also sets ${variable} to "t".INVALID An invalid extension, ${INVALID_EXTEN}, was entered. Also sets ${variable} to "i".SKIP Line was not up and the option 's' was specified.ERROR Invalid arguments were passed. |
ReadFile(varname,fileparams)
varname |
Result stored here. |
fileparams |
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)})
Record(filename[,silence[,maxduration[,options]]])
filename |
Is the format of the file type to be recorded (wav, gsm, etc). |
||||||||||||||
silence |
Is the number of seconds of silence to allow before returning. |
||||||||||||||
maxduration |
Is the maximum recording duration in seconds. If missing or 0 there is no maximum. |
||||||||||||||
options |
|
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.
RECORDED_FILE |
Will be set to the final filename of the recording. |
RECORD_STATUS |
This is the final status of the command DTMF A terminating DTMF was received ('#' or '*', depending upon option 't')SILENCE The maximum silence occurred in the recording.SKIP The line was not yet answered and the 's' option was specified.TIMEOUT The maximum length was reached.HANGUP The channel was hung up.ERROR An unrecoverable error occurred, which resulted in a WARNING to the logs. |
SayUnixTime([unixtime[,timezone[,format]]])
unixtime |
time, in seconds since Jan 1, 1970. May be negative. Defaults to now. |
timezone |
timezone, see /usr/share/zoneinfo for a list. Defaults to machine default. |
format |
a format the time is to be said in. See voicemail.conf.
Defaults to |
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.
DateTime([unixtime[,timezone[,format]]])
unixtime |
time, in seconds since Jan 1, 1970. May be negative. Defaults to now. |
timezone |
timezone, see /usr/share/zoneinfo for a list. Defaults to machine default. |
format |
a format the time is to be said in. See voicemail.conf.
Defaults to |
Say the date and time in a specified format.
SendDTMF(digits[,timeout_ms[,duration_ms]])
digits |
List of digits 0-9,*#,abcd |
timeout_ms |
Amount of time to wait in ms between tones. (defaults to .25s) |
duration_ms |
Duration of each digit |
DTMF digits sent to a channel with half second pause
It will pass all digits or terminate if it encounters an error.
SendText(text)
text | (no description) |
Sends text to current channel (callee).
Result of transmission will be stored in the SENDTEXTSTATUS
SENDTEXTSTATUS |
SUCCESS Transmission succeeded.FAILURE Transmission failed.UNSUPPORTED Text transmission not supported by channel. |
At this moment, text is supposed to be 7 bit ASCII in most channels.
SetCallerPres(presentation)
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.
Skel(dummy[,options])
dummy | (no description) | ||||||
options |
|
This application is a template to build other applications from. It shows you the basic structure to create your own Asterisk applications.
SMS(name[,options[,addr[,body]]])
name |
The name of the queue used in /var/spool/asterisk/sms |
||||||||||||
options |
|
||||||||||||
addr | (no description) | ||||||||||||
body | (no description) |
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.
SoftHangup(Technology/Resource[,options])
Technology/Resource | (no description) | ||
options |
|
Hangs up the requested channel. If there are no channels to hangup, the application will report it.
SpeechCreate(engine_name)
engine_name | (no description) |
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.
SpeechActivateGrammar(grammar_name)
grammar_name | (no description) |
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.
SpeechStart()
Tell the speech recognition engine that it should start trying to get results from audio being fed to it.
SpeechBackground(sound_file[,timeout[,options]])
sound_file | (no description) | ||
timeout |
Timeout integer in seconds. Note the timeout will only start once the sound file has stopped playing. |
||
options |
|
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.
SpeechDeactivateGrammar(grammar_name)
grammar_name |
The grammar name to deactivate |
This deactivates the specified grammar so that it is no longer recognized.
SpeechProcessingSound(sound_file)
sound_file | (no description) |
This changes the processing sound that SpeechBackground plays back when the speech recognition engine is processing and working to get results.
SpeechDestroy()
This destroys the information used by all the other speech recognition applications. If you call this application but end up wanting to recognize more speech, you must call SpeechCreate() again before calling any other application.
SpeechLoadGrammar(grammar_name,path)
grammar_name | (no description) |
path | (no description) |
Load a grammar only on the channel, not globally.
SpeechUnloadGrammar(grammar_name)
grammar_name | (no description) |
Unload a grammar.
Gosub([[context,]exten,]priority)
context | (no description) |
exten | (no description) |
priority | (no description) |
Jumps to the label specified, saving the return address.
GosubIf(condition,destination)
condition | (no description) |
destination | (no description) |
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.
Return([value])
value |
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.
StackPop()
Removes last label on the stack, discarding it.
System(command)
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:
SYSTEMSTATUS |
FAILURE Could not execute the specified command.SUCCESS Specified command successfully executed. |
TrySystem(command)
command |
Command to execute |
Executes a command by using system().
Result of execution is returned in the SYSTEMSTATUS channel variable:
SYSTEMSTATUS |
FAILURE Could not execute the specified command.SUCCESS Specified command successfully executed.APPERROR Specified command successfully executed, but returned error code. |
BackgroundDetect(filename[,sil[,min[,max[,analysistime]]]])
filename | (no description) |
sil |
If not specified, defaults to |
min |
If not specified, defaults to |
max |
If not specified, defaults to |
analysistime |
If not specified, defaults to |
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.
TestServer()
Perform test server function and write call report. Results stored in /var/log/asterisk/testreports/<testid>-server.txt
TestClient(testid)
testid |
An ID to identify this test. |
Executes test client with given testid. Results stored in /var/log/asterisk/testreports/<testid>-client.txt
Transfer(dest)
dest | (no description) |
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:
TRANSFERSTATUS |
SUCCESS Transfer succeeded.FAILURE Transfer failed.UNSUPPORTED Transfer unsupported by channel driver. |
SendURL(URL[,option])
URL | (no description) | ||
option |
|
Requests client go to URL (IAX2) or sends the URL to the client (other channels).
Result is returned in the SENDURLSTATUS channel variable:
SENDURLSTATUS |
SUCCESS URL successfully sent to client.FAILURE Failed to send URL.NOLOAD Client failed to load URL (wait enabled).UNSUPPORTED Channel does not support URL transport. |
SendURL continues normally if the URL was sent correctly or if the channel does not support HTML transport. Otherwise, the channel is hung up.
UserEvent(eventname[,body])
eventname | (no description) |
body | (no description) |
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.
Verbose([level,]message)
level |
Must be an integer value. If not specified, defaults to 0. |
message |
Output text message. |
Sends an arbitrary text message to verbose output.
Log([level,]message)
level |
Level must be one of |
message |
Output text message. |
Sends an arbitrary text message to a selected log level.
VoiceMail(mailboxs[,options])
mailboxs | (no description) | ||||||||||||||
options |
|
This application allows the calling party to leave a message for the specified list of mailboxes. When multiple mailboxes are specified, the greeting will be taken from the first mailbox specified. Dialplan execution will stop if the specified mailbox does not exist.
The Voicemail application will exit if any of the following DTMF digits are received:
Jump to the o
extension in the current dialplan context.
Jump to the a
extension in the current dialplan context.
This application will set the following channel variable upon completion:
VMSTATUS |
This indicates the status of the execution of the VoiceMail application. SUCCESS USEREXIT FAILED |
VoiceMailMain(mailbox[,options])
mailbox | (no description) | ||||||||
options |
|
This application allows the calling party to check voicemail messages. A specific
mailbox, and optional corresponding context,
may be specified. If a mailbox is not provided, the calling party will
be prompted to enter one. If a context is not specified, the
default
context will be used.
MailboxExists(mailbox[,options])
mailbox | (no description) |
options |
None options. |
Check to see if the specified mailbox exists. If no voicemail
context is specified, the default
context
will be used.
This application will set the following channel variable upon completion:
VMBOXEXISTSSTATUS |
This will contain the status of the execution of the MailboxExists application. Possible values include: SUCCESS FAILED |
VMAuthenticate(mailbox[,options])
mailbox | (no description) | ||
options |
|
This application behaves the same way as the Authenticate application, but the passwords are taken from voicemail.conf. If the mailbox is specified, only that mailbox's password will be considered valid. If the mailbox is not specified, the channel variable AUTH_MAILBOX will be set with the authenticated mailbox.
WaitForRing(timeout)
timeout | (no description) |
Returns 0
after waiting at least timeout seconds,
and only after the next ring has completed. Returns 0
on success or
-1
on hangup.
WaitForSilence(silencerequired[,iterations[,timeout]])
silencerequired | (no description) |
iterations |
If not specified, defaults to |
timeout |
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:
WAITSTATUS |
SILENCE if exited with silence detected.TIMEOUT if exited without silence detected after timeout. |
WaitForNoise(noiserequired[,iterations[,timeout]])
noiserequired | (no description) |
iterations |
If not specified, defaults to |
timeout |
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.
WaitUntil(epoch)
epoch | (no description) |
Waits until the given epoch.
Sets WAITUNTILSTATUS to one of the following values:
WAITUNTILSTATUS |
OK Wait succeeded.FAILURE Invalid argument.HANGUP Channel hungup before time elapsed.PAST Time specified had already past. |
While(expr)
expr | (no description) |
Start a While Loop. Execution will return to this point when
EndWhile()
is called until expr is no longer true.
EndWhile()
Return to the previous called While()
.
ExitWhile()
Exits a While()
loop, whether or not the conditional has been satisfied.
ContinueWhile()
Returns to the top of the while loop and re-evaluates the conditional.
Zapateller(options)
options |
Comma delimited list of options.
|
Generates special information tone to block telemarketers from calling you.
This application will set the following channel variable upon completion:
ZAPATELLERSTATUS |
This will contain the last action accomplished by the Zapateller application. Possible values include: NOTHING ANSWERED ZAPPED |
ODBCFinish(result-id)
result-id | (no description) |
For queries which are marked as mode=multirow, this will clear any remaining rows of the specified resultset.
ClearHash(hashname)
hashname | (no description) |
Clears all keys out of the specified hashname.
Bridge(channel[,options])
channel |
The current channel is bridged to the specified channel. |
||
options |
|
Allows the ability to bridge two channels via the dialplan.
This application sets the following channel variable upon completion:
BRIDGERESULT |
The result of the bridge attempt as a text string. SUCCESS FAILURE LOOP NONEXISTENT INCOMPATIBLE |
ParkedCall(exten)
exten | (no description) |
Used to connect to a parked call. This application is always
registered internally and does not need to be explicitly added
into the dialplan, although you should include the parkedcalls
context. If no extension is provided, then the first available
parked call will be acquired.
Park([timeout[,return_context[,return_exten[,return_priority[,options]]]]])
timeout |
A custom parking timeout for this parked call. |
||||||
return_context |
The context to return the call to after it times out. |
||||||
return_exten |
The extension to return the call to after it times out. |
||||||
return_priority |
The priority to return the call to after it times out. |
||||||
options |
A list of options for this parked call.
|
Used to park yourself (typically in combination with a supervised
transfer to know the parking space). This application is always
registered internally and does not need to be explicitly added
into the dialplan, although you should include the parkedcalls
context (or the context specified in features.conf).
If you set the PARKINGEXTEN variable to an extension in your parking context, Park() will park the call on that extension, unless it already exists. In that case, execution will continue at next priority.
Answer([delay[,nocdr]])
delay |
Asterisk will wait this number of milliseconds before returning to the dialplan after answering the call. |
nocdr |
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.
BackGround(filenames[,options[,langoverride[,context]]])
filenames | (no description) | ||||||
options |
|
||||||
langoverride |
Explicitly specifies which language to attempt to use for the requested sound files. |
||||||
context |
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:
BACKGROUNDSTATUS |
The status of the background attempt as a text string. SUCCESS FAILED |
Busy([timeout])
timeout |
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([timeout])
timeout |
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.
ExecIfTime(day_condition,appname)
day_condition | (no description) |
appname | (no description) |
This application will execute the specified dialplan application, with optional arguments, if the current time matches the given time specification.
Goto([[context,]extensions,]priority)
context | (no description) |
extensions | (no description) |
priority | (no description) |
This application will set the current context, extension, and priority in the channel structure. After it completes, the pbx engine will continue dialplan execution at the specified location. If no specific extension, or extension and context, are specified, then this application will just set the specified priority of the current extension.
At least a priority is required as an argument, or the goto will
return a -1
, and the channel and call will be terminated.
If the location that is put into the channel information is bogus, and asterisk cannot
find that location in the dialplan, then the execution engine will try to find and execute the code in
the i
(invalid) extension in the current context. If that does not exist, it will try to execute the
h
extension. If either or neither the h
or i
extensions
have been defined, the channel is hung up, and the execution of instructions on the channel is terminated.
What this means is that, for example, you specify a context that does not exist, then
it will not be possible to find the h
or i
extensions,
and the call will terminate!
GotoIf(condition,destination)
condition | (no description) |
destination |
Continue at labeliftrue if the condition is true. Continue at labeliffalse if the condition is false. |
This application will set the current context, extension, and priority in the channel structure
based on the evaluation of the given condition. After this application completes, the
pbx engine will continue dialplan execution at the specified location in the dialplan.
The labels are specified with the same syntax as used within the Goto application.
If the label chosen by the condition is omitted, no jump is performed, and the execution passes to the
next instruction. If the target location is bogus, and does not exist, the execution engine will try
to find and execute the code in the i
(invalid) extension in the current context.
If that does not exist, it will try to execute the h
extension.
If either or neither the h
or i
extensions have been defined,
the channel is hung up, and the execution of instructions on the channel is terminated.
Remember that this command can set the current context, and if the context specified
does not exist, then it will not be able to find any 'h' or 'i' extensions there, and
the channel and call will both be terminated!.
GotoIfTime(condition,destination)
condition | (no description) |
destination | (no description) |
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.
ImportVar(newvar,vardata)
newvar | (no description) |
vardata | (no description) |
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.
Hangup([causecode])
causecode |
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.
Incomplete([n])
n |
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.
NoOp([text])
text |
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.
Proceeding()
This application will request that a proceeding message be provided to the calling channel.
Progress()
This application will request that in-band progress information be provided to the calling channel.
RaiseException(reason)
reason | (no description) |
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.
ResetCDR([options])
options |
|
This application causes the Call Data Record to be reset.
Ringing()
This application will request that the channel indicate a ringing tone to the user.
SayAlpha(string)
string | (no description) |
This application will play the sounds that correspond to the letters of the given string.
SayDigits(digits)
digits | (no description) |
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.
SayNumber(digits[,gender])
digits | (no description) |
gender | (no description) |
This application will play the sounds that correspond to the given digits. Optionally, a gender may be specified. This will use the language that is currently set for the channel. See the LANGUAGE() function for more information on setting the language for the channel.
SayPhonetic(string)
string | (no description) |
This application will play the sounds from the phonetic alphabet that correspond to the letters in the given string.
Set(name,value)
name | (no description) |
value | (no description) |
This function can be used to set the value of channel variables or dialplan functions.
When setting variables, if the variable name is prefixed with _
,
the variable will be inherited into channels created from the current channel.
If the variable name is prefixed with __
, the variable will be
inherited into channels created from the current channel and all children channels.
If (and only if), in /etc/asterisk/asterisk.conf, you have
a [compat]
category, and you have app_set = 1.6
under that,then
the behavior of this app changes, and does not strip surrounding quotes from the right hand side as
it did previously in 1.4. The app_set = 1.6
is only inserted if make samples
is executed, or if users insert this by hand into the asterisk.conf file.
The advantages of not stripping out quoting, and not caring about the separator characters (comma and vertical bar)
were sufficient to make these changes in 1.6. Confusion about how many backslashes would be needed to properly
protect separators and quotes in various database access strings has been greatly
reduced by these changes.
MSet(set1[,set2])
set1 | (no description) |
set2 | (no description) |
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.
SetAMAFlags([flag])
flag | (no description) |
This application will set the channel's AMA Flags for billing purposes.
Wait(seconds)
seconds |
Can be passed with fractions of a second. For example, |
This application waits for a specified number of seconds.
WaitExten([seconds[,options]])
seconds |
Can be passed with fractions of a second. For example, |
||
options |
|
This application waits for the user to enter a new extension for a specified number of seconds.
AGI(command[,args])
command | (no description) |
args | (no description) |
Executes an Asterisk Gateway Interface compliant
program on a channel. AGI allows Asterisk to launch external programs written
in any language to control a telephony channel, play audio, read DTMF digits,
etc. by communicating with the AGI protocol on stdin and
stdout. As of 1.6.0
, this channel will
not stop dialplan execution on hangup inside of this application. Dialplan
execution will continue normally, even upon hangup until the AGI application
signals a desire to stop (either by exiting or, in the case of a net script, by
closing the connection). A locally executed AGI script will receive SIGHUP on
hangup from the channel except when using DeadAGI. A fast AGI server will
correspondingly receive a HANGUP in OOB data. Both of these signals may be disabled
by setting the AGISIGHUP channel variable to no
before executing the AGI application.
Use the CLI command agi show commnands
to list available agi
commands.
This application sets the following channel variable upon completion:
AGISTATUS |
The status of the attempt to the run the AGI script text string, one of: SUCCESS FAILURE NOTFOUND HANGUP |
EAGI()
Using 'EAGI' provides enhanced AGI, with incoming audio available out of band on file descriptor 3.
DeadAGI()
JabberSend(Jabber,JID,Message)
Jabber |
Client or transport Asterisk uses to connect to Jabber. |
JID |
XMPP/Jabber JID (Name) of recipient. |
Message |
Message to be sent to the buddy. |
Allows user to send a message to a receipent via XMPP.
JabberStatus(Jabber,JID,Variable)
Jabber |
Client or transport Asterisk users to connect to Jabber. |
JID |
XMPP/Jabber JID (Name) of recipient. |
Variable |
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.
Monitor([file_format[,fname_base[,options]]])
file_format |
optional, if not set, defaults to |
||||||||
fname_base |
if set, changes the filename used to the one specified. |
||||||||
options |
|
Used to start monitoring a channel. The channel's input and output voice packets are logged to files until the channel hangs up or monitoring is stopped by the StopMonitor application.
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()
Stops monitoring a channel. Has no effect if the channel is not monitored.
ChangeMonitor(filename_base)
filename_base |
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.
PauseMonitor()
Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.
UnpauseMonitor()
Unpauses monitoring of a channel on which monitoring had previously been paused with PauseMonitor.
ODBC_Commit([transaction ID])
transaction ID | (no description) |
Commits the database transaction specified by transaction ID or the current active transaction, if not specified.
ODBC_Rollback([transaction ID])
transaction ID | (no description) |
Rolls back the database transaction specified by transaction ID or the current active transaction, if not specified.
121 functions total
Function | Synopsis |
---|---|
AGENT | Gets information about an Agent |
IAXPEER | Gets IAX peer information. |
IAXVAR | Sets or retrieves a remote variable. |
SIP_HEADER | Gets the specified SIP header. |
SIPPEER | Gets SIP peer information. |
SIPCHANINFO | Gets the specified SIP parameter from the current channel. |
CHECKSIPDOMAIN | Checks if domain is a local domain. |
QUEUE_VARIABLES | Return Queue information in variables. |
QUEUE_MEMBER | Count number of members answering a queue. |
QUEUE_MEMBER_COUNT | Count number of members answering a queue. |
QUEUE_WAITING_COUNT | Count number of calls currently waiting in a queue. |
QUEUE_MEMBER_LIST | Returns a list of interfaces on a queue. |
QUEUE_MEMBER_PENALTY | Gets or sets queue members penalty. |
VALID_EXTEN | Determine whether an extension exists or not. |
SPEECH_SCORE | Gets the confidence score of a result. |
SPEECH_TEXT | Gets the recognized text of a result. |
SPEECH_GRAMMAR | Gets the matched grammar of a result if available. |
SPEECH_ENGINE | Change a speech engine specific attribute. |
SPEECH_RESULTS_TYPE | Sets the type of results that will be returned. |
SPEECH | Gets information about speech recognition results. |
LOCAL | Manage variables local to the gosub stack frame. |
LOCAL_PEEK | Retrieve variables hidden by the local gosub stack frame. |
MAILBOX_EXISTS | Tell if a mailbox is configured. |
AES_ENCRYPT | Encrypt a string with AES given a 16 character key. |
AES_DECRYPT | Decrypt a string encoded in base64 with AES given a 16 character key. |
AUDIOHOOK_INHERIT | Set whether an audiohook may be inherited to another channel |
BASE64_ENCODE | Encode a string in base64. |
BASE64_DECODE | Decode a base64 string. |
BLACKLIST | Check if the callerid is on the blacklist. |
CALLERID | Gets or sets Caller*ID data on the channel. |
CALLERPRES | Gets or sets Caller*ID presentation on the channel. |
CDR | Gets or sets a CDR variable. |
CHANNELS | Gets the list of channels, optionally filtering by a regular expression. |
CHANNEL | Gets/sets various pieces of information about the channel. |
AST_CONFIG | Retrieve a variable from a configuration file. |
CONNECTEDLINE | Gets or sets Connected Line data on the channel. |
SORT | Sorts a list of key/vals into a list of keys, based upon the vals. |
CUT | Slices and dices strings, based upon a named delimiter. |
DB | Read from or write to the Asterisk database. |
DB_EXISTS | Check to see if a key exists in the Asterisk database. |
DB_DELETE | Return a value from the database and delete it. |
DEVICE_STATE | Get or Set a device state. |
HINT | Get the devices set for a dialplan hint. |
DIALGROUP | Manages a group of users for dialing. |
DIALPLAN_EXISTS | Checks the existence of a dialplan target. |
ENUMQUERY | Initiate an ENUM query. |
ENUMRESULT | Retrieve results from a ENUMQUERY. |
ENUMLOOKUP | General or specific querying of NAPTR records for ENUM or ENUM-like DNS pointers. |
TXTCIDNAME | TXTCIDNAME looks up a caller name via DNS. |
ENV | Gets or sets the environment variable specified. |
STAT | Does a check on the specified file. |
FILE | Obtains the contents of a file. |
EXTENSION_STATE | Get an extension's state. |
GLOBAL | Gets or sets the global variable specified. |
SHARED | Gets or sets the shared variable specified. |
GROUP_COUNT | Counts the number of channels in the specified group. |
GROUP_MATCH_COUNT | Counts the number of channels in the groups matching the specified pattern. |
GROUP | Gets or sets the channel group. |
GROUP_LIST | Gets a list of the groups set on a channel. |
ICONV | Converts charsets of strings. |
LOCK | Attempt to obtain a named mutex. |
TRYLOCK | Attempt to obtain a named mutex. |
UNLOCK | Unlocks a named mutex. |
ISNULL | Check if a value is NULL. |
SET | SET assigns a value to a channel variable. |
EXISTS | Test the existence of a value. |
IF | Check for an expresion. |
IFTIME | Temporal Conditional. |
IMPORT | Retrieve the value of a variable from another channel. |
MATH | Performs Mathematical Functions. |
INC | Increments the value of a variable, while returning the updated value to the dialplan |
DEC | Decrements the value of a variable, while returning the updated value to the dialplan |
MD5 | Computes an MD5 digest. |
IFMODULE | Checks if an Asterisk module is loaded in memory. |
ODBC_FETCH | Fetch a row from a multirow query. |
SQL_ESC | Escapes single ticks for use in SQL statements. |
RAND | Choose a random number in a range. |
REALTIME | RealTime Read/Write Functions. |
REALTIME_STORE | RealTime Store Function. |
REALTIME_DESTROY | RealTime Destroy Function. |
REALTIME_FIELD | RealTime query function. |
REALTIME_HASH | RealTime query function. |
REDIRECTING | Gets or sets Redirecting data on the channel. |
SHA1 | Computes a SHA1 digest. |
SHELL | Executes a command as if you were at a shell. |
AGC | Apply automatic gain control to audio on a channel. |
DENOISE | Apply noise reduction to audio on a channel. |
SPRINTF | Format a variable according to a format string. |
FIELDQTY | Count the fields with an arbitrary delimiter |
LISTFILTER | Remove an item from a list, by name. |
FILTER | Filter the string to include only the allowed characters |
REGEX | Check string against a regular expression. |
HASH | Implementation of a dialplan associative array |
HASHKEYS | Retrieve the keys of the HASH() function. |
KEYPADHASH | Hash the letters in string into equivalent keypad numbers. |
ARRAY | Allows setting multiple variables at once. |
STRPTIME | Returns the epoch of the arbitrary date/time string structured as described by the format. |
STRFTIME | Returns the current date/time in the specified format. |
EVAL | Evaluate stored variables |
TOUPPER | Convert string to all uppercase letters. |
TOLOWER | Convert string to all lowercase letters. |
LEN | Return the length of the string given. |
QUOTE | Quotes a given string, escaping embedded quotes as necessary |
SHIFT | Removes and returns the first item off of a variable containing delimited text |
POP | Removes and returns the last item off of a variable containing delimited text |
PUSH | Appends one or more values to the end of a variable containing delimited text |
UNSHIFT | Inserts one or more values to the beginning of a variable containing delimited text |
TIMEOUT | Gets or sets timeouts on the channel. Timeout values are in seconds. |
URIENCODE | Encodes a string to URI-safe encoding according to RFC 2396. |
URIDECODE | Decodes a URI-encoded string according to RFC 2396. |
VERSION | Return the Version info for this Asterisk. |
VMCOUNT | Count the voicemails in a specified mailbox. |
VOLUME | Set the TX or RX volume of a channel. |
EXCEPTION | Retrieve the details of the current dialplan exception. |
CALENDAR_BUSY | Determine if the calendar is marked busy at this time. |
CALENDAR_EVENT | Get calendar event notification data from a notification call. |
CALENDAR_QUERY | Query a calendar server and store the data on a channel |
CALENDAR_QUERY_RESULT | Retrieve data from a previously run CALENDAR_QUERY() call |
CALENDAR_WRITE | Write an event to a calendar |
JABBER_STATUS | Retrieve the status of a jabber list member |
ODBC | Controls ODBC transaction properties. |
AGENT(agentid[,item])
agentid | (no description) |
item |
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) |
IAXPEER(peername[,item])
peername |
If peername is specified to this value, return the IP address of the endpoint of the current channel |
item |
If peername is specified, valid items are: (default) The IP address. The peer's status (if 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 |
IAXVAR(varname)
varname | (no description) |
SIP_HEADER(name[,number])
name | (no description) |
number |
If not specified, defaults to |
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
.
SIPPEER(peername[,item])
peername | (no description) |
item |
(default) The ip address. The port number. The configured mailbox. The configured context. The epoch time of the next expire. Is it dynamic? (yes/no). The configured Caller ID name. The configured Caller ID number. The configured Callgroup. The configured Pickupgroup. The configured codecs. Status (if qualify=yes). Registration extension. Call limit (call-limit). Configured call level for signalling busy. Current amount of calls. Only available if call-limit is set. Default language for peer. Account code for this peer. Current user agent id for peer. A channel variable configured with setvar for this peer. Preferred codec index number x (beginning with zero). |
SIPCHANINFO(item)
item |
The IP address of the peer. The source IP address of the peer. The URI from the The URI from the The useragent. The name of the peer.
|
CHECKSIPDOMAIN(domain)
domain | (no description) |
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.
QUEUE_VARIABLES(queuename)
queuename |
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_MEMBER(queuename,option)
queuename | (no description) |
option |
Returns the number of logged-in members for the specified queue. Returns the number of logged-in members for the specified queue available to take a call. Returns the total number of members for the specified queue. |
Returns the number of members currently associated with the specified queuename.
QUEUE_MEMBER_COUNT(queuename)
queuename | (no description) |
Returns the number of members currently associated with the specified queuename.
This function has been deprecated in favor of the QUEUE_MEMBER()
function
QUEUE_WAITING_COUNT([queuename])
queuename | (no description) |
Returns the number of callers currently waiting in the specified queuename.
QUEUE_MEMBER_LIST(queuename)
queuename | (no description) |
Returns a comma-separated list of members associated with the specified queuename.
QUEUE_MEMBER_PENALTY(queuename,interface)
queuename | (no description) |
interface | (no description) |
Gets or sets queue members penalty.
VALID_EXTEN([context,extension[,priority]])
context |
Defaults to the current context |
extension | (no description) |
priority |
Priority defaults to |
Returns a true value if the indicated context, extension, and priority exist.
SPEECH_SCORE([nbest_number,]result_number)
nbest_number | (no description) |
result_number | (no description) |
Gets the confidence score of a result.
SPEECH_TEXT([nbest_number,]result_number)
nbest_number | (no description) |
result_number | (no description) |
Gets the recognized text of a result.
SPEECH_GRAMMAR([nbest_number,]result_number)
nbest_number | (no description) |
result_number | (no description) |
Gets the matched grammar of a result if available.
SPEECH_ENGINE(name)
name | (no description) |
Changes a speech engine specific attribute.
SPEECH_RESULTS_TYPE()
Sets the type of results that will be returned. Valid options are normal or nbest.
SPEECH(argument)
argument |
Returns Returns Returns number of results that were recognized. |
Gets information about speech recognition results.
LOCAL(varname)
varname | (no description) |
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()).
LOCAL_PEEK(n,varname)
n | (no description) |
varname | (no description) |
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.
MAILBOX_EXISTS(mailbox[,context])
mailbox | (no description) |
context | (no description) |
Returns a boolean of whether the corresponding mailbox exists.
If context is not specified, defaults to the default
context.
AES_ENCRYPT(key,string)
key |
AES Key |
string |
Input string |
Returns an AES encrypted string encoded in base64.
AES_DECRYPT(key,string)
key |
AES Key |
string |
Input string. |
Returns the plain text string.
AUDIOHOOK_INHERIT(source)
source |
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.
BASE64_ENCODE(string)
string |
Input string |
Returns the base64 string.
BASE64_DECODE(string)
string |
Input string. |
Returns the plain text string.
BLACKLIST()
Uses astdb to check if the Caller*ID is in family blacklist
.
Returns 1
or 0
.
CALLERID(datatype[,CID])
datatype |
The allowable datatypes are: |
CID |
Optional Caller*ID |
Gets or sets Caller*ID data on the channel. Uses channel callerid by default or optional callerid, if specified.
CALLERPRES()
Gets or sets Caller*ID presentation on the channel. The following values are valid:
Presentation Allowed, Not Screened.
Presentation Allowed, Passed Screen.
Presentation Allowed, Failed Screen.
Presentation Allowed, Network Number.
Presentation Prohibited, Not Screened.
Presentation Prohibited, Passed Screen.
Presentation Prohibited, Failed Screen.
Presentation Prohibited, Network Number.
Number Unavailable.
CDR(name[,options])
name |
CDR field name: Caller ID. Last application arguments. ANSWERED, NO ANSWER, BUSY. Source. Time the call started. DOCUMENTATION, BILL, IGNORE, etc. Destination. Time the call was answered. The channel's account code. Destination context. Time the call ended. The channel's unique id. Destination channel. Duration of the call. The channel's user specified field. Last application. Duration of the call once it was answered. Channel name. |
||||||||
options |
|
All of the CDR field names are read-only, except for accountcode
,
userfield
, and amaflags
. You may, however, supply
a name not on the above list, and create your own variable, whose value can be changed
with this function, and this variable will be stored on the cdr.
For setting CDR values, the l
flag does not apply to
setting the accountcode
, userfield
, or
amaflags
.
Raw values for disposition
:
NO ANSWER
BUSY
FAILED
ANSWERED
Raw values for amaflags
:
OMIT
BILLING
DOCUMENTATION
Example: exten => 1,1,Set(CDR(userfield)=test)
CHANNELS([regular_expression])
regular_expression | (no description) |
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.
CHANNEL(item)
item |
Standard items (provided by all channel technologies) are: R/O format currently being read. R/O format used natively for audio. R/O format currently being written. R/W call groups for call pickup. R/O technology used for channel. R/W language for sounds played. R/W class (from musiconhold.conf) for hold music. The name of the channel R/W parkinglot for parking. R/W set rxgain level on channel drivers that support it. 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 R/O Get QOS information about the RTP stream This option takes two additional arguments: Argument 1:
Argument 2:
R/O Get remote RTP destination information. This option takes one additional argument: Argument 1:
chan_iax2 provides the following additional options: R/W Get or set the OSP token information for a call. R/O Get the peer's ip address. R/O Get the peer's username. |
Gets/sets various pieces of information about the channel, additional item may be available from the channel driver; see its documentation for details. Any item requested that is not available on the current channel will return an empty string.
AST_CONFIG(config_file,category,variable_name)
config_file | (no description) |
category | (no description) |
variable_name | (no description) |
This function reads a variable from an Asterisk configuration file.
CONNECTEDLINE(datatype[,i])
datatype |
The allowable datatypes are: |
i |
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.
SORT(keyval[,keyvaln])
keyval | (no description) |
keyvaln | (no description) |
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.
CUT(varname,char-delim,range-spec)
varname |
Variable you want cut |
char-delim |
Delimiter, defaults to |
range-spec |
Number of the field you want (1-based offset), may also be specified as a range (with |
Cut out information from a string (varname), based upon a named delimiter.
DB(family,key)
family | (no description) |
key | (no description) |
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.
DB_EXISTS(family,key)
family | (no description) |
key | (no description) |
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_DELETE(family,key)
family | (no description) |
key | (no description) |
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.
DEVICE_STATE(device)
device | (no description) |
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
HINT(extension[,options])
extension | (no description) | ||
options |
|
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)})
DIALGROUP(group[,op])
group | (no description) |
op |
The operation name, possible values are:
|
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)})
DIALPLAN_EXISTS(context[,extension[,priority]])
context | (no description) |
extension | (no description) |
priority | (no description) |
This function returns 1
if the target exits. Otherwise, it returns 0
.
ENUMQUERY(number[,method-type[,zone-suffix]])
number | (no description) |
method-type |
If no method-type is given, the default will be
|
zone-suffix |
If no zone-suffix is given, the default will be
|
This will do a ENUM lookup of the given phone number.
ENUMRESULT(id,resultnum)
id |
The identifier returned by the ENUMQUERY function. |
resultnum |
The number of the result that you want to retrieve. Results start at |
This function will retrieve results from a previous use of the ENUMQUERY function.
ENUMLOOKUP(number[,method-type[,options[,record#[,zone-suffix]]]])
number | (no description) | ||||||||||
method-type |
If no method-type is given, the default will be
|
||||||||||
options |
|
||||||||||
record# |
If no record# is given,
defaults to |
||||||||||
zone-suffix |
If no zone-suffix is given, the default will be
|
For more information see doc/asterisk.pdf.
TXTCIDNAME(number[,zone-suffix])
number | (no description) |
zone-suffix |
If no zone-suffix is given, the default will be
|
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.
ENV(varname)
varname |
Environment variable name |
STAT(flag,filename)
flag |
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. |
filename | (no description) |
FILE(filename,offset,length)
filename | (no description) |
offset |
Maybe specified as any number. If negative, offset specifies the number of bytes back from the end of the file. |
length |
If specified, will limit the length of the data read to that size. If negative, trims length bytes from the end of the file. |
EXTENSION_STATE(extension[,context])
extension | (no description) |
context |
If it is not specified defaults to |
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
GLOBAL(varname)
varname |
Global variable name |
Set or get the value of a global variable specified in varname
SHARED(varname[,channel])
varname |
Variable name |
channel |
If not specified will default to current channel. It is the complete
channel name: |
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).
GROUP_COUNT([groupname[,category]])
groupname |
Group name. |
category |
Category name |
Calculates the group count for the specified group, or uses the channel's current group if not specifed (and non-empty).
GROUP_MATCH_COUNT(groupmatch[,category])
groupmatch |
A standard regular expression used to match a group name. |
category |
Category name. |
Calculates the group count for all groups that match the specified pattern. Uses standard regular expression matching (see regex(7)).
GROUP([category])
category |
Category name. |
category can be employed for more fine grained group management. Each channel can only be member of exactly one group per category.
GROUP_LIST()
Gets a list of the groups set on a channel.
ICONV(in-charset,out-charset,string)
in-charset |
Input charset |
out-charset |
Output charset |
string |
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.
LOCK(lockname)
lockname | (no description) |
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.
TRYLOCK(lockname)
lockname | (no description) |
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.
UNLOCK(lockname)
lockname | (no description) |
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.
ISNULL(data)
data | (no description) |
Returns 1
if NULL or 0
otherwise.
SET(varname[,value])
varname | (no description) |
value | (no description) |
EXISTS(data)
data | (no description) |
Returns 1
if exists, 0
otherwise.
IF(expresion,retvalue)
expresion | (no description) |
retvalue | (no description) |
Returns the data following ?
if true, else the data following :
IFTIME(timespec,retvalue)
timespec | (no description) |
retvalue | (no description) |
Returns the data following ?
if true, else the data following :
IMPORT(channel,variable)
channel | (no description) |
variable | (no description) |
MATH(expression[,type])
expression |
Is of the form: number1opnumber2 where the possible values for op are: +,-,/,*,%,<<,>>,^,AND,OR,XOR,<,%gt;,>=,<=,== (and behave as their C equivalents) |
type |
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
INC(variable)
variable |
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
DEC(variable)
variable |
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) - Increments MyVar
Note: DEC(${MyVAR}) - Is wrong, as INC expects the variable name, not its value
MD5(data)
data | (no description) |
Computes an MD5 digest.
IFMODULE(modulename.so)
modulename.so |
Module name complete with |
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
ODBC_FETCH(result-id)
result-id | (no description) |
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.
ODBC_FETCH_STATUS |
SUCESS If rows are available.FAILURE If no rows are available. |
SQL_ESC(string)
string | (no description) |
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})}'
RAND([min[,max]])
min | (no description) |
max | (no description) |
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(family,fieldmatch[,value[,delim1|field[,delim2]]])
family | (no description) |
fieldmatch | (no description) |
value | (no description) |
delim1|field |
Use delim1 with delim2 on read and field without delim2 on write If we are reading and delim1 is not specified, defaults
to |
delim2 |
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(family,field1,fieldN,field30)
family | (no description) |
field1 | (no description) |
fieldN | (no description) |
field30 | (no description) |
This function will insert a new set of values into the RealTime repository. If RT engine provides an unique ID of the stored record, REALTIME_STORE(...)=.. creates channel variable named RTSTOREID, which contains value of unique ID. Currently, a maximum of 30 field/value pairs is supported.
REALTIME_DESTROY(family,fieldmatch[,value[,delim1[,delim2]]])
family | (no description) |
fieldmatch | (no description) |
value | (no description) |
delim1 | (no description) |
delim2 | (no description) |
This function acts in the same way as REALTIME(....) does, except that it destroys the matched record in the RT engine.
REALTIME_FIELD(family,fieldmatch,value,fieldname)
family | (no description) |
fieldmatch | (no description) |
value | (no description) |
fieldname | (no description) |
This function retrieves a single item, fieldname from the RT engine, where fieldmatch contains the value value. When written to, the REALTIME_FIELD() function performs identically to the REALTIME() function.
REALTIME_HASH(family,fieldmatch,value)
family | (no description) |
fieldmatch | (no description) |
value | (no description) |
This function retrieves a single record from the RT engine, where fieldmatch contains the value value and formats the output suitably, such that it can be assigned to the HASH() function. The HASH() function then provides a suitable method for retrieving each field value of the record.
REDIRECTING(datatype[,i])
datatype |
The allowable datatypes are: |
i |
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 field 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
SHA1(data)
data |
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
SHELL(command)
command |
This is the argument to the function, the command you want to pass to the shell. |
Returns the value from a system command
Example: Set(foo=${SHELL(echo \bar\)})
When using the SHELL() dialplan function, your \SHELL\ is /bin/sh, which may differ as to the underlying shell, depending upon your production platform. Also keep in mind that if you are using a common path, you should be mindful of race conditions that could result from two calls running SHELL() simultaneously.
AGC(channeldirection)
channeldirection |
This can be either |
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)
DENOISE(channeldirection)
channeldirection |
This can be either |
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)
SPRINTF(format,arg1[,arg2[,argN]])
format | (no description) |
arg1 | (no description) |
arg2 | (no description) |
argN | (no description) |
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.
FIELDQTY(varname,delim)
varname | (no description) |
delim | (no description) |
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.
LISTFILTER(varname,delim,value)
varname | (no description) |
delim | (no description) |
value | (no description) |
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(allowed-chars,string)
allowed-chars | (no description) |
string | (no description) |
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
\
REGEX("regular expression",string)
"regular expression" | (no description) |
string | (no description) |
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.
HASH(hashname[,hashkey])
hashname | (no description) |
hashkey | (no description) |
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
HASHKEYS(hashname)
hashname | (no description) |
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.
KEYPADHASH(string)
string | (no description) |
Example: ${KEYPADHASH(Les)} returns "537"
ARRAY(var1[,var2[,varN]])
var1 | (no description) |
var2 | (no description) |
varN | (no description) |
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
STRPTIME(datetime,timezone,format)
datetime | (no description) |
timezone | (no description) |
format | (no description) |
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
STRFTIME([epoch[,timezone[,format]]])
epoch | (no description) |
timezone | (no description) |
format | (no description) |
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
.
EVAL(variable)
variable | (no description) |
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.
TOUPPER(string)
string | (no description) |
Example: ${TOUPPER(Example)} returns "EXAMPLE"
TOLOWER(string)
string | (no description) |
Example: ${TOLOWER(Example)} returns "example"
LEN(string)
string | (no description) |
Example: ${LEN(example)} returns 7
QUOTE(string)
string | (no description) |
Example: ${QUOTE(ab"c"de)} will return "abcde"
SHIFT(varname[,delimiter])
varname | (no description) |
delimiter | (no description) |
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.
POP(varname[,delimiter])
varname | (no description) |
delimiter | (no description) |
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.
PUSH(varname[,delimiter])
varname | (no description) |
delimiter | (no description) |
Example: Set(PUSH(array)=one,two,three) would append one, two, and three to the end of the values stored in the variable "array".
UNSHIFT(varname[,delimiter])
varname | (no description) |
delimiter | (no description) |
Example: Set(UNSHIFT(array)=one,two,three) would insert one, two, and three before the values stored in the variable "array".
TIMEOUT(timeouttype)
timeouttype |
The timeout that will be manipulated. The possible timeout types
are: |
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.
URIENCODE(data)
data |
Input string to be encoded. |
Returns the encoded string defined in data.
URIDECODE(data)
data |
Input string to be decoded. |
Returns the decoded URI-encoded data string.
VERSION([info])
info |
The possible values are: A string of digits is returned (right now fixed at 999999). The string representing the user's name whose account was used to configure Asterisk, is returned. The string representing the name of the host on which Asterisk was configured, is returned. The string representing the type of machine on which Asterisk was configured, is returned. The string representing the OS of the machine on which Asterisk was configured, is returned. The string representing the date on which Asterisk was configured, is returned. The string representing the kernel version of the machine on which Asterisk was configured, is returned. |
If there are no arguments, return the version of Asterisk in this format: SVN-branch-1.4-r44830M
Example: Set(junky=${VERSION()};
Sets junky to the string SVN-branch-1.6-r74830M
, or possibly, SVN-trunk-r45126M
.
VMCOUNT(vmbox[,folder])
vmbox |
If not specified, defaults to |
folder |
If not specified, defaults to |
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)})
VOLUME(direction)
direction |
Must be |
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)
EXCEPTION(field)
field |
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.
CALENDAR_BUSY(calendar)
calendar | (no description) |
Check the specified calendar's current busy status.
CALENDAR_EVENT(field)
field |
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 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_QUERY(calendar[,start[,end]])
calendar |
The calendar that should be queried |
start |
The start time of the query (in seconds since epoch) |
end |
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_QUERY_RESULT(id,field[,entry])
id |
The query ID returned by |
field |
number of events occurring during time range A summary of the event The full event description The event organizer The event location 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 |
entry |
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_WRITE(calendar,field)
calendar |
The calendar to write to |
field |
A summary of the event The full event description The event organizer The event location 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
JABBER_STATUS(sender,buddy[,resource])
sender |
XMPP/Jabber ID (Name) of sender. |
buddy |
XMPP/Jabber JID (Name) of recipient. |
resource |
Client or transport Asterisk users to connect to Jabber. |
Retrieves the numeric status associated with the specified buddy JID. The return value will be one of the following.
Online.
Chatty.
Away.
Extended Away.
Do Not Disturb.
Offline.
Not In Roster.
ODBC(property[,argument])
property |
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: |
argument | (no description) |
The ODBC() function allows setting several properties to influence how a connected database processes transactions.
85 actions total
Action | Synopsis |
---|---|
Agents | Lists agents and their status. |
AgentLogoff | Sets an agent as no longer logged in. |
DAHDITransfer | Transfer DAHDI Channel. |
DAHDIHangup | Hangup DAHDI Channel. |
DAHDIDialOffhook | Dial over DAHDI channel while offhook. |
DAHDIDNDon | Toggle DAHDI channel Do Not Disturb status ON. |
DAHDIDNDoff | Toggle DAHDI channel Do Not Disturb status OFF. |
DAHDIShowChannels | Show status DAHDI channels. |
DAHDIRestart | Fully Restart DAHDI channels (terminates calls). |
IAXpeers | List IAX peers. |
IAXpeerlist | List IAX Peers. |
IAXnetstats | Show IAX Netstats. |
IAXregistry | Show IAX registrations. |
SIPpeers | List SIP peers (text format). |
SIPshowpeer | show SIP peer (text format). |
SIPqualifypeer | Qualify SIP peers. |
SIPshowregistry | Show SIP registrations (text format). |
SIPnotify | Send a SIP notify. |
SKINNYdevices | List SKINNY devices (text format). |
SKINNYshowdevice | Show SKINNY device (text format). |
SKINNYlines | List SKINNY lines (text format). |
SKINNYshowline | Show SKINNY line (text format). |
MeetmeMute | Mute a Meetme user. |
MeetmeUnmute | Unmute a Meetme user. |
MeetmeList | List participants in a conference. |
Queues | Queues. |
QueueStatus | Show queue status. |
QueueSummary | Show queue summary. |
QueueAdd | Add interface to queue. |
QueueRemove | Remove interface from queue. |
QueuePause | Makes a queue member temporarily unavailable. |
QueueLog | Adds custom entry in queue_log. |
QueuePenalty | Set the penalty for a queue member. |
QueueRule | Queue Rules. |
QueueReload | Reload a queue, queues, or any sub-section of a queue or queues. |
QueueReset | Reset queue statistics. |
PlayDTMF | Play DTMF signal on a specific channel. |
VoicemailUsersList | List All Voicemail User Information. |
DBGet | Get DB Entry. |
DBPut | Put DB entry. |
DBDel | Delete DB entry. |
DBDelTree | Delete DB Tree. |
ParkedCalls | List parked calls. |
Park | Park a channel. |
Bridge | Bridge two channels already in the PBX. |
Ping | Keepalive command. |
Events | Control Event Flow. |
Logoff | Logoff Manager. |
Login | Login Manager. |
Challenge | Generate Challenge for MD5 Auth. |
Hangup | Hangup channel. |
Status | List channel status. |
Setvar | Set a channel variable. |
Getvar | Gets a channel variable. |
GetConfig | Retrieve configuration. |
GetConfigJSON | Retrieve configuration (JSON format). |
UpdateConfig | Update basic configuration. |
CreateConfig | Creates an empty file in the configuration directory. |
ListCategories | List categories in configuration file. |
Redirect | Redirect (transfer) a call. |
Atxfer | Attended transfer. |
Originate | Originate a call. |
Command | Execute Asterisk CLI Command. |
ExtensionState | Check Extension Status. |
AbsoluteTimeout | Set absolute timeout. |
MailboxStatus | Check mailbox. |
MailboxCount | Check Mailbox Message Count. |
ListCommands | List available manager commands. |
SendText | Send text message to channel. |
UserEvent | Send an arbitrary event. |
WaitEvent | Wait for an event to occur. |
CoreSettings | Show PBX core settings (version etc). |
CoreStatus | Show PBX core status variables. |
Reload | Send a reload event. |
CoreShowChannels | List currently active channels. |
ModuleLoad | Module management. |
ModuleCheck | Check if module is loaded. |
ShowDialPlan | La merde se produit. |
AGI | Add an AGI command to execute by Async AGI. |
JabberSend | Sends a message to a Jabber Client. |
Monitor | Monitor a channel. |
StopMonitor | Stop monitoring a channel. |
ChangeMonitor | Change monitoring filename of a channel. |
PauseMonitor | Pause monitoring of a channel. |
UnpauseMonitor | Unpause monitoring of a channel. |
Agents()
Will list info about all possible agents.
AgentLogoff(Agent[,Soft])
Agent |
Agent ID of the agent to log off. |
Soft |
Set to |
Sets an agent as no longer logged in.
DAHDITransfer(DAHDIChannel)
DAHDIChannel |
DAHDI channel name to transfer. |
Transfer a DAHDI channel.
DAHDIHangup(DAHDIChannel)
DAHDIChannel |
DAHDI channel name to hangup. |
Hangup a DAHDI channel.
DAHDIDialOffhook(DAHDIChannel,Number)
DAHDIChannel | (no description) |
Number | (no description) |
DAHDIDNDon(DAHDIChannel)
DAHDIChannel | (no description) |
DAHDIDNDoff(DAHDIChannel)
DAHDIChannel | (no description) |
DAHDIShowChannels(DAHDIChannel)
DAHDIChannel | (no description) |
DAHDIRestart()
IAXpeers()
IAXpeerlist()
List all the IAX peers.
IAXnetstats()
Show IAX channels network statistics.
IAXregistry()
Show IAX registrations.
SIPpeers()
Lists SIP peers in text format with details on current status. Peerlist will follow as separate events, followed by a final event called PeerlistComplete.
SIPshowpeer(Peer)
Peer |
The peer name you want to check. |
Show one SIP peer with details on current status.
SIPqualifypeer(Peer)
Peer |
The peer name you want to qualify. |
Qualify a SIP peer.
SIPshowregistry()
Lists all registration requests and status. Registrations will follow as separate events. followed by a final event called RegistrationsComplete.
SIPnotify(Channel,Variable)
Channel |
Peer to receive the notify. |
Variable |
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.
SKINNYdevices()
Lists Skinny devices in text format with details on current status. Devicelist will follow as separate events, followed by a final event called DevicelistComplete.
SKINNYshowdevice(Device)
Device |
The device name you want to check. |
Show one SKINNY device with details on current status.
SKINNYlines()
Lists Skinny lines in text format with details on current status. Linelist will follow as separate events, followed by a final event called LinelistComplete.
SKINNYshowline(Line)
Line |
The line name you want to check. |
Show one SKINNY line with details on current status.
MeetmeMute(Meetme,Usernum)
Meetme | (no description) |
Usernum | (no description) |
MeetmeUnmute(Meetme,Usernum)
Meetme | (no description) |
Usernum | (no description) |
MeetmeList(Conference)
Conference |
Conference number. |
Lists all users in a particular MeetMe conference. MeetmeList will follow as separate events, followed by a final event called MeetmeListComplete.
Queues()
QueueStatus([Queue[,Member]])
Queue | (no description) |
Member | (no description) |
QueueSummary([Queue])
Queue | (no description) |
QueueAdd(Queue,Interface[,Penalty[,Paused[,MemberName[,StateInterface]]]])
Queue | (no description) |
Interface | (no description) |
Penalty | (no description) |
Paused | (no description) |
MemberName | (no description) |
StateInterface | (no description) |
QueueRemove(Queue,Interface)
Queue | (no description) |
Interface | (no description) |
QueuePause(Interface,Paused[,Queue[,Reason]])
Interface | (no description) |
Paused | (no description) |
Queue | (no description) |
Reason | (no description) |
QueueLog(Queue,Event[,Uniqueid[,Interface[,Message]]])
Queue | (no description) |
Event | (no description) |
Uniqueid | (no description) |
Interface | (no description) |
Message | (no description) |
QueuePenalty(Interface,Penalty[,Queue])
Interface | (no description) |
Penalty | (no description) |
Queue | (no description) |
QueueRule([Rule])
Rule | (no description) |
QueueReload([Queue[,Members[,Rules[,Parameters]]]])
Queue | (no description) |
Members | (no description) |
Rules | (no description) |
Parameters | (no description) |
QueueReset([Queue])
Queue | (no description) |
PlayDTMF(Channel,Digit)
Channel |
Channel name to send digit to. |
Digit |
The DTMF digit to play. |
Plays a dtmf digit on the specified channel.
VoicemailUsersList()
DBGet(Family,Key)
Family | (no description) |
Key | (no description) |
DBPut(Family,Key[,Val])
Family | (no description) |
Key | (no description) |
Val | (no description) |
DBDel(Family,Key)
Family | (no description) |
Key | (no description) |
DBDelTree(Family[,Key])
Family | (no description) |
Key | (no description) |
ParkedCalls()
List parked calls.
Park(Channel,Channel2[,Timeout])
Channel |
Channel name to park. |
Channel2 |
Channel to announce park info to (and return to if timeout). |
Timeout |
Number of milliseconds to wait before callback. |
Park a channel.
Bridge(Channel1,Channel2[,Tone])
Channel1 |
Channel to Bridge to Channel2. |
Channel2 |
Channel to Bridge to Channel1. |
Tone |
Play courtesy tone to Channel 2. |
Bridge together two channels already in the PBX.
Ping()
A 'Ping' action will ellicit a 'Pong' response. Used to keep the manager connection open.
Events(EventMask)
EventMask |
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()
Logoff the current manager session.
Login([ActionID])
ActionID |
ActionID for this transaction. Will be returned. |
Login Manager.
Challenge()
Generate a challenge for MD5 authentication.
Hangup(Channel[,Cause])
Channel |
The channel name to be hangup. |
Cause |
Numeric hangup cause. |
Hangup a channel.
Status(Channel[,Variables])
Channel |
The name of the channel to query for status. |
Variables |
Comma |
Will return the status information of each channel along with the value for the specified channel variables.
Setvar([Channel,]Variable,Value)
Channel |
Channel to set variable for. |
Variable |
Variable name. |
Value |
Variable value. |
Set a global or local channel variable.
Getvar([Channel,]Variable)
Channel |
Channel to read variable from. |
Variable |
Variable name. |
Get the value of a global or local channel variable.
GetConfig(Filename[,Category])
Filename |
Configuration filename (e.g. foo.conf). |
Category |
Category in configuration file. |
This action will dump the contents of a configuration file by category and contents or optionally by specified category only.
GetConfigJSON(Filename)
Filename |
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.
UpdateConfig(SrcFilename,DstFilename[,Reload[,Action-XXXXXX[,Cat-XXXXXX[,Var-XXXXXX[,Value-XXXXXX[,Match-XXXXXX[,Line-XXXXXX]]]]]]])
SrcFilename |
Configuration filename to read (e.g. foo.conf). |
DstFilename |
Configuration filename to write (e.g. foo.conf) |
Reload |
Whether or not a reload should take place (or name of specific module). |
Action-XXXXXX |
Action to take. X's represent 6 digit number beginning with 000000. |
Cat-XXXXXX |
Category to operate on. |
Var-XXXXXX |
Variable to work on. |
Value-XXXXXX |
Value to work on. |
Match-XXXXXX |
Extra match required to match line. |
Line-XXXXXX |
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.
CreateConfig(Filename)
Filename |
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.
ListCategories(Filename)
Filename |
Configuration filename (e.g. foo.conf). |
This action will dump the categories in a given file.
Redirect([Channel,ExtraChannel,]Exten,Context,Priority)
Channel |
Channel to redirect. |
ExtraChannel |
Second call leg to transfer (optional). |
Exten |
Extension to transfer to. |
Context |
Context to transfer to. |
Priority |
Priority to transfer to. |
Redirect (transfer) a call.
Atxfer(Channel,Exten,Context,Priority)
Channel |
Transferer's channel. |
Exten |
Extension to transfer to. |
Context |
Context to transfer to. |
Priority |
Priority to transfer to. |
Attended transfer.
Originate(Channel[,Exten[,Context[,Priority[,Application[,Data[,Timeout[,CallerID[,Variable[,Account[,Async]]]]]]]]]])
Channel |
Channel name to call. |
Exten |
Extension to use (requires |
Context |
Context to use (requires |
Priority |
Priority to use (requires |
Application |
Application to execute. |
Data |
Data to use (requires |
Timeout |
How long to wait for call to be answered (in ms). |
CallerID |
Caller ID to be set on the outgoing channel. |
Variable |
Channel variable to set, multiple Variable: headers are allowed. |
Account |
Account code. |
Async |
Set to |
Generates an outgoing call to a Extension/Context/Priority or Application/Data
Command(Command)
Command |
Asterisk CLI command to run. |
Run a CLI command.
ExtensionState(Exten,Context)
Exten |
Extension to check state on. |
Context |
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.
AbsoluteTimeout(Channel,Timeout)
Channel |
Channel name to hangup. |
Timeout |
Maximum duration of the call (sec). |
Hangup a channel after a certain time. Acknowledges set time with
Timeout Set
message.
MailboxStatus(Mailbox)
Mailbox |
Full mailbox ID mailbox@vm-context. |
Checks a voicemail account for status.
Returns number of messages.
Message: Mailbox Status.
Mailbox: mailboxid.
Waiting: count.
MailboxCount(Mailbox)
Mailbox |
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
ListCommands()
Returns the action name and synopsis for every action that is available to the user.
SendText(Channel,Message)
Channel |
Channel to send message to. |
Message |
Message to send. |
Sends A Text Message to a channel while in a call.
UserEvent(UserEvent[,Header1[,HeaderN]])
UserEvent |
Event string to send. |
Header1 |
Content1. |
HeaderN |
ContentN. |
Send an event to manager sessions.
WaitEvent(Timeout)
Timeout |
Maximum time (in seconds) to wait for events, |
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.
CoreSettings()
Query for Core PBX settings.
CoreStatus()
Query for Core PBX status.
Reload([Module])
Module |
Name of the module to reload. |
Send a reload event.
CoreShowChannels()
List currently defined channels and some information about them.
ModuleLoad([Module,]LoadType)
Module |
Asterisk module name (including .so extension) or subsystem identifier: |
LoadType |
The operation to be done on module. If no module is specified for a |
Loads, unloads or reloads an Asterisk module in a running system.
ModuleCheck(Module)
Module |
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.
ShowDialPlan([Extension[,Context]])
Extension |
Show a specific extension. |
Context |
Show a specific context. |
Show dialplan contexts and extensions. Be aware that showing the full dialplan may take a lot of capacity.
AGI(Channel,Command[,CommandID])
Channel |
Channel that is currently in Async AGI. |
Command |
Application to execute. |
CommandID |
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.
JabberSend(Jabber,JID,Message)
Jabber |
Client or transport Asterisk uses to connect to JABBER. |
JID |
XMPP/Jabber JID (Name) of recipient. |
Message |
Message to be sent to the buddy. |
Sends a message to a Jabber Client.
Monitor(Channel[,File[,Format[,Mix]]])
Channel |
Used to specify the channel to record. |
File |
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). |
Format |
Is the audio recording format. Defaults to |
Mix |
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.
StopMonitor(Channel)
Channel |
The name of the channel monitored. |
This action may be used to end a previously started 'Monitor' action.
ChangeMonitor(Channel,File)
Channel |
Used to specify the channel to record. |
File |
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.
PauseMonitor(Channel)
Channel |
Used to specify the channel to record. |
This action may be used to temporarily stop the recording of a channel.
UnpauseMonitor(Channel)
Channel |
Used to specify the channel to record. |
This action may be used to re-enable recording of a channel after calling PauseMonitor.
46 commands total
Command | Synopsis |
---|---|
answer | Answer channel |
asyncagi break | Interrupts Async AGI |
channel status | Returns status of the connected channel. |
control stream file | Sends audio file on channel and allows the listner to control the stream. |
database del | Removes database key/value |
database deltree | Removes database keytree/value |
database get | Gets database value |
database put | Adds/updates database value |
exec | Executes a given Application |
get data | Prompts for DTMF on a channel |
get full variable | Evaluates a channel expression |
get option | Stream file, prompt for DTMF, with timeout. |
get variable | Gets a channel variable. |
hangup | Hangup the current channel. |
noop | Does nothing. |
receive char | Receives one character from channels supporting it. |
receive text | Receives text from channels supporting it. |
record file | Records to a given file. |
say alpha | Says a given character string. |
say digits | Says a given digit string. |
say number | Says a given number. |
say phonetic | Says a given character string with phonetics. |
say date | Says a given date. |
say time | Says a given time. |
say datetime | Says a given time as specfied by the format given. |
send image | Sends images to channels supporting it. |
send text | Sends text to channels supporting it. |
set autohangup | Autohangup channel in some time. |
set callerid | Sets callerid for the current channel. |
set context | Sets channel context. |
set extension | Changes channel extension. |
set music | Enable/Disable Music on hold generator |
set priority | Set channel dialplan priority. |
set variable | Sets a channel variable. |
stream file | Sends audio file on channel. |
tdd mode | Toggles TDD mode (for the deaf). |
verbose | Logs a message to the asterisk verbose log. |
wait for digit | Waits for a digit to be pressed. |
speech create | Creates a speech object. |
speech set | Sets a speech engine setting. |
speech destroy | Destroys a speech object. |
speech load grammar | Loads a grammar. |
speech unload grammar | Unloads a grammar. |
speech activate grammar | Activates a grammar. |
speech deactivate grammar | Deactivates a grammar. |
speech recognize | Recognizes speech. |
answer()
Answers channel if not already in answer state. Returns -1
on
channel failure, or 0
if successful.
asyncagi break()
Interrupts expected flow of Async AGI commands and returns control to previous source (typically, the PBX dialplan).
channel status([channelname])
channelname | (no description) |
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.
control stream file(filename,escape_digits[,skipms[,ffchar[,rewchr[,pausechr]]]])
filename |
The file extension must not be included in the filename. |
escape_digits | (no description) |
skipms | (no description) |
ffchar |
Defaults to |
rewchr |
Defaults to |
pausechr | (no description) |
Send the given file, allowing playback to be controled by the given
digits, if any. Use double quotes for the digits if you wish none to be
permitted. Returns 0
if playback completes without a digit
being pressed, or the ASCII numerical value of the digit if one was pressed,
or -1
on error or if the channel was disconnected.
database del(family,key)
family | (no description) |
key | (no description) |
Deletes an entry in the Asterisk database for a given family and key.
Returns 1
if successful, 0
otherwise.
database deltree(family[,keytree])
family | (no description) |
keytree | (no description) |
Deletes a family or specific keytree within a family in the Asterisk database.
Returns 1
if successful, 0
otherwise.
database get(family,key)
family | (no description) |
key | (no description) |
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)
database put(family,key,value)
family | (no description) |
key | (no description) |
value | (no description) |
Adds or updates an entry in the Asterisk database for a given family, key, and value.
Returns 1
if successful, 0
otherwise.
exec(application,options)
application | (no description) |
options | (no description) |
Executes application with given options.
Returns whatever the application returns, or
-2
on failure to find application.
get data(file[,timeout[,maxdigits]])
file | (no description) |
timeout | (no description) |
maxdigits | (no description) |
Stream the given file, and recieve DTMF data.
Returns the digits received from the channel at the other end.
get full variable(variablename[,channel name])
variablename | (no description) |
channel name | (no description) |
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)
get option(filename,escape_digits[,timeout])
filename | (no description) |
escape_digits | (no description) |
timeout | (no description) |
Behaves similar to STREAM FILE but used with a timeout option.
get variable(variablename)
variablename | (no description) |
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([channelname])
channelname | (no description) |
Hangs up the specified channel. If no channel name is given, hangs up the current channel
noop()
Does nothing.
receive char(timeout)
timeout |
The maximum time to wait for input in milliseconds, or |
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.
receive text(timeout)
timeout |
The timeout to be the maximum time to wait for input in
milliseconds, or |
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.
record file(filename,format,escape_digits,timeout[,offset samples[,BEEP[,s=silence]]])
filename | (no description) |
format | (no description) |
escape_digits | (no description) |
timeout | (no description) |
offset samples | (no description) |
BEEP | (no description) |
s=silence | (no description) |
Record to a file until a given dtmf digit in the sequence is received.
Returns -1
on hangup or error. The format will specify what kind of file
will be recorded. The timeout is the maximum record time in
milliseconds, or -1
for no timeout.
offset samples is optional, and, if provided, will seek
to the offset without exceeding the end of the file. silence is
the number of seconds of silence allowed before the function returns despite the
lack of dtmf digits or reaching timeout. silence
value must be preceeded by s=
and is also optional.
say alpha(number,escape_digits)
number | (no description) |
escape_digits | (no description) |
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.
say digits(number,escape_digits)
number | (no description) |
escape_digits | (no description) |
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.
say number(number,escape_digits[,gender])
number | (no description) |
escape_digits | (no description) |
gender | (no description) |
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.
say phonetic(string,escape_digits)
string | (no description) |
escape_digits | (no description) |
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.
say date(date,escape_digits)
date |
Is number of seconds elapsed since 00:00:00 on January 1, 1970. Coordinated Universal Time (UTC). |
escape_digits | (no description) |
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.
say time(time,escape_digits)
time |
Is number of seconds elapsed since 00:00:00 on January 1, 1970. Coordinated Universal Time (UTC). |
escape_digits | (no description) |
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.
say datetime(time,escape_digits[,format[,timezone]])
time |
Is number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC) |
escape_digits | (no description) |
format |
Is the format the time should be said in. See
voicemail.conf (defaults to |
timezone |
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.
send image(image)
image | (no description) |
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.
send text(text to send)
text to send |
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.
set autohangup(time)
time | (no description) |
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.
set callerid(number)
number | (no description) |
Changes the callerid of the current channel.
set context(desired context)
desired context | (no description) |
Sets the context for continuation upon exiting the application.
set extension(new extension)
new extension | (no description) |
Changes the extension for continuation upon exiting the application.
set music(,class)
(no description) | |
class | (no description) |
Enables/Disables the music on hold generator. If class
is not specified, then the default
music on hold class will be
used.
Always returns 0
.
set priority(priority)
priority | (no description) |
Changes the priority for continuation upon exiting the application. The priority must be a valid priority or label.
set variable(variablename,value)
variablename | (no description) |
value | (no description) |
Sets a variable to the current channel.
stream file(filename,escape_digits[,sample offset])
filename |
File name to play. The file extension must not be included in the filename. |
escape_digits |
Use double quotes for the digits if you wish none to be permitted. |
sample offset |
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.
tdd mode(boolean)
boolean | (no description) |
Enable/Disable TDD transmission/reception on a channel. Returns 1
if
successful, or 0
if channel is not TDD-capable.
verbose(message,level)
message | (no description) |
level | (no description) |
Sends message to the console via verbose
message system. level is the the verbose level (1-4).
Always returns 1
wait for digit(timeout)
timeout | (no description) |
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.
speech create(engine)
engine | (no description) |
Create a speech object to be used by the other Speech AGI commands.
speech set(name,value)
name | (no description) |
value | (no description) |
Set an engine-specific setting.
speech destroy()
Destroy the speech object created by SPEECH CREATE
.
speech load grammar(grammar name,path to grammar)
grammar name | (no description) |
path to grammar | (no description) |
Loads the specified grammar as the specified name.
speech unload grammar(grammar name)
grammar name | (no description) |
Unloads the specified grammar.
speech activate grammar(grammar name)
grammar name | (no description) |
Activates the specified grammar on the speech object.
speech deactivate grammar(grammar name)
grammar name | (no description) |
Deactivates the specified grammar on the speech object.
speech recognize(prompt,timeout[,offset])
prompt | (no description) |
timeout | (no description) |
offset | (no description) |
Plays back given prompt while listening for speech and dtmf.