Mittwoch, 16. September 2009

Free VoIP calls with sipgate on iPhone using XSPhone

Today nothing developerish (sorry to all you frequent readers out there), but something not minor interesting. Yet, only for all of you out there being in possession of an iPhone or iPod touch (2nd generation).

On my search throughout the Apple App Store for neat applications I might miss, I came across a very simple (but nonetheless interesting) free application, which is called XSPhone.
XSPhone is a phone application officially designed for use with the dutch ISP XS4ALL, but implements the standard Session Initiation Protocol (better known as SIP) and is (according to XS4ALL) [...] suitable for use with XS4ALL’s Talk subscription, but also for other VoIP providers that use the SIP protocol [...].

I personally use sipgate, which is popular in Germany, but also is available in the U.S.. So I thought I should give XSPhone a try with sipgate. And, behold, it works! Even incoming calls are possible.
Due to the restrictions for calling apps on the iPhone, everything in this article only works over a WiFi connection, not with a mobile internet connection, though.
So let's get this up and working.
First, install the app (if you didn't already). You can either search for "XSPhone" or click the App Store link provided above.
Then, let's get your VoIP credentials.
For sipgate you can find them in your settings after logging into your sipgate account.
Sorry, screenshots are in german, too lazy to search if I can switch to english ;-)
Within your settings page, you should see a screen with two grey boxes, one of which reads "Account data":

and the other one "Server data":

Now go to your XSPhone settings (you can find them in the iPhone settings menu at the bottom, where the settings of any installed app can be configured) and enter the gathered credentials.
  • Number 1 is your user name (corresponds to your sipgate SIP-ID).
  • Number 2 is your password (corresponds to your SIP password).
  • Number 3 is the VoIP server to register to (this is in my case).
  • Leave the voicemail number empty (I couldn't get it working correctly with sipgate, it might work with other providers, though).
  • Check the experimental option "Allow incoming calls" - at least with sipgate it works. The app needs to be running to accept incoming calls, certainly (Doh! :-).
After you configured the app, you can fire it up. If everything was configured correctly, you should see a screen which looks like this:
In case of sipgate you can either try calling the test number (which is 10000), the echo service (which is 10005) or your mailbox (which is 50000). All of those numbers are free of charge when calling over sipgate.
Unfortunately the mailbox button does not work correctly, but you can add an entry for your sipgate voicemail to your address book and add it to the "Favorites" tab from XSPhone. Calling this favorite works fine (I wonder what difference using the mailbox button makes).
That's it, you are all set for VoIP calling (and being called) over sipgate.
There are some drawbacks, however, I need to tell you about this solution:
  • You can only be called if the app is open.
  • XSPhone only supports one single VoIP registrar at any time.
  • XSPhone does not look as nice as some iPhone applications do (there is some ugly background picture I did not dare to make a screenshot of, when you are calling someone) - although all the other VoIP apps currently in the App Store are also not exactly beautiful either, and at least, this one is free of charge!
  • No SIP-finetuning with proxy, STUN server, etc.
Apart from that: yep, that is a cool freebie!
I'd love to hear about your experience with XSPhone and your ISP (if you got it working, please include a short settings description for all the others out there) in the comments!

Update (2009-09-16): as of now there is an application from sipgate available within the App Store (search for "sipgate") - currently only working with sipgate team edition - in some weeks a version for the other sipgate plans should be available.