Oh please, the 'Americans don't want to do these jobs' argument is tired and very false. The real situation is:
1) Those jobs pay terribly, IE not enough to support an entire family, and in some cases even a single person.
2) Employers want immigrents because they can treat them horribly because they either don't know their rights, or are too scared to speak up.
3) Employers can pay immigrents less then minimum wage as many are 'under the table,' and again do not know their rights or are afraid to exercise them.
I live in California, and here $20 an hour ($2400/m after taxes) would maybe get you a mid-level apartment ($1500/m), a decent car ($300/m), pay utilies ($100-200/m), and leave you with about $400/m to live on, and I didn't even count gas, insurence, and any unexpected expenses. This is also for 1 person, god forbid you have a family. Try doing that on $8 an hour.
Outsourcing to India, China, and all those other countries is done for 3 reasons:
1) They pay people less then 25 cents an hour
2) They avoid much of the regulation designed to keep workers and products safe
3) There is little to no incentive to keep the jobs here (IE a tax or penalty for moving offshore/importing goods)
Hiring immigrents here in the US is basically the same thing as above, just not in another country.
My point is, the cost of living has increased far, far, far faster then the average income. Advancements in computers and automation have only reduced expenses for companies, yet they still keep charging more, and that money does not go to the employees, nor does it go to the customers in the form of reduced costs, it go straight to the top 1% of the population who just can't get enough.