在 Ubuntu 22.04|20.04|18.04 上安装 Asterisk 20 LTS
Asterisk 是一种开源解决方案,为不同类型行业的许多 VoIP 系统提供支持。指导 Asterisk 开发的公司是 Sangoma。 Asterisk 可用于为小型、中型和大型公司构建通信应用程序。由于它可以在旧硬件上运行,因此初始生产成本极低。 Asterisk 构建的解决方案为全球呼叫中心、运营商和政府机构提供支持。
在今天的文章中,我们将在 Ubuntu 系统上安装 Asterisk 版本 20。在执行此安装的服务器上,确保 SIP 端口 5060 UDP/TCP 未被类似应用程序使用。那么让我们开始吧。
Asterisk PBX 的特点:
- Asterisk 是用 C 编程语言编写的
- 它被编写为在 Linux 和其他类型的 Unix 上运行
- 它为商务电话系统提供动力
- 它连接许多不同的电话协议
- 它是一个用于构建具有许多强大功能和应用程序、VoIP 网关和会议系统的 IP PBX 的工具包
- 支持 VoIP 电话以及 PSTN 和 POTS
- 它使用最常见的 VoIP 协议 SIP 等
我们假设您在全新安装的 Ubuntu 桌面版或服务器版上执行此设置。互联网访问和具有 root 权限的用户是所需的主要先决条件。要使用 PSTN 连接外部网络,请查找您所在位置内可以为您提供服务的服务提供商。
1. 在最新的操作系统更新上运行
通常我们总是在更新的 Ubuntu 系统上执行安装。运行以下命令以确保更新所有已安装的软件包。我们首先更新包索引,然后更新操作系统包。
sudo apt update && sudo apt -y upgrade
升级后,弹跳系统是合乎逻辑的。
[ -f /var/run/reboot-required ] && sudo reboot -f
2. 安装构建依赖项
运行提供的命令来安装所需的依赖项。
sudo add-apt-repository universe
sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev
安装完软件包后,我们就可以继续安装了。
3. 下载 Asterisk 20 tarball
使用wget
命令在系统上下载Asterisk。
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
使用 tar
提取文件。
tar xvf asterisk-20-current.tar.gz
接下来将mp3解码器库下载到源代码树中。
cd asterisk-20*/
contrib/scripts/get_mp3_source.sh
成功执行命令会有这样的输出;
A addons/mp3
A addons/mp3/MPGLIB_README
A addons/mp3/common.c
A addons/mp3/huffman.h
A addons/mp3/tabinit.c
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
Exported revision 202.
确认依赖关系 100% 满足。
sudo contrib/scripts/install_prereq install
在继续之前确保它返回成功消息。
#############################################
## install completed successfully
#############################################
4. 构建并安装 Asterisk 20
运行配置脚本以满足构建依赖关系。
./configure
运行下面给出的下一个命令。
make menuselect
使用箭头键进行导航,然后使用Enter键进行选择。
选择插件以选择可用并启用它们。
我们可以启用核心声音模块来使用,如屏幕截图所示。
添加您还想使用的其他 MOH 包。
对额外声音包执行相同的操作。
完成后从源代码构建 Asterisk。
$ make
.....
TROLEnc.o ooh323cDriver.o -> chan_ooh323.so
[CC] format_mp3.c -> format_mp3.o
[CC] mp3/common.c -> mp3/common.o
[CC] mp3/dct64_i386.c -> mp3/dct64_i386.o
[CC] mp3/decode_ntom.c -> mp3/decode_ntom.o
[CC] mp3/layer3.c -> mp3/layer3.o
[CC] mp3/tabinit.c -> mp3/tabinit.o
[CC] mp3/interface.c -> mp3/interface.o
[LD] format_mp3.o mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o -> format_mp3.so
[CC] res_config_mysql.c -> res_config_mysql.o
[LD] res_config_mysql.o -> res_config_mysql.so
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 +
+-------------------------------------------+
构建系统后安装 Asterisk。
$ sudo make install
....
make[1]: Entering directory '/home/jkmutai/asterisk-18.1.1/sounds'
make[1]: Leaving directory '/home/jkmutai/asterisk-18.1.1/sounds'
find rest-api -name "*.json" | while read x; do \
/usr/bin/install -c -m 644 $x "/var/lib/asterisk/rest-api" ; \
done
+---- 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 +
+-------------------------------------------+
您可以选择安装文档:
sudo make progdocs
安装配置和示例。
sudo make samples
sudo make config
sudo ldconfig
要安装示例 PBX,请运行
sudo make basic-pbx
5.配置并启动Asterisk服务
创建具有权限的 Asterisk 用户和目录。
sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk
sudo usermod -aG audio,dialout asterisk
sudo chown -R asterisk.asterisk /etc/asterisk
sudo chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk.asterisk /usr/lib/asterisk
sudo chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk
将 Asterisk 默认用户设置为星号:
$ sudo vim /etc/default/asterisk
#Uncomment AST_USER and AST_GROUP to look like below
AST_USER="asterisk"
AST_GROUP="asterisk"
$ sudo vim /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
进行更改后重新启动 asterisk 服务。
sudo systemctl restart asterisk
启用该服务在系统启动时启动。
sudo systemctl enable asterisk
检查服务状态以查看其是否正在运行。
$ systemctl status asterisk
● asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/init.d/asterisk; generated)
Active: active (running) since Mon 2023-11-27 19:31:41 UTC; 35s ago
Docs: man:systemd-sysv-generator(8)
Tasks: 82 (limit: 4567)
Memory: 44.6M
CGroup: /system.slice/asterisk.service
└─54142 /usr/sbin/asterisk -U asterisk -G asterisk
连接到 Asterisk 控制台。
$ sudo asterisk -rvv
Asterisk 20.5.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation 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.
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 20.5.0 currently running on monitoring (pid = 424549)
asterisk*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups
如果您有活动的 ufw 防火墙,请打开 http 端口和端口 5060,5061:
sudo ufw allow proto tcp from any to any port 5060,5061
类似的 VoIP 文章。
- 保护 Asterisk 和 FreePBX 免受 VoIP 欺诈和暴力攻击
- 如何在 Ubuntu 上安装 FreeSwitch PBX