What is Asterisk?
Asterisk is an open-source Telephony Enterprise software that provides a complete platform for building communication/Telephony applications. It is widely used in VoIP (Voice over Internet Protocol) applications and supports various communication protocols such as SIP (Session Initiation Protocol), H.323, and IAX (Inter-Asterisk eXchange).
The architecture of Asterisk is modular and flexible, allowing users to customize and extend the platform to fit their specific communication needs. The architecture can be divided into four main components:
- Asterisk Core
- Channels drivers
- Applications
- Add-ons
Asterisk Core
The Asterisk Core is the heart of the Asterisk architecture. It provides the fundamental functionality for processing all modules that makes asterisk functional like call handling, routing, and media processing. The Core includes the call manager, which manages incoming and outgoing calls, the media manager, which manages audio and video streams, and the channel driver interface, which provides an abstraction layer for communication protocols.
Here are the key components included in the Asterisk Core:
- Channel Drivers: Asterisk Core includes a set of channel drivers that enable communication with various types of endpoints and networks. These drivers facilitate connectivity with traditional telephony interfaces (Analogue, Digital, and ISDN), Voice over IP (VoIP) protocols (SIP, IAX, H.323), and other communication technologies.
- Dialplan: The Dialplan is a powerful scripting language in Asterisk that defines call routing and call handling logic. It allows you to specify how calls are processed, including call routing, call manipulation, and interaction with various modules and applications.
- Call Control: Asterisk Core provides call control functions to manage incoming and outgoing calls, call setup, call termination, call transfer, call hold, call forwarding, call parking, and other call-related operations.
- Media Handling: The Asterisk Core includes media handling capabilities for audio and video streams. It supports audio Codecs for voice transmission and can handle media processing tasks such as recording, playback, conferencing, mixing, and transcoding.
- Application Interfaces: Asterisk Core offers APIs (Application Programming Interfaces) that allow developers to interact with the system and build custom applications. The APIs include the Asterisk Gateway Interface (AGI) for external script integration, the Asterisk Manager Interface (AMI) for remote management and control, and the Asterisk RESTful Interface (ARI) for building custom telephony applications.
- Resource Management: Asterisk Core manages system resources such as channels, timers, and memory to optimize performance and handle concurrent operations effectively.
- Logging and Debugging: Asterisk Core provides logging and debugging facilities to aid in troubleshooting and monitoring system behaviour. It allows you to configure log levels, log file locations, and gather diagnostic information for analysis.
- Configuration Framework: Asterisk Core includes a flexible and extensive configuration framework that allows you to customize the behaviour of the system. It provides configuration files where you can define settings for various components and modules in Asterisk.
These components collectively form the Asterisk Core, providing the essential building blocks for creating robust and feature-rich communication applications and services.
Modules
Asterisk is built on modules. A module is a loadable component that interacts with the asterisk core API to provide specific functionality; such as a channel driver (for example, chan_pjsip.so) or a resource that allows connection to an external technology (such as func_odbc.so). Asterisk modules are loaded based on the parameters defined in the /etc/asterisk/modules.conf file
.
It is actually possible to start Asterisk without any modules at all, although in this state it will not be capable of doing anything.
The Types of Modules in Asterisk
We will explore the different types of modules available in Asterisk. The types of modules in Asterisk include the following:
- Channel Driver Modules
- Call Detail Recording (CDR) Modules
- Channel Event Logging (CEL) Modules
- Codec modules
- Format Interpreter modules
- Application modules
- Bridging Modules
- DialPlan Function modules
- Resource Modules
- PBX Modules
- Addon Modules
For this article, We have labelled asterisk modules based on status, usage and popularity.
Popularity Legend
- Essential: This module is one you’ll never want to be without.
- Useful: This module is current, maintained, popular, and recommended.
- Usable: The module works but may be incomplete and/or is not recommended
- New: This module is new, it works but its completeness is unknown.
- Insignificant: Very Old modules. May be incompatible & has no community support.
- Unreliable: The module is new and is in testing. Not recommended for Production
- Deprecated: This module has been replaced by something considered superior.
- Limited: This module has limitations that may make it unsuitable to your requirements.
Channel Driver Modules
Without channel drivers, Asterisk would have no way to make or receive calls. Asterisk Core includes a set of channel drivers that enable communication with various types of endpoints and networks. These drivers facilitate connectivity with traditional telephony interfaces (Analogue, Digital, and ISDN), Voice over IP (VoIP) protocols (SIP, IAX, H.323), and other communication technologies. These modules are responsible for managing communication between the Asterisk server and the outside world.
Some examples of channel modules and their magnitude of importance include:
Name | Purpose | Status |
chan_sip | The SIP (Session Initiation Protocol) channel driver for VoIP communication using the SIP protocol. (For newer asterisk installations, use chan_pjsip | Essential |
chan_pjsip | The PJSIP channel driver, a more modern and flexible replacement for chan_sip, supporting SIP and additional protocols. See also: chan_sip vs chan_pjsip | Essential (for newer Installs) |
chan_dahdi | Provides support for DAHDI (Digium Asterisk Hardware Device Interface), which is used to connect Asterisk to analogue and digital telephony networks. It consists of two parts. 1. The DAHDI-Linux project contains the individual board drivers for the supported hardware. 2. The DAHDI-Tools project contains an assortment of user space utilities that are used to set up and test the drivers. Image Source: Asterisk Wiki | Useful |
chan_iax2 | The IAX2 (Inter-Asterisk eXchange version 2) channel driver for communication between Asterisk servers and IAX-compatible endpoints. | Useful |
chan_skinny | Skinny or SCCP (Skinny Client Control Protocol), is a channel driver in Asterisk that provides support for Cisco IP phones. It allows Asterisk to communicate and interact with Cisco Unified Communications Manager (formerly known as Cisco CallManager) using the Skinny protocol. | Useful |
For Popularity comments meaning, See also Popularity/Status Legend
Call Detail Recording Modules
SIP (Session Initiation Protocol) is a protocol used to initiate, manage, and terminate real-time communication sessions over the Internet. SIP records provide more detailed information about a call, such as the codecs used, the quality of service, and the network information.
While the CDR is produced after the call ends, the SIP record is created when the call begins. CDRs are transferred to other systems for use in various business cases like billing and reporting.
While CDRs are focused on call management and analysis, SIP records provide a more comprehensive picture of the technical aspects of a call. Both types of records are valuable in their own right and can be used together to gain a complete understanding of your communications system.
The CDR modules, listed in Table 3.2., “Call detail recording modules”, are designed to facilitate as many methods of storing call detail records as possible. You can store CDRs in a file (default), a database, RADIUS, or Syslog.
Call detail records are not intended to be used in complex billing applications. If you require more control over billing and call reporting, you will want to look at channel event logging. The advantage of CDR is that it just works.
Channel Event Logging Modules
Channel event logging provides much more powerful control over reporting of call activity. By the same token, it requires more careful planning of your dialplan, and by no means will it work automatically. Asterisk’s CEL modules are listed in Table 3.3, “Channel event logging modules”.
Codec modules
When two endpoints (such as phones or softphones) communicate over a VoIP system, they need to agree on the same codec to use for the call. A codec is a method of encoding and decoding audio or video data, and different codecs have different levels of compression and quality. Asterisk Codec modules are responsible for encoding and decoding audio and video signals. Asterisk supports a wide range of codecs, including G.711, G.729, and H.264. Codec modules are used to ensure that audio and video signals are transmitted in the most efficient and effective manner possible. Some examples of codec modules include:
Name | Purpose | Popularity |
---|---|---|
codec_alaw | A-law Pulse Code Modulated (PCM) codec is used all over the world on the PSTN (except Canada/USA). This codec (along with ulaw) should be enabled on all your channels | Essential (Excellent Quality) |
codec_ulaw | Mu-law PCM codec used on PSTN in Canada/USA. It’s more formally written as μ-law, but not many people have the Greek letter μ on their keyboard, so it’s popularly written as ulaw. This is often the default codec and should be enabled on all your channels | Essential (Excellent Quality) |
codec_dahdi | Utilizes proprietary Digium hardware transcoding card | Essential |
codec_a_mu | A-law to mu-law direct converter | Useful |
codec_opus | Bitrates from 6 kb/s to 510 kb/s (Narrowband to Wideband). Opus is unmatched for interactive speech and music transmission over the Internet but is also intended for storage and streaming applications. | Useful |
codec_g722 | Wideband audio codec ITU standard codec that provides 7 kHz wideband audio at data rates from 48, 56 and 64 kb/s. | Useful (High Definition) |
codec_gsm | Global System for Mobile Communications (GSM) codec. Compress 3.1 kHz audio into between 6.5 and 13 kb/s | Usable |
codec_resample | For SLIN Codec. Resamples between 8-bit and 16-bit signed linear. | Usable |
codec_h264 | provides support for the H.264 video codec, which is commonly used in video conferencing applications. | Useful |
Format Interpreter modules
Format modules are responsible for converting audio and video signals from one format to another. Asterisk supports a wide range of audio and video formats, including WAV, MP3, and AVI. Format modules are used to ensure that audio and video signals are compatible with the receiving device. Some examples of format modules include:
Name | Plays files stored in | Distributed with Asterisks | Popularity |
---|---|---|---|
format_g722 | G.722 .g722 | Yes | Useful |
format_wav | .wav | Yes | Useful |
format_g729 | Support G.729 .g729 which is commonly used for VoIP calls | Codec (NO) / Format (YES) | Useful |
format_sln | 8-bit signed linear .sln .raw | Yes | Useful |
format_sln16 | 16-bit signed linear .sln16 | Yes | Useful |
format_pcm | Various Pulse-Coded Modulation formats: .alaw , .al , .alw , .pcm , .ulaw , .ul , .mu , .ulw , .g722 , .au | Yes | Useful |
format_siren14 | G.722.1 Annex C (14 kHz) .siren14 | Yes | New |
format_siren7 | G.722.1 (7 kHz) .siren7 | Yes | New |
format_h264 | H.264—video .h264 | Yes | Usable |
format_h263 | H.263—video .h263 | Yes | Usable |
format_ogg_vorbis | Ogg container .ogg | Codec (NO) / Format (YES) | Usable |
format_gsm | RPE-LTP (original GSM codec) .gsm | Yes | Usable |
format_wav_gsm | GSM audio in a WAV container .WAV, .wav49 | Yes | Usable |
For Popularity comments meaning, See also Popularity/Status Legend
Application modules
Application modules provide the core functionality for Asterisk applications. These modules allow developers to create custom applications that can interact with the Asterisk server. Some examples of application modules includes:
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 | Loads Analog Display Services Interface (ADSI) scripts into compatible analogue phones | 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 | Deprecated |
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 | Deprecated |
app_dial | Used to connect channels together (i.e., allow users to 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. Useful up to Asterisk 16. Deprecated—see GoSub() for newer installs | Deprecated |
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). plays back audio files or recorded messages. | 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 in func_env | Deprecated |
app_record | Records received audio to a file, i.e. records audio messages or phone calls. | 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—see func_callerid | Deprecated |
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 functionality for users. | Essential |
app_waitforring | Waits for a RING signalling event (not to be confused with RINGING); most likely unnecessary, as only chan_dahdi with analogue channels where ringing is received (such as an FXO port) generates the RING signalling 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 the current Linux epoch matches the 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 perform the actual bridging of channels in the bridging API. When a bridge is created, it acts as a central hub, handling the media streams between multiple participating channels and allowing for seamless communication between endpoints. The Bridge module supports various bridge technologies, including mixing, forwarding, and handling different media types (e.g., voice, video). It enables the establishment of conference calls, calls transfers, call forwarding, and other advanced call routing functionalities.
Each bridge module provides different features, which get used in different situations depending on what a bridge needs. The modules listed in the Table below, “Bridging modules”, is currently only used for (and are essential to) app_confbridge
.
Note: The ConfBridge
module is specifically designed to facilitate conference calls within Asterisk. It allows multiple participants to join a conference bridge and engage in real-time audio and optionally video communication. ConfBridge
supports features like participant muting, moderation controls, dynamic conference creation, and customizable conference layouts. It provides a robust and scalable solution for hosting audio and video conferences.
Some other important Asterisk Bridge modules
Module Name | Filename | Description |
---|---|---|
Bridge | bridge.so | The core bridging module responsible for creating bridges and managing media streams between channels. |
ConfBridge | res_conf_bridge.so | Enables conference call functionality, allowing multiple participants to join a conference bridge. |
ChanSpy | chan_spy.so | Provides call monitoring and eavesdropping capabilities, allowing authorized users to listen in on active calls. |
Transfer | app_transfer.so | Enables call transfer functionality, allowing users to transfer ongoing calls to different destinations. |
Local Bridging | res_local.so | Supports local bridging of channels within the same Asterisk server for internal calls. |
Remote Bridging | res_rtp_asterisk.so | Enables bridging of channels across multiple Asterisk servers, facilitating communication between instances. |
DialPlan Function modules
Function modules provide additional functionality for Asterisk applications. These modules allow developers to create custom functions that can be used in dialplan scripts. Some examples of function modules include:
For Popularity comments meaning, See also Popularity/Status Legend
Resource Modules
Resource modules integrate Asterisk with external resources. For example, res_odbc
allows Asterisk to interoperate with ODBC database connections. Below is a table for the currently available resource modules in asterisk
Name | Purpose | Popularity/Status |
---|---|---|
res_adsi | Provides ADSI | Essential |
res_ael_share | Provides shared routines for use with pbx_ael | Essential if you’re using AEL |
res_agi | Provides Asterisk Gateway Interface | Useful |
res_ais | Provides distributed message waiting for the indication (MWI) and device state notifications via an implementation of the AIS standard, such as OpenAIS | Useful |
res_calendar | Enables base integration to calendaring systems | Useful |
res_calendar_caldav | Provides CalDAV-specific capabilities | Useful |
res_calendar_exchange | Provides MS Exchange capabilities | Useful |
res_calendar_icalendar | Provides Apple/Google iCalendar capabilities | Useful |
res_clialiases | Creates CLI aliases | Useful |
res_clioriginate | Originates a call from the CLI | Usable |
res_config_curl | Pulls configuration information using cURL | Useful |
res_config_ldap | Pulls configuration information using LDAP | Usable |
res_config_odbc | Pulls configuration information using ODBC | Useful |
res_config_pgsql | Pulls configuration information using PostgreSQL | Usable |
res_config_sqlite | Pulls configuration information using SQLite | Usable |
res_convert | Uses the CLI to perform file conversions | Usable |
res_crypto | Provides cryptographic capabilities | Useful |
res_curl | Provides common subroutines for other cURL modules | Useful |
res_fax | Provides common subroutines for other fax modules | Useful |
res_fax_spandsp | Plug-in for fax using the spandsp package | Useful |
res_http_post | Provides POST upload support for the Asterisk HTTP server | Usable |
res_jabber | Provides Jabber/XMPP resources | Useful |
res_limit | Enables adjusting of system limits on the Asterisk process | Usable |
res_monitor | Provides call recording resources | Useful |
res_musiconhold | Provides music on hold (MOH) resources | Essential |
res_mutestream | Allows muting/unmuting of audio streams | New |
res_odbc | Provides common subroutines for other ODBC modules | Useful |
res_phoneprov | Provisions phones from Asterisk HTTP server | New |
res_pktccops | Provides PacketCable COPS resources | New |
res_realtime | Provides CLI commands for the Asterisk Realtime Architecture (ARA) | Useful |
res_rtp_asterisk | Provides RTP | Essential |
res_rtp_multicast | Provides multicast-RTP | New |
res_security_log | Enables security logging | New |
res_smdi | Provides voicemail notification using the SMDI protocol | Limited |
res_snmp | Provides system status information to an SNMP-managed network | Usable |
res_speech | Generic speech recognition API | Limited |
res_timing_dahdi | Provides timing using the DAHDI kernel interface | Useful |
res_timing_kqueue | Provides timing using a kernel feature in some BSDs, including Mac OS X | New |
res_timing_pthread | Provides timing using only parts of the standard pthread API; is less efficient but more portable than other timing modules. | Useful |
res_timing_timerfd | Provides timing using the timerfd API provided by newer versions of the Linux kernel | Useful |
For Popularity comments meaning, See also Popularity/Status Legend
PBX Modules
The PBX modules are peripheral modules that provide enhanced control and configuration mechanisms. For example, pbx_config
is the module that loads the traditional Asterisk dialplan. The currently available PBX modules are listed below:
Name | Purpose | Popularity/Status |
---|---|---|
pbx_ael | Asterisk Extension Logic (AEL) offers a dialplan scripting language that looks like a modern programming language. | Usable |
pbx_config | This is the traditional, and most popular, dialplan language for Asterisk. Without this module, Asterisk cannot read extensions.conf . | Useful |
pbx_dundi | Performs data lookups on remote Asterisk systems. | Useful |
pbx_loopback | Performs something similar to a dialplan include, but in a deprecated manner. | Insignificant |
pbx_lua | Allows creation of a dialplan using the Lua scripting language. | Useful |
pbx_realtime | Provides functionality related to the Asterisk Realtime Architecture. | Useful |
pbx_spool | Provides outgoing spool support relating to Asterisk call files. | Useful |
For Popularity comments meaning, See also Popularity/Status Legend
Addon Modules
Addon modules are community-developed modules with different usage or distribution rights from those of the main code. They are kept in a separate directory and are not compiled and installed by default. To enable these modules, use the menuselect build configuration utility. Currently available addon modules are listed in the Table Below:
Table 2.11. Addon modules
Asterisks File Structure
Asterisk file structure may differ based on the Operating system of choice. After installing Asterisk on Ubuntu, the file structure follows a standard layout. Here is an overview of the important directories and files in the Asterisk installation on Ubuntu:
- Configuration Files
/etc/asterisk/
: This directory contains the main configuration files for Asterisk, such asasterisk.conf
,extensions.conf
,pjsip.conf
, andvoicemail.conf
. It also includes subdirectories for additional configuration files related to specific modules or functionalities.
- Binaries and Scripts:
/usr/sbin/asterisk
: The main Asterisk binary, responsible for running the Asterisk service and handling call processing./usr/sbin/asterisk_start
: A script used to start the Asterisk service./usr/sbin/asterisk_stop
: A script used to stop the Asterisk service./usr/sbin/safe_asterisk
: A script that provides a safe wrapper for starting Asterisk and automatically restarts it if it crashes.
- Libraries
/usr/lib/asterisk/
: This directory contains shared libraries used by Asterisk.
- Module Configuration
/etc/asterisk/modules.conf
: This file specifies which modules should be loaded by Asterisk during startup. It defines the list of modules and their configuration options.
Asterisk modules are usually installed to the/usr/lib/asterisk/modules
folder. You will not normally have to interact with this folder; however, it will be occasionally helpful to know where the modules are located. For example, if you upgrade Asterisk and select different modules during the menu select phase of the installation, the old (incompatible) modules from the previous Asterisk version will not be deleted, and you will get a warning from the install script. Those old files will need to be deleted from the modules folder. This can be done manually or with the “uninstall” make (make uninstall) target.
- Log Files
/var/log/asterisk/
: This directory contains log files generated by Asterisk. It includes files such asmessages
,full
,debug
, andcdr-csv
.
- Temporary and Runtime Files:
/var/run/asterisk/
: This directory stores temporary and runtime files used by Asterisk, including the PID (Process ID) file.
- Sounds and Prompts:
/var/lib/asterisk/sounds/
: This directory stores various sound files used by Asterisk for prompts, IVR menus, and voicemail recordings. It typically contains subdirectories for different languages and categories of sounds.
- Voicemail and Recording:
The spool is where files that change frequently are stored in Linux. For Asterisk, the spool stores transient items such as voice messages, call recordings, call files, etcetera./var/spool/asterisk/voicemail/
: This directory is used to store voicemail messages recorded by Asterisk users./var/spool/asterisk/monitor/
: This directory is used to store call recordings made by Asterisk.
- Sample Configurations:
/usr/share/doc/asterisk/
: This directory contains documentation and sample configuration files for Asterisk.
- Web Interfaces
/var/www/html/
: Web interfaces for Asterisk typically reside in the/var/www/html/
directory on Ubuntu systems. This is the default web root directory where web-based applications, including Asterisk web interfaces, are placed.
When installing a web interface for Asterisk, it often involves copying the necessary files and directories to the/var/www/html/
directory. This allows the webserver to serve the interface to users accessing the appropriate URL.
Please note that the exact file structure may vary depending on the specific version of Asterisk and the installation options chosen. Always refer to the actual file system on your Ubuntu system to ensure accuracy.