如何手动安装最新开源电话系统FreePBX 17和Asterisk 20

FreePBX是当前世界上部署最多的开源电话系统,当前官方分布的版本是FreePBX 16,基于Centos操作系统。刚刚,官方已经更新了即将分布的FreePBX 17的手动安装版本,用户可以根据以下链接,手动通过命令行进行安装配置。因为Centos系统的维护问题搞的开源社区人心惶惶,可能更多用户转向了Debian或者Rocky linux。 这里提醒大家,此安装文档是基于Debian 12系统安装,可能未来规范的FreePBX17也会基于Debian 发布,不再继续基于Centos发布。

不过,这是笔者的个人猜测,最终FreePBX ISO 镜像版本基于哪个操作系统发布,需要等待官方的确认消息。

FreePBX 17支持的应用环境包括:

  • FreePBX 17
  • Asterisk  20
  • PHP 8.2 // 更新的版本
  • Maria DB (v10.11)
  • Node JS (v18.16)
  • 64-bit Intel/AMD (x86_64) 平台

如果某些用户对linux系统不熟悉,或者对底层安装命令不熟悉的,比较简单的办法就是可以先直接下载FreePBX16的ISO版本,安装系统盘就可以直接使用,不需要安装再安装操作系统。

如何手动安装最新开源电话系统FreePBX 17和Asterisk 20

以下是主要安装步骤,用户需要安装顺序一步步安装。

安装支持包的步骤:

pt-get update
apt-get upgrade
apt -y install build-essential git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev libjansson-dev libxml2-dev uuid-dev default-libmysqlclient-dev htop sngrep lame ffmpeg mpg123
apt -y install git vim curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev expect

安装PHP 8.2 版本:


apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php8.2 php8.2-curl php8.2-cli php8.2-common php8.2-mysql php8.2-gd php8.2-mbstring  php8.2-intl php8.2-xml php-pear curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3  libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev odbc-mariadb libical-dev libneon27-dev libsrtp2-dev  libspandsp-dev sudo subversion libtool-bin python-dev-is-python3 unixodbc vim wget libjansson-dev software-properties-common nodejs npm ipset iptables fail2ban php-soap

安装Asterisk 20:


cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar xvf asterisk-20-current.tar.gz
cd asterisk-20*/
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure  --libdir=/usr/lib64 --with-pjproject-bundled --with-jansson-bundled
make menuselect.makeopts // 安装pjsip
menuselect/menuselect --enable app_macro menuselect.makeopts
make menuselect
make
make install
make samples
make config
ldconfig

注意,安装PJSIP需要通过第三方PJSIP官方代码仓库下载源代码,所以,一定要保证下载安装成功。国内的用户如果访问github的话,有时可能会遇到访问问题,自己想办法解决。另外,如果用户使用sangoma 语音卡,需要下载libpri和dahdi,编译安装语音卡驱动和PRI信令支持包。

创建Asterisk 系统用户权限:

roupadd 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
   
sed -i 's|#AST_USER|AST_USER|' /etc/default/asterisk
sed -i 's|#AST_GROUP|AST_GROUP|' /etc/default/asterisk
sed -i 's|;runuser|runuser|' /etc/asterisk/asterisk.conf
sed -i 's|;rungroup|rungroup|' /etc/asterisk/asterisk.conf
echo "/usr/lib64" >> /etc/ld.so.conf.d/x86_64-linux-gnu.conf
ldconfig

配置 Apache 页面服务器:

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/8.2/apache2/php.ini
sed -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/8.2/apache2/php.ini
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
a2enmod rewrite
systemctl restart apache2
rm /var/www/html/index.html

配置ODBC:

cat <<EOF > /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage = 1
EOF

cat <<EOF > /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description = MySQL connection to 'asteriskcdrdb' database
Driver = MySQL
Server = localhost
Database = asteriskcdrdb
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
Option = 3
EOF

安装FreePBX源代码:

cd /usr/local/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest-EDGE.tgz
tar zxvf freepbx-17.0-latest-EDGE.tgz
cd /usr/local/src/freepbx/
./start_asterisk start
./install -n

设置其他的模块:

fwconsole ma installall
fwconsole reload
fwconsole restart

设置系统启动任务配置:


cat <<EOF > /etc/systemd/system/freepbx.service
[Unit]
Description=FreePBX VoIP Server
After=mariadb.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable freepbx

然后通过浏览器输入服务器IP地址就可以访问FreePBX17的界面。这里需要再次提醒用户,登录界面后,显示注册PBX账号,用户如果不打算购买商业模块的话,可以选择不注册。另外,如果是初装用户,对防火墙不熟悉的,可以选择关闭防火墙设置。否则,开启系统防火墙可能导致其它IP地址被过滤的问题,不能正常访问服务器地址。
登录访问配置界面,用户可以通过sip分机加外置语音网关或者SIP/IMS线路进行呼入呼出的呼叫功能,实现最简单的电话系统的呼叫功能。更多配置支持,用户需要根据用户手册来配置。

以上步骤和历史版本的操作顺序是完全一样的。如果安装过程中报错的话,可以加入QQ 589995817 讨论组中讨论。

完整安装流程,参考官方链接:

https://wiki.freepbx.org/display/FOP/How+to+Install+FreePBX+17+on+Debian+12+with+Asterisk+20

作者:james.zhu
来源:SIP实验室
原文:https://mp.weixin.qq.com/s/PWR9YCeNeA6tVlLeWJ3R3A

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论