Initially I thought it is headphone that's giving problem, and already made up my mind to buy a new pair.
Then I asked my wife to test the same headphone on her iPhone 3GS, everything works fine. Headphone is as good.
Now the problem is more worrying as it may be my iPhone 3G is having problem instead.
After some googling, I have decided to take a good look inside the headphone jack, it looks dirty, seems collecting dust, and possibly blocking the connectivity from headphone mic/control to the iPhone 3G.
Thus, I took a small screwdriver, carefully dig as much dirt as possible out from the jack. You will not believe that there are such an amount of dust stuck inside the jack!
Dirt accumulated inside my iPhone 3G headphone jack is probably due to humidity take makes the dirt harden, and stick onto the contact, where mic and control rely on.
After removing those dirt, the headphone mic and control work as before.
Google save my day, and my money too, I must confess.
The headphone works for a day, and mic gone again. I decided to use a high power vacuum cleaner to first blow the headphone hole, then vacuum for about 1 minute.
The purpose of blowing is to blow dirt which sticked inside the hole, even they cannot come out, atleast they been blow off from the wall of the hole.
Then I vacuum the hole to make sure that all that dropped off from the blow earlier are vacuumed out.
And the headphone mic works again. See if it can last longer.