Once you’ve compiled and installed the zaptel and
libpri packages (if you need them), you can move on
to Asterisk. This section walks you through a standard installation and
introduces some of the alternative make
arguments that you may find
useful.
Asterisk is compiled with gcc through the use of the
GNU make program. To get started
compiling Asterisk, simply run the following commands (replace
version
with your version of
Asterisk):
#cd /usr/src/asterisk-
#version
make clean
# ./configure
# make menuselect
#make install
#make samples
Be aware that compile times will vary between systems. On a current-generation processor, you shouldn’t need to wait more than five minutes. At AstriCon (http://www.astricon.net), someone reported successfully compiling Asterisk on a 133 MHz Pentium, but it took approximately five hours. You do the math.
Run the make samples
command to install the default configuration files. Installing
these files (instead of configuring each file manually) will allow you
to get your Asterisk system up and running much faster. Many of the
default values are fine for Asterisk. Files that require editing will
be explained in future chapters.
Tip
If you already have configuration files installed in
/etc/asterisk/ when you run the make samples
command,
.old will be appended to the end of each of
your current configuration files, for example,
extensions.conf will be renamed
extensions.conf.old. Be careful, though,
because if you run make samples
more than once you will overwrite your original configuration
files!
The sample configuration files can also be found in the configs/ subdirectory within your Asterisk sources directory.
If you’re using a system that makes use of the
/etc/rc.d/init.d/ or
/etc/init.d/ directories, you may wish to run the
make config
command as well. This
will install the startup scripts and configure the system (through the
use of the chkconfig
command) to
execute Asterisk automatically at startup:
# make config
There are several other make
arguments that you can pass at compile time. While some of these will
be discussed here, the remainder are used internally within the file
and really have no bearing or use for the end user. (Of course, new
functions may have been added, so be sure to check the Makefile for other
options.)
Let’s take a look at some useful make
arguments.
The make clean
command
is used to remove the compiled binaries from within
the source directory. This command should be run before you attempt
to recompile or, if space is an issue, if you would like to clean up
the files.
The make distclean
command
is used to remove the compiled binaries and to clean the
source directory back to its original state after being extracted
from the compressed archive.
The make update
command is used to update the existing code from the Digium SVN
server. If you downloaded the source code from the FTP server, you
will receive a notice stating so.
The Asterisk Web Voicemail script is used to give a graphical interface to your voicemail account, allowing you to manage and interact with your voicemail remotely from a web browser.
When you run the make
webvmail
command, the Asterisk Web Voicemail script will
be placed into the cgi-bin/ directory of your
HTTP daemon. If you have specific policies with respect to security,
be aware that it uses a setuid
root
Perl script. This command will install only on a
CentOS or Fedora box, as other distributions may have different
paths to their cgi-bin/ directories. (This, of
course, can be changed by editing the HTTP_CFGDIR
variable in the
Makefile at line 133 at the time of this
writing.)
The make progdocs
command will create documentation using the
doxygen software from comments placed within
the source code by the developers. You must have the appropriate
doxygen software installed on your system in
order for this to work. Note that doxygen
assumes that the source code is well documented, which, sadly, is
not always the case, although much work was published since the
first edition of this book! The information contained within
the doxygen system will be useful
only to developers.
The make config
command
will install Red Hat-style initialization scripts, if
the /etc/rc.d/init.d or
/etc/init.d directories are found to exist. If
they do exist, the scripts are installed with file permissions equal
to 755
. If the script detects
that /etc/rc.d/init.d/ exists, the chkconfig --add asterisk
command will also
be run to cause Asterisk to be started automatically at boot time.
This is not the case, however, with distributions that only use the
/etc/init.d/ directory. Running make config
will not do anything to an
already running Asterisk process, or start one if it’s not
running.
This script currently is really only useful on a Red Hat-based system, although initialization scripts are available for other distributions (such as Gentoo, Mandrake, and Slackware) in the ./contrib./init.d/ directory of your Asterisk source directory.
While the documented process of installing Asterisk expects you to compile the source code yourself, there are Linux distributions (such as Debian) that include precompiled Asterisk binaries. Failing that, you may be able to install Asterisk with the package managers that those distributions of Linux provide (such as apt-get for Debian and portage for Gentoo).[47] However, you may also find that many of these prebuilt binaries are quite out of date and do not follow the same furious development cycle as Asterisk.
Finally, there do exist basic, precompiled Asterisk binaries that can be downloaded and installed in whatever Linux distribution you have chosen. However, the use of precompiled binaries doesn’t really save much time, and we have found that compiling Asterisk with each install is not a very cumbersome task. We believe that the best way to install Asterisk is to compile from the source code, so we won’t discuss prebuilt binaries very much in this book―and besides, don’t you want to be l33t?[48] In the next chapter, we’ll look at how to initially configure Asterisk and several kinds of channels.
[47] Gentoo doesn’t actually use a precompiled binary, but rather pulls the source from a repository, and builds and installs the software using its own package management system. But the version you get is still dependant upon the maintainers packaging it for you, when you could simply build it yourself!
[48] l33t is a funny way of saying “elite,” known as leetspeak (computer slang). Even more funny is a well-written, serious article by Microsoft about leetspeak at http://www.microsoft.com/athome/security/children/leetspeak.mspx.
Get Asterisk: The Future of Telephony, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.