I would suggest a varchar for the phone number (since phone numbers are known to have leading 0s which are important to keep) and having the phone number in two fields:
Country Code and phone number i.e. for 004477789787
you could store CountryCode=44 and phone number=77789787
however it could be very application specific. If for example you will only store US numbers and want to keep the capability of quickly performing queries like "Get all the numbers from a specific area" then you can further split the phone number field (and drop the country code field as it would be redundant)
I don't think there is a general right and wrong way to do this. It really depends on the demands.