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, howeverzaptel.confis 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:
agi-bin/
-
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.
firmware/
-
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.
images/
-
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.
keys/
-
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.
mohmp3/
-
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.
sounds/
-
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.
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). |