Section 3.12. Directories Used by Asterisk

3.12. Directories Used by Asterisk

Asterisk uses several directories on a Linux system to manage the various aspects of the system, such as voicemail recordings, voice prompts, and configuration files. This section discusses the necessary directories, all of which are created during installation and configured in the asterisk.conf file.

3.12.1. /etc/asterisk/

The /etc/asterisk/ directory contains the Asterisk configuration files. One file, however zaptel.conf is located in the /etc/ directory. The Zaptel hardware was originally designed by Jim Dixon of the Zapata Telephony Group as a way of bringing reasonable and affordable computer telephony equipment to the world. Asterisk makes use of this hardware, but any other software can also make use of the Zaptel hardware and drivers. Consequently, the zaptel.conf configuration file is not directly located in the /etc/asterisk/ directory.

3.12.2. /usr/lib/asterisk/modules/

The /usr/lib/asterisk/modules/ directory contains all the Asterisk loadable modules. Within this directory are the various applications, codecs, formats, and channels used by Asterisk . By default, Asterisk loads all of these modules at startup. You can disable any modules you are not using in the modules.conf file, but be aware that certain modules are required by Asterisk or are dependencies of other modules. Attempting to load Asterisk without these modules will cause an error at startup.

3.12.3. /var/lib/asterisk

The /var/lib/asterisk/ directory contains the astdb file and a number of subdirectories . The astdb file contains the local Asterisk database information, which is somewhat like the Microsoft Windows Registry. The Asterisk database is a simple implementation based on v1 of the Berkeley database. The db.c file in the Asterisk source states that this version was chosen for the following reason: "DB3 implementation is released under an alternative license incompatible with the GPL. Thus in order to keep Asterisk licensing simplistic, it was decided to use version 1 as it is released under the BSD license."

The subdirectories within /var/lib/asterisk/ include:


The agi-bin/ directory contains your custom scripts, which can interface with Asterisk via the various built-in AGI applications. For more information about AGI, see Chapter 8.


The firmware/ directory contains firmware for various Asterisk-compatible devices. It currently contains only the iax/ subdirectory, which holds the binary firmware image for Digium's IAXy.


Applications that communicate with channels supporting graphical images look in the images/ directory. Most channels do not support the transmission of images, so this directory is rarely used. However, if more devices that support and make use of graphical images are released, this directory will become more relevant.


Asterisk can use a public/private key system to authenticate peers connecting to your box via an RSA digital signature. If you place a peer's public key in your keys/ directory, that peer can be authenticated by channels supporting this method (such as the IAX2 channels). The private key is never distributed to the public. The reverse is also true: you can distribute your public key to your peers, allowing you to be authenticated with the use of your private key. Both the public and private keysending in the .pub and .key file extensions, respectivelyare stored in the keys/ directory.


When you configure Asterisk for Music on Hold, applications utilizing this feature look for their MP3 files in the mohmp3/ directory. Asterisk is a bit picky about how the MP3 files are formatted, so you should use constant bitrate (CBR) encoding and strip the ID3 tags from your files.


All of the available voice prompts for Asterisk reside in the sounds/ directory. The contents of the basic prompts included with Asterisk are in the sounds.txt file located in your Asterisk source code directory. Contents of the additional prompts are located in the sounds-extra.txt file in the directory to which you extracted the asterisk-sounds package earlier in this chapter.

3.12.4. /var/spool/asterisk/

The Asterisk spool directory contains several subdirectories, including outgoing/ , qcall/ , tmp/ , and voicemail/ (see Figure 3-2). Asterisk monitors the outgoing and qcall directories for text files containing call request information. These files allow you to generate a call simply by copying or moving the correctly structured file into the outgoing/ directory.

Figure 3-2. /var/spool/asterisk/ directory structure

The old (now deprecated) qcall method of generating calls utilized a single line of text within the call file. Call files for use within the qcall directory took the form of:

 Dialstring Caller-ID Extension Maxsecs [Identifier] [Required-response] 

This rather limited what you could do with the call file, and what kinds of information you could pass to Asterisk. Thus, a new spooling method was developed in Asterisk, using the outgoing directory. Call files being placed into this directory can contain much more valuable information, such as the Context, Extension, and Priority where the answered call should start, or simply the application and its arguments. You can also set variables and specify an account code for Call Detail Records. More information about the use of call files is presented in Chapter 9.

The tmp/ directory is used, funny enough, to hold temporary information. Certain applications may require a place to write files to before copying the complete files to their final destinations. This prevents two processes from trying to write to and read from a file at the same time.

All voicemail and user greetings are contained within the voicemail/ directory. Extensions configured in voicemail.conf that have been logged into at least once are created as subdirectories of voicemail/ .

3.12.5. /var/run/

The /var/run/ directory contains the process ID (pid) information for all active processes on the system, including Asterisk (as specified in the asterisk.conf file). Note that /var/run/ is OS-dependent and may differ .

3.12.6. /var/log/asterisk/

The /var/log/asterisk/ directory is where Asterisk logs information. You can control the type of information being logged to the various files by editing the logger.conf file located in the /etc/asterisk/ directory. Basic configuration of the logger.conf file is covered in Appendix E.

3.12.7. /var/log/asterisk/cdr-csv

The /var/log/asterisk/cdr-csv directory is used to store the CDRs in comma-separated value (CSV) format. By default information is stored in the Master.csv file, but individual accounts can store their own CDRs in separate files with the use of the accountcode option (see Appendix A for more information).

Asterisk. The Future of Telephony
Asterisk: The Future of Telephony: The Future of Telephony
Year: 2001
Pages: 380 © 2008-2017.
If you may any questions please contact us: