Friday, April 17, 2009

Forwarding SIP Calls to Google Voice

Warning/Disclaimer: This information is based on unsupported features of Google Voice and as such may change or be blocked at any time. Don’t rely on it for important communication needs.

Ok, having said that, let’s talk about the ability to forward SIP calls to your Google Voice number via a direct SIP-to-SIP connection which in turn are forwarded by Google to your registered phones.

This is a cool feature for people who already use SIP based phones because it extends the receiving end of the connection to your mobile and landline phones. The list of potential uses and benefits is pretty long and I’ll spare you from having to read through a regurgitated list of them from me.

To make this as simple as possible and leave you some flexibility in the configuration side should it need to change, you’re going to want two Gizmo accounts. This is assuming you want the ability to receive calls via SIP as well (see my previous blog post on how to set up Gizmo/X-Lite with Google Voice).

SIP Forwarding Visio

This post just concerned with the Gizmo Forwarding Account highlighted in the diagram above.

If you already have a Gizmo account and you’ve shared that SIP number with others, you’ll want to create a new account to use as your Gizmo Receiving Account and use your existing one as the Gizmo Forwarding Account. That way you won’t have to give out a new number.

Before you can configure your Gizmo account to forward calls, you need to know your Google Voice SIP address. And herein lies the tricky part. The Google Voice connection to Gizmo is a two-way capable connection but they don’t give you any information on how to receive calls via that connection. Why not? The list of reasons that people have suggested could fill a blog post by themselves. My feelings are that since Google Voice (and Grand Central before it) haven’t blocked incoming calls, they condone it’s use, but just can’t commit to supporting it so they don’t mention it. A quick search of the internet shows that this inbound connection has existed for a long time and they would have closed it by now if they wanted it closed. So for now, we’ll make use of it.

Here’s the format of the Google Voice SIP address:

6305551234@216.239.37.11:5061

The first part is your Google Voice phone number followed by the @ symbol then a Google Voice server IP address and then a colon and port number. This number is the from address that is passed to Gizmo/X-Lite when a call comes in from Google Voice. The “.11” portion of the IP address changes from time to time and is sometime “.14” or “.15” among others. I suggest trying “.11” for now and if that fails you can try “.14” or “.15”.

With your Google Voice SIP address in hand, setting up a Gizmo account to forward is really easy. Here’s a screenshot.

Gizmo Forwarding Account

In the Forwarding Gizmo5 Calls section of your account page, set the status to “Forwarding All Calls” and then set the ID radio button to SIP and enter your Google Voice SIP address and hit save. You can also turn off the Gizmo voicemail while you’re here if it’s active.

That’s literally all there is to it. You can now have people call your Gizmo Forwarding Account’s SIP number and they’ll be automatically forwarded to your Google Voice number which will ring your phones.

The beauty here is you have a number that you can give out and if things stop working you still have options. You can fix the forwarding number if it changes, or you can forward directly to your Gizmo Receiving Account.

Since all the technology is in place for this to work quite seamlessly, I really hope the Google Voice powers that be make this an official feature. If it get’s turned off at some point it will likely be due to some sort of legal, regulatory or outside business pressure.

The world’s changing and Google Voice is leading the way. I hope it’s allowed to continue.

Note: Should things change with this “feature”, I’ll update this post.

Google Voice to Gizmo with X-Lite

There’s a lot of talk about Google Voice’s voicemail translation and it is pretty cool, but my favorite feature is, hands down, the ability for Google Voice to have a SIP softphone (via Gizmo) among your list of phone to ring and send calls to. Given that I spend 8 to 12 hours a day working and playing on my computer and have a headset on most of that time, if I can answer calls via headset instead of my mobile phone, I can literally save several hundred cell minutes each month. The headset is also much more convenient as well.

Google Voice does a pretty good job of hiding the complexities of such interconnections but the whole process is still far from something I would call easy. In this article, I’ll give step-by-step instructions on how to set it up and more importantly, how to get it to work with DTMF touch-tones.

X-Lite I initially tried the Gizmo5 softphone, but ran into problems with DTMF touch-tones that stopped me from even being able to verify my Gizmo number. My solution was to use the free X-Lite client. The X-Lite softphone has a dialpad centric design that fits very well with how I want to use it with Google Voice. Many SIP softphones want to be a universal communication tool that manages contacts, instant messages and more. But these features would be largely ignored when paired with Google Voice where I primarily only want to answer calls via a headset.

You can use X-Lite because Gizmo5 is more than just a softphone. When you sign up for an account at www.gizmo5.com you get a full SIP compatible phone service and as such you can use any SIP compatible software or hardware with it.

There’s one more note to mention before I get to the step-by-step instructions. The default configuration for X-Lite will send DTMF touch-tones that work with the Google Voice verification and voicemail system, but they don’t work well with other phone systems or in my case conference call systems that you call via Google Voice. The instructions below include some advanced configuration settings for X-Lite that fixed those problems for me.

Now for the good stuff…

Step 1 – Create your Gizmo account

Visit www.gizmo5.com and click the My tab at the top. The registration for is on the lower half of the page.

Step 2 – Gizmo Account Overview Changes

Gizmo Account Overview

Make a note of your new SIP Number as you’ll need that soon.

While on this page, be sure to turn off voicemail. It’s on by default but you’ll want Google Voice to handle voicemail, so click the button that says “Turn Off Voicemail”.

While talking about the Gizmo5 service, I’ll mention one more page from their knowledge base. The SIP Device Configuration Settings page. These will be used to configure X-Lite and if you use other SIP software or hardware you’ll need them as well.

Gizmo SIP Config Settings

Step 3 – Download and install X-Lite

I’m using the latest build (X-Lite Version 3.0 build 47546) downloaded from here: http://www.counterpath.net/X-Lite-Download.html.

Step 4 – Configuring X-Lite with your Gizmo SIP account

X-Lite Menu

Open the SIP Account Settings for X-Lite.


X-Lite Account 1

Add a new account and fill in your Display Name, User name, Password and Authorization user name. Both user names should be the same and can be either your SIP number or your Gizmo account username.

For domain enter:
proxy01.sipphone.com
and then check the option for “Register with domain and receive incoming calls” and set “Set outbound via” to “domain”.

X-Lite Account 2

On the Voicemail tab uncheck the “Check for voice mail”.

Close the window by clicking OK and then Close the SIP Accounts. At this point, X-Lite will register with Gizmo and will be able to receive and send SIP calls.

Step 5 – Advanced X-Lite Options for DTMF touch-tones

At this point, if you just installed X-Lite, you should be ready to add your Gizmo number to Google Voice. But just so you understand, when you are taking a call from Google Voice and need to press numbers to get through menus or to enter your verification code you’ll need your DTMF touch-tone settings to be set one way and then later when you want to respond to automated menus on phone systems that you call you’ll need different settings. The default settings will allow you to send the tones to Google Voice’s phone system and that’s why we can proceed from here.

If you want to double check your settings, here are the steps. Otherwise, you can skip to step 6.

X-Lite has a hidden advanced configuration option window. To open it you need to enter “***7469” and press the “talk” button. When you do this the Advanced Options window shown below will open.

X-Lite Advanced Options dtmf 1

To find the first setting that needs to be changed, type “dtmf” in the filter text box and click “Apply Filter”. The first entry will be “system:dtmf:force_send_in_band”. Make sure this is set to “1” by double clicking the entry.

X-Lite Advanced Options 2833 1

To find the second setting, type “2833” in the filter text box and click “Apply Filter”. The first entry will be “rtp:2833:enabled”. Make sure this is set to “1”.

You can then click the close button in the upper right corner of the window.

Step 6 – Adding your Gizmo number to Google Voice

At this point, navigate to settings->phones in your Google Voice account and click “Add Another Phone”.

GV Settings Add a new phone

Enter a name for this phone. It can be anything you want. Next enter your Gizmo SIP number with just the 10 digits as shown above (with or with spaces). The key thing to remember is to not put in the preceding 1 and you don’t need anything after the number itself. Last, be sure to select Gizmo as the phone type.

When you click save you’ll be prompted to verify your new phone.

GV Settings Verify your phone

When you click Connect, your X-Lite phone should ring and you can click the “talk” button or “answer” to accept the call. You’ll then be asked to enter your verification code. Click the buttons on the dialpad or type them on your keyboard. If everything is configured correctly, you’ll hear a message indicating success and the call will hang up.

The phone list on your browser should update and show your new phone entry.

Step 7 – Turn off Call Screening and Call Presentation

Due to the fact that the Google Voice automated phone system requires one set of settings (DTMF In-band with RFC 2833) and other automated phone systems you call require different settings (DTMF In-band without RFC 2833) this causes problems with Call Screening and Call Presentation.

So, for now, you’ll need to turn off Call Screening and Call Presentation.

GV screening and presentation

Find these on the Settings->General page and make sure they’re turned off.

Step 8 – Change settings for DTMF touch-tones and RFC 2833

As mentioned before, the DTMF touch-tone and RFC 2833 settings need to be set a specific way at this point for you to be able to respond to automated phone systems that you call with X-Lite via Google Voice. This final step will show you how to make sure they are set as required.

X-Lite has a hidden advanced configuration option window. To open it you need to enter “***7469” and press the “talk” button. When you do this the Advanced Options window shown below will open.

X-Lite Advanced Options dtmf 1

To find the first setting that needs to be changed, type “dtmf” in the filter text box and click “Apply Filter”. The first entry will be “system:dtmf:force_send_in_band”. Make sure this is set to “1” by double clicking the entry.

X-Lite Advanced Options 2

To find the second setting, type “2833” in the filter text box and click “Apply Filter”. The first entry will be “rtp:2833:enabled”. Make sure this is set to “0”.

You can then click the close button in the upper right corner of the window.

Done

At this point you should be able to receive calls to your Google Voice number via Gizmo/X-Lite and place calls from the Google Voice web interface that connect to your Gizmo/X-Lite softphone and then connect to the number you are calling.

There are some options for dialing out from the X-Lite softphone through Google Voice, but there are some complications that exist with this scenario, so I’ll cover the additional configuration and settings in another blog post soon.