Thursday, December 23, 2010

3G/Wimax/LTE: Hype or reality?

A colleague of mine sent me this answer from Linkedin I had submitted over 2 years ago. Scary thing is, it is still very much relevant and I have gone forward and have started delivering affordable broadband internet at $10 in over 5 Indian states!

Is Wi-Fi as a technology in the last stage of its life span in view of 3G, WiMax, LTE etc?

Shivkumar Jagannath’s answer:

Since I am in India and have been associated with the Wireless industry for more than a decade, I will attempt to put things in perspective so far as this country is concerned. a) WiMax in India is a tragedy in making. This is more because of short-sighted government policy. India started off by saying that the WiMAX profile for this country is 3.3GHz a couple of years ago and many operators started acquiring licenses, rolling out networks and so on. Since this was not a popular profile, availability of inter-operable equipment was an issue and uptake was not particularly high. Suddenly the government changed track this year and announced that the WiMAX profile is now 2.5 GHz and all those in possession of 3.3 GHz licenses have to return these and now bid afresh for the 2.5GHz auction. The reserve price for this is now pegged at $200mn. One can only imagine what would happen to incumbents given the current financial scenario. b) 3G is a bigger tragedy in making. The Government has announced auctions for 3G spectrum at a reserve price of $700mn. Given the price sensitivity of the Indian market (only 7% of current 300mn subscribers use GPRS/EDGE), one can only imagine what the uptake on this technology will be. 3G handsets sell upwards of $500 and there are no plan-linked offers in India (Even the iPhone-3G has been launched at $600 and above by two operators). Technologically, 3G will continue to suffer from the same limitations as elsewhere; only it will be compounded in India due to a large number of operators. There will be spectrum spillage, it is thought that most operators will use the 3G spectrum primarily for voice since they seem to have saturated the 2G space. c) Mobile WiMAX will probably lose out in the long run since 3GPP has decided that LTE will be the way to go for mobile broadband. I agree with the views presented earlier that these technologies are not mature enough. To compound it, they are probably simply too expensive to be rolled out in a country such as India. Most people dont know that 80% of India lives in the rural areas and most telecom operators would not touch that market with a barge-pole!! They would rather contriibute 5% of their earnings to a USO fund. Wi-Fi, especially carrier-grade infrastructure mesh Wi-Fi is probably the way to go in India. The reasons for this are: - a) Ultra-Low Capex (license free spectrum, low cost of nodes due to ability to source 90% components locally, low installation costs due to low labour costs) b) Tremendous Agility (ability to relocate nodes, reach newer areas faster) c) Low Opex (Low cost of maintenance, Lowering costs of backhaul) I have often seen many people start off by saying that Wi-Fi is a local access technology and so it must fail. This comes from their personal experiences with home routers and not carrier grade Wi-Fi. The latest network architectures in Carrier Grade Wi-Fi involve a fiber ring around the city (most cities in India have it and it is underutilized thanks to incumbent telcos) with multi-radio Wi-Fi nodes taking egress from the ring around the city. Finally, while the world has been focussing on the US and how muni-wireless has failed, they have not seen the tremendous growth in city-wide, state-wide and even country-wide networks in the developing and emerging markets. i) As an example, the state of West Bengal in India has a Smartbridges powered State-Wide Wi-Fi network connecting over 5000 villages. ii) The entire country of Macedonia is covered with Wi-Fi from Strix iii) The whole of Aceh province in Indonesia is connected with Wi-Fi. To summarize, let us not be led astray by the billion dollar budgets of the WiMAX and 3G Lobby. What India needs is affordable connectivity at around $10 per month. Whichever technology can provide this, will thrive... see more

Saturday, September 4, 2010

Howto Export Emails from Thunderbird into html files, print all these files into readable text in a single file

Thought I'd share this with everyone. I wanted to filter my emails from a particular sender, export it and put it together in a text file for reading chronologically.
Here's what I had:
  • Ubuntu Lucid (10.4) as OS
  • Mozilla Thunderbird 3.1.2 as email client
  • w3m as a text-only browser
    ImportExportTools as a Thunderbird add-on

The first part was fairly simple, just filter based on sender. In the search results, select all and click on Tools-ImportExportTools-Export All Messages In Folder - HTML Format

Select the target folder (I created a new one called EmailArchive). Once the activity is completed, you get a folder full of exported html files with names that have the date and subject as filename (you can customize this in preferences too).

Now I created a small shell script to achieve the next (but most difficult) part (for me). The script has the following lines: -

for i in *.html
echo "Start of Mail ---" $i >> $FNAME
echo "------" >> $FNAME
w3m -dump "$i" >> $FNAME
echo "End of Mail ------" >> $FNAME
echo "------" >> $FNAME

When you run this script (in a terminal , cd to the directory that contains the html files), it will create a file called Mail_Transactions.txt that will contain the output of all the mails separated by the two blocks "Start of Mail" and "End of Mail".

Hope this helps!

Friday, July 30, 2010

Tethering your Blackberry Tour with Ubuntu 10.04

I got a new Blackberry 9630 Tour handset from Reliance. Since this phone is a 3G phone and supports EVDO, I wanted to see if I could use this as a modem in place of a separate USB modem from Reliance. Tethering under Windows is well supported by the Blackberry Desktop Software but under Ubuntu, we dont have this luxury!
So I embarked upon a journey to tether the Tour to my laptop running Ubuntu 10.04. I had two options; USB cable or Bluetooth. I couldnt make the cable work using barry-utils though it helped me take backups etc. I then discovered that someone had found a way to make tethering work using bluetooth. I followed the instructions in this link--> . It involves installing an application called blueman. Once installed, the app lets you pair the Tour and also add enable dialup networking. Having done this, I created a new connection under Mobile Broadband in Network Manager and filled up the username + password (the reliance phone number itself). After saving, I could see the Connection available on Network Manager. On clicking, it immediately connected and I was ready to surf!

Tuesday, March 16, 2010

BSNL 3G in Chennai on a Samsung SGH-i780

I got myself a BSNL 3G sim in Chennai. This was a prepaid card for Rs 180/- and had Rs 20/- worth of talktime on it.
Getting it to work was an adventure worth blogging!
I have a Samsung SGH-i780 Windows Mobile Phone with 3G. When I called up the customer care of BSNL, the lady at the other end asked me what phone I had. When I gave her the model number, she said shes never heard of it and wouldnt know if my phone would work!
I then turned to my good ole friend Mr Google. Surprisingly, the community around this is very large. There were people running the 3G service on their iPhones (jailbroken), and other such phones.
I got the information I needed in a matter of minutes. The steps are:-
a) Change the band in the phone's settings to WCDMA. This can be found under "Settings" --> "Phone" --> "More" --> "Band Selection"
Once I did this, I got a warning that wcdma works only in 3G coverage areas!
The moment I did this, I got a large 3G icon on the top status bar of the phone.

b) The next step was to set up the data service. For this I navigated to
"Settings" --> "Connections" ---> "Connections" ---> "Manage Existing Connections" --> "My WAP Networks"
c) Create New Connection by clicking on New in the "Modems" tab.
d) Enter a Name for the connection: "BSNL 3G"
e) Select a Modem: Cellular Line (GPRS)
f) Click Next
g) Access Point Name: ""
h) Click Next
i) Leave all the fields in this screen blank (User Name, Password, Domain)
j) Click on Finish.

Open up Pocket Internet Explorer and type in any url say
You can see the 3G data connection getting setup. once this happened, I got a small 3G icon sitting atop my signal indicator icon.

Voila... Im connected on 3G!!!

I tried the speed test at and it showed an amazing 1mbps!
Youtube plays without buffering.
Way to go BSNL; if only they got their act together. I cannot seem to find out where and how to recharge the SIM. The call center lady asks me to go to but they dont have BSNL as an option!!
But I am so glad that 3G has finally come into the country and it works well too!

Monday, February 15, 2010

Article in Hindu Businessline

This article appeared in Hindu Businessline of 11 Feb 10

Thursday, June 25, 2009

Howto connect to the Internet using ZTE AC 8710 USB EVDO modem and Reliance Netconnect Plus service in Ubuntu

-------------Update on 26 Dec 09 ----------------------------------
Ive upgraded to Ubuntu Karmic Koala (9.10) and found to my pleasant surprise that I dont have to do the modeswitch as explained below... The kernel parameters are required to be passed at boot time but once you insert the modem, the switch happens automatically! Upon insertion, my dmesg shows this:
1781.557336] usb 4-1: new full speed USB device using uhci_hcd and address 7
[ 1781.728425] usb 4-1: configuration #1 chosen from 1 choice
[ 1781.733527] usbserial_generic 4-1:1.0: GSM modem (1-port) converter detected
[ 1781.733858] usb 4-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 1781.737839] usbserial_generic 4-1:1.1: GSM modem (1-port) converter detected
[ 1781.738124] usb 4-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 1781.739791] usbserial_generic 4-1:1.2: GSM modem (1-port) converter detected
[ 1781.740855] usb 4-1: GSM modem (1-port) converter now attached to ttyUSB2
[ 1781.744782] usbserial_generic 4-1:1.3: GSM modem (1-port) converter detected
[ 1781.745112] usb 4-1: GSM modem (1-port) converter now attached to ttyUSB3
[ 1781.747243] usbserial_generic 4-1:1.4: GSM modem (1-port) converter detected
[ 1781.747527] usb 4-1: GSM modem (1-port) converter now attached to ttyUSB4

So I directly run wvdial cdma and connect.
Ps. I am still not able to use Network Manager which now includes an entry for Reliance in the Mobile Broadband section.

-----------------------------------------End of Update------------------------------------------------

The prerequisites to achieve the above are:

1. An activated Reliance Netconnect Plus EVDO service with the ZTE AC8710 EVDO modem.

2. A laptop/desktop with Ubuntu Jaunty Jackalope (9.04); It could/should work with other flavors/versions too with minor tweaks.

3. The usb_modeswitch utility from here -->

4. The wvdial package.

The steps:

1. First download the usb_modeswitch utility and either compile it or use the binary (this worked in my case).

2. This utility is required to switch the ZTE modem from mass storage mode to modem mode. This is because ZTE cleverly added a usb storage mode which could allow them to bundle the windows driver and utility along with the dongle thus ensuring that people using netbooks etc (those without CD-Rom drives) could install and work with the modem. Unfortunately in Linux (Ubuntu Jaunty in my case), this does not happen and the device shows up as a mass storage device always thus leading to an impasse.

3. The next interesting point to note is that with Jaunty, the usbserial module has got built into the kernel instead of being a loadable module (This is the primary difference when working with earlier flavors like Intrepid- 8.10 where this module has to be loaded with the modprobe command).

4. Hence the parameters to the usbserial module have to be passed at boot time. One needs to add the following two values (usbserial.vendor and usbserial.product) to the end of the kernel line in the /boot/grub/menu.lst for the default kernel. In my case it looks like this after modification ( I am making the assumption that people know how to edit files in Linux):-

kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=61f8e10e-6e9f-44c9-8e41-43deb8589139 ro quiet splash usbserial.vendor=0x19d2 usbserial.product=0xfff1

5. The next step is to unzip (optionally compile ) and install the usb_modeswitch tool. This puts a binary called usb_modeswitch in /usr/sbin/usb_modeswitch and the configuration file in /etc/usb_modeswitch.conf

6. Edit the /etc/usb_modeswitch.conf file to reflect the modem type and other settings. In my case the relevant line numbers (582 to 591) look so: -

   582 DefaultVendor=  0x19d2
583 DefaultProduct= 0xfff6
585 TargetVendor= 0x19d2
586 TargetProduct= 0xfff1
588 # only for reference
589 # MessageEndpoint=0x05
591 MessageContent="5553424312345678c00000008000069f030000000000000000000000000000"

7. The next step is to reboot after saving all changes to ensure that the usbserial module gets the required values.

8. After rebooting, we need to now switch mode. To do this, insert the USB modem, wait for it to get recognized as a mass storage device and then run the command (as root) usb_modeswitch. If one tails the messages file (tail -f /var/log/messages), one can see that new devices such as /dev/ttyUSB0 get created.

Before switch the log looks so: -

usb-storage: device scan complete

[ 2326.587996] scsi 6:0:0:0: CD-ROM ZTE USB Storage FFF1 2.31 PQ: 0 ANSI: 2

[ 2326.656896] sr0: scsi-1 drive

[ 2326.657023] sr 6:0:0:0: Attached scsi CD-ROM sr0

[ 2326.657121] sr 6:0:0:0: Attached scsi generic sg2 type 5

After switch it is:-

usb 2-2: new full speed USB device using uhci_hcd and address 10

[ 2328.646405] usb 2-2: configuration #1 chosen from 1 choice

[ 2328.649209] usbserial_generic 2-2:1.0: generic converter detected

[ 2328.649622] usb 2-2: generic converter now attached to ttyUSB0

[ 2328.652650] usbserial_generic 2-2:1.1: generic converter detected

[ 2328.653049] usb 2-2: generic converter now attached to ttyUSB1

[ 2328.655786] usbserial_generic 2-2:1.2: generic converter detected

[ 2328.656234] usb 2-2: generic converter now attached to ttyUSB2

[ 2328.658435] usbserial_generic 2-2:1.3: generic converter detected

[ 2328.658781] usb 2-2: generic converter now attached to ttyUSB3

[ 2328.661470] usbserial_generic 2-2:1.4: generic converter detected

[ 2328.661814] usb 2-2: generic converter now attached to ttyUSB4

9. Once this is done, we now need to run the wvdialconf tool to create the wvdial.conf file. In my case, it could detect the ZTE modem and detected a 9600 baud capable modem.

10. We can now edit the /etc/wvdial.conf file to add other values including the username and password (the reliance number associated with the EVDO service is both in this case). After it is done, my wvdial.conf looks so: -

     2 [Dialer cdma]
3 Stupid Mode = 1
4 Inherits = Modem0
5 Password = 93xxxxxxxx
6 Username = 93xxxxxxxx
7 Phone = #777
9 [Modem0]
10 Init1 = ATZ
11 Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
12 SetVolume = 0
13 Modem = /dev/ttyUSB0
14 Modem Type = Analog Modem
15 ;Baud = 9600
16 Baud = 115200
17 FlowControl = Hardware (CRTSCTS)
18 Dial Command = ATDT
19 ISDN = 0

Pl note that I added the [Dialer cdma] part and also changed line 15 from 9600 to 115200 and it works just fine!

11. Once this is done, just run the command wvdial cdma and if all goes well, you should be connected. my final output, once connected looks so:

--> WvDial: Internet dialer version 1.60

--> Cannot get information for serial port.

--> Initializing modem.

--> Sending: ATZ



--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0


--> Modem initialized.

--> Sending: ATDT#777

--> Waiting for carrier.



--> Carrier detected. Starting PPP immediately.

--> Starting pppd at Thu Jun 25 09:52:01 2009

--> Pid of pppd: 11296

--> Using interface ppp0

--> pppd: ��[06][08]0�[06][08]

--> pppd: ��[06][08]0�[06][08]

--> pppd: ��[06][08]0�[06][08]

--> pppd: ��[06][08]0�[06][08]

--> pppd: ��[06][08]0�[06][08]

--> local IP address

--> pppd: ��[06][08]0�[06][08]

--> remote IP address

--> pppd: ��[06][08]0�[06][08]

--> primary DNS address

--> pppd: ��[06][08]0�[06][08]

--> secondary DNS address

--> pppd: ��[06][08]0�[06][08]

--> pppd: ��[06][08]0�[06][08]

--> pppd: ��[06][08]0�[06][08]

12. Thats it!! Fire up your browser, email client etc etc and happy surfing. I am getting 500 Kbps in Chennai and Hyderabad.

ps. i found out that i hadnt had pppd installed so had to install that as well.

I know that there might be a more elegant GUI way of doing this but this is the best I could do after reading a lot of stuff that other people had done.