Application Modules in Asterisk
Application Modules in Asterisk
Dialplan applications are used in extensions.conf
to define the various actions that can be applied to a call. The Dial()
application, for example, is responsible for making outgoing connections to external resources and is arguably the most important dialplan application.
Name | Purpose | Popularity/Status |
---|---|---|
app_adsiprog | Loads Analog Display Services Interface (ADSI) scripts into compatible analog phones | Insignificant |
app_alarmreceiver | Supports receipt of reports from alarm equipment | Insignificant |
app_amd | Detects answering machines | Unreliable |
app_authenticate | Compares dual-tone multi-frequency (DTMF) input against a provided string (password) | Useful |
app_cdr | Writes ad hoc record to CDR | Useful |
app_celgenuserevent | Generates user-defined events for CEL | New |
app_chanisavail | Checks the status of a channel | Unreliable |
app_channelredirect | Forces another channel into a different part of the dialplan | Useful |
app_chanspy | Allows a channel to listen to audio on another channel | Useful |
app_confbridge | Provides conferencing (new version) | New—not fully featured yet |
app_controlplayback | Plays back a prompt and offers fast forward and rewind functions | Useful |
app_dahdibarge | Allows barging in on a DAHDI channel | Deprecated—see app_chanspy |
app_dahdiras | Creates a RAS server over a DAHDI channel (no modem emulation) | Insignificant |
app_db | Used to add/change/delete records in Asterisk’s built-in Berkeley database | Deprecated—see func_db |
app_dial | Used to connect channels together (i.e., make phone calls) | Essential |
app_dictate | Plays back a recording and offers start/stop functions | Useful |
app_directed_pickup | Answers a call for another extension | Useful |
app_directory | Presents the list of names from voicemail.conf | Useful |
app_disa | Provides dialtone and accepts DTMF input | Useful |
app_dumpchan | Dumps channel variables to Asterisk command-line interface (CLI) | Useful |
app_echo | Loops received audio back to source channel | Useful |
app_exec | Contains Exec() , TryExec() , and ExecIf() ; executes a dialplan application based on conditions | Useful |
app_externalivr | Controls Asterisk as with an AGI, only asynchronously | Useful |
app_fax | Provides SendFax() and ReceiveFax() | Useful |
app_festival | Enables basic text to speech using Festival TTS engine | Usable |
app_flash | Performs a hook-switch flash on channels (primarily analog) | Useful |
app_followme | Performs find me/follow me functionality based on followme.conf | Useful |
app_forkcdr | Starts new CDR record on current call | Usable |
app_getcpeid | Gets the ADSI CPE ID | Insignificant |
app_ices | Sends audio to an Icecast server | Usable |
app_image | Transmits an image to supported devices | Limited |
app_ivrdemo | Sample application for developers | Insignificant |
app_jack | Works with JACK Audio Connection Kit to share audio between compatible applications | Useful |
app_macro | Triggers dialplan macros | Deprecated—see GoSub() |
app_meetme | Provides multiparty conferencing | Useful—fully featured |
app_milliwatt | Generates 1004-Hz tone for testing loss on analog circuits | Useful |
app_minivm | Provides primitive functions to allow you to build your own voicemail application in dialplan | Usable |
app_mixmonitor | Records both sides of a call and mixes them together | Useful |
app_morsecode | Generates Morse code | Usable |
app_mp3 | Uses mpg123 to play an MP3 | Insignificant |
app_nbscat | Streams audio from Network Broadcast Stream (NBS) | Insignificant |
app_originate | Allows origination of a call | Useful |
app_osplookup | Performs Open Settlement Protocol (OSP) lookup | Usable |
app_page | Creates multiple audio connections to specified devices for public address (paging) | Useful |
app_parkandannounce | Enables automated announcing of parked calls | Usable |
app_playback | Plays a file to the channel (does not accept input) | Useful |
app_playtones | Plays pairs of tones of specified frequencies | Useful |
app_privacy | Requests input of caller’s phone number if no CallerID is received | Insignificant |
app_queue | Provides Automatic Call Distribution (ACD) | Useful |
app_read | Requests input of digits from callers and assigns input to a variable | Useful |
app_readexten | Requests input of digits from callers and passes call to a designated extension and context | Usable |
app_readfile | Loads contents of a text file into a channel variable | Deprecated—see the FILE() function infunc_env |
app_record | Records received audio to a file | Useful |
app_rpt | Provides a method to interface with an audio board for the app_rpt project | Limited |
app_sayunixtime | Plays back time in specified format | Useful |
app_senddtmf | Transmits DTMF to calling party | Useful |
app_sendtext | Sends a text string to compatible channels | Insignificant |
app_setcallerid | Sets CallerID on a channel | Deprecated—seefunc_callerid |
app_skel | Sample application for developers | Useful |
app_sms | Sends SMS message in compatible countries | Limited |
app_softhangup | Requests hangup of channel | Useful |
app_speech_utils | Provides utilities relating to speech recognition | Useful |
app_stack | Provides Gosub() , GoSubIf() , Return() , StackPop() , LOCAL() , and LOCAL_PEEK() | Essential |
app_system | Executes commands in a Linux shell | Useful |
app_talkdetect | Similar to app_background , but allows for any received audio to interrupt playback | Useful |
app_test | Client/server testing application | Usable |
app_transfer | Performs a transfer on the current channel | Useful |
app_url | Passes a URI to the called channel | Limited |
app_userevent | Generates a custom event in the Asterisk Manager Interface (AMI) | Useful |
app_verbose | Generates a custom event in the Asterisk CLI | Useful |
app_voicemail | Provides voicemail | Essential |
app_waitforring | Waits for a RING signaling event (not to be confused with RINGING); most likely unnecessary, as only chan_dahdi with analog channels where ringing is received (such as an FXO port) generates the RING signaling event | Insignificant |
app_waitforsilence | Includes WaitForSilence() and WaitForNoise() ; listens to the incoming channel for a specified number of milliseconds of noise/silence | Useful |
app_waituntil | Waits until current Linux epoch matches specified epoch | Useful |
app_while | Includes While() , EndWhile() , ExitWhile() , and ContinueWhile() ; provides while-loop functionality in the dialplan | Useful |
app_zapateller | Generates SIT tone to discourage telemarketers | Usable |
Bridging Modules
Bridging modules are new in Asterisk 1.8: they perform the actual bridging of channels in the new bridging API. Each provides different features, which get used in different situations depending on what a bridge needs.
Name | Purpose | Popularity/Status |
---|---|---|
bridge_builtin_features | Performs bridging when utilizing built-in user features (such as those found in features.conf ). | New |
bridge_multiplexed | Performs complex multiplexing, as would be required in a large conference room (multiple participants). Currently only used by app_confbridge . | New |
bridge_simple | Performs simple channel-to-channel bridging. | New |
bridge_softmix | Performs simple multiplexing, as would be required in a large conference room (multiple participants). Currently only used by app_confbridge . | New |