tags:

views:

46

answers:

1

As far as I understand, the only way to place a call from an app is using the tel:// URL scheme, which launches the native phone app. But the Truphone app available on the App Store can place VOIP call even when there is no WIFI available. They say they do it by making a GSM call to their server and routing the VOIP packets over the internet from there.

Rerference: http://blog.truphone.com/2008/12/truphone-on-the-iphone-now-works-without-wi-fi.html

How can I do something similar in my app?

+1  A: 

As far as the phone's cell hardware is concerned this isn't a call. Its just a 2 way data stream. They are activating the mic and encoding its input and sending that stream to their server, while they receive another stream and play it on the speaker. Their servers then decode the streams and then connect it to a normal phone system so you can talk to someone who doesn't use their service.

Do you want to allow users to contact people outside your userbase? If so that's going to require you to set up a server to decode your streams and then find a VOIP provider that has an API so your server can stream to them. This is possible but it costs.

If you only want user to user this can be done for free but its almost identical to the previous option, just take out the VOIP provider.

jamone
Are you saying that they open some kind of GSM socket and transmitting the voice data? Also, they say that the user WILL be charged for making the call through GSM. So I feel the hardware must be considering it a call. Please note that I haven't personally used the application. Let me actually verify how it looks like when used and come back.
Plumenator
It is most defiantly not considered a "call" by the phone's OS/hardware. There aren't any exposed APIs that allow an app to make a "call" without leaving the app. Also their app works on the iPad and iPod touch which defiantly don't support cell calls. IE it will not be using your voice minutes from your wireless provider. To your wireless provider it is just like any other data that your phone is sending/receiving. So you may pay for its usage if you pay for x amount of data and the VOIP causes you to exceed that.
jamone
To any of the VOIP apps on the iPhone OS they don't care about what type of network you are on: WiFi, EDGE, or 3G. The app only cares if an internet connection is possible and if so will open a network connection to Truphone's servers. The only reason there have been previous limits to using VOIP on EDGE/3G is because the cell providers didn't want people using their phones for voice without using up voice minutes so they got Apple to ban VOIP apps that use 3G.
jamone