Google Voice Potential: Phone Forwarding Based on Location

I’m a self-professed Google Fanboy, and for good reason. I count on Google to push the envelope where others have failed to do so and expect consumers like me to benefit tremendously from it. Google Voice is one of the latest examples of that.

As is usually the case though, in order to really appreciate Google’s products, you must have an eye on the product’s potential beyond what’s first released, not to mention an understanding of the technical, social, and even political brilliance.  In the case of Google Voice, there are definitely some rough edges, but I’m looking forward to having unprecedented controls and capabilities for my telecom experience.  And when I finally buy into Android (this weekend’s launch of the Droid might well be that time), the integrated experience will take the control and capability to the next level.

One problem I’d like to solve using Google Voice is that of having calls forwarded to my home phone only when I am actually there.  Since I don’t really want my two year old answering my business calls, and not to mention it’s pointless to ring that number when I’m not even around, I’d like to find a way to register/unregister my home number as a forwarding option depending on whether I’m actually there.

A solution to this problem would only have a few moving parts.  First off, you need some way to trigger the events that indicate the equivalent of: “honey, I’m home” and “I’ll see you later.”  Then you need a way to take some action based on that event to say the equivalent of: “while I’m home, you can reach me on this phone.”

If not for the awesome ecosystem of open source and the power of Google search, I would have said the hardest part of this equation is the first part.  But these days, no matter what your platform, there is likely a bluetooth proximity solution that you can set-up to kick off some sort of script based on the strength of your bluetooth signal from your phone to your computer.  Eg. in the Fedora 11 repo, there’s a package named BlueProximity which is geared towards locking your screen based on proximity, but I think you can use it to put in arbitrary commands beyond screen locking as well.  There are also plenty of blog posts explaining how to write manual scripts and what not, and I’m guessing plenty of other solutions would do (eg. for wifi phones, try to repeatedly ping you phone if it keeps a consistent name or IP, or maybe a GPS-based solution combined with ).

But with the first part being easy enough to figure out, what can we do about the register/unregister problem?  We need an API!  This is something you can usually count on Google to provide, and I’m sure they will provide one eventually for Google Voice.  When an API starts to ship for Google Voice, we’ll really start to see how disruptive of a force this service is.

gvoice-xhrIn the meantime, we’ll inspect what the browser is spitting out when we make the change in the GUI.  Click the screenshot for a look (forgive the over-zealous smudging) to see the somewhat restful api in use (with an oddly RPCish URI IMHO, but that doesn’t really matter too much).  The call has the following important attributes when I toggle forwarding to my Home phone:

  1. URL -
    https://www.google.com/voice/settings/editDefaultForwarding/
  2. Form Data – phoneId:2
  3. Form Data - enabled:0
  4. Form Data – _rnr_se:$some kind of hash/token$
  5. Response – {“ok”:true}

Most of that is pretty self-explanatory.  The obvious question mark is the _rnr_se token, but I found it to be the same on every request even after re-logging in, so you might be able to use it intact.

I set about trying to script the call to Google, but I’ve never written a script to use Google’s APIs and I started getting hit with Captcha requests pretty quickly. That was enough to remind me I have some real work to get back to. Hopefully I can find some time to turn this vapor ware into a reality or somebody else can carry the ball forward.

Also, keep in mind there is an obvious problem with this set-up.  For example, if your phone battery happens to die, you get the double wammy of losing two “extensions” to your Google Voice number since the proximity sensing would think you left the building.  But this would be a fun little hack none-the-less.  Hopefully I can get it going and try it out.

About these ads
  1. Hi there!

    It is really amazing how technology has made telecommunications evolve into something much better! From telephone forwarding to internet faxing you would not ask for more! I mean in 20 years what will be this awesome innovation will be? Great blog for sharing it with us!

  1. No trackbacks yet.

You must be logged in to post a comment.
Follow

Get every new post delivered to your Inbox.

%d bloggers like this: