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 |