如何在CentOS 7上安装Asterisk

Asterisk是一个用于构建通信应用程序的开源框架。 您可以使用它将本地计算机或服务器转换为通信服务器。 它用于为IP PBX系统,VoIP网关,会议服务器和其他解决方案供电。 它被全世界所有类型的组织使用,最后,但不是最后它是免费和开源的。

在本教程中,我们将向您展示如何在CentOS 7上安装Asterisk (说明也适用于RHEL 7 ),但在开始之前,我们需要做一些准备工作,以便Asterisk在安装后可以顺利运行。

第1步:在CentOS 7上禁用SELinux

要做到这一点,首先SSH到您的系统并使用您喜欢的命令行文本编辑器,打开/ etc / selinux / config并禁用SELINUX

# vim /etc/selinux/config

SELinux行应如下所示:

SELINUX=disabled

现在重启你的系统。 一旦它再次回到SSH系统。

第2步:安装必需的包

Asterisk有很多需要安装的要求。 您可以使用以下yum命令安装所需的软件包,如图所示。

# yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel

接下来,安装PJSIP ,是一个免费的开源多媒体通信库,实现基于标准的协议,如SIP,SDP,RTP,STUN,TURN和ICE。 它是Asterisk SIP通道驱动程序,可以提高通话的清晰度。

要获得最新版本,首先让我们创建一个临时目录,我们将从源代码构建包。

# mkdir ~/build && cd ~/build

现在进入PJSIP下载页面并获取包或使用以下wget命令直接在终端下载包。

请注意,通过撰写本文最新版本为2.8 ,将来可能会有所变化,因此请务必使用最新版本:

# wget https://www.pjsip.org/release/2.8/pjproject-2.8.tar.bz2

下载完成后,解压缩文件并切换到该目录。

# tar xvjf pjproject-2.8.tar.bz2
# cd pjproject-2.8

下一步是准备要编译的包。 您可以使用以下命令:

./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

最后确保所有库都已安装并存在:

# ldconfig -p | grep pj

你应该得到以下输出:

        libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
        libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
        libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
        libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
        libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
        libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
        libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
        libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
        libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
        libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
        libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
        libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
        libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
        libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
        libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
        libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
        libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
        libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
        libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
        libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
        libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
        libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
        libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
        libpj.so (libc6,x86-64) => /lib64/libpj.so

第3步:在CentOS 7中安装Asterisk

我们现在准备开始安装Asterisk。 导航回我们的〜/ build目录:

# cd ~/build

转到Asterisk下载页面并获取最新版本,或者您可以使用以下wget命令在终端中下载该文件。

# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

通过编写本教程,最新的Asterisk版本为16 当您按照这些步骤操作时,请确保您正在下载最新版本的Asterisk。

现在解压缩归档并导航到新创建的目录:

# tar -zxvf asterisk-16-current.tar.gz
# cd asterisk-16.0.0

现在是时候提一下,如果您希望在客户端处于保持状态时启用mp3支持来播放音乐,则需要安装更多的依赖项。 这些步骤是可选的:

# yum install svn
# ./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

首先运行configure脚本以准备要编译的包:

# ./configure --libdir=/usr/lib64

如果你得到任何遗漏的依赖项安装它们。 在我的情况下,我收到以下错误:

configure: error: patch is required to configure bundled pjproject

简单地说:

# yum install patch 

并重新运行configure脚本。 现在让我们开始构建过程:

# make menuselect

几秒钟后,您应该获得要启用的功能列表:

星号模块

如果您尝试使用保留音乐功能,则需要从“ 附加组件 ”部分启用“ format_mp3 ”功能。 保存列表并运行以下命令:

# make install

要安装示例配置文件,请使用以下命令:

# make samples

要在启动时启动Asterisk,请使用:

# make config

最后让我们测试我们的安装:

# service asterisk start
# asterisk -rvv

您应该看到与此类似的输出:

Asterisk 16.0.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
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.
=========================================================================
Connected to Asterisk 16.0.0 currently running on asterisk (pid = 3985)
asterisk*CLI>

如果要查看可用命令列表,请键入:

asterisk*CLI> core show help

要退出Asterisk提示,只需键入:

asterisk*CLI> exit

Asterisk仍将在后台运行。

结论

现在您有一个正在运行的Asterisk服务器,您可以开始连接电话和分机,并根据您的需要调整配置。 有关如何实现此目的的更多详细信息,建议使用Asterisk Wiki页面 如果您有任何问题或意见,请在下面的评论部分告诉我们。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏