Asterisk
About this project
By Mark Spencer <markster@digium.com> and the Asterisk.org developer community.
Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.
SECURITY
It is imperative that you read and fully understand the contents of the security information document before you attempt to configure and run an Asterisk server.
See Important Security Considerations for more information.
WHAT IS ASTERISK ?
Asterisk is an Open Source PBX and telephony toolkit. It is, in a sense, middleware between Internet and telephony channels on the bottom, and Internet and telephony applications at the top. However, Asterisk supports more telephony interfaces than just Internet telephony. Asterisk also has a vast amount of support for traditional PSTN telephony, as well.
For more information on the project itself, please visit the Asterisk Home Page and the official Asterisk Documentation.
SUPPORTED OPERATING SYSTEMS
Linux
The Asterisk Open Source PBX is developed and tested primarily on the GNU/Linux operating system, and is supported on every major GNU/Linux distribution.
Others
Asterisk has also been 'ported' and reportedly runs properly on other operating systems as well, Apple's Mac OS X, and the BSD variants.
GETTING STARTED
Most users are using VoIP/SIP exclusively these days but if you need to interface to TDM or analog services or devices, be sure you've got supported hardware.
Supported telephony hardware includes:
- All Analog and Digital Interface cards from Sangoma
- Any full duplex sound card supported by PortAudio
- The Xorcom Astribank channel bank
UPGRADING FROM AN EARLIER VERSION
If you are updating from a previous version of Asterisk, make sure you read the Change Logs.
NEW INSTALLATIONS
Ensure that your system contains a compatible compiler and development libraries. Asterisk requires either the GNU Compiler Collection (GCC) version 4.1 or higher, or a compiler that supports the C99 specification and some of the gcc language extensions. In addition, your system needs to have the C library headers available, and the headers and libraries for ncurses.
There are many modules that have additional dependencies. To see what
libraries are being looked for, see ./configure --help
, or run
make menuselect
to view the dependencies for specific modules.
On many distributions, these dependencies are installed by packages with names
like 'glibc-devel', 'ncurses-devel', 'openssl-devel' and 'zlib-devel'
or similar. The contrib/scripts/install_prereq
script can be used to install
the dependencies for most Debian and Redhat based Linux distributions.
T