Actually the best cough medicine that really works well happens to be a natural one: Ginger Tea. You grate 1/2 inch of freshly grated ginger root to one cup of water, boil, then steep for ten minutes. You can use a tea ball or after it boils just use a strainer. Add honey for taste. I make it in a large glass measuring cup in the microwave and drink it all day.
If you are having hemoptysis, you shouldn't take this. Instead take Japanese Green Tea with some honey.
My doctor says that Ginger Tea is better than any cough medicine on the market. It's also a natural antiflamatory and has antibacterial properties.