在CentOS 7上安装Asterisk PBX 13.x的指南

大家好。本指南将安装Asterisk 13.0.6。这是一个完全简单的教程。有关Asterisk的最新版本,请参阅如何在CentOS 7上安装Asterisk 15 PBX。让我们从PBX和Asterisk的定义开始。

什么是PBX?星号首先是专用小交换机。 PBX是处理私人公司而非电话公司拥有的电话交换的设备。 PBX可以看作是专用电话交换机,它在一侧连接到一个或多个电话,并且通常在另一侧连接到一个或多个电话线。什么是星号?
星号是完整的PBX。它实现了大多数商用PBX的所有关键功能。它还实现了免费的功能,在商业安装中通常是昂贵的:电话会议,直接向内系统访问,呼叫驻留和呼叫队列等。

Asterisk提供的基本功能是:

  1. 来电显示
  2. 黑名单(按呼叫者ID阻止呼叫者)
  3. 呼叫等待
  4. 呼叫转移
  5. 电话会议
  6. 会议中心/桥接
  7. 请勿打扰
  8. 通话转接
  9. 停车场
  10. 通话明细报告
  11. 按名称拨号目录
  12. 交互式语音响应(自动响应)
  13. 时间条件呼叫路由
  14. 呼叫排队
  15. 回电
  16. 保留音乐/录音(MP3)
  17. 应用整合
  18. 扩展通话报告
  19. DISA(直接向内系统访问)
  20. 听写
  21. 跟我来
  22. 寻呼/对讲机
  23. 环组
  24. 图形化呼叫管理器
  25. 昼夜控制

FreePBX 15指南已更新

如何在CentOS 7上安装Asterisk 15 PBX

首先。让我们开始吧。
您可以在安装前设置主机名和时区。使用以下命令:

sudo timedatectl  list-timezones
sudo timedatectl  set-timezone Africa/Nairobi

要设置主机名,请输入:

sudo hostnamectl set-hostname pbx-01.example.com

当CentOS服务器的键盘映射错误时。您可以修复它们。

localectl 
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us
$ localectl list-keymaps

设置键盘映射:

sudo localectl set-keymap us

您可以通过在终端中以root用户身份输入以下命令来将系统语言设置为英语:

sudo localectl set-locale LANG=en_US.UTF-8

1.首先,更新系统

sudo yum -y update

2.安装缺少的依赖项

sudo yum -y install lynx mariadb-server mariadb php php-mysql 
php-mbstring tftp-server httpd ncurses-devel sendmail sendmail-cf 
sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel 
subversion kernel-devel git php-process crontabs cronie cronie-anacron 
wget vim php-xml uuid-devel sqlite-devel net-tools gnutls-devel php-pear

3.安装其他缺少的依赖项,而不是步骤2

sudo yum -y install gcc gcc-c++ php-xml php php-mysql php-pear php-mbstring mariadb-devel mariadb-server mariadb sqlite-devel lynx bison gmime-devel psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel uuid-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim

4.设置和配置mariadb数据库并设置密码。

systemctl start mariadb
systemctl enable mariadb

接下来,通过执行以下命令来设置密码。

mysql_secure_installation

如果尚未设置mysql的密码,请按Enter。同意删除测试数据库,并且不允许远程登录。

5.安装Jansson,这是一个C库,用于编码,解码和处理JSON数据。使用以下命令下载,解压缩和编译。

cd /usr/src
mkdir asterisk-13
cd asterisk-13
git clone https://github.com/akheron/jansson.git
cd jansson
autoreconf  -i
./configure --prefix=/usr/
make && make install

6.安装传统梨要求

pear install Console_Getopt

7.下载星号源文件。

cd  /usr/src/asterisk-13
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz
wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2

8.如果连接到PSTN,请编译并安装DAHDI。这是可选的。连接到PSTN时安装。

cd  /usr/src/asterisk-13
tar xvfz dahdi-linux-complete-current.tar.gz
tar xvfz libpri-1.4-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz libpri-1.4-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config
cd libpri-1.4.*
make
make install

9.编译并安装pjproject

cd  /usr/src/asterisk-13
tar -xjvf pjproject-2.4.tar.bz2
rm -f pjproject-2.4.tar.bz2
cd pjproject-2.4
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound
--disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64
make dep
make
make install

10.编译并安装jansson

cd  /usr/src/asterisk-13
tar vxfz jansson.tar.gz
rm -f jansson.tar.gz
cd jansson-*
autoreconf -i
./configure --libdir=/usr/lib64
make && make install

11.编译并安装星号

cd /usr/src/asterisk-13
tar xvfz asterisk-13-current.tar.gz
cd asterisk-*
./configure --libdir=/usr/lib64

12.运行以下命令来设置菜单选项

make menuselect

在加载项中,选择chan_ooh323和format_mp3,如下所示

在CentOS 7上安装Asterisk PBX 13.x的指南

在核心声音包中,选择音频包的格式,如下所示

在CentOS 7上安装Asterisk PBX 13.x的指南

在“音乐保持”中,可以选择如下所示的下一个模块

在CentOS 7上安装Asterisk PBX 13.x的指南

在其他声音包中,选择:

在CentOS 7上安装Asterisk PBX 13.x的指南

13.执行以下命令,将mp3解码器库下载到源代码树。

cd /usr/src/asterisk-13/asterisk-*
contrib/scripts/get_mp3_source.sh

14.安装选定的模块

cd /usr/src/asterisk-13/asterisk-*/
make
make install
make samples
make config

15.创建一个单独的用户和组以运行星号服务

useradd -m asterisk
chown asterisk.asterisk /var/run/asterisk
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asteris 
chown -R asterisk.asterisk /usr/lib64/asterisk

16.将init脚本复制到init.d目录,并让systemctl启动星号。

cd /usr/src/asterisk-13/asterisk-*
cp contrib/init.d/rc.redhat.asterisk  /etc/init.d/asterisk
chmod 755 /etc/init.d/asterisk

查找星号

$ which asterisk

在CentOS 7上安装Asterisk PBX 13.x的指南

接下来,打开文件/etc/init.d/asterisk。

sudo vim /etc/init.d/asterisk

将AST_SBIN =替换为星号二进制文件的位置。在我的情况下是/ sbin /。请参见下图。

在CentOS 7上安装Asterisk PBX 13.x的指南

17.禁用SELinux

 sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config
 sestatus

18.设置星号数据库

[[email protected] ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 4
Server version: 5.5.44-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> create user 'asterisk'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database cdrdb;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create database asterisk;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON asterisk.* TO [email protected] IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cdrdb.* TO [email protected] IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

19.通过添加以下规则,使所有Asterisk PBX端口均可访问

firewall-cmd --zone=public --add-port=5060/udp --permanent
firewall-cmd --zone=public --add-port=5060/tcp --permanent
firewall-cmd --zone=public --add-port=5061/udp --permanent
firewall-cmd --zone=public --add-port=5061/tcp --permanent
firewall-cmd --zone=public --add-port=4569/udp --permanent
firewall-cmd --zone=public --add-port=5038/tcp --permanent 
firewall-cmd --zone=public --add-port=10000-20000/udp --permanent

20.提交您的更改

[[email protected] ~]# firewall-cmd --reload
success

21.确认已添加规则。

[[email protected] ~]# firewall-cmd --zone=public --list-all 
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 5061/tcp 4569/udp 5060/tcp 10000-20000/udp 5061/udp 5060/udp 5038/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

重新启动星号服务器

systemctl restart asterisk

17.检查它是否正在运行

sudo systemctl status asterisk

阅读更多:如何保护Asterisk和FreePBX免受VoIP欺诈和暴力攻击

Sidebar