如何在 CentOS/RHEL 8/7 上安装 Asterisk
Asterisk 是一个用于构建通信应用程序的开源框架。您可以使用它将本地计算机或服务器转变为通信服务器。它用于为 IP PBX 系统、VoIP 网关、会议服务器和其他解决方案供电。它被全世界各种组织使用,最后但并非最后它是免费和开源的。
在本教程中,我们将向您展示如何在 CentOS 8/7 上安装 Asterisk(说明也适用于 RHEL 8/7) ,但在开始之前,我们需要做一些准备工作,以便Asterisk安装后能够顺利运行。
步骤 1:在 CentOS 上禁用 SELinux
为此,请通过 SSH 连接到您的系统并使用您最喜欢的命令行文本编辑器,打开 /etc/selinux/config 并禁用 SELINUX。
vim /etc/selinux/config
SELinux 行应该如下所示:
SELINUX=disabled
现在重新启动您的系统。一旦它再次通过 SSH 连接到该系统。
第2步:安装所需的软件包
Asterisk 有很多需要安装的要求。您可以使用以下 yum 命令来安装所需的软件包,如图所示。
yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel
在继续之前,创建一个具有 sudo 权限的新用户“asterisk”,我们将使用该用户在系统上设置asterisk。
adduser asterisk -c "Asterisk User"
passwd asterisk
usermod -aG wheel asterisk
su asterisk
接下来,安装PJSIP,它是一个免费的开源多媒体通信库,它实现了基于标准的协议,例如SIP、SDP、RTP、STUN、TURN和ICE。 Asterisk SIP 通道驱动程序应该可以提高呼叫的清晰度。
要获取最新版本,首先让我们创建一个临时目录,我们将在其中从源代码构建包。
mkdir ~/build && cd ~/build
现在进入 PJSIP 下载页面并获取包或使用以下 wget 命令直接在终端中下载包。
请注意,在撰写本文时,最新版本是2.8,将来可能会发生变化,因此请确保使用最新版本:
wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2
下载完成后,解压文件并更改到该目录。
tar xvjf pjproject-2.9.tar.bz2
cd pjproject-2.9
下一步是准备要编译的包。您可以使用以下命令:
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
您不应该看到任何错误或警告。确保满足所有依赖关系:
make dep
现在我们可以使用以下命令完成安装和链接库:
make && sudo make install && sudo ldconfig
最后,确保所有库均已安装并存在:
ldconfig -p | grep pj
您应该得到以下输出:
libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
libpj.so (libc6,x86-64) => /lib64/libpj.so
步骤3:在CentOS 8/7上安装Asterisk
我们现在准备开始安装 Asterisk。导航回我们的 ~/build 目录:
cd ~/build
转到 Asterisk 下载页面并获取最新版本,或者您可以使用以下 wget 命令在终端中下载文件。
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
在撰写本教程时,最新的 Asterisk 版本是16。当您执行以下步骤时,请确保您下载的是最新版本的 Asterisk。
现在提取存档并导航到新创建的目录:
tar -zxvf asterisk-16-current.tar.gz
cd asterisk-16.5.1
现在需要提一下,如果您希望在客户端处于等待状态时启用 mp3 支持来播放音乐,则需要安装更多依赖项。这些步骤是可选的:
sudo yum install svn
sudo ./contrib/scripts/get_mp3_source.sh
第二步之后,您应该得到类似于以下的输出:
A addons/mp3
A addons/mp3/Makefile
A addons/mp3/README
A addons/mp3/decode_i386.c
A addons/mp3/dct64_i386.c
A addons/mp3/MPGLIB_TODO
A addons/mp3/mpg123.h
A addons/mp3/layer3.c
A addons/mp3/mpglib.h
A addons/mp3/decode_ntom.c
A addons/mp3/interface.c
A addons/mp3/MPGLIB_README
A addons/mp3/common.c
A addons/mp3/huffman.h
A addons/mp3/tabinit.c
Exported revision 202.
首先运行配置脚本来准备要编译的包:
sudo contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-jansson-bundled
如果您缺少任何依赖项,请安装它们。就我而言,我收到以下错误:
configure: error: patch is required to configure bundled pjproject
要解决这个问题,只需运行:
yum install patch
并重新运行配置脚本。如果一切顺利,没有错误,您将看到以下屏幕截图。
现在,让我们开始构建过程:
make menuselect
几秒钟后,您应该会获得要启用的功能列表:
如果您尝试使用音乐保留功能,则需要从“附加组件”部分启用“format_mp3”功能。保存您的列表并运行以下命令:
make && sudo make install
要安装示例配置文件,请使用以下命令:
sudo make samples
要在引导时启动 Asterisk,请使用:
sudo make config
更新以下目录和文件的所有权:
sudo chown asterisk. /var/run/asterisk
sudo chown asterisk. -R /etc/asterisk
sudo chown asterisk. -R /var/{lib,log,spool}/asterisk
最后,让我们测试一下我们的安装:
sudo service asterisk start
sudo asterisk -rvv
您应该看到与此类似的输出:
Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email >
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.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>
如果您想查看可用命令的列表,请键入:
asterisk*CLI> core show help
要退出星号提示符,只需键入:
asterisk*CLI> exit
Asterisk 仍将在后台运行。
结论
现在,您拥有正在运行的 Asterisk 服务器,您可以开始连接电话和分机并根据需要调整配置。有关如何实现此目的的更多详细信息,建议使用 Asterisk Wiki 页面。如果您有任何问题或意见,请在下面的评论部分告诉我们。