I was looking into how android calls using google voice, and it appears that they send a request over a data connection to google, and then dial 347-234-5001. This would be a much cleaner way to call, but it doesn't look like this is an exposed api. I might tray sniffing packets to see if I can make any sense of it.
Does anyone have any clue on how this works or anything?
I am having trouble getting packet sniffing to work... I have tried redirecting traffic from my wireless router to my desktop, but it doesn't seem to be working. Has anyone else had any luck?
The traffic does not seem to be http, so my guess is that it is https...
Edit: I am getting packet captures now, and it definitely is https traffic... This is going to make this a lot more difficult. My phone is actually dialing 916-538-0100
I've not got to much experience with that sort of thing. All I know is at times when my coworkers are debugging our network devices they are using a tool called wireshark.
Unless we can somehow use a man in the middle attack to figure out what android is doing, the only way to get this to work is to get google to release the api for it.
I posted a message on google's forums. We'll see if it gets us anywhere. Feel free to post in the thread to try and get more attention for it:
Wireshark is what I had thought of as well, but unfortunately all gv traffic goes over https. I don't want to waste time trying to hack that. What I thought of instead was to try to understand the html and javascript for the html5 page served up for the iphone. I did this by switching my firefox UA to iphone then saving and pretty printing the javascript. At that point I realized that I don't know enough javascript to continue.
It would be great if the js gurus here can help out.
PS: the code fragment to look for in the js is "tel:" - thats how the js tells the iphone to dial out to a number.
In response to another comment about an API or the lack of it:
As of this moment, all my attempts to contact the Google Voice people have resulted in stonewalling - which to me means they're up to something.
I am guessing here, but I think the API will come at about the same time they decide to publicly make gizmo available again. Since April 1st is the traditional "release" date of many google products, I fear it might only be next year.
Wireshark is what I had thought of as well, but unfortunately all gv traffic goes over https. I don't want to waste time trying to hack that. What I thought of instead was to try to understand the html and javascript for the html5 page served up for the iphone. I did this by switching my firefox UA to iphone then saving and pretty printing the javascript. At that point I realized that I don't know enough javascript to continue.
It would be great if the js gurus here can help out.
PS: the code fragment to look for in the js is "tel:" - thats how the js tells the iphone to dial out to a number.
I take it the iphone html5 page automatically dials out using a similar format, instead of a callback?
I take it the iphone html5 page automatically dials out using a similar format, instead of a callback?
When I tried on a freind's iphone, it dialed out. There was no dialback.
This is what I think it does:
It sends a data request to gv which returns it a number to call.
This number is then appended to a "tel:" string.
The js then "opens" that url, and that makes the iphone dial the number given by the gv servers, because iphone safari knows how to handle a tel url.
Otoh, firefox on linux does not know how to handle a tel url and complains about it.
After reading the last several comments, it sounds interesting and would be cool to get working. However, am I missing something with it?
I would normally use TOR/GV to make a "free" call. In other words, TOR accesses a web page and initiates the call, which then rings my Gizmo5 # (that has free incoming calls), once connected to me it places the call to the other person, thereby giving me a "free" call.
Correct me if I'm wrong, but with Android and IPhone, if they send data, then dial a number, it would use minutes from my calling plan, correct? I guess to me, most of the point of TOR (and DialCentral) is to get "free" calls and sms on my phone. If it ends up dialing a number (which may work better), there is no real advantage to using this (for calls) over just using my phone calling plan.
If you do get this working, I'd ask that at least the option is there for the current setup, "call back".
After reading the last several comments, it sounds interesting and would be cool to get working. However, am I missing something with it?
I would normally use TOR/GV to make a "free" call. In other words, TOR accesses a web page and initiates the call, which then rings my Gizmo5 # (that has free incoming calls), once connected to me it places the call to the other person, thereby giving me a "free" call.
Correct me if I'm wrong, but with Android and IPhone, if they send data, then dial a number, it would use minutes from my calling plan, correct? I guess to me, most of the point of TOR (and DialCentral) is to get "free" calls and sms on my phone. If it ends up dialing a number (which may work better), there is no real advantage to using this (for calls) over just using my phone calling plan.
If you do get this working, I'd ask that at least the option is there for the current setup, "call back".
I rely on the free calls so that shouldn't go away. The main use case is I've had brought up is they want to use their cell but want to make sure it appears from their GV account. Not using the callback might be simpler.