#!/bin/bash

echo "This utility upgrades Incredible PBX 2020 and 2021 to latest Asterisk 18."
echo "Make a backup of your existing SD card before proceeding. Tutorial here:"
echo "https://www.voip-info.org/forum/threads/raspi-backups-to-microsd-cards.24224/"
read -p "Press Enter to proceed at your own risk or Ctrl-C to abort..."
fwconsole stop
curl https://packages.sury.org/php/apt.gpg | apt-key add –
apt update -y
#apt full-upgrade --fix-missing
cd /usr/src
rm -rf asterisk-1*
#wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-18.7.0.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
tar zxvf asterisk-18*
rm -f asterisk-18*.tar.gz
cd asterisk-18*
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
make distclean
tar zxvf /root/menuselect*.tar.gz
./configure --with-pjproject-bundled --with-jansson-bundled
make menuselect.makeopts
menuselect/menuselect --disable-category MENUSELECT_TESTS menuselect.makeopts
menuselect/menuselect --disable codec_opus --disable codec_silk --disable codec_siren7 --disable codec_siren14 --disable codec_g729a menuselect.makeopts
make menuselect.makeopts
make && make install && ldconfig
touch /etc/asterisk/stir_shaken.conf
echo "load = app_voicemail.so" >> /etc/asterisk/modules.conf
echo "noload = app_voicemail_odbc.so" >> /etc/asterisk/modules.conf
echo "noload = app_voicemail_imap.so" >> /etc/asterisk/modules.conf
cd /root
fwconsole start
fwconsole ma upgradeall
mysql -u root -ppassw0rd asterisk -e "UPDATE freepbx_settings SET value = 'Incredible PBX 2021' WHERE freepbx_settings.keyword = 'DASHBOARD_FREEPBX_BRAND';"
fwconsole reload
./sig-fix
./sig-fix
echo "2021.01" > /etc/pbx/.version
rm -f /root/update-asterisk16
systemctl enable exim4
systemctl restart exim4
systemctl restart fail2ban
sed -i 's|devnull@localhost|devnull|' /etc/fail2ban/jail.conf
exim -bp | exiqgrep -i | xargs exim -Mrm
echo "3 0 * * * root /root/mailq-delete >/dev/null 2>&1" >> /etc/crontab
echo " "
echo "Latest Asterisk 18 installed with latest FreePBX 15 modules."
echo " "
read -p "Press Enter key to continue..."
pbxstatus

