News:

On Tuesday September 6th the forum will be down for maintenance from 9:30 PM to 11:59 PM PDT

Main Menu

Android smartphone as client phone for Google Voice

Started by unoriginal, March 31, 2012, 08:39:07 PM

Previous topic - Next topic

unoriginal

I have, in addition to the analog dumbphone hooked up to my Obi100's phone hook, a deactivated (no cell service) Motorola Droid running Gingerbread 2.3.7. Being a smart phone, this Droid can do SIP calling over WIFI. The bright idea is to associate this smartphone as a second handset with my Google Voice number, which currently works flawlessly with the dumbphone, incoming and outgoing.

The options others have so-far discussed on this forum and elsewhere, as I understand them:


  • Use Google's Google Voice app on your phone stupid!

    • Problem: Sure, the Google Voice app can make calls from your Google Voice account, but does so over your cell link, in order to appease our benevolent wireless-carrier overlords. I have no cell service and can use VOIP/WIFI calling only.

  • Use some sort of old-fashioned Sipdroid setup to get the Droid working directly with GV on VOIP, and/or kick incoming calls to Sipdroid's PBX's along with the ph (phone hook).

    • Problem: Sipdroid interfaces with GV the same way the Obi100 does — the Chat interface — and Chat only supports one external device. Now the smartphone and the Obi100 will fight each other to control the number. So, depending on who is top dog at the moment, incoming and/or outgoing on either the Droid or the dumbphone will be borked.
    • http://www.obitalk.com/forum/index.php?topic=373.0

  • Use Obihai's OBION app for Android, and set up the Obi100 to fork incoming calls to both the softphone and the ph.

  • Use one SPx for handling SIP URI calls; have it kick outgoing calls to the other SPx with Google Voice. Fork incoming calls on the Google Voice SPx to the local SIP URI of the Droid and the ph.

  • Sign up for a free incoming SIP account with DID number at sipgate, set up that VOIP account on the Droid so as to register for and receive incoming SIP calls. Have Google Voice itself fork incoming calls to both the Chat interface and the sipgate DID number. Setup the Obi100 to accept SIP URI calls on one SPx and kick over to the Google Voice SPx for outgoing, with a matching VOIP account on the Droid set as default for outgoing calls.

    • Problem: Widespread reports of wildly fluctuating call latency; generally unreliable service on the part of Sipgate. Sipgate disables new free account registration for long stretches of time (like now, apparently) for various reasons. Possibly others?

  • Sign up for a free SIP address (with no DID number) at many places, in this case getonsip.com, (http://www.obitalk.com/forum/index.php?topic=857.0) and set up that VOIP account on the Droid to register for incoming SIP calls. Set up one SPx on the Obi100 to handle outgoing SIP URI calls, and make a default VOIP account on the Droid to use that. Set up the inbound call route in the Google Voice SPx to fork to the Droid's SIP address THROUGH the other, outgoing SIP SPx, along with the ph.

    • Problem: Incoming Caller ID is borked. Calls come in on the Droid as username@127.0.0.1, those numbers representing the AuthUserName of the outgoing SIP SPx at the default domain of the Obi100 (i.e. the loopbacked proxy server). Enabling SpoofCallerID simply changes AuthUserName to the incoming number without affecting the proxy server address. There appears to be no way to force the chain of Somebody's Phone -> Google Voice SPx -> SIP SPx -> GetOnSip -> Droid Smartphone to display Somebody's Phone number instead of a SIP URI, malformed or otherwise. Therefore, while incoming technically works, you can't simply return calls to DIDs, and all the contact list stuff is useless.

Okay, that's six half-assed solutions, as best as I can understand them. Does anyone have any more practical experience with any of them, specifically as pertaining to an Android smartphone, and even more specifically pertaining to making an Android smartphone actually work well? It would sure be nice to get one of these options working with its whole ass because having the ability to tie old and new smartphones into the Obi100 is much more attractive than buying a separate DECT system to do the work.

Stewart

I use a free PBXes account to interface IP phones to the OBi.  SP2 (with X_SpoofCallerID on) registers as a sub-PBX; the IP phones register as normal extensions.  The OBi sends inbound calls to a PBXes Ring Group, which PBXes forks to the phones.  On outbound, PBXes routes the calls to the OBi trunk and the OBi routes them to my pseudo-landline, in your case, you'd send them to GV.

If you can't dedicate an SPx for the purpose, get a free Callcentric account.  Register your Droid to it.  Confirm, e.g. by calling it via a SIPBroker PSTN number, that incoming works and caller ID is correctly displayed.  Have OBi fork incoming calls to SP2(1777xxxxxxx@in.callcentric.com).  For outgoing, use a different account on the Droid (there are several options).

unoriginal

#2
Quote from: Stewart on April 01, 2012, 01:07:43 AMIf you can't dedicate an SPx for the purpose, get a free Callcentric account.  Register your Droid to it.  Confirm, e.g. by calling it via a SIPBroker PSTN number, that incoming works and caller ID is correctly displayed.  Have OBi fork incoming calls to SP2(1777xxxxxxx@in.callcentric.com).  For outgoing, use a different account on the Droid (there are several options).

Thanks for the quick help. I have a couple questions about your second alternative. First, in general, have you run this solution before, like your first one? More specifically:


  • If OBi is forking to a SIP URI for the Droid to receive calls on, won't that result in calls coming into the Droid with Caller ID in some sort of SIP URI format, as in my option 6? Or is Callcentric smarter at stripping nonsense domains out than OnSip is?
  • If I'm not using an SPx account on the OBi to handle outgoing SIP URIs and funnel it through my Google Voice SPx, whatever "different account" I set up on the Droid is going to send out calls on a different number, yes? Nevermind, I realized you were talking about a GV/SP1 + SIP-self-host/SP2 situation leaving no room for the PBX/SP2.

Stewart

A quick test with CSipSimple on my Samsung Captivate, registered to Callcentric, showed a correct (spoofed) caller ID when called from a Linksys ATA speed dial pointed at in.callcentric.com.  I don't want to test this on the OBi; it's far away and loss of control would mean asking a friend to reset it.

unoriginal

Quote from: Stewart on April 01, 2012, 10:53:01 AM
A quick test with CSipSimple on my Samsung Captivate, registered to Callcentric, showed a correct (spoofed) caller ID when called from a Linksys ATA speed dial pointed at in.callcentric.com.  I don't want to test this on the OBi; it's far away and loss of control would mean asking a friend to reset it.

After playing with this for two nights, I just can't make this work.

First, as noted elsewhere (http://www.obitalk.com/forum/index.php?topic=2711.0), Callcentric (seemingly recently) requires stupidly frequent re-registration in order for whatever phone is associated with it to work, otherwise calls disappear into the ether. On the OBi, this necessitates certain workarounds involving Keep-Alive, Secondary Registration and Proxy Redundancy to keep the registration from conking out (http://www.obitalk.com/forum/index.php?topic=2840.0). My Droid, lacking many of the twiddly knobs found on the OBi, and having a battery to conserve besides, won't keep up with the deluge of REGISTER requests CallCentric sends its way. So even if the rest worked... it wouldn't work.

Second, during the few minutes I had CallCentric working on the Droid before registration was lost, calls forked to 1777xxxxxxx@in.callcentric.com from the 127.0.0.1 SIP handler on the OBi gave me a CallerID of INCOMING-NUMBER@127.0.0.1, just like with GetOnSip.

Third, when I tore out the OBi's SIP handler and put the CallCentric account in its SPx, and put GetOnSip back on the Droid, the INCOMING -> Google Voice -> CallCentric -> GetOnSip chain gave me INCOMING-NUMBER@callcentric.com on the Droid. Nothing I couldn't have done by setting UserAgentDomain myself.

So it would appear that no matter what, INCOMING -> Google Voice -> SIP FORK -> SIP MOUTH will wind up with either FORK'S user@domain or INCOMING's number@FORK'S domain, depending on whether or not CallerID Spoofing is set on SIP FORK.

There has got to be a setting on the OBi for this crap.

unoriginal

Quote from: Stewart on April 01, 2012, 01:07:43 AM
I use a free PBXes account to interface IP phones to the OBi.  SP2 (with X_SpoofCallerID on) registers as a sub-PBX; the IP phones register as normal extensions.  The OBi sends inbound calls to a PBXes Ring Group, which PBXes forks to the phones.  On outbound, PBXes routes the calls to the OBi trunk and the OBi routes them to my pseudo-landline, in your case, you'd send them to GV.

Finally got around to trying this. Predictably, calls now come into the Droid with the format <12345678901>@pbxes.org, where <12345678901> is the 11-digit number of the original caller.

So, to review, with X_SpoofCallerID on:


  • With SP2 set as the 127.0.0.1 SIP handler, with GetOnSip.com relaying to the Droid, calls come into the Droid as <12345678901>@127.0.0.1.
  • With SP2 set as the 127.0.0.1 SIP handler, with CallCentric.com relaying to the Droid, calls, if they come into the Droid at all, come in as <12345678901>@127.0.0.1
  • With SP2 set to a free callcentric account, with GetOnSip.com relaying to the Droid, calls come into the Droid as <12345678901>@in.callcentric.com.
  • With SP2 set as a sub-pbx of an account at PBXes.com/PBXes.org/PBXes.xxx or whatever, and the Droid set as an extension, calls come into the Droid as <12345678901>@pbxes.org.


unoriginal

Upon further review, it would seem the Obitalk ITSP web provisioning wasn't fully propagating to my device. Wonderful!

With the PBXes stuff configured on the unit directly, I now get <USERNAME-of-SUBPBX>@<IP-ADDRESS-of-SOME-PBXES.COM-SERVER> coming into the Droid, whether SpoofCallerID is on or not. Even better!

Sadly Google Voice does not know how to return a call to testaccount@173.95.243.43. Apparently that's not a valid number. Hogwash!

Stewart

Get a free New York Callcentric DID for the account to which your Android phone is registered.  Set up GV to forward your calls there (turn off forking in the OBi).  You should now see correct caller ID and with luck, you'll even get the caller's name.  Use a different account on the Droid for making outbound calls through the OBi.

unoriginal

Quote from: Stewart on June 23, 2012, 03:22:30 AM
Get a free New York Callcentric DID for the account to which your Android phone is registered.  Set up GV to forward your calls there (turn off forking in the OBi).  You should now see correct caller ID and with luck, you'll even get the caller's name.  Use a different account on the Droid for making outbound calls through the OBi.

I want to specifically thank you for your repeated attempts to help solve this problem, and I'm sure that this solution, similar to my original #5 option, would work, or come near enough to working. And I've seen elsewhere that you've been trying to get CSipSimple working on unregistered LAN SIP calls (i.e. from a VOIP-enabled WiFi phone to an Obihai unit), which is a large part of what I've been trying to do here. So again thank you for helping fight the good fight.

But I think I've got this thing working now, without having to rely on Callcentric (or SipGate), which seem to have problems on smartphones due to the DNS resolving etc. etc. See next post.