Archive:FreePBX Distribution: Difference between revisions

m Updating FreePBX modules: Added not to use back or refresh
m Sam moved page FreePBX Distribution to Archive:FreePBX Distribution: Archiving page
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
FreeBPX Distribution is a fully fledged VoIP server allowing complete customisation to your needs and works with most setups. It is an appliance, with a complete Linux setup and web manager to allow easy administration.
FreePBX Distribution is a fully fledged VoIP server allowing complete customisation to your needs and works with most setups. It is an appliance, with a complete Linux setup and web manager to allow easy administration.


We have implemented FreePBX 16 and Asterisk 18. This is the latest version of Asterisk and is a LTS release so will be supported well into the future with fixes (slated to be supported until 2024). This is a complete distribution and so needs to be installed on its own machine. We will be setting this up on a separate virtual machine rather than the main server.
We have implemented FreePBX 16 and Asterisk 20. This is the latest version of Asterisk and is a LTS release so will be supported well into the future with fixes (slated to be supported until 2027). This is a complete distribution and so needs to be installed on its own machine/virtual machine. We will be setting this up on a separate virtual machine rather than the main server.


We will be configuring this system to work with the Mitel 5330e IP Phone so some settings are specific to the 5330e/5340e models of this phone. We will also be using Twilio as a SIP trunk so some settings are specific for this.
We will be configuring this system to work with the Mitel 5360 IP Phone and the Mitel 5624 VoWiFi phone so some settings are specific to the 53xx models of this phone. We will also be using Twilio as a SIP trunk so some settings are specific for this.


== Prerequisites ==
== Prerequisites ==
Line 51: Line 51:
# Click '''LANGUAGE SUPPORT'''.
# Click '''LANGUAGE SUPPORT'''.
# Tick 'English (United Kingdom).
# Tick 'English (United Kingdom).
#* Unfortunately, we cannot unselect 'English (United States)'.
#* Unfortunately, we cannot deselect 'English (United States)'.
# Click 'Done'.
# Click 'Done'.


Line 112: Line 112:
# Open a browser on a machine on the same network and go to the IP address of the machine. For example, if the machine is at <code>192.168.1.45</code>, type <code>http://192.168.1.45</code> into the address bar. If you are not sure of the address, login to the server as root and it will display the IP address of the machine. This is the first time of using the web interface so we need to set up a few items. Ignore any warnings about the server certificate - this can be set up later.
# Open a browser on a machine on the same network and go to the IP address of the machine. For example, if the machine is at <code>192.168.1.45</code>, type <code>http://192.168.1.45</code> into the address bar. If you are not sure of the address, login to the server as root and it will display the IP address of the machine. This is the first time of using the web interface so we need to set up a few items. Ignore any warnings about the server certificate - this can be set up later.
# Type a username into the '''Username''' field. Avoid common usernames, such as admin and user as these are easily guessed if your server is attacked.
# Type a username into the '''Username''' field. Avoid common usernames, such as admin and user as these are easily guessed if your server is attacked.
# Type a password into the '''Password''' and '''Confirm Password''' fields. Make sure this is strong, especially if you plan to make the admin pages web facing at latter date.
# Type a password into the '''Password''' and '''Confirm Password''' fields. Make sure this is strong, especially if you plan to make the admin pages web facing at a latter date.
# Type an e-mail address into the '''Notifications Email address''' field. This is used if there are any critical errors on the server and to inform you of automatic system updates.
# Type an e-mail address into the '''Notifications Email address''' field. This is used if there are any critical errors on the server and to inform you of automatic system updates.
# You can change the '''System Identifier''' to something else if you like, this is especially handy if managing more than one FreePBX server.
# You can change the '''System Identifier''' to something else if you like, this is especially handy if managing more than one FreePBX server.
Line 120: Line 120:
# You will now be asked if you would like to activate the system with Sangoma. This is recommended to activate some of the modules we will be using later. Click 'Activate'.
# You will now be asked if you would like to activate the system with Sangoma. This is recommended to activate some of the modules we will be using later. Click 'Activate'.
# Type your e-mail address. If you already have an e-mail account with Sangoma, wait a few seconds and type your password when the box comes up. Fill in any missing details if needed then click 'Continue'. If you don't already have an account, you will have to fill in your details and click 'Create'.
# Type your e-mail address. If you already have an e-mail account with Sangoma, wait a few seconds and type your password when the box comes up. Fill in any missing details if needed then click 'Continue'. If you don't already have an account, you will have to fill in your details and click 'Create'.
# Under 'New Activation', type a location and then click 'Activate'. If you are reinstalling an already activated system, you can go to 'Existing Deployment' and type the deployment number already activated there.
# Under 'New Activation', type a location and then click 'Activate'. If you are re-installing an already activated system, you can go to 'Existing Deployment' and type the deployment number already activated there.
# Once you have clicked 'Activate', it will then display a deployment number. This means it is successfully deployed. The deployment number can be displayed later if needed.
# Once you have clicked 'Activate', it will then display a deployment number. This means it is successfully deployed. The deployment number can be displayed later if needed.
# Click 'Skip' on the module updates for now as we need to set up the server first.
# Click 'Skip' on the module updates for now as we need to set up the server first.
# In the '''Sound Prompts Language''' drop down menu, select 'English (United Kingdom)'.
# Leave '''Sound Prompts Language''' as 'English (United Kingdom)' or change this from the drop down menu if wrong.
# Leave '''System Language''' as 'English (United States)' as there is no option for United Kingdom.
# Leave '''System Language''' as 'English (United Kingdom)' or change to this from the drop down menu if wrong.
# The '''Timezone''' option should already be correct from our installation. If not, it can be corrected here to 'Europe/London'.
# The '''Timezone''' option should already be correct from our installation. If not, it can be corrected here to 'Europe/London'.
# Click 'Submit' in the bottom left hand corner. It will take a while as it is starting to setup the system - be patient!
# Click 'Submit' in the bottom left hand corner. It will take a while as it is starting to setup the system - be patient!
Line 130: Line 130:
# You may get a few adverts after this - click 'Not Now' to skip them.
# You may get a few adverts after this - click 'Not Now' to skip them.
# Your system is now basically set up - you will be presented with the dashboard.
# Your system is now basically set up - you will be presented with the dashboard.
# If there is a red 'Apply Now' button in the top right hand corner, press this to configure the system with the changes just implemented.


== Updating the server ==
== Updating the server ==
=== Updating using CentOS system updates (OPTIONAL) ===
The FreePBX distribution is based on CentOS 7.8, however, FreePBX very rarely, if ever, provide updates to the system unless they upgrade the distribution. You can configure the system to update using CentOS repositories for a more up-to-date and secure system.
'''WARNING: If you are using anything the uses kernel modules (i.e. DAHDI modules), please do not use this method to update - this will cause the modules to break as they rely on the kernel supplied to operate.'''
I do not use anything that relies on the kernel so shall be applying these updates.
==== Add the CentOS 7 update repository ====
* At the terminal, type the following command:
yum-config-manager --add-repo https://www.mirrorservice.org/sites/mirror.centos.org/7/updates/x86_64/
* We need to add the GPG key for this repository to be trusted. Type the following command:
gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
You should see a key displayed.
* Import the key so the system trusts it, type:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
* We now want to clear the yum cache so that it picks up the new repository. Type:
yum clean all
* You can now follow the next step to update the system.


=== General updates ===
=== General updates ===
Line 142: Line 164:
# If there are updates offered, type <code>y</code> to accept the changes. The updates will then be downloaded and installed. Some packages take a long time to install and the system will look like it has hung. Be patient, they will eventually install.
# If there are updates offered, type <code>y</code> to accept the changes. The updates will then be downloaded and installed. Some packages take a long time to install and the system will look like it has hung. Be patient, they will eventually install.
# It is recommended that once the update is finished, you reboot the machine so that the updates are applied. Type <code>reboot</code>.
# It is recommended that once the update is finished, you reboot the machine so that the updates are applied. Type <code>reboot</code>.
=== Upgrading to FreePBX 16 ===
At the moment, FreePBX 16 is not available seperately so we need to upgrade to FreePBX 16 through FreePBX 15.


=== Updating FreePBX modules ===
=== Updating FreePBX modules ===
Line 151: Line 169:
# From the dashboard, on the menu bar, go to '''Admin > Module Admin'''.
# From the dashboard, on the menu bar, go to '''Admin > Module Admin'''.
# Click 'Check Online' to check the internet for updated modules.
# Click 'Check Online' to check the internet for updated modules.
# Once done, click 'Upgrade all' on the left-hand side to mark all modules for update.
# Once done, click 'Upgrade all' on the right-hand side to mark all modules for update.
# Click 'Process' to start updating the modules.
# Click 'Process' to start updating the modules.
# You will be presented with a list of modules to be updated. Scroll to the bottom and click 'Confirm'
# You will be presented with a list of modules to be updated. Scroll to the bottom and click 'Confirm'
# Some updates take a very long time to complete, please be patient! Avoid refreshing or going back or the server could be left in an inconsistent state.
# Some updates take a very long time to complete, please be patient! Avoid refreshing or going back or the server could be left in an inconsistent state.
# Once the current updates are complete, press '' to be taken back to the Module Admin screen
# Once the current updates are complete, press 'Return' to be taken back to the Module Admin screen.
# Click the red 'Apply Config' button at the top right of the screen.
# Some updates rely on other packages to be updated first. Keep cycling through these steps until there are no more packages to update.
# Some updates rely on other packages to be updated first. Keep cycling through these steps until there are no more packages to update.
=== Upgrading to FreePBX 16 ===
At the moment, FreePBX 16 is not available separately so we need to upgrade to FreePBX 16 through FreePBX 15. This can only be done once the system is updated. The biggest change of this upgrade is now supporting the modern PHP 7.4 instead of the now legacy and unsupported PHP 5.6.
# From the dashboard, on the menu bar, go to '''Admin > Module Admin'''.
# Click 'Check Online' to check the internet for updated modules.
# Under the 'Admin' section, look for a module called 'PBX Upgrader'.
# Click the > to expand the entry.
# Change 'No Action' to 'Download and Install'.
# Go to the top of the page and on the right-hand side, click 'Process'.
# Click 'Confirm' to install the module.
# Once it has completed, press 'Return' to be taken back to the Module Admin screen.
# Click the red 'Apply Config' button at the top right of the screen.
# On the menu bar, go to '''Admin > 15 to 16 Upgrade Tool'''.
# Click the 'Check the requirements!' button.
# Once it has checked, if all is well, click the 'Proceed to the upgrade process'. If anything comes back with an error, this will need fixing before proceeding.
# Although you have not changed the system yet, it may complain about not using standard repositories. Under 'Non-standard Repository Servers', leave as 'Reset the repos to the defaults.
# Click 'Next'.
# Fill out any details you would like for the survey (this is optional), or press skip.
# Read the warning message and then press 'OK' when ready to upgrade.
# Please be patient, ignore any error messages and do not think the system has hung, this process can take a long time to complete. If the webpage does fail during the upgrade and you cannot access the progress of the upgrade, go to the terminal and type <code>tails -f /var/log/pbx/freepbx16-upgrade.log</code> which should allow you to follow the update. Once done, return to the dashboard.
# Now is a good time to once again reboot the system to apply all the changes.
# Once rebooted, check for module updates as per previous section.


=== Upgrading to the latest Asterisk version ===
=== Upgrading to the latest Asterisk version ===


Once all the updates have been installed on the distribution, we can upgrade the version of Asterisk to the latest version if desiered.
Once all the updates have been installed on the distribution, we can upgrade the version of Asterisk to the Asterisk 18 which is the latest version as of writing.


# Login to the system at the terminal or SSH as root.
# Login to the system at the terminal or SSH as root.
# From the terminal, type <code>asterisk-version-switch</code>.
# From the terminal, type <code>asterisk-version-switch</code>.
# Select the number next to the version that you would like to install - e.g. <code>6</code> for Asterisk 18 then hit enter.
# Select the number next to the version that you would like to install - e.g. <code>7</code> for Asterisk 18 then hit enter.
# Wait for the script to run through upgrading Asterisk.
# Wait for the script to run through upgrading Asterisk.
# When returned to the terminal, restart the machine to apply the new changes.
# When returned to the terminal, restart the machine to apply the new changes.