如何在CentOS 7上安装 Asterisk
Asterisk是最受欢迎和广泛采用的开源PBX平台,可为IP PBX系统,会议服务器和VoIP网关提供支持。
世界各地的个人,小型企业,大型企业和政府都在使用它。
Asterisk功能包括语音邮件,保留的音乐,电话会议,调用排队,调用记录,交互式语音响应等等。
本教程将指导我们完成在CentOS 7上安装Asterisk 15所需的步骤。
准备工作
- 在继续本教程之前,请确保我们以具有sudo特权的用户身份登录。
- 更新CentOS系统并安装编译Asterisk源代码所需的开发工具:
sudo yum updatesudo yum groupinstall core base "Development Tools"
禁用Selinux
如果SELinux设置为“强制”模式,则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依赖项
下载构建MP3模块并在Asterisk上使用MP3文件所需的MP3源:
sudo contrib/scripts/get_mp3_source.sh
接下来,使用“ install_prereq”脚本安装所有缺少的依赖项:
sudo contrib/scripts/install_prereq install
该脚本将安装所有必需的软件包,并且在成功完成后,将打印以下消息:
sh## install completed successfully
安装 Asterisk
“配置”脚本将执行许多检查,以确保存在构建和安装过程所需的所有依赖项,请通过键入以下内容启动脚本:
sudo ./configure --libdir=/usr/lib64
成功完成后,我们将看到以下输出:
下一步是选择要编译和安装的模块。
大多数模块已启用。
通过键入以下内容来访问Menuselect系统:
sudo make menuselect
我们已经下载了MP3源文件,现在我们需要告诉Asterisk通过选择'format_mp3'来构建MP3模块:
完成后,按“ F12”保存并退出,或者切换到“保存并退出”按钮,然后按“ 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”用户添加到“拨号”和“音频”组:
sudo usermod -a -G dialout,audio asterisk
我们还需要更改所有 Asterisk文件和目录的所有权和权限,以便用户 Asterisk可以访问这些文件:
sudo chown -R asterisk: /var/{lib,log,run,spool}/asterisk /usr/lib64/asterisk /etc/asterisksudo 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 --permanentsudo 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:
可以根据需要随意调整防火墙。