Now that you understand the fundamentals of VoIP and the Asterisk platform, you are ready to install and configure Asterisk. At the moment, Asterisk does not officially distribute packages for Linux distributions, so you’ll have to compile Asterisk from source. While that task might sound daunting, the Asterisk maintainers have gone through great lengths to make this process as easy as possible. This article will walk you through both building and starting Asterisk. When you’re done, you will have a functioning Asterisk system that is ready for further configuration.
Note: The instructions below are current as of the time that this was written. I recommend that you always consult the official installation instructions to ensure that you are following the latest recommended procedures.
Building and installing Asterisk
The first step is to download and unzip a current release of Asterisk. You should consult the Asterisk version documentation when making a decision, but generally, you will want to use the latest LTS version. Asterisk versions can be downloaded from the Asterisk website. I use Asterisk 16.6.1 in this tutorial, but the instructions will generally be the same for other versions.
I used /usr/local/src as the base directory to download the source code into:
[root@asterisk-1 ~]# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
[root@asterisk-1 src]# tar -xf asterisk-16-current.tar.gz
[root@asterisk-1 src]# cd asterisk-16.6.1/
You’re now ready to install the prerequisites needed to build and run Asterisk. The Asterisk team has made this process as easy as possible by providing an install_prereq script to automatically install the needed dependencies based on your distribution. Below, I’ve run the script in "test" mode, which helpfully prints the exact command you need to run to install dependencies. I then ran the script in "install" mode to actually install the dependencies that are needed:
[root@asterisk-1 asterisk-16.6.1]# cd scripts
[root@asterisk-1 scripts]# ./install_prereq test
#############################################
## test: test mode.
## Use the commands here to install your system.
#############################################
yum install --skip-broken --assumeyes gcc-c++ libedit-devel jansson-devel libuuid-devel sqlite-devel libxml2-devel speex-devel speexdsp-devel libogg-devel libvorbis-devel alsa-lib-devel portaudio-devel libcurl-devel xmlstarlet bison flex postgresql-devel unixODBC-devel neon-devel gmime-devel lua-devel uriparser-devel libxslt-devel openssl-devel mysql-devel bluez-libs-devel radcli-devel freetds-devel jack-audio-connection-kit-devel net-snmp-devel iksemel-devel corosynclib-devel newt-devel popt-devel libical-devel spandsp-devel libresample-devel uw-imap-devel binutils-devel libsrtp-devel gsm-devel doxygen graphviz zlib-devel openldap-devel hoard codec2-devel fftw-devel libsndfile-devel unbound-devel subversion bzip2 patch python-devel
[root@asterisk-1 scripts]# ./install_prereq install
Now that the prerequisites have been installed, you can run the configure scripts in preparation for building Asterisk. On my system, I had to install using the bundled version of libjansson, as the version in the repositories was too old. This command below will run configure scripts for Asterisk:
[root@asterisk-1 asterisk-16.6.1]# ./configure --with-jansson-bundled
By default, Asterisk uses the menuselect utility to present you with a graphical list of configuration options. Take the time to review these to get a sense of the many modules and options available in an Asterisk installation:
In my case, I left all of the options the same with one exception: I unselected the chan_sip module in the Channel Drivers menu. The chan_sip module is an older, deprecated SIP channel driver, and you won’t need it in a modern Asterisk environment.
With the configuration script run, you’re ready to build Asterisk from source using make. I’ve shortened the output below to save space, but once make is done running, you will see a success prompt and instructions to run the installation:
[root@asterisk-1 asterisk-16.6.1]# make
[CC] astcanary.c -> astcanary.o
[LD] astcanary.o -> astcanary
[CC] astdb2sqlite3.c -> astdb2sqlite3.o
[CC] hash/hash.c -> hash/hash.o
[CC] hash/hash_bigkey.c -> hash/hash_bigkey.o
[CC] hash/hash_buf.c -> ha
...
Building Documentation For: third-party channels pbx apps codecs formats cdr cel bridges funcs tests main res addons
+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
Once the build has completed, you are ready to install Asterisk. As the prompt suggests, this task is easy: Just run make install. I also recommend running make samples (to generate config file samples) and make config (to generate systemd unit files). Again, I have shortened the output below for brevity:
[root@asterisk-1 asterisk-16.6.1]# make install
...
+---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ For generic reference documentation: +
+ make samples +
+ +
+ For a sample basic PBX: +
+ make basic-pbx +
+ +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+
[root@asterisk-1 asterisk-16.6.1]# make samples
[root@asterisk-1 asterisk-16.6.1]# make config
Finally, I found that I had to restore the SELinux context on a few files used by Asterisk in my environment. To do so, I used the commands below:
[root@asterisk-1 asterisk-16.6.1]# restorecon -v /var/lib/asterisk/astdb.sqlite3
[root@asterisk-1 asterisk-16.6.1]# restorecon -rv /var/lib/asterisk/
[root@asterisk-1 asterisk-16.6.1]# restorecon -rv /etc/asterisk/
Note: You might find that additional SELinux tuning is needed in your environment, which is beyond the scope of this article (< if we have an selinux enable sysadmin article, link to it here>). [Note: Add link.]
Congratulations! Asterisk has now been installed and you’re ready to begin configuration. You can now verify your installation by starting the Asterisk service and connecting via the command line as seen below. Be sure to stop the service when you’re done since you won’t have any configuration in place until we set up phones in this series’ next article:
[root@asterisk-1 ~]# systemctl start asterisk
[root@asterisk-1 ~]# asterisk -r
Asterisk 16.6.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 16.6.1 currently running on asterisk-1 (pid = 22082)
asterisk-1*CLI> quit
Asterisk cleanly ending (0).
Executing last minute cleanups
[root@asterisk-1 ~]# systemctl stop asterisk
Wrapping up
In this article, you learned how to build and install Asterisk from source. Thanks to the efforts of the Asterisk project, this is a simple and painless experience. You are now ready to begin configuring Asterisk in the next article of this series.
저자 소개
Anthony Critelli is a Linux systems engineer with interests in automation, containerization, tracing, and performance. He started his professional career as a network engineer and eventually made the switch to the Linux systems side of IT. He holds a B.S. and an M.S. from the Rochester Institute of Technology.
유사한 검색 결과
End-to-end security for AI: Integrating AltaStata Storage with Red Hat OpenShift confidential containers
Red Hat Enterprise Linux now available on the AWS European Sovereign Cloud
Data Security 101 | Compiler
Technically Speaking | Build a production-ready AI toolbox
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
가상화
온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래