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页面 。 如果您有任何问题或意见,请在下面的评论部分告诉我们。