Deconstructing The Skype Mobile Client for J2ME
Various people today on Jaiku and Twitter pointed me at the mobile Skype client for J2ME handsets. Several Nokia, Motorola, Samsung, and SonyEricsson phones are supported. I spent some time playing with it, looking at network traces, and doing some other snooping around to see what it does.
This isn’t a native Skype client. Not even a little tiny bit. While there are plenty of tell-tale signs that this client isn’t native Skype, the most obvious being voice calls go over the PSTN network, the most telling sign is when you put the Skype Mobile client through a packet analyzer.
Unlike my Mac client, which was sending traffic directly to my two friends I was chatting with at the time, all traffic to and from my mobile phone was a single TCP connection to a third, unrelated IP address. The IP address pointed to a Cogent Data Center that was in an IP range that belonged to Skype.
Is this a bad thing? Probably not. The good news is that the client does do some encryption of the traffic, i.e. IM traffic isn’t flying around in the clear. How strong that encryption is is beyond my capabilities.
Yes, the client does IM. On my Nokia handsets, it’s not perfect. When you type in IM, your screen is completely obscured by the text window that pops up. Lots of J2ME apps do that. It’s annoying. However, it seems to support multiple IM sessions, accepting contact requests, and most of the other basic features of Skype.
The “strange” part of this is making actual calls, be they to Skype contacts or to actual PSTN numbers. When you click on a person to call, you can call them over Skype or one of their telephone numbers.
The actual call occurs over the PSTN channel. Instead of calling the person’s normal phone number, you are redirected through a Skype PSTN gateway of some sort. In my case, I was being told to call a number in +1 813-527-xxxx. I tried a couple of contacts and each one seems to have been assigned a different number. I will try dialing these numbers later to see what happens.
What’s nice about these calls is that the calls take into account whatever your Skype calling plan is. So, for example, if I use Skype from my mobile to dial a PSTN number in Canada, the call is free as I have the Unlimited US/Canada plan. If I call someplace outside of the US and Canada, I am charged the normal Skype rate. If I call someone’s Skype username, it’s free of course.
Now what if someone calls me while I’m on Skype Mobile? The call comes in over the normal voice channel and is charged to me according to whatever Skype calling plan I’m on. In my case, it means it does not cost me any extra Skype credit to receive a call.
Of course, in both cases, I am using minutes with my mobile carrier, so I have to pay for those. But it’s no more expensive than a domestic long distance call for me, which are essentially mobile phone minutes.
While there are some bugs here and there with the chat portion, and I could suggest a few UI changes, overall I am very pleased with this client, considering it’s a first release. Hopefully they do a native S60 client, which should improve some of these issues as well as provide better integration with dialing phone numbers.