-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Scripts] Introduce FSGET - a simple way to install FreeSWITCH.
- Loading branch information
Showing
3 changed files
with
137 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Installing FreeSWITCH using FSGET | ||
|
||
## Prerequisites | ||
|
||
### Dependencies | ||
Make sure you have `cURL` binary installed or use any other downloader. | ||
To install curl type | ||
``` | ||
apt update && apt install -y curl | ||
``` | ||
|
||
### Authentication required | ||
|
||
A `SignalWire Personal Access Token` (PAT) or an `API Token` (for enterprise customers) is required to access FreeSWITCH install packages. | ||
|
||
[HOWTO Create a SignalWire Personal Access Token](https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/how-to-create-a-personal-access-token/how-to-create-a-personal-access-token) | ||
|
||
[Upgrade to FreeSWITCH Advantage](https://signalwire.com/products/freeswitch-enterprise) | ||
|
||
## Configuring FreeSWITCH Debian repository | ||
``` | ||
curl -sSL https://freeswitch.org/fsget | bash -s <PAT or API token> [release|prerelease] [install] | ||
``` | ||
|
||
Notice that `fsget` accepts arguments: | ||
- `<PAT or FSA token>` (Required) | ||
- `[release|prerelease]` (Optional) - `release` by default, `prerelease` is what you see in the `master` branch | ||
- `[install]` (Optional) - Will not install FreeSWITCH automatically after configuring the repository | ||
|
||
`FreeSWITCH Community` or `FreeSWITCH Enterprise` version is installed based on the token provided. | ||
|
||
Enterprise customers may install `FreeSWITCH Community` versions by using a `SignalWire Personal Access Token` instead of an `API Token`. | ||
## Installing FreeSWITCH | ||
If not installed already type | ||
|
||
``` | ||
apt-get install -y freeswitch-meta-all | ||
``` | ||
|
||
Enjoy using FreeSWITCH! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
#!/bin/bash | ||
|
||
TOKEN=$1 | ||
RELEASE=$2 | ||
INSTALL=$3 | ||
|
||
# Source the os-release file (assuming it exists) | ||
. /etc/os-release | ||
echo $ID | ||
echo $VERSION_CODENAME | ||
|
||
if [ "${ID,,}" = "debian" ]; then | ||
ARCH=$(dpkg --print-architecture) | ||
if [[ "${TOKEN}" == pat_* ]]; then | ||
echo "FreeSWITCH Community" | ||
|
||
RPI="" | ||
|
||
if [ "${RELEASE,,}" = "prerelease" ]; then | ||
RELEASE="unstable" | ||
else | ||
RELEASE="release" | ||
fi | ||
|
||
echo $RELEASE | ||
|
||
if [ "${ARCH,,}" = "armhf" ]; then | ||
RPI="rpi/" | ||
fi | ||
|
||
rm -f /etc/apt/sources.list.d/freeswitch.list | ||
apt-get update && apt-get install -y gnupg2 wget software-properties-common apt-transport-https | ||
|
||
wget --http-user=signalwire --http-password=$TOKEN -O /usr/share/keyrings/signalwire-freeswitch-repo.gpg https://freeswitch.signalwire.com/repo/deb/${RPI}debian-release/signalwire-freeswitch-repo.gpg | ||
echo "machine freeswitch.signalwire.com login signalwire password $TOKEN" > /etc/apt/auth.conf | ||
chmod 600 /etc/apt/auth.conf | ||
echo "deb [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/${RPI}debian-${RELEASE}/ ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/freeswitch.list | ||
echo "deb-src [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/${RPI}debian-${RELEASE}/ ${VERSION_CODENAME} main" >> /etc/apt/sources.list.d/freeswitch.list | ||
|
||
apt-get update | ||
if [ "${INSTALL}" = "install" ]; then | ||
echo "Installing FreeSWITCH Community" | ||
apt-get install -y freeswitch-meta-all | ||
echo "------------------------------------------------------------------" | ||
echo " Done installing FreeSWITCH Community" | ||
echo "------------------------------------------------------------------" | ||
else | ||
echo "------------------------------------------------------------------" | ||
echo " Done configuring FreeSWITCH Debian repository" | ||
echo "------------------------------------------------------------------" | ||
echo "To install FreeSWITCH Community type: apt-get install -y freeswitch-meta-all" | ||
fi | ||
elif [[ "${TOKEN}" == PT* ]]; then | ||
echo "FreeSWITCH Enterprise" | ||
|
||
if [ "${RELEASE,,}" = "prerelease" ]; then | ||
RELEASE="unstable" | ||
else | ||
RELEASE="1.8" | ||
fi | ||
|
||
echo $RELEASE | ||
|
||
if [ "${ARCH,,}" = "armhf" ]; then | ||
RPI="-rpi" | ||
fi | ||
|
||
rm -f /etc/apt/sources.list.d/freeswitch.list | ||
apt-get update && apt-get install -y gnupg2 wget software-properties-common apt-transport-https | ||
|
||
wget --http-user=signalwire --http-password=$TOKEN -O - https://fsa.freeswitch.com/repo/deb/fsa${RPI}/pubkey.gpg | apt-key add - | ||
echo "machine fsa.freeswitch.com login signalwire password $TOKEN" > /etc/apt/auth.conf | ||
chmod 600 /etc/apt/auth.conf | ||
echo "deb https://fsa.freeswitch.com/repo/deb/fsa${RPI}/ ${VERSION_CODENAME} ${RELEASE}" > /etc/apt/sources.list.d/freeswitch.list | ||
echo "deb-src https://fsa.freeswitch.com/repo/deb/fsa${RPI}/ ${VERSION_CODENAME} ${RELEASE}" >> /etc/apt/sources.list.d/freeswitch.list | ||
|
||
apt-get update | ||
if [ "${INSTALL}" = "install" ]; then | ||
echo "Installing FreeSWITCH Enterprise" | ||
apt-get install -y freeswitch-meta-all | ||
echo "------------------------------------------------------------------" | ||
echo " Done installing FreeSWITCH Enterprise" | ||
echo "------------------------------------------------------------------" | ||
else | ||
echo "------------------------------------------------------------------" | ||
echo " Done configuring FreeSWITCH Debian repository" | ||
echo "------------------------------------------------------------------" | ||
echo "To install FreeSWITCH Enterprise type: apt-get install -y freeswitch-meta-all" | ||
fi | ||
else | ||
echo "Unrecognized token type" | ||
fi | ||
else | ||
echo "Unrecognized OS. We support Debian only." | ||
fi |