如何在CentOS 7上逐步安装Asterisk PBX 13.x
大家好,本指南将要安装Asterisk 13.0.6. 这将是一个完整的易于遵循的教程。对于最新发行的Asterisk,请查看如何在CentOS 7上安装Asterisk 15 PBX。那么让我们首先定义PBX和Asterisk是什么?
什么是PBX?
首先,Asterisk是专用小交换机。 PBX是处理私人企业而非电话拥有的电话交换的一种设备。 PBX可以看作是专用电话总机,在一侧连接到一个或者多个电话,而在另一侧通常连接到一个或者多个电话线。
什么是Asterisk?
Asterisk是完整的PBX。它实现了大多数市售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.安装其他缺少的依赖项,而不是在中
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.安装Legacy Pear要求
pear install Console_Getopt
7.下载Asterisk源文件。
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.编译并安装asterisk
cd /usr/src/c-13 tar xvfz asterisk-13-current.tar.gz cd asterisk-* ./configure --libdir=/usr/lib64
12.通过运行以下命令来设置菜单选项
make menuselect
在添加组件上,选择chan_ooh323和format_mp3,如下所示
在"核心声音包"上,选择音频数据包的格式,如下所示
在"保留音乐"上,选项选择以下模块,如下图所示
在"额外声音包"上,选择如下所示:
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
通过找到asterisk
$which asterisk
然后通过以下方式打开文件/etc/init.d/asterisk
sudo vim /etc/init.d/asterisk
在我的情况下,将AST_SBIN =替换为星号二进制文件的位置,将其替换为/sbin /。见下图。
17.禁用SELinux
sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config sestatus
18.设置asterisk数据库
[theitroad@localhost ~]# 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, 2014, 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 theitroad@localhost IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON cdrdb.* TO theitroad@localhost 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.提交更改
[theitroad@localhost ~]# firewall-cmd --reload success
21.确认已添加规则。
[theitroad@localhost ~]# 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:
重新启动asterisk服务器
systemctl restart asterisk
17.检查是否正在运行
sudo systemctl status asterisk