当前位置: 首页 > news >正文

FreePBX 17 on ubuntu24 with Asterisk 20

版本配置:

  • FreePBX 17(最新)

  • Asterisk  20(最新Asterisk  22,但是FreePBX 17最新只支持Asterisk  21,但是21非LTS版本,所以选择Asterisk  20)

  • PHP 8.2

  • Maria DB (v10.11)

  • Node JS (v18.16)

  • 阿里云  ubuntu24.04   美国.弗吉尼亚 (墙外搭建很方便,国内环境各种报错)

  • 时间20250110 

所有命令都应以 root 用户身份运行,方法是直接以 root 身份登录或使用 sudo su -

初始化系统依懒项

apt-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 安装

FreePBX 17 仅支持 PHP 8.2,因此如果您正在运行旧版 PHP 或新版 PHP,请删除该版本并安装 PHP 8.2 版本

# 更新 APT 源并添加 PHP 8.2 仓库
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update# 安装 PHP 8.2 及其扩展
sudo apt-get install -y 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 php8.2-soap# 安装其他依赖项
sudo apt-get install -y build-essential linux-headers-$(uname -r) openssh-server apache2 mariadb-server mariadb-client bison flex curl sox libncurses-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 python3-dev vim wget libjansson-dev software-properties-common nodejs npm ipset iptables fail2ban
Asterisk 安装

下载 Asterisk并编译

cd  /usr/local/src
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20.11.1.tar.gz                
tar -zxvf asterisk-20.11.1.tar.gz
cd /usr/local/src/asterisk-20.11.1
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure  --libdir=/usr/lib64 --with-pjproject-bundled --with-jansson-bundled#选择配置模块
make menuselect#编译安装
make
make install
make samples
make config
ldconfig

创建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/asterisksed -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 Web 服务器

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
设置 systemd(启动脚本)
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

打开端口网关

ufw allow proto tcp from any to any port 80,443

云服务器相关安全组放开相应端口

登录管理界面 

http://www.lryc.cn/news/519713.html

相关文章:

  • 【算法】算法大纲
  • 【MySQL】SQL菜鸟教程(一)
  • 安装本地测试安装apache-doris
  • 【Apache Paimon】-- 13 -- 利用 paimon-flink-action 同步 mysql 表数据
  • IOS HTTPS代理抓包工具使用教程
  • 在 Ubuntu 22.04 上从 Wayland 切换到 X11的详细步骤
  • 【Linux】4.Linux常见指令以及权限理解(2)
  • ffmpeg aac s16 encode_audio.c
  • vue3监听器
  • 03-51单片机定时器和串口通信
  • 系统架构设计师考点—项目管理
  • 代码随想录算法训练营第三十二天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯
  • 【2024年华为OD机试】 (A卷,100分)- 总最快检测效率(Java JS PythonC/C++)
  • 【大数据】Apache Superset:可视化开源架构
  • LabVIEW调用不定长数组 DLL数组
  • MySQL 17 章——触发器
  • 面向对象分析与设计Python版 面向对象设计方法
  • GB/T 19582.1-2008主要内容
  • [石榴翻译] 维吾尔语音识别 + TTS语音合成
  • 算法题(32):三数之和
  • webpack03
  • 组会 | SNN 的 BPTT(backpropagation through time)
  • CDA数据分析师一级经典错题知识点总结(3)
  • django基于Python的电影推荐系统
  • JVM与Java体系结构
  • 网络授时笔记
  • 【CSS】HTML页面定位CSS - position 属性 relative 、absolute、fixed 、sticky
  • spark汇总
  • 【Rust自学】11.5. 在测试中使用Result<T, E>
  • Sping Boot教程之五十四:Spring Boot Kafka 生产者示例