Google

31st December
2010
written by feicipet

I found out that GTalk’s “Call Phone” function does not work in Thailand. When you load up the GMail UI, you’ll find that the Call Phone entry in your GTalk contact list has disappeared. Why so, I really can’t say.

The easiest way is probably to go through an external proxy or use TOR with an exit node in a country where the call function is allowed. But this usually means slower transfer rates, which may not be good for a real-time voice function.

But what you may not know is that Google only checks the origin country when you first load up the GMail interface. It will then enable the Call Phone function and as long as you keep that window open, you can basically make calls even if you turn off the proxy or TOR.

So essentially, the steps are to:

  1. Connect to a US proxy or connect to TOR and point your browser to the local polipo proxy
  2. Load up GMail and ascertain that the Call Phone function can be seen
  3. Click on the Call Phone button and make sure you can see the dialing pad
  4. Disable the proxy settings in your browser and turn off TOR
  5. Make calls as you would like
2nd July
2010
written by feicipet

This is just my record of how I migrated from a stock rooted installation of FRF85B on my Nexus One to CyanogenMod 6 Alpha 1 which was just released to the wild a couple of hours ago. CyanogenMod is an independent 3rd party effort by a group of volunteers to produce an enhanced Android ROM that mirrors the Android Open Source Project (AOSP) relatively faithfully.

NOTE: As the “alpha” tag indicates, this is not production quality stuff yet. I don’t even know how well my phone is working now after I installed CM6, so I’m hesitating to even use the work “upgrade” and instead I just say “migrate”. Read the release notes in CyanogenMod’s forums carefully and use your discretion.

What I started out with:

  1. A Nexus One phone.
  2. A working stock rooted Froyo installation.
  3. A bunch of user level applications, both from Market and self-installed APKs.
  4. Donate version of Titanium Backup.
  5. ClockWorkMod Recovery Image (but I’m pretty sure AmonRa would work just as well)
  6. ADW Launcher installed from Market.
  7. SMS Backup & Restore installed from Market.

My steps:

  1. Downloaded the CM6 binary and Google Apps zip distro from the CyanogenMod release page.
  2. Made use of the opportunity to remove some unused apps to reduce complexity and risk.
  3. Moved all apps installed on SD card back to the phone. I just didn’t want to risk having problems recovering those applications after the migration. To do this, just go to Settings -> Applications -> Manage Applications -> On SD Card and go into each application listed there and move them back to the phone.
  4. Went into ADWSettings and backup launcher configurations to SD card. After that, I uninstalled ADW Launcher. This is because CM6 comes with its own mix of ADW Launcher and I did not want Froyo’s automatic restoration of apps to clash with ADW Launcher.
  5. Ran Titanium Backup and backed up all user apps and data.
  6. Backed up all SMS using SMS Backup & Restore.
  7. Selectively backed up certain system apps, namely “Android Keyboard” for me, for my custom dictionary. You really have to use your discretion here. You can try to backup all system apps, but I don’t know how well that’ll work.
  8. Rebooted into ClockWorkMod Recovery Image.
  9. Did a full nandroid backup.
  10. Installed CM6 and Google Apps zip distro.
  11. Did a full wipe.
  12. Rebooted the phone.
  13. Did Google account sign-in.
  14. Waited for all apps that I previously downloaded from Market to be restored automatically. There will be a notification at the end of this process.
  15. Fired up Titanium Backup and restored all user data (not app) for applications that are downloaded from Market.
  16. Restored app and data for applications not downloaded from Market (self installed APKs).
  17. Went to Settings -> ADWLauncher and restored ADWLauncher settings from SD card. This didn’t work for widgets; I had to re-add widgets after this but my app icons on the home screen and other settings were generally restored properly.
  18. Restored all SMS using SMS Backup & Restore.

Done. As of right now, my Nexus One seems to be in working condition. Not sure what bugs will turn up but digging up bugs is the main purpose of this exercise, isn’t it? :)

29th June
2010
written by feicipet

This was actually a comment to a Robert Scoble Buzz thread discussing pros and cons of Androids and iPhones. The comment got way too long and well, it looked like it fits being a blog entry.

========================

My perspective on using the Android isn’t really so much of a comparison, mainly because I’ve never actually owned an iPhone before. But I still like, even love, the HTC G1/Dream that I first bought and the Nexus One that replaced it.

When I first got my G1, I thought it was the ugliest, nay, fugliest phone ever. But I chose it still because, being my first touchscreen phone, I wanted a physical QWERTY keyboard to help me ease into the new environment. Back then, Android didn’t even have a soft keyboard yet (Android 1.0). I used it and was happy with it for a while. Didn’t like some quirks, such as the limitation on only one GMail account to sync with and the fact that I had to flip out the keyboard to do the simplest of typing tasks.

The Cupcake (Android 1.5) came out and I got my soft keyboard. I found myself enjoying the keyboard very much but didn’t like the fact that Cupcake made my G1 (with its severe hardware limitations) run as slow as molasses. After reading around, I realized that 3rd parties were actually taking the Android Open Source Project (AOSP) source code and releasing their own home-brewed rooted releases. So I selected the most popular 3rd party (CyanogenMod), read up on a couple of tutorials, rooted the phone and installed CyanogenMod. And then the world started opening up.

Immediately off the bat, I got tethering and A2DP, plus CyanogenMod’s speed screamed on my G1. And we got our Donut (Android 1.6) upgrade earlier than any one else waiting for official OTA updates too. When Google Navigation was introduced, it was locked to everyone but those using it in USA, but some cool dude by the name of Brut hacked it into supporting the rest of the world. That was really nice and enabled me to enjoy the full benefits of Android without having to be in the states. But at the back of my head, I was always thinking “this is nice, but I wouldn’t recommend it to my non-techie friends; I really wouldn’t want to end up being their tech support for this”.

However, at the same time, there is one thing that I would point out as an Android, even at this time: the fact that an Android phone is a complete peer to the PC and not a slave to it in any way. The iPhone is a peer in most aspects, but for major work such as upgrading of the OS, I believe you still need hook it up to a PC with iTunes installed. Unfortunately, this is a no-go for me as I’m a Linux user and iTunes is not available for that platform. With Android, I download the update (whether OTA if you’re not rooted or as a zip file if you are) and flash it with no necessity for it to be hooked up to a PC whatsoever. My experience with Apple devices is limited to the iPod that I bought for my girlfriend, and for every OS update thus far, I’ve had to hook it up to iTunes.

Then, the Eclair (Android 2.0 and 2.1) devices came out. By that time, I felt comfortable enough with the soft keyboard so I ordered the Nexus One instead of the Motorola Milestone (the GSM version of the Droid). And when I got my Nexus One, that’s when something “magical” (as Jobs likes to put it) happened. I merely switched off my G1, switched on the Nexus One, signed in to my Google account and:

  1. My contacts were populated
  2. My mails were populated
  3. My calendar was populated
  4. All the applications I was using on my G1 were installed automatically

It took all of 5 minutes for the migration from one Android phone to another. No need for any hooking up to a PC, backup software or anything! Really, I could do this all day long. No matter what phone you’re using, you have to admit that this is really one heckuva cool feature.

Now that leads to one double-edged sword of using any Android phone: you need to buy into Google’s vision of the cloud if you’re going to derive the best of the platform. This means that you need to have a Google account, use their mail services, their calendar for your organizational work etc etc. I have a friend who insisted that his smartphone must sync from his MS Outlook and not from any server-side service. He got a Milestone and to date, he’s still complaining that the included software to sync to Outlook isn’t working very well. I sympathize, but I don’t think he should have gotten an Android phone in the first place. The desktop sync software was probably developed by Motorola themselves and I can hardly expect the manufacturer of a phone with a shelf life of less than 2 years to do a good job of it compared to the core developer of the OS whose aim is to make the best OS it can in the long run.

But Google just isn’t interested in making the phone a slave to the desktop. In their vision, the desktop and your phone are peers, and both of them are slaves to the cloud. Google’s cloud, to be specific. Now, whether you buy into that vision or not is a personal decision. I made mine.

Now, back to the Nexus One. By this time, I had found a community of Android users in Kuala Lumpur. And get this, over half of them are not particularly tech-inclined. Most of them just like playing their games (there isn’t many of them, but the size is growing), switching home screen launcher apps to see which fits their usage profile better, using it to increase their productivity and getting around town with Navigation.

Personally, I’m constantly watching out for the day when Android becomes full-featured enough to satisfy my needs without having to root the device. As l33t as I feel by having a rooted phone, I’m very conscious of its downsides (would you pass your rooted Android phone to a toddler to play around with? I did, and I had to restore the bloody phone after he managed to wipe out half my system apps). Froyo (Android 2.2) made a couple of long strides towards this end. I love the inbuilt tethering, and as soon as they sort out the installation of applications on the SD card, we’re really almost there.

And more importantly, I can do all this and enjoy using my Android phone without having to put down any iPhone user. You can enjoy your phone, I’m definitely loving mine.

Oh, and do note that I’m ignoring all carrier-related factors in my evaluation. I don’t live in the states, and the fact that stateside users have to factor in carrier concerns when choosing a phone is just an indictment of how screwed up your telco industry is and that’s unrelated to the phone. Over here in Malaysia and Singapore (and probably many other countries as well), we choose our phones and network separately. Telco contracts in exchange for subsidies are available, but mostly optional. Life is just so much better for it.

24th June
2010
written by feicipet

With Google Voice coming out of invite-only beta status, anybody can sign up for it (with a few notable caveats). I spent a couple of days attempting to sign up for it and made some notes from my efforts, in the hope that it’ll help any of y’all in Malaysia (and other countries outside of US) use it as well.

There are actually numerous tutorials and howtos giving tips on how to sign up for Google Voice from outside USA, but quite a few of them are outdated and most are lacking in details. Most of what I’m writing here is basically expanding on the information given in a help page in wifitalk.ca.

Essentially, when you sign up for Google Voice, Google will provide you with a USA phone number. However, this number can be best be described as a “virtual” phone number. It is not meant to replace your current phone number. When you sign up, you will need to provide a USA phone number which will be used as forwarding number. What this means is that when someone calls your Google Voice number, Google will route the call to your own phone number. It’s essential to understand this: your Google Voice phone number is virtually useless on its own. You still need an actual phone number for it to function. Honestly, Google’s help pages do a rather poor job of explaining this upfront so when Alfred and myself realized this, we couldn’t help but feel disappointed.

The steps to be taken are essentially the following:

  1. Get a USA proxy or setup TOR with exit nodes forced to USA IP addresses only. I won’t go into details about this here. Maybe I’ll put up a separate howto, but in the meantime, there should be plenty of search hits if you Google for it.
  2. Sign up a SIP account. I signed up for IPTel.
  3. Get a free phone number from IPKall, which will be routed to your IPTel SIP account.
  4. Set up your SIP phone with your IPTel signon information. Here, I’m using Android’s SIPDroid.
  5. Set up and verify your Google Voice account with your IPKall phone number.

Sign up for a IPTel SIP account

  1. Point your browser to the IPTel registration page.
  2. Fill up the form. Most of the fields should be easy to understand except for “phone”. I felt a bit confused by this but turned out that they just want to collect your phone number. Just key in any phone number that belongs to you. I have yet to be contacted by them at my number so far.
  3. Submit the form and you should have your SIP account.

Sign up for a IPKall phone number

  1. Make sure that your USA proxy or TOR is configured correctly when you do this. You won’t even be able to open the registration page otherwise.
  2. Visit the IPKall registration page.
  3. Choose the account type “SIP”.
  4. Select an area code. All of them are from Washington State so it should not matter much to us non-Americans which one we choose.
  5. Key in your IPTel user ID in the “SIP Phone Number” field. You must not key in the “@iptel.org” postfix.
  6. Key in “sip.iptel.org” in the “SIP Proxy” field.
  7. Key in your email address.
  8. Key in a password for your IPKall account.
  9. Key in the Captcha code and submit the form.
  10. You’ll get an email with your phone number in a matter of minutes. Note down this number.

Set up SIPDroid with your IPTel account

  1. On your Android phone, go to Market and install SIPDroid. If you’re using a Barcode Scanner, you can get the QR code here.
  2. Set up SIPDroid and go to Settings -> SIP Account Settings.
  3. Key in your IPTel user ID without the “@iptel.org” postfix in the “Authorization Username” field.
  4. Key in your password.
  5. Key in “iptel.org” in the “Server” field.
  6. Leave the rest of the fields as they are.
  7. If your Android phone is on WiFi, SIPDroid should attempt to connect immediately. You will know that you are connected when you see a green dot in your Android notification status bar.
  8. If you are on 3G or Edge, go to Settings -> Call Options and check on the “Use 3G” and “Use EDGE” boxes accordingly. You should see the green dot then. If you see a red dot, it means that there was a problem and you should check the status error.
  9. Once this is done, you should be able to receive calls to your IPKall number on your Android phone (as long as SIPDroid is signed on). Try this out by calling your US number from another phone. If you hear your phone ringing, you’re set.

Register and verify your IPKall number in Google Voice

  1. Fire up your browser and sign on to Google Voice using your Google account. Once again, your USA proxy or TOR must be active.
  2. During your first login, Google Voice will ask you to select a GV phone number. Key in an area code and Google will display a selection of numbers available. Choose one that you like and proceed.
  3. Google Voice will then prompt you for a forwarding number. Key in your IPKall number here.
  4. Now here’s where things got a bit sticky for me. IPKall numbers are recycled if they are inactive for 30 days. The IPKall number that you get may very well be a recycled number. If the IPKall number that you got has previously been registered with Google Voice, Google Voice will not allow you to re-use that number. When that happens, you have nothing else to do but to login to IPKall using your phone number and password and clicking on the Cancel link and then registering another number with the same details. Then you will need to register your new phone number with Google Voice. Repeat until Google Voice accepts your number. I got mine through on the 2nd attempt.
  5. Google Voice will then inform you that you need to verify the phone number. You will be give a 2 digit number. Click on the “Call My Phone” button and your SIPDroid should ring. Answer the call and pull out the number pad to key in the 2 digit verification number. Once your phone has been verified, your registration will be complete.

So, was it worth it?

Up till now, I’ve yet to really use the service. I’ll post up more findings as I learn more, but right now, I fail to see how Google Voice beats Skype.

The wifitalk article provides other methods of getting your phone number. But the other methods such as using SkypeIn needs money and given the US$’s relatively strong value compared to Malaysia’s local currency, it may not come cheap.

It would be nice if we can discard our original phone numbers once we sign up for Google Voice but this is not so. However, Google had recently bought up the Gizmo5 SIP service and it’s quite possible that it will be added in Google Voice’s feature list. That may serve to relieve ourselves of the need to signup for a separate SIP account.

Lastly, it would be great if Google Voice were to allow forwarding to international phone numbers. I’m in no position to say how easy or hard this is, but it certainly sounds easier than for Google to start giving out Malaysian phone numbers.