Asterisk是最流行和广泛采用的开源PBX平台,为IP PBX系统,会议服务器和VoIP网关提供动力。全球各地的个人,小型企业,大型企业和政府都使用它。

asterisk功能包括语音邮件,保留的音乐,电话会议,呼叫排队,呼叫记录,交互式语音响应等等。

本教程将指导您完成在CentOS 7上安装Asterisk 15所需的步骤。

先决条件

在继续本教程之前,请确保您以具有sudo特权的用户身份登录。

更新您的CentOS系统并安装编译Asterisk源代码所需的开发工具:

sudo yum update
sudo yum groupinstall core base "Development Tools"

禁用Selinux

如果SELinux设置为enforcing模式,asterisk将无法正常运行。

要禁用SELinux安全功能,请打开/etc/selinux/config文件并设置SELINUX=disabled

/etc/selinux/config

# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 
#enforcing - SELinux security policy is enforced. 
#permissive - SELinux prints warnings instead of enforcing. 
#disabled - No SELinux policy is loaded. SELINUX=disabled 
#SELINUXTYPE= can take one of these two values: 
#targeted - Targeted processes are protected, 
#mls - Multi Level Security protection. 
SELINUXTYPE=targeted

保存文件并使用以下命令重新启动CentOS系统:

sudo shutdown -r now

机器启动后,请确保getenforce命令返回Disabled

getenforce
Disabled

下载asterisk

我们将在/usr/src目录中下载Asterisk源代码,这是放置源文件的常用位置。

通过键入以下内容将更改为/usr/src目录:

cd /usr/src/

使用以下 wget 命令下载最新版本的Asterisk 15:

sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz

下载完成后,使用以下命令提取下载的文件

sudo tar zxf asterisk-15-current.tar.gz

在继续下一步之前,请确保通过键入以下内容更改为Asterisk源目录:

cd asterisk-15.*/

安装asterisk依赖项

下载在Asterisk上构建MP3模块和使用MP3文件所需的MP3源:

sudo contrib/scripts/get_mp3_source.sh

接下来,使用install_prereq脚本安装所有缺少的依赖项:

sudo contrib/scripts/install_prereq install

该脚本将安装所有必需的软件包,并且在成功完成后,将打印以下消息:

#############################################
## install completed successfully
#############################################

安装asterisk

configure脚本将执行许多检查,以确保存在构建和安装过程所需的所有依赖项,请键入以下内容以启动脚本:

sudo ./configure --libdir=/usr/lib64

成功完成后,您会看到以下输出:

下一步是选择要编译和安装的模块。

大多数模块已启用。通过键入以下内容来访问Menuselect系统:

sudo make menuselect

我们已经下载了MP3源文件,现在我们需要通过选择format_mp3

来告诉Asterisk构建MP3模块。

完成后,按F12保存并退出,或切换到Save and Exit按钮并按Enter

使用make命令开始编译过程:

sudo make -j2

构建可能需要一些时间才能完成,具体取决于您的系统。您可以根据处理器的内核数量修改-j标志。

构建过程完成后,将向您显示以下消息:

下一步是通过键入以下内容来安装Asterisk及其模块:

sudo make install

安装完成后,脚本将显示以下消息:

现在已安装asterisk,我们需要安装示例配置文件。

​​通过键入以下内容来安装通用配置文件和参考文档:

sudo make samples

或安装基本的PBX配置文件:

sudo make basic-pbx

最后一步是通过键入以下内容来安装Asterisk初始化脚本:

sudo make config

最后运行ldconfig以更新共享库缓存:

sudo ldconfig

创建asterisk用户

默认情况下,asterisk以root用户身份运行。出于安全原因,我们将创建一个新的系统用户,并将Asterisk配置为以新创建的用户身份运行。

要创建名为asterisk的新系统用户,请运行以下命令:

sudo adduser --system --user-group --home-dir /var/lib/asterisk --no-create-home asterisk

要将Asterisk配置为以asterisk用户身份运行,请打开/etc/sysconfig/asterisk文件并取消注释以下两行:

/etc/sysconfig/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

asterisk用户添加到dialoutaudio组中:

sudo usermod -a -G dialout,audio asterisk

我们还需要更改所有asterisk文件和目录的所有权权限,以便用户asterisk可以访问这些文件:

sudo chown -R asterisk: /var/{lib,log,run,spool}/asterisk /usr/lib64/asterisk /etc/asterisk
sudo chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib64/asterisk /etc/asterisk

启动asterisk

现在我们已经完成设置,我们可以使用以下命令启动Asterisk服务:

sudo systemctl start asterisk

要验证Asterisk是否正在运行,请输入以下内容以连接到Asterisk命令行界面(CLI):

sudo asterisk -vvvr

您会看到默认的Asterisk CLI提示符:

最后一步是启用Asterisk服务,以便在启动时启动:

sudo systemctl enable asterisk

调整防火墙规则

现在已安装并正在运行Asterisk,您需要配置防火墙以允许Asterisk特定端口上的流量。

如果您的系统上未启用防火墙,则可以跳过此部分。

打开您选择的文本编辑器并创建以下防火墙服务:

/etc/firewalld/services/asterisk.xml

<?xml version="1.0" encoding="utf-8"?>
<service version="1.0">
  <short>asterisk</short>
  <description>Asterisk is a software implementation of a telephone private branch exchange (PBX).</description>
  <port protocol="udp" port="10000-10100"/>
  <port protocol="udp" port="4569"/>
  <port protocol="udp" port="2727"/>
  <port protocol="udp" port="5060-5061"/>
</service>

输入以下内容,保存文件并应用新的防火墙规则:

sudo firewall-cmd --add-service=asterisk --permanent
sudo firewall-cmd --reload

最后检查新防火墙规则是否成功应用于:

sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client asterisk
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

根据您的需要随意调整防火墙。

结论

在本指南中,我们向您展示了如何在CentOS系统上从源代码安装最新的Asterisk版本。

您现在应该查看 Asterisk文档,并详细了解如何配置和使用Asterisk。

如果您遇到问题或有反馈,请在下面发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持