Project Reasoning

The aim of this project was to build a mini business phone system within the cloud with minimum running costs. The software involved in the project was AWS (namely IAM and EC2) and 3CX. I had existing knowledge of 3CX prior to the project, as it is currently in use at my place of work. However, instead of using the AWS the PBX runs on premises with around 60 IP phones.

Project Process

The first step within the project was to create an IAM user, with full permissions to EC2. The purposes of this was to allow 3CX to have access to the EC2 instances which was created in the next step. Within EC2, I then created a key pair, which allowed 3CX to authenticate into the instance without the need for a username and password.

The next step was to provision the machine for the 3CX PBX. Currently, 3CX only runs on Debian Linux, so this needed to be accessed from AWS marketplace. Once subscribed, I was then able to begin setting up 3CX. The setup prompts were fairly straightforward, with the most important step being the verification of the location, access and secret key. The final step was to confirm the instance size which in this case was the t2.nano as the requirements were fairly minimal. This instance provided me with the web front end (with a domain) to allow configuration of the phone system.

Configuring the Phones

As I was not in possession of hardphones (IP Phones), I used two softphones (mobile devices) in order to verify the phone system was working. I used the 3CX mobile app to configure the phones and assign them with an extension number, ringtone and voicemail message. To confirm the system was working I dialled the extension from my first mobile device (extension 1000) to my second (1001).