Tuesday, May 31, 2011

Enabling Wi-Fi calling on an unlocked Blackberry

Further to my last post on setting up a SIP, my next project was to get Wi-Fi calling enabled on my old AT&T Blackberry for. Wi-Fi calling, or Generic Access Network (GAN), or its commercial name Unlicensed Mobile Access (UMA) is a technology by which mobile phones can setup a secure network to the carrier’s wireless gateway using a wireless LAN. The technology allows the phones to seamlessly switch between the local LAN to the carrier network as the user moves. Beyond that, I see two main advantages of using UMA:

a. Wi-Fi calling allows carriers with bad coverage in certain areas to allow their customers to make calls over their home Wi-Fi network which leads to better reception.

b. Calls made over Wi-Fi usually do not count towards the customer’s minutes.

Not all carriers provide UMA calling (i.e. AT&T in the US) and they need additional infrastructure on their end to support this. Rogers Wireless in Canada provides Wi-Fi calling on many Blackberry models and has a tiered pricing for long distance calling, early evening etc. on UMA.

Now, the main issue that I faced was getting the AT&T 9700 Blackberry on Rogers. I had to first get the phone unlocked and then add Wi-Fi calling on the phone from Rogers. The second step, however, did not work as I was bringing in a non-network phone. To my surprise, the Rogers tech support person was quite helpful and gave me a few hints to get the phone working which I will outline below. I also pieced together a lot from the forums on the net which I’m linking to.

The first step is to download and install the Blackberry OS for your carrier. In order for the OS to be installed, the vendor.xml file has to be removed; otherwise the installer will not recognize your phone. Once the file is deleted, run Loader.exe from the same directory to update your Blackberry OS.

The second step is to get the carrier certificate installed on the Blackberry. This is required for the device to securely authenticate with the carrier. I found the Rogers certificate here. Google to find yours.

I’m not sure if this next step is required, but it’s a good idea to get the APN (TCP/IP) settings correct as you’ll need it to access the Internet from your phone. This can be changed under Device > Advanced System Settings on your Blackberry. You can find the APN settings for Rogers here.

The next few steps will actually setup GAN on your Blackberry. This is a bit tricky so be sure of this or you can possible brick the Blackberry and void your warranty. The idea is to unlock the Engineering Screens or “eScreens” to allow setting up UMA. To do so, press Alt+Shift+H or Alt+EACE on your Blackberry. If your Blackberry is still branded to a carrier, it will only show the “Help Me!” screen. Staying on this screen, go to bbtricks.com to enter the details as shown and get the eScreens unlock code. If this website is not working (RIM lawsuit in 3 … 2 … 1 …), Google is your friend.

Once the eScreens is unlocked, the next step is to setup GAN. Staying on the eScreens, go to Mobile Network Engineering Screens > Utilities > Session Manager > > UMA Options > > New and enter your carrier’s UMA details.

Once that’s done, the last step is to go to eScreens > Multi-WAF Engineering Screens > Radio Control Engineering Screen > 3GPP and set 3GPP_GERAN -> Disabled, 3GPP_UTRAN -> Disabled, 3GPP_GAN -> Enabled and GAN Preference -> GAN. Now click “Set RAT Configuration” and voila! – UMA should be running.

Happy Wi-Fi calling!

Friday, May 27, 2011

Adventures in VOIP / SIP

Having recently moved to Canada from the US, I was surprised to see the implementation of long distance and roaming charges by cell phone providers even though essentially the two major providers (Rogers and Bell) exist throughout the country. I’ll rant more on the lack of competition on prices later. However, there aren't too many alternatives to the major carriers. Skype does not provide Canadian line numbers and Vonage Canada is twice as expensive and is said to be twice as horrible as the service in the US.

My other need was to have a simple way for friends and family in the US to call me in Canada without having them incur long distance charges on their cellphone. After some intense Googling and putting together the pieces, I have a solution that is currently being beta & quality tested by my wife.

Before we get started on the setup lets meet the players:

Google Voice

Many of you use and love this service. Essentially Google Voice allows you to provide everyone with a single point of contact – your Google Voice number. You can then setup GV to forward calls to your home phone, cell phone or Google Talk. You can then setup voicemail, get it transcribed and have missed call information sent to your Gmail. The only caveat is that it only allows forwarding to US numbers.


Stanacard touts itself as the “Calling Card of the Next Generation”. In addition to providing standard international calling card services, it also provides SIP services for calling using softphones. Users can also register their phones Stanacard’s website and assign a local phone to an international number which can then be used for pinless dialing. The registered numbers are also assigned a SIP URI in the format number@sip.stanacard.com.


IPKall is a free service which gives users a free Washington state phone number and lets them forward this number to any registered SIP URI. The only catch with using this is that if the number is not used for more than 30 days, it will get recycled.

When the SIP URI is called, it will ring any softphone that is registered with server.

Let’s see how these can now be daisy chained together to get cheap IP telephony. My main requirement was to have friends and family in the US call me on my cell phone without them having to incur long distance charges. So I registered my Google Voice number on Stanacard and setup a local US number which would forward the calls to my cell phone in Canada.

My second requirement was to setup a home phone where I could receive calls and also make calls without incurring long distance charges. To do this, I setup registered my Stanacard SIP URI with IPKall so that it rings on both my home phone and my wife’s Android softphone.

I can take this setup one step further to have my wife’s Google Voice number forward to IPKall and then receive calls on my Home phone. Now both of us can keep our single point of contact as our respective Google Voice numbers.

Note that all the components (Google Voice, Stanacard, IPKall etc.) are very modular and as shown above I can easily take one service out and replace it with another without the person calling us knowing of these changes.

One last point – price wise, Google Voice and IPKall provide free call forwarding services. The only component I pay for is Stanacard where I pay approximately 2¢ per minute for incoming and outgoing calls. It definitely beats having to pay $30 - $50 per month for home phone services by Rogers.

That’s it. Let me know your thoughts on this.