Appendix B. Application Reference

Table of Contents

AddQueueMember()
ADSIProg()
AgentCallbackLogin()
AgentLogin()
AgentMonitorOutgoing()
AGI()
AlarmReceiver()
AMD()
Answer()
AppendCDRUserField()
Authenticate()
Background()
BackgroundDetect()
Busy()
ChangeMonitor()
ChanIsAvail()
ChannelRedirect()
ChanSpy()
Congestion()
ContinueWhile()
ControlPlayback()
DateTime()
DBdel()
DBdeltree()
DeadAGI()
Dial()
Dictate()
Directory()
DISA()
DumpChan()
EAGI()
Echo()
EndWhile()
Exec()
ExecIf()
ExitWhile()
ExtenSpy()
ExternalIVR()
FastAGI()
Festival()
Flash()
FollowMe()
ForkCDR()
GetCPEID()
Gosub()
GosubIf()
Goto()
GotoIf()
GotoIfTime()
Hangup()
HasNewVoicemail()
HasVoicemail()
IAX2Provision()
ICES()
ImportVar()
Log()
LookupBlacklist()
LookupCIDName()
Macro()
MacroExclusive()
MacroExit()
MacroIf()
MailboxExists()
MeetMe()
MeetMeAdmin()
MeetMeCount()
Milliwatt()
MixMonitor()
Monitor()
MorseCode()
MP3Player()
MusicOnHold()
NBScat()
NoCDR()
NoOp()
Page()
Park()
ParkAndAnnounce()
ParkedCall()
PauseMonitor()
PauseQueueMember()
Pickup()
Playback()
Playtones()
PrivacyManager()
Progress()
Queue()
QueueLog()
Random()
Read()
ReadFile()
RealTime
RealTimeUpdate()
Record()
RemoveQueueMember()
ResetCDR()
RetryDial()
Return()
Ringing()
SayAlpha()
SayDigits()
SayNumber()
SayPhonetic()
SayUnixTime()
SendDTMF()
SendImage()
SendText()
SendURL()
Set()
SetAMAFlags()
SetCallerID()
SetCallerPres()
SetCDRUserField()
SetGlobalVar()
SetMusicOnHold()
SetTransferCapability()
SIPAddHeader()
SIPDtmfMode()
SLAStation()
SLATrunk()
SoftHangup()
StackPop()
StartMusicOnHold()
StopMixMonitor()
StopMonitor()
StopPlaytones()
StopMusicOnHold()
System()
Transfer()
TryExec()
TrySystem()
UnpauseMonitor()
UnpauseQueueMember()
UserEvent()
Verbose()
VMAuthenticate()
VoiceMail()
VoiceMailMain()
Wait()
WaitExten()
WaitForRing()
WaitForSilence()
WaitMusicOnHold()
While()
Zapateller()
ZapBarge()
ZapRAS()
ZapScan()

Applications are the core functionality of the dialplan. Generally these all will operate on the channel, whereas functions, described in Appendix F, merely return values that can be used by applications. There are a few applications that still simply return values, but these will probably be deprecated in a future version and replaced with dialplan functions.

There are a few things to keep in mind about applications. First, when they exit, they will either terminate normally or abnormally. Abnormal termination almost always occurs when an application detects that the channel has hung up (or if it doesn’t, the dialplan will detect that shortly thereafter). An application may also exit abnormally when it wishes to indicate to the dialplan that some condition has not been satisfied and that it should force a hangup. In all other cases, an application will exit normally, which indicates that processing should continue at the next priority in the dialplan.

In many cases, if you wish to override the application’s wish to cause a hangup, you may wrap the application in a TryExec().

In many places throughout this reference, you will see what’s described as a label. This is shorthand for describing a location in the dialplan, whether it is simply a priority; an extension and a priority; or a context, an extension, and a priority. Note that if a text label is defined for a particular priority, the priority may be replaced with that text label in any of those cases. See the GotoIf() application for more information and an example.

Note

You will find many of the examples in this appendix to contain numbered priorities, which is not the preferred method of writing dialplans. We prefer the use of the 'n' priority for all priority numbers except 1 (which is required), but we have decided to utilize them in order to make some of the examples more clear.