Refactor Asterisk installation process (#9429)
Refactor Asterisk installation script to fetch versions directly from Asterisk download URLs and streamline dependency installation.
This commit is contained in:
parent
e13119250d
commit
a9c08a611e
@ -13,64 +13,6 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
ASTERISK_VERSIONS_URL="https://www.asterisk.org/downloads/asterisk/all-asterisk-versions/"
|
|
||||||
html=$(curl -fsSL "$ASTERISK_VERSIONS_URL")
|
|
||||||
|
|
||||||
LTS_VERSION=""
|
|
||||||
for major in 20 22 24 26; do
|
|
||||||
block=$(echo "$html" | awk "/Asterisk $major - LTS/,/<ul>/" || true)
|
|
||||||
ver=$(echo "$block" | grep -oE 'Download Latest - [0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1 | sed -E 's/.* - //' || true)
|
|
||||||
if [ -n "$ver" ]; then
|
|
||||||
LTS_VERSION="$LTS_VERSION $ver"
|
|
||||||
fi
|
|
||||||
unset ver block
|
|
||||||
done
|
|
||||||
LTS_VERSION=$(echo "$LTS_VERSION" | xargs | tr ' ' '\n' | sort -V | tail -n1)
|
|
||||||
|
|
||||||
STD_VERSION=""
|
|
||||||
for major in 21 23 25 27; do
|
|
||||||
block=$(echo "$html" | grep -A 20 "Asterisk $major</h3>" | head -n 20 || true)
|
|
||||||
ver=$(echo "$block" | grep -oE 'Download (Latest - )?'"$major"'\.[0-9]+\.[0-9]+' | head -n1 | sed -E 's/Download (Latest - )?//' || true)
|
|
||||||
if [ -n "$ver" ]; then
|
|
||||||
STD_VERSION="$STD_VERSION $ver"
|
|
||||||
fi
|
|
||||||
unset ver block
|
|
||||||
done
|
|
||||||
STD_VERSION=$(echo "$STD_VERSION" | xargs | tr ' ' '\n' | sort -V | tail -n1)
|
|
||||||
|
|
||||||
cert_block=$(echo "$html" | awk '/Certified Asterisk/,/<ul>/')
|
|
||||||
CERT_VERSION=$(echo "$cert_block" | grep -oE 'Download Latest - [0-9]+\.[0-9]+-cert[0-9]+' | head -n1 | sed -E 's/.* - //' || true)
|
|
||||||
|
|
||||||
cat <<EOF
|
|
||||||
Choose Asterisk version to install:
|
|
||||||
1) Latest Standard ($STD_VERSION)
|
|
||||||
2) Latest LTS ($LTS_VERSION)
|
|
||||||
3) Latest Certified ($CERT_VERSION)
|
|
||||||
EOF
|
|
||||||
read -rp "Enter choice [1-3]: " ASTERISK_CHOICE
|
|
||||||
|
|
||||||
CERTIFIED=0
|
|
||||||
case "$ASTERISK_CHOICE" in
|
|
||||||
2)
|
|
||||||
ASTERISK_VERSION="$LTS_VERSION"
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
ASTERISK_VERSION="$CERT_VERSION"
|
|
||||||
CERTIFIED=1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
ASTERISK_VERSION="$STD_VERSION"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [[ "$CERTIFIED" == "1" ]]; then
|
|
||||||
RELEASE="certified-asterisk-${ASTERISK_VERSION}.tar.gz"
|
|
||||||
DOWNLOAD_URL="https://downloads.asterisk.org/pub/telephony/certified-asterisk/$RELEASE"
|
|
||||||
else
|
|
||||||
RELEASE="asterisk-${ASTERISK_VERSION}.tar.gz"
|
|
||||||
DOWNLOAD_URL="https://downloads.asterisk.org/pub/telephony/asterisk/$RELEASE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt install -y \
|
$STD apt install -y \
|
||||||
libsrtp2-dev \
|
libsrtp2-dev \
|
||||||
@ -82,7 +24,54 @@ $STD apt install -y \
|
|||||||
libsqlite3-dev
|
libsqlite3-dev
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Downloading Asterisk"
|
msg_info "Fetching Asterisk Versions"
|
||||||
|
ASTERISK_LIST=$(curl -fsSL https://downloads.asterisk.org/pub/telephony/asterisk/ \
|
||||||
|
| grep -oE 'asterisk-[0-9]+\.[0-9]+\.[0-9]+\.tar\.gz' \
|
||||||
|
| sed 's/asterisk-//' \
|
||||||
|
| sed 's/\.tar\.gz//' \
|
||||||
|
| sort -V)
|
||||||
|
# LTS: Major 20, 22, 24, 26
|
||||||
|
LTS_VERSION=$(echo "$ASTERISK_LIST" | grep -E '^2(0|2|4|6)\.' | tail -n1 || true)
|
||||||
|
# Standard: Major 21, 23, 25, 27
|
||||||
|
STD_VERSION=$(echo "$ASTERISK_LIST" | grep -E '^2(1|3|5|7)\.' | tail -n1 || true)
|
||||||
|
CERT_VERSION=$(curl -fsSL https://downloads.asterisk.org/pub/telephony/certified-asterisk/ \
|
||||||
|
| grep -oE 'asterisk-certified-[0-9]+\.[0-9]+-cert[0-9]+\.tar\.gz' \
|
||||||
|
| sed -E 's/asterisk-certified-//' \
|
||||||
|
| sed -E 's/\.tar\.gz//' \
|
||||||
|
| sort -V | tail -n1 || true)
|
||||||
|
msg_ok "Fetched Versions"
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
Choose Asterisk version to install:
|
||||||
|
1) Latest Standard ($STD_VERSION)
|
||||||
|
2) Latest LTS ($LTS_VERSION)
|
||||||
|
3) Latest Certified ($CERT_VERSION)
|
||||||
|
EOF
|
||||||
|
read -rp "Enter choice [1-3]: " ASTERISK_CHOICE
|
||||||
|
|
||||||
|
CERTIFIED=0
|
||||||
|
case "$ASTERISK_CHOICE" in
|
||||||
|
2)
|
||||||
|
ASTERISK_VERSION="$LTS_VERSION"
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
ASTERISK_VERSION="$CERT_VERSION"
|
||||||
|
CERTIFIED=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ASTERISK_VERSION="$STD_VERSION"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ "$CERTIFIED" == "1" ]]; then
|
||||||
|
RELEASE="asterisk-certified-${ASTERISK_VERSION}.tar.gz"
|
||||||
|
DOWNLOAD_URL="https://downloads.asterisk.org/pub/telephony/certified-asterisk/$RELEASE"
|
||||||
|
else
|
||||||
|
RELEASE="asterisk-${ASTERISK_VERSION}.tar.gz"
|
||||||
|
DOWNLOAD_URL="https://downloads.asterisk.org/pub/telephony/asterisk/$RELEASE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Downloading Asterisk ($RELEASE)"
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
curl -fsSL "$DOWNLOAD_URL" -o "$temp_file"
|
curl -fsSL "$DOWNLOAD_URL" -o "$temp_file"
|
||||||
mkdir -p /opt/asterisk
|
mkdir -p /opt/asterisk
|
||||||
@ -107,4 +96,3 @@ msg_ok "Installed Asterisk"
|
|||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
cleanup_lxc
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user