Using Google Voice as a FREE VoIP Solution

This post will go over the basics in getting basic VoIP inbound and outbound calling to work using Google Voice as a SIP trunk in your home or lab environment.  I believe this solution will work with domestic calling (I live in the United States) so I’m not sure about international calling, from what I’ve read it doesn’t sound like this solution will work out of the box.  Since I just got this working myself so there is much to be learned as I have no prior background experience in the world of voice.  But I do have to say though, I’m super excited to get this working, how cool is it to say that you have your own free phone commercial grade phone system working at home!  Ok, maybe its just the nerd in me talking.

The first step is head over to Google and create an account to associate this phone number with.  From what I’ve read it is good practice to separate this account from your main, day to day account to avoid unsolicited messages and spam to your main account.  By no means is it absolutely necessary, but it is the way I chose to do things so that is how this the direction this tutorial will follow.  Once the account has been created and you log in the first time you will need to associate a Google Voice number with the new account.  After that is done you will need to adjust your Voice settings in your new account.  Make sure your phone allows Google Chat, otherwise inbound calling won’t work.

Also make sure your Calls settings look similar if not the same as the following:

Ok, now we need to adjust the settings on our voice server.  I will not be going over the details of getting your voice server up in running in this tutorial so if you need help getting to this point let me know and I will write something up to help.  Suffice it to say, there isn’t much difficulty getting to this point, just install the ISO image and configure the networking, accounts and passwords and you will be ready.  I used PBX in a Flash for my setup (box.net 64-bit version), so grab the latest ISO and get started on the install!

Once you have completed the installation and configuration go ahead and open up a browser and head to the address you configured when setting your environment up.  If you can’t remember, run a status command from the PBXiaF command line to check the address as well as other important information.

You need to ensure that you have the Google Voice module installed by first checking to verify that it is installed and enabled (Admin -> Module Admin -> Third Party Addon -> Google Voice).

Then go take a look at the configuration page (Main Page -> Third Party Addon -> Google Voice).  Here we need to configure our settings to match the new account we just created with Google.  Make sure your settings look similar to the following:

Phone Number: The 10-digit Google Voice phone number we created.
Username: The uername we created through Google.  Only use the first part witouth the @gmail.com.
Password: The matching username password for your Google account.
Add Trunk: Checked
Add Routes: Checked
Agree to TOS: Checked

Next, we need to create an extension to route incoming/outgoing traffic to.  I chose 701 for mine (kinda borrowed it from another tutorial).  These settings can be found by going to Basic -> Extensions and choosing “Add Extensions” on the top right of the page.  There are tons of options to configure here but I am focused on basic functionality I picked a display name of 701 and a secret for that extension.  These settings are what your phone uses to talk to the server.

After that is done, add in inbound route (Inbound Call Control -> Inbound Routes) and configure it to use your Google Voice phone number and point it to the extension you just created.  The settings should look similar to the following:

Now we need to install and configure a phone to test out our new VoIP connection.  Since I don’t have a hard phone to test with I decided to sample a few different Linux options, finally settling on Qutecom.  It is relatively painless to install and configure and looks the best out of all the options I tried IMO.  To install, sudo apt-get install qutecom from command line.  Once it is installed open up the program and adjust the soft phone setting to point to your voice server, the secret you created and your newly created extension.

It is finally time to test!  At this point, I had outbound calls working through my SIP phone but incoming calls weren’t working. hmm, ok after some research I found that there was a patch for the Google Voice Addon that I needed.  From the command line on your voice server issue the update-programs and update-fixes commands to update your programs and software fixes, pretty self explanatory but was pretty much impossible to find.

In my case this step was VERY IMPORTANT and was what allowed me to receive incoming calls.  Make sure you don’t overlook this step if your are having problems receiving calls.  There are still a ton of things to work on with this setup but I was just excited I got it to work to begin with.  I hope you get som use out of this tutorial and try it for yourself.

Resources:
http://pbxinaflash.com/community/index.php?threads/2nd-google-voice-account-no-inbound.13152/#post-84527
http://www.pbxinaflash.com/community/index.php?threads/bad-week-for-google-voice.12396/
http://nerdvittles.com/?tag=google-voice

Josh Reichardt

Josh is the creator of this blog, a system administrator and a contributor to other technology communities such as /r/sysadmin and Ops School. You can also find him on Twitter and Facebook.