| Wiki Sections |
|---|
| AWS FreePBX |
| FreePBX General |
TheWebMachine Networks Support WikiThe Home of AWS FreePBX® - A division of Rebar IT Outsourcing
| Wiki Sections |
|---|
| AWS FreePBX |
| FreePBX General |
Every company is unique in many ways, and their communication needs are no different! Years ago, it was easy to recommend hardware specs for Asterisk-based PBX systems. However, these days, VoIP has evolved into a total communication platform. While we will provide some general guidelines for EC2 hardware, it will be important to regularly check your server resources to ensure you on a properly sized-instance. This is especially true when first placing your new AWS FreePBX instance into production and any time your company experiences growth or drastic changes in the way you do business. One of the best features of AWS is the ability to change EC2 Instance Types and Sizes at any time, so you can rest assured that a proper balance between performance and cost can be achieved regardless of your company's size, now and in the future!
For most environments where you simply want to take advantage of the normal suite of FreePBX services (calling, voicemail, fax, conferences, etc), the General Purpose Instance types (T3, T3a, M6, M6a) will provide the best combination of performance and value. If you are using a minimum amount of “intensive” services like conference rooms and queues, the T3 or T3a types will suffice. If you are planning to host a lot of extensions, conference rooms, 3rd party software (see below), etc., you will want to take advantage of the more dedicated performance of “M-Types” (M6, M6a, M7i, M7a, M8i, M8a).
If you plan to use “extra” software on or alongside your AWS FreePBX instance, such as iSymphony or Queue Metrics, you need to be aware that each of these platforms have their own hardware requirements. For example, iSymphony is a PHP-heavy Java application that requires significantly more CPU and RAM resources in addition to what Asterisk and FreePBX need. iSymphony's RAM requirements can easily exceed 3 or 4GB on very large deployments and/or busy call centers. You may want to take advantage of the Compute Optimized “C-Types” (C7i, C7a, C8i, C8a), which provide extra CPU cores, or Memory Optimized “R-Types” (R7i, R7a, R8i, R8a), which provide extra RAM, depending on the software you are deploying alongside AWS FreePBX.
Here are some other special use cases where you will keep other considerations in mind:
This is the more difficult aspect to predict ahead of a deployment, as there are many factors that ultimately determine the size of instance (CPUs/RAM) you choose. You should also note that Compute Optimized C-Types and Memory Optimized R-Types have unbalanced hardware specs when compared to General Purpose T- or M-Types. Of course, once your server is in production, it is important to periodically check the resource usage on your FreePBX instance during times of PEAK CALL VOLUME to ensure you are using the correct size for your needs. An instance sized too small will lead to instability, audio issues, dropped calls, and even server crashes. An instance sized too large will waste money.
Assuming you don't have a super large deployment with your current phone solution, feel free to start with the M6a.large or M6a.xlarge instance type to get started. Once you have placed your instance in production, you'll want to monitor your resources during periods of peak call activity and adjust your instance size accordingly. Here are several ways to monitor your resources:
If you have any doubts as to the best Instance Type and Size for your needs, we're here to help! Submit a Ticket and we'll gladly discuss your needs to come up with a tailored recommendation for your company. For more information regarding resizing instance types on AWS EC2, please click here.
Our AMIs launch with a default storage configuration as follows:
Volume
Root
Spool
Default Size
50GiB
50GiB
Purpose
OS, Asterisk/FreePBX Core, Modules, other Software, Logs; Mounted as /
Recordings, Voicemail (Greetings and Messages), Faxes; Mounted as /var/spool/
The default size for each Volume is 50GiB, but you are welcome to expand either volume at launch or at any time after (requires a full instance power off/on). If you are planning to record all calls or are launching a very large deployment, you will want to expand at least the Spool volume to something larger, based on your anticipated call volume.
While you can enlarge a Volume at any time after launch, you can NEVER shrink a Volume to a smaller size after it has been enlarged and you cannot launch with Volumes sized less than 50GiB
We do NOT recommend changing from the default General Purpose EBS Storage options.
Once you have determined your Instance Type.Size and Storage needs, you need to Choose your desired Contract Type, Subscribe to our Product, and Launch your first Instance. You can view any existing Software Subscriptions here.
Once you have decided on an appropriate instance type, click the Launch an Instance link below (opens in a new tab/window) to open our AWS Marketplace Page. Then click Continue to proceed:
PRIVACY WARNING: Clicking the “Launch an Instance” button on this page will expose your personal information to Amazon Web Services (AWS) and their affiliates for the purposes of processing your subscription. Click here to view our Total Privacy Policy.
Once on our Product page, choose the Try for Free button.
If this is the first time you are trying our product, you will be offered a 30-day trial with no Software charges (hardware/storage charges still apply). If you've used our product before, you will not be offered the 30-day trial and will be charged for each instance from launch unless you already have an Annual Contract to cover it.
In either scenario, you must also choose how you wish to pay for your Software. We offer two options:
Usage Based (Hourly)
You will pay an hourly flat rate based on the Type.Size of the instance for every hour the instance is in a Running state.
Annual Contract
You will pay the full 12-month term up-front based on the Type.Size you intend to run in exchange for a 17% discount on the Software charges versus paying Hourly. You should only use this option if you are already confident in which Type.Size Instance you need for your deployment. You can manage your subscriptions any time and add Annual Contracts to cover any Instances that are stably on a particular Type.Size after your Instance is in Production.
You can either leave the default Usage Based Hourly option selected or manually select the Usage Based with Annual Contract option. If you select the Annual Contract option, you must scroll down and select the Type.Size and Quantity of contracts you wish to purchase. For example, if you are launching a Warm Spare or Advanced Recovery deployment with 2 Instances, you'd select a single Type.Size with a Quantity of 2
In either case, when finished making your selections, scroll to the bottom to see a full summary of your Contract, which will show any up-front costs for Annual agreements you may have selected.
If you need a mix of Hourly and Annual Contracts, you will need to repeat the process twice, once for each type of contract you are creating.
Finally, click the Subscribe button to proceed to Launch.
YOU MUST WAIT ON THIS PAGE FOR THE SUBSCRIPTION PROCESS TO COMPLETE! You will be automatically sent to the confirmation page when completed.
If you already have an agreement in place and simply want to launch additional instances, see LAUNCH VIA EC2 CONSOLE below.
If you are launching directly from a new Contract signup above, simply choose the Launch your Software button on the page to proceed:
You'll need to select Launch from EC2 Console and choose your desired Region, then click the final Launch from EC2 button.
Now you may skip down to CONFIGURE LAUNCH DETAILS.
Alternatively, if you already have an agreement in place and wish to launch a new instance directly from within the EC2 Console, simply click the Launch Instance(s) button within the EC2 Console, then type AWS FreePBX into the Catalog search box and press Enter to bring up the full search window, click the AWS Marketplace AMIs tab, then Select our product from the results. In the popup, choose Subscribe now. (Yes, it is redundant.)
Sorting results by AWS Customer Rating will bring us to the top of the list.
Now that you are on the Launch an Instance page, you'll need to step through all of the sections to configure your instance. Start by giving the Instance a Name:
We'll step through each remaining section. Expand them to see more details and screenshots.
These are already set for you as part of the initial Launch step, so you can leave this section alone.
This is where you will select your desired Type.Size for the instance, as discussed above.
You must select one of your existing Key Pairs or create a new one for your AWS FreePBX Instance. This allows you to connect to the instance via SSH to perform advanced configuration, maintenance, upgrades, and repairs/recovery.
If you are creating a new Key Pair, you must be sure to save the Private key in a secure location. It MUST be downloaded NOW, as AWS does NOT retain this Private key and, if you lose it, IT CANNOT BE RECOVERED!!!
We recommend choosing the .pem format, as this is more universally accepted amongst SSH applications. .ppk is only really useful if you exclusively use PuTTY/WinSCP for SSH/SFTP connections. Do note that you can convert between .pem and .ppk using the PuTTYgen utility. If unsure, leave it at the default .pem format.
We provide a default Security Group and AWS defaults to auto-launching in any Availability Zone in the Region you are launching in. However, you may want to change these if you already have an AWS FreePBX Security Group configured for your other instances that you wish to use here and/or if you are setting up Advanced Recovery or Warm Spare deployments and need to ensure that each instance is in a separate AZ.
If you are wanting to place the Instance in a specific Availability Zone, choose Edit at the upper-right corner of Network Settings, then you can access the Availability Zone drop-down:
Our default AMI provides two 50GiB Volumes: One for the Root Volume, where the OS and all of the software lives. One for Spool (mounted as /var/spool/), where Voicemail Greetings/Messages, Call Recordings, Faxes, etc. are stored. A Spool Volume can be safely transplanted between instances in a recovery situation.
If you are planning for a very large deployment with lots of Call Recordings being generated, you may want to expand the Spool Volume (shown as the second EBS Volume below) to larger than the default 50GiB.
You can expand a Volume at any time after launch by Stopping the Instance, Modifying the Volume size, then Starting the Instance again. However, you can NEVER SHRINK a Volume once it has been enlarge and you cannot start with Volumes smaller than 50GiB.
There are a lot of settings here. The two we want to point out to you are the Stop Protection and the Termination Protection. They both have the same purpose: To prevent accidential Stopping or Termination of the Instance. We recommend that you set at least the Termination Protection option to Enabled. This provides you a little piece of mind that you are not going to accidentially destroy your deployment. If you need to Terminate the instance in the future, you can simply disable the Termination Protection before proceeding.
Now that you have all of the Instance Details sorted out, you can click the Launch Instance button on the right side of the page. It will take a minute, but you should eventually see a green banner confirming the Launch request succeeded.
An Elastic IP is a “Static” Public-facing IP on AWS. This gives your Instance a permanent point of contact for your Trunks and Endpoints. You can point a FQDN to this IP for an easy-to-remember and pliable method of reaching the instance. You manage your Elastic IPs in EC2 Console > Elastic IP Addresses.
If you don't already have an Elastic IP allocated and available to be assigned to this new Instance, you'll need to Allocate one. AWS restricts NEW Accounts to only 5 Elastic IPs per Region. These limits are lifted over time. Also note that AWS currently only allocates IPv4 Addresses and you do not get to pick your IP unless you are using an advanced setups like BYOIP, IPAM, or AWS Outpost.
Choose the Allocate Elastic IP Address in the upper-right corner to obtain a new IP.
Assign the Elastic IP to your Instance
In the Elastic IP Addresses list, select your desired Elastic IP, then Actions > Associate Elastic IP Address. On the next page, select the Instance field and a searchable drop-down will appear. Select your new AWS FreePBX Instance from the list. Then you'll need to click the Private IP Address field and select the one and only entry that shows up. Finally, select the Allow this Elastic IP address to be reassociated checkbox before clicking the Associate button at the bottom-right of the page.
After deploying your instance from the EC2 Console, please allow up to 10 minutes for the instance to be setup and all services to start. Once your instance is running and ready, simply navigate to the IP address in your web browser. Choose the FreePBX Administration icon on the left, enter admin as the username and your EC2 Instance ID (i-xxxxxxxxxxxx) as the password.
Once you are logged in, you can change the password from the Admin > Administrators menu. You can setup additional Users and Admins in Admin > User Management, but do not delete or add to the legacy Administrators module, as this is used behind the scenes for management of your AWS FreePBX Instance.
If you have issues accessing the web interface of AWS FreePBX, please check your EC2 Security Group to ensure the proper ports are open. Depending on how you launched the instance from our Marketplace AMI above, you may have launched with our default SG entries or your own custom SG. If you did not accept our default SG, you may need to add the necessary ports as outlined on this page.
DO NOT IGNORE THIS SECTION!!! THIS IS THE #1 CAUSE OF NEW CUSTOMER SUPPORT TICKETS!!!
When the fail2ban Intrusion Detection service is running, failed attempts to access your system are logged. If the attempts exceed the Max Retry limit, the remote IP is blocked from accessing the system for the length of Ban Time. The number of attempts are reset after the Find Time is exceeded. We recommend this service always run, but this can cause problems when you are testing and building out a new server instance. For example, an improperly configured phone will repeatedly attempt to authenticate and get your entire network banned from accessing the server. As a result, it is best to turn off Intrusion Detection when you are first configuring your new server. This can be done from Connectivity > Firewall > Intrusion Detection or via SSH console by running systemctl stop fail2ban See this Wiki page for more information.
The Responsive Firewall module provided by Sangoma is available on AWS FreePBX, but is not Active at Instance launch. You should follow this Wiki page to activate and configure the Firewall Module AFTER the instance has been setup properly.
Next, you need to configure Asterisk SIP Settings. The Asterisk SIP Settings Module is used to configure the default settings used for calls. The most critical part is ensuring Asterisk knows the External IP and Local Network (AWS VPC) information in order to properly format the SIP PATH of calls. Without this, YOU WILL NOT HEAR AUDIO ON YOUR CALLS!
Go to Settings > Asterisk SIP Settings and click the Detect Network Settings button to automatically populated the necessary fields.
Manually add any AWS VPC direct VPNs you are utilizing to the Local Networks list only if you are certain your call traffic is using the VPN.
When finished, Submit and Apply Config.
AWS FreePBX® from TheWebMachine Networks includes our unique SmartUpgrade system. Use SmartUpgrade to update your server at any time and use advanced features such as S3 Bucket Sync for Voicemails and Call Recordings and our Automatic File Deletion service to keep your server running at its best. We release AMIs on a quarterly schedule with the latest software and patches available at that time. However, there are constantly new updates and patches being released to correct bugs and eliminate security vulnerabilities. You should update your instance before placing it in production. You can find out more about SmartUpgrade here.
That's it for the mandatory setup steps! You can now proceed to configure Extensions, Trunks, and all of the other modules. Be sure to Setup Email, Configure Backups, and explore the available Paid Modules from Sangoma like Endpoint Manager and Fax Pro.