Datatype for phone number: VARCHAR, INT or BIGINT?
How would you handle a phone number with an extension, such as "+1-000-000-0000 ext 1234" ? 

Note, the "+" indicates international dialing rules should be applied; so from North America, the system automatically knows "011" in front of international calls, etc.

Also, what about phone numbers such as "1-800-DBA-HELP"?

I would typically store phone numbers as text. Having said that, it really depends how critical your phone number column is. If you are running automated dialers from that column, then you'd really want to ensure that only numbers are included, and the data represents well-formed phone numbers. 

You could have separate columns for extensions, and phone numbers that have text, such as the "1-800-DBA-HELP" example I provided.