So, as I've mentioned in the past, I've been living a mostly Google-service-free life for the last year or so. I do my own email and calendar hosting on LiNode, I use DuckDuckGo for search, and I use Tiny Tiny RSS hosted on Dreamhost for my RSS feeds. (And Dreamhost in general for my webhosting, although I might move some of that over to the LiNode or get an EC2 instance or something.)
However, I still quite like Android, and so I still need a GMail account for its user account (for app purchases and such), and while I have that I also have Google Voice for my phone number, which I figure is fairly benign since I don't keep my address book on Google's servers and so far they haven't done anything to monetize my voicemails.
Once upon a time I worked for a VoIP startup in Albuquerque. Everything was based on standard technologies, namely SIP for call routing and various DNS-based things for endpoint lookup. In the VoIP landscape, most providers do something similar. But not Google.
Google Voice provides two forms of call termination:
- Routing your calls over the POTS network using a call gateway (which is expensive)
- Routing your calls over the Internet (which is cheap) using the Jingle protocol (which is non-standard)
Android itself supports SIP dialing and termination. If you have a traditional SIP account, such as with Vonage, 8x8, or any of the thousands of VoIP services out there, then you can use Internet bandwidth for your call routing, natively and built-in to the Android OS. But Google Voice — Google's own service, made by the same people who make Android — does not support SIP. Instead it uses Jingle, which is a protocol intended for establishing voice calls via XMPP. (Incidentally, most existing IM networks, such as AIM, use SIP for their call routing as well.) Android has no built-in support for Jingle.
SIP also allows you to have multiple endpoints connected to a single account; if a call comes in, then all connected endpoints will ring and any of them can answer the call. Jingle, however, has the same limitation as XMPP, in that incoming messages only go to one connected endpoint, and the rules by which it decides which one gets it are byzantine, opaque, and generally not very useful.
Where this is going for me is that I have fairly spotty cellphone reception in the two places I sit most often: my recording studio, and my office. However, I have great Internet coverage there. So, one of my coworkers pointed me to an app called GrooVe IP, a Jingle client for Android. It has a few rough edges, but it works well enough. However, it doesn't work too well if you have Google Voice set to forward to both your cellphone and your Jingle client, because both of them ring and the phone gets confused. Fortunately, GrooVe also makes GrooVe Forwarder, which you can use to turn the cellphone forwarding on and off based on GrooVe IP's availability. So, that works pretty okay.
I also decided for various reasons that it'd be nice to have a landline going through Google Voice, which is possible because of the OBi110, which will connect to Google Voice accounts, and also provides its own call routing mesh (which, as it turns out, sucks horribly). Unfortunately, it connects to Google Voice via Jingle. Which only supports a single endpoint at any given time. And you have no control over whether the OBi box or GrooVe IP gets priority.
So right now my choices are:
- Use the OBi exclusively at home, and my work phone number at work, and just not use GrooVe IP at all (and be stuck with suboptimal but available devices)
- Use GrooVe IP + GrooVe Forwarder on my cellphone, and return (or write off) the OBi and cordless phone I got to work with it (I was originally just going to use my AE90 with it, but I'm not sure the OBi can produce enough voltage to trigger the ringer, and anyway it turns out the OBi requires a touch-tone phone for initial setup — and of course pulse dialing won't work with it, not that I expected/needed it to)
- Sign up for a VoIP service, connect the OBi (which also supports SIP) to that, and pay an extra $7+/month for the ability to have a backup phone at home (and add it as a Google Voice POTS endpoint)
Hope really hard that Google comes to their senses and adds actual SIP support to Google Voice and then have everything Just Work (ha ha who am I kidding that'll never happen, have you seen what they've done to IMAP and NNTP?)
- Sign up for actual POTS service, use the OBi in its intended capacity as a proprietary-calls-to-POTS termination device (which in turn allows me to roll my own limited version of Google Voice, essentially), be sure that my AE90 will work, and pay $14+/month for what just amounts to 911 access
Right now I'm mostly leaning towards option 2, because it works (mostly) and isn't terrible (mostly).