如何在CentOS 7/Fedora上安装Asterisk 16 LTS

时间:2020-02-23 14:30:36  来源:igfitidea点击:

欢迎来到我们的指南,了解如何在CentOS 7上安装Asterisk 16 LTS。
Asterisk是带有Enterprise的功能强大的开源PBX系统
仅在商用PBX系统中可用的功能。Asterisk使用商用以太网硬件,并允许集成物理上分开的安装。

Asterisk PBX系统的功能

在我们最新的指南中,我们介绍了在Ubuntu 18.04和Ubuntu 16.04server上使用FreePBX安装Asterisk。

在CentOS 7/Fedora服务器上开始执行Asterisk安装命令之前,请确保系统上的所有软件包都已完成。

如何在CentOS 7/Fedora上安装Asterisk 16

设置主机名类型:

sudo yum -y update

完成后,仅添加epel存储库CentOS

sudo hostnamectl set-hostname pbx.example.com

通过运行以下命令,将SELinux设置为许可模式:

sudo yum  -y install epel-release

然后按照以下步骤在CentOS 7/Fedora服务器上安装和配置Asterisk 15.

setenforce 0
sed -i 's/\(^SELINUX=\).*/\SELINUX=permissive/' /etc/selinux/config

设置Asterisk的第一步是安装所有必需的依赖项。

安装Asterisk 16 PBX依赖项

我们还需要安装"开发工具"组软件包。

sudo yum -y install wget vim  net-tools openssl-devel

我们需要安装的其他软件包是:

sudo yum -y groupinstall "Development Tools"

Jansson是一个用于编码,解码和处理JSON的C库
数据。通过运行以下命令将其下载并安装在CentOS 7服务器上

sudo yum -y install libedit-devel sqlite-devel psmisc gmime-devel ncurses-devel libtermcap-devel 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 crontabs cronie cronie-anacron wget vim

下载并安装Jansson

PJSIP是一个免费的开源多媒体通信库
用C语言编写,实现基于标准的协议,例如SIP,
SDP,RTP,STUN,TURN和ICE。从Github克隆项目,然后编译安装。

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

下载并安装PJSIP

现在我们已经安装了所有依赖包,我们应该准备在CentOS 7上下载并安装Asterisk 15.

cd /usr/src/
export VER="2.8"
wget http://www.pjsip.org/release/${VER}/pjproject-${VER}.tar.bz2
tar -jxvf pjproject-${VER}.tar.bz2
cd pjproject-${VER}
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
make dep
make
make install
ldconfig

下载并安装Asterisk

如果一切顺利,我们应该获得类似于以下的输出:

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar xvfz asterisk-16-current.tar.gz
rm -f asterisk-16-current.tar.gz
cd asterisk-*
./configure --libdir=/usr/lib64

通过运行以下命令来设置菜单选项:

configure: Menuselect build configuration successfully completed

               .$$$$$$$$$$$$$$$=..      
            ...          .7$:.    
          .$$:.                 ,.7   
        ..     7$$$$          .$  
     ..$$.       $$$$$           .$$ 
    ..7$  .?.   $$$$$  .?.       7$$$.
   $.$.   .$$. $$$ .7$$$.      .$$$.
 .777.   .$$$$$$$$$$$.      $$$,
 $$$~      .7$$$$$$$$$$$$.       .$$$.
.$          .7$$$$$$:          ?$$$.
$$$         ?7$$$$$$$$$$I        .$$ 
$$$      .7$$$$$$$$$$$$$$$$     :$$$. 
$$$      $$$$$$$$$$$$$$$$$   .$$$.  
$$$       $$$  7$$  .$$$   .$$$.   
$$$$            $$$         .$$$.    
7$$            7$$$$       7$$$     
 $$$$$                       $$$      
  $$$.                       $$ (TM)     
   $$$$$$$.           .7$$$$$$ $$     
     $$$$$$$$$$$$$$$$$$$$.$$$$$$     
       $$$$$$$$$$$$$$$$.                

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

设置Asterisk菜单选项

使用箭头键进行导航,然后使用Enter键进行选择。

make menuselect

在附件中选择chan_ooh323和format_mp3,如下所示

在"核心声音包"上,选择音频数据包的格式,如下所示

对于"保留音乐",请选择以下最小模块

在"额外声音包"上,选择如下所示:

在"应用程序"部分启用" app_macro"。

我们可以更改自己认为合适的其他配置。完成后,保存并退出

现在运行以下命令,将mp3解码器库下载到源代码树中。

要使用选定的模块开始构建和安装Asterisk,请运行命令。

sudo contrib/scripts/get_mp3_source.sh

输出示例:

make
make install
make samples
make config
ldconfig

将为我们创建一个系统化的星号单位文件。

---- 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    +
 +-------------------------------------------+

创建一个单独的用户和组以运行asterisk服务,并分配正确的权限:

将Asterisk默认用户设置为asterisk:

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
usermod -aG audio,dialout asterisk
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk

进行更改后,重新启动asterisk服务

$sudo vim /etc/sysconfig/asterisk
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.

启用服务以在启动时启动:

sudo systemctl restart asterisk

测试以查看是否可以连接到Asterisk CLI:

sudo systemctl enable asterisk

我们可以确认Asterisk服务正在以userasterisk的身份运行。这是Production的推荐设置。

# asterisk -rvv
Asterisk 16.0.1, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <theitroad@localhost>
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 16.0.1 currently running on centos-01 (pid = 17182)
centos-01*CLI>

我们现在在CentOS 7服务器上有一个正在运行的Asterisk 16.