Group Details Private

Global Moderators

Forum wide moderators

Member List

  • Creating an ed25519 SSH key in Windows 10

    There are many reasons that you may need an SSH key setup on your system. Some of the most common reasons are connecting to git repository and connecting to a Linux server.

    This used to be a painful process, as Microsoft did not include OpenSSH in the operating system. Thankfully they rectified that over a year ago.

    As long as you are running an up to date version of Windows 10, you will have no problems following along.

    1. Right click on the start button and choose Windows PowerShell

      • If your system says Command Prompt you are either not up to date, or you intentionally changed it back.
    2. In the powershell windows, run the ssh-keygen command as follows:

      • The -t ed25519 tell it which algorithm to use.
      • The -C "Work Computer" is a comment that makes it easy to know what a key was created on. Update appropriately.
    ssh-keygen -t ed25519 -C "Work Computer"
    1. It will prompt where to save the file. You will almost always want to use the default. Just press enter to accept the default.
    2. It will ask for a passphrase. Generally, I do not set a passphrase on my SSH keys, but there are valid reasons to do so depending on your environment. Press enter again for no passphrase.
    3. It will ask you to confirm the passphrase, even if you left it blank. Press enter again.
    4. It will then create your key and spit out some information about the key. Congratulations, you now have an SSH keypair available for use.

    This is why I recommend the -C command in the key generation. It puts whatever was in the comment out at the end of the public key string.

    This useful when you add the key to things like GitLab. It will automatically title the key with that comment.

    posted in Guides & Walkthroughs
  • Decide where you want your PBX

    Once you have done your initial discovery and know how your current PBX operates, you can then figure out the best place to put your new FreePBX system.

    This will be different for every organization and has to be based on what works best for the business.

    You have two choices.

    1. Host it on your internal virtualization infrastructure
    2. Host it on a public virtualization platform

    Can it be installed on a physical appliance? Sure, but you would not want to run your main line of business application on random hardware, so why would you run your phone system that way?

    You have to base this decision on a number of things.
    Below is a general guideline to think about.

    • Do you have a solid virtualization platform in place locally
      • if no, make the PBX hosted
      • if yes, make the PBX hosted or local
    • Do you have more than one site needing to register phone to this PBX
      • make the PBX hosted
    • Do you have solid backups locally
      • if no, make the PBX hosted
      • if yes, make the PBX hosted or local
    • Do you have solid internet for the total concurrent call volume and well as extension to extension volume
      • if yes, make the PBX hosted
      • if no, make the PBX local
    • What Needs to survive the most when the internet goes down
      • extension to extension calling
        • make the PBX local
      • inbound customer calls getting handled
        • make the PBX hosted

    There are always more things to consider, but those are the key factors.

    Each of them need thought about without emotion to determine what is best for the business.

    posted in FreePBX Guides
  • FreePBX 15 Setup Guide

    Before you install

    Once you know have worked through the items above, you are ready to begin installing FreePBX.

    For this guide, we will use Vultr to host the system.
    There are only a few differences in steps 2 and 3 if you do not use Vultr.
    The rest of the guide is the same, irregardless of where you host the system.

    1. Creating a FreePBX Instance on Vultr
    2. ISO Installation
    3. Standard Setup Part 1: Command Line
    4. Standard Setup Part 2: Initial GUI Wizard
    5. Configure the Firewall
    6. System Admin setup
    7. Create your first exentsions
    8. Trunk setup
    9. Conference setup
    10. Ring group setup
    11. Creating system recordings
    12. IVR setup
    13. Using time groups and time conditions
    14. Caller ID setup
    15. Inbound call routing
    16. Outbound call routing

    Setting up Desk Phones

    • With Endpoint Manager
    • Manually - git backed
    posted in FreePBX Guides
  • FreePBX Standard Setup Part 2: Initial GUI Wizard

    Sangoma continually updates FreePBX.

    Because of that, this guide will generalize some terms where possible.

    Screens may differ after an update.

    1. Upon first log in to the web interface, you will be presented with this screen to create the initial admin user account.

    2. Create a username and secure password.

    3. Enter an email address for the user. This can be changed later if needed.

    4. Give the system a name. This will used in various system emails that are generated, as well as in voicemail notification emails.

    5. Change the update settings as desired.
      We recommend not using automatic updates, but instead actively updating things monthly. Enable email notification, in order to be made aware of anything important.
      Finally, set it to check daily in the morning. You don't need yet another system email coming in over night when sleeping.

    6. Click Setup system

    7. The system will apply the settings and you will be presented with the standard FreePBX home screen. Click on FreePBX Administration.

    8. Enter your just created administrator log in and click continue.

    9. You will be asked to activate your system. There is no cost to it and you will want your system activated, but this screen has been intermittently buggy. Click Skip, you will activate it later.

    10. Now you will get a couple screens of advertisement for Sangoma owned products. Click skip on each of them. If you want the product you can order it later.

    11. Set your default locale information as appropriate for your needs.

    12. The red Apply Config button will appear at the top, ignore it for now.

    13. The system will now ask you to setup the built in firewall. We alays recommend this be enabled. Even if your system if behind a hardware firewall and NAT. Click continue.

    14. Click Next.

    15. Click Yes here, or you can lock yourself out during the initial setup. This will be modified later.

    16. Click No here, even if you are on a local LAN that you want trusted. For now, you only care that the computer you are doing the setup from is allowed access.

    17. Click No to the responsive firewall. This is a very useful tool depending on your needs. It is something to configure later, not during initial setup.

    18. Click Yes here, to let the system correctly setup your Asterisk settings. They can be changed later, but this is the easiest way to get it right for most people.

    19. If your browser pops up a warning about resending, click resend.

    20. At this point the FreePBX dashboard will load.

    21. Now click the Apply Config button.

    22. You will see a reloading screen.

    23. You have completed the Initial GUI wizard. Welcome to FreePBX.

    posted in FreePBX Guides
  • Creating a SSH key for the Asterisk user in FreePBX

    When we setup FreePBX, clients will often elect not to purchase the Endpoint Manager (EPM) commercial module.

    They do this because once the physical phones are setup, they almost never make changes often that require learning how to use and maintain the endpoints via EPM.

    EPM is a solid product for a very reasonable cost. But like all things, the cost must be weighed against the benefit.

    For customers that do not use EPM, we setup a private git repository to easily maintain things. To automate that, the PBX needs to use key based SSH.

    Everything FreePBX does is owned by the user asterisk so you need to create a keypair under that user.

    1. Log in to your PBX console via ssh as yourself.
      ssh or ssh [email protected]

    2. Switch to the asterisk user.
      sudo su asterisk

    3. Create the ssh keypair using modern strong methods.
      ssh-keygen -o -t ed25519 -C "FreePBX Asterisk User"

    4. It will ask what directory, to store the key, press enter.
      The default is what you want: /home/asterisk/.ssh

    5. It will ask for a passphrase, do not enter anything. This is for automation, there will be no user to enter the passphrase every time the key is used.

    6. It will ask to confirm the passphrase, press enter again.

    7. It will then display the key fingerprint and ascii art.

    posted in FreePBX Guides
  • FreePBX Standard Setup Part 1: Command Line

    Sangoma continually updates FreePBX.

    Because of that, this guide will generalize some terms where possible.

    Screens may differ after an update.

    If your method for accessing the console does not allow you to copy and paste into the console, then we strongly recommend that you use SSH, as the root user, for this initial setup.

    This process requires that you have created a SSH keypair for secure login to Linux systems.

    If you need instruction for that see: Creating an ed25519 key in Windows 10

    1. However you installed FreePBX from the ISO, when that installation completes, the console screen should be waiting for a log in.

      1. The only login available immediately after installation will be the root user.
      2. You can log in to the console or via SSH. Be aware of the notice above about copy and paste.
        1. On the Console, enter root for the login and hit enter.
        2. Enter the root password you set during installation, the password will not be echoed back, then press enter.
        3. Or log in initially via SSH.
      3. Either way you will be greeted by the standard FreePBX message of the day (MOTD).
    2. The first thing to do is to secure SSH. This is accomplished by:

      1. Creating a non-root user with administrator rights (sudo).
      2. Disabling the ability of the root user to log with the SSH protocol.
      3. Disabling the ability to log in with a password.
      4. We have created a script to handle this initial root setup process. If you want to do it manually, please read the script to see how we did it.
    3. Execute this command to download the script from our public GitLab with this command:

    4. Set the downloaded script to be executable: chmod +x

    5. Execute the script: ./

      1. It will prompt for your SSH username
      2. Then tell you to log out.
    6. Logout of the root session by entering: exit

    7. Log in as the user you just created. You will be forced to update your password.

      1. Your current password is: ChangeMe
      2. Your new password can be whatever you want, try to be a bit secure about it.
      3. You will enter ChangeMe once to log in. Then again as the "current password" to be changed.
      4. It will automatically log you out after changing your password.
    8. Before logging back in, you need to copy your SSH public key to the system.
      The command to do that is: ssh-copy-id [email protected]
      I have multiple keys on my system, so I need to specify the key I want to use with the -i option.

    9. Log in via SSH again, it will not ask for a password.

    10. Execute, with sudo, the setup script that was pre-downloaded during the root setup.
      sudo ./

    11. You will be prompted for your password in order to execute the commands in the script with sudo access.

    12. Get a coffee, this will take a while to finish.

      1. Especially if the updates include a new Linux kernel.
    13. When completed, it will tell you to reboot and go to the web interface to complete the setup.

    14. Reboot the system as instructed
      sudo reboot

    15. Wait for the reboot to complete and then go to the web interface as previously instructed to complete the setup.

      1. You know the reboot is complete when the console screen returns to this.
      2. Be prepared for warnings about insecure connections the the web interface. Part of the GUI process will be to create a valid SSL certificate.
    posted in FreePBX Guides
  • FreePBX ISO Installation

    Sangoma creates FreePBX installation ISO files several times per year.

    Because of that, this guide will generalize some terms where possible.

    Screens may differ after an update.

    1. Once you boot to the ISO file, you will be presented with a screen to select what version of Asterisk you want to install.

    2. For most companies, there is no reason to stay back on an LTS version, I always recommend using the current release. That is Asterisk 17 as of the writing of this guide. So select that version with the arrow keys on the keyboard and hit enter.

    3. On the next screen, leave it on Output to VGA and hit enter.

    4. Hit enter again on the next screen, confirming what you previously chose.

    5. You will now see various Linux boot screens go past.

    6. When you see this screen, click on ROOT PASSWORD to set the Linux root user password.

    7. Enter the password twice, and then click done on the top left.

    8. It will show that the root password has been set.

    9. Now wait for the reboot button to appear on the bottom right. Depending on the resources of the system you are installing on, this can take up to 10 minutes. Once it appears, click reboot.

    10. Your system should boot to the Linux login prompt.
      If your system does not automatically eject the installation media, Vultr instances do not, you will get the initial setup screen again. Manually remove the installation media and reboot again.

    11. The FreePBX ISO Installation is complete. You can now continue with the FreePBX Standard Setup Part 1: Command Line guide.

    posted in FreePBX Guides
  • Creating a FreePBX instance on Vultr
    1. Log in to your Vultr account. You will be presented with your existing instances, if you have any.

    2. On the upper right of the page will be a blue button. Click on it to deploy a new instance.

      1. If you mouse over it, you will see that there are more options, but the default action on this screen is to deploy a new instance.
    3. Under the Choose Server heading, ensure that Cloud Compute is selected.

    4. Under the Server Location heading, choose a location regionally close to where most of the phones will be, Chicago in this example.

    5. Under the Server Type heading, choose ISO Library.

    6. Then look for FreePBX, there may be more than one. Choose the newest.

      1. The date code is YYMM-R (year, month, release in month. August 2020, release 1 in this example.
    7. Under the Server Size heading, choose the appropriate sized instance for the PBX.

      1. The specific size depends on the needs of the location, if unsure, always start with the $5 instance.
        1. An office with ~20 concurrent calls and ~200 extensions will run just fine on a $5 instance.
      2. Instances can always be scaled up. They cannot be scaled down.
    8. Under the Additional Features heading, check the option for automatic backups.

      1. The price is based on the instance size, for example the $10 instance is $1.25
    9. Under the Firewall Group heading, leave it at no firewall.

    10. Under the Server Hostname & Label header, give the system a label. The hostname is irrelevant for FreePBX installs.

      1. The label is what you see in the Vultr list of instances
    11. You will see a cost summary on the bottom left.

    12. Click on the Deploy Now button on the bottom right.

    13. The screen will go back to the list of instances. Your new instance will say Installing.

    14. When the instance changes to running, click on the three dots to the right of the instance and then on View Console. This will open the virtual console where you will complete the FreePBX ISO Installation process.

    15. The virtual console will open and you will see Sangoma's customized installation menu for FreePBX.

    16. At this point, switch to the FreePBX ISO Installation guide.

      1. You will come back to this guide for a few more steps after the ISO installation guide competes the first reboot.
    17. Once the FreePBX ISO Installation has completed the first reboot, you will need to remove the ISO.

    18. Click on the instance name or server details from the menu.

      1. Click on Settings.
    19. Click on Custom ISO.

    20. Click on the Remove ISO button.

    21. You will be prompted to confirm the ISO removal. Click Remove ISO again.d059c7bc-17ca-42d5-8bac-f7647f5071ac-image.png

    22. When you remove the ISO, the Console will look like this, close the window as you will have to reopen the console.

    23. Click on the Console button on the top of the instance detail screen.

      1. If you changed back to the instance list, you can access the console as mentioned in step 14.
    24. You will see the instance has booted normally.

    25. You will now switch to the FreePBX Standard Setup Part 1: Command Line guide.

    posted in FreePBX Guides