Google Voice Your PBX: Setting It Up


Eric Hansen

Previously I introduced you to what the object of this series is about. Now, we'll get diving in.

This will be done with Ubuntu 12.04 LTS (I'll go into a simple reason why soon). This could potentially work with a different version (or distro), but there are no guarantees.

Usually I'll do everything by hand. I have learned with FreeSWITCH (the PBX system) and FusionPBX (web panel) though that if you can find an easier way to install it. DO IT! This is why we're using Ubuntu 12.04 LTS. There's an install script created by the people at FusionPBX to simplify and ease the installation tremendously. So, we'll do that instead. I've done this on a 32-bit machine. Even though it shouldn't matter, I don't run 64-bit servers (since memory is < 4GB I see no point), and thus can't confirm or deny its success.

Step 1: Download the Installer Script
Since I'm using a VPS I'm forced to log in as root, but most of these commands will need to be done by root user anyways. Downloading the script is the easiest part of this all:
root@eric:/opt# wget -O /usr/local/bin/

Step 2: Make the Script Executable
Simple chmod line:
chmod 755 /usr/local/bin/

Step 3: Install
Now the real fun. The install script offers a few options, such as installing only FreeSWITCH, FusionPBX, or both. We'll be doing both, but so you know what you're doing we'll be installing it in interactive mode as well. So run the install script:
Code: install-both user

Step 4: Intro Install
When you first run it it'll prompt you with some debug information (i.e.: hash checking), press enter to install the required packages for FreeSWITCH.

Once the packages are installed hit enter again to continue.

Step 5: FreeSWITCH Database Choice

You'll get a prompt like this:
Would you like to install PostgreSQL or stay with Sqlite (p/S)?
While I'm a huge fan of PostgreSQL, for a small project like this we'll stick with Sqlite, so hit enter.

Now FreeSWITCH's code will be downloaded. Press enter if there were no errors (shouldn't be). Press enter again to begin bootstrapping (not familiar with what this is but hey, its needed anyways). This process can take a bit of time so grab a cup of coffee, tea, whatever you like to drink and enjoy the scrolling text. :) Got no errors? Hit enter again!

Step 6: Plugins List
The next portion will list all of the plugins that will be compiled with FreeSWITCH. While most won't have any purpose for our project, we'll leave it be for now and strip it down later once we get things settled. So hit enter.

This will be another long session for compiling FreeSWITCH, so drink more coffee. No errors? Good, hit enter again.

Step 7: Compiling FreeSWITCH Part 2
Yeah this is another long process. Hope you made lots of coffee! Hit enter again when the compiling is done, FreeSWITCH will then be installed. Again hit enter afterwards.

Next will be installing the hold music audio bytes (i.e.: the classical music you hear when on hold).

Hit enter again after.

Step 8: Setting Up System Accounts
Simple set up of freeswitch user account, hit enter.

Hit enter again to enable plugins.

Step 9: System Hardening
Next is installing logrotate and fail2ban to help lock down the system a bit.

Step 10: Apache or Nginx
I prefer Nginx as it seems to work out better for me on low-end machines, but if you prefer Apache do it there.

Hit enter and FusionPBX will now be installed.

Step 11: FusionPBX Install
Since FusionPBX is a PHP-based website, we just hit enter once the files are copied over.

Step 12: Configure FusionPBX
You'll get prompted with this again:
Would you like to install PostgreSQL or stay with Sqlite (p/S)?
We'll use SQLite again.

Next you'll be prompted to go to your IP address to access FusionPBX and continue upgrading. Enter a username and password then click next, then for the database path enter /usr/local/freeswitch/db to get the configuration done.

Once you reach this point, FusionPBX is installed and next we'll get to configuring it for Google Voice!


  • slide.jpg
    26.2 KB · Views: 52,602

I like how your articles in this series are linked to the previous. Good work.
I like how your articles in this series are linked to the previous. Good work.
Thanks. :) I know we talked about it earlier but after looking more into SEO I can see how it helps more. Plus, it makes it easier for the reader to go along.
I am a newbie. I followed the instructions. After installing fusion pbx. It says to go to browser error device not found. And when I put ip address in browser I get the Pacheco is working page

All help appreciated
I know this is old now but it's the only one I've found so far that works. Trouble is I don't much like Ubuntu server.

I installed on an openvz vps which renames eth0 to venet0 and that caused havoc in the script and my hairline. I had to edit the script, replacing instances of eth0 with venet0, put it on another domain I have, and replace the address in the wget with the new script. wow... it worked.

Jor, sounds like you're having a similar experience.

I'm still looking for the script that works with centos 6.5. My biggest reason for wanting this is that all the asterisk pbx platforms I can find use centos 5 and suffer from ancient code that is no longer supported.

I'm also looking at ICTDialer and Newfies.

Members online