myfreax

如何在Ubuntu 20.04安装Asterisk

ASTERISK是一个流行的开源PBX平台,用于开发通信应用程序,如会议服务器和VoIP网关。 它由个人,小企业,大型企业和全球各国政府使用

5 min read
By myfreax
如何在Ubuntu 20.04安装Asterisk
如何在Ubuntu 20.04安装Asterisk

ASTERISK是一个流行的开源PBX平台,用于开发通信应用程序,如会议服务器和VoIP网关。它被个人,小企业,大型企业和全球各国政府使用。

Asterisk功能包括语音邮件,音乐持有,电话会议,呼叫排队,呼叫记录,交互式语音响应,SMS消息传递等。

本教程将说明如何在Ubuntu 20.04安装Asterisk。Ubuntu存储库包含旧的Asterisk版本。

我们将从源代码中安装最新版本的Asterisk。包括安装DAHDI和Libpri,创建Asterisk用户,Asterisk自动启动,配置防火墙。

首先运行APT命令sudo apt update更新软件包索引,然后安装和构建Asterisk所必需的软件依赖。

DAHDI是一组驱动程序,允许Asterisk与模拟和数字电话通信。libpri库允许Asterisk与ISDN连接通信。

如果您不需要这些库,则可以跳过本节。切换到/usr/src目录并下载并安装DAHDI。

sudo apt update
sudo apt install wget build-essential git autoconf subversion pkg-config libtool

构建dahdi-linux

运行以下命令以构建dahdi-linux:

cd /usr/src/
sudo git clone -b next git://git.asterisk.org/dahdi/linux dahdi-linux
cd dahdi-linux
sudo make
sudo make install

构建dahdi-tools

运行以下命令以构建dahdi-tools:

cd /usr/src/
sudo git clone -b next git://git.asterisk.org/dahdi/tools dahdi-tools
cd dahdi-tools
sudo autoreconf -i
sudo ./configure
sudo make install
sudo make install-config
sudo dahdi_genconf modules

构建libpri

运行以下命令以构建libpri:

cd /usr/src/
sudo git clone https://gerrit.asterisk.org/libpri libpri
cd libpri
sudo make
sudo make install

安装Asterisk

克隆Asterisk源码到/usr/src目录中。在撰写本文时,最新版本的asterisk为18.x. 如果有可用的新版本,请在git命令的-b选项之后更改分支编号。

然后运行cd命令切换到Asterisk源码目录。运行get_mp3_source.sh脚本下载构建MP3模块所需的MP3源码。运行install_prereq脚本以安装必要的依赖软件。

运行configure脚本执行多个检查以确保系统上的所有依赖项都存在。运行命令sudo ./configure配置构建脚本。

cd /usr/src/
sudo git clone -b 18 https://gerrit.asterisk.org/asterisk asterisk-18
cd asterisk-18/

sudo contrib/scripts/get_mp3_source.sh

sudo contrib/scripts/install_prereq install

sudo ./configure

下一步是选择要编译和安装的模块。打开构建菜单,运行命令sudo make menuselect

选择format_mp3选项,指示Asterisk构建MP3模块。完成后,切换到save&exit按钮,然后按Enter。启动编译过程,运行命令sudo make -j2

编译可能需要一些时间,具体取决于您的系统。 您可以根据处理器的核心数修改-j后面的数字。完成后,运行命令sudo make install安装Asterisk及其模块。

sudo make menuselect
sudo make -j2
sudo make install
asterisk mp3

您可以运行命令sudo make samples安装通用的配置文件。或者安装基本PBX配置文件运行命令sudo make basic-pbx

最后一步是运行命令sudo make config运行Asterisk init脚本,运行ldconfig更新共享库缓存。

sudo make samples
sudo make basic-pbx

sudo make config
sudo ldconfig

创建Asterisk用户

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

运行adduser命令创建名为asterisk的新系统用户。然后配置Asterisk程序作为asterisk用户运行。

使用你喜欢的文本编辑器打开/etc/default/asterisk文件并取消注释以下两行。在本教程中我们使用Vim打开文件

sudo adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk

sudo vim /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"
/etc/default/asterisk

然后将asterisk用户添加到dialoutaudio组。运行命令sudo usermod -a -G dialout,audio asterisk

除此之外,我们还需要更改Asterisk文件和目录的所有权和权限,使用户Asterisk可以访问这些文件。

sudo usermod -a -G dialout,audio asterisk

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

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

启动Asterisk

当Asterisk安装完成后,Asterisk将会作为systemd的服务单元在后台运行。运行命令sudo systemctl start asterisk启动Asterisk服务。

验证Asterisk是否正在运行,请运行命令sudo systemctl status asterisk。你也可以运行命令sudo asterisk -vvvr连接到Asterisk命令行接口。

你会看到默认的Asterisk CLI提示符,最后一步是启用自动启动Asterisk服务,运行命令sudo systemctl enable asterisk

sudo systemctl start asterisk
sudo systemctl status asterisk
sudo asterisk -vvvr
sudo systemctl enable asterisk
Connected to Asterisk GIT-18-263f906af4 currently running on ubuntu2004 (pid = 91303)
ubuntu2004*CLI>

配置防火墙

防火墙为您的服务器提供安全保证。如果您的服务器上没有配置防火墙,则可以查看我们的教程如何在Ubuntu 20.04配置防火墙ufw

默认情况下,SIP使用UDP端口5060,因此我们需要打开此端口,运行命令sudo ufw allow 5060/udp

如果启用了RTP实时协议,则还需要打开10000-20000的端口范围。至此,Asterisk已安装完成。

sudo ufw allow 5060/udp
sudo ufw allow 10000:20000/udp

结论

我们向您展示了如何从Ubuntu 20.04的源中安装最新的Asterisk版本。了解有关如何配置和使用Asterisk查看官方文档。如果您遇到问题或有反馈,请在下面发表评论。