My argument against this is that a phone number is tied to a location, and should not be reformatted based upon who is viewing it. All US phone numbers should display as (123) 456-7890, no matter whether the person viewing the web page is in the US or Mexico. In the database, as well as in our business object layer, my contention is that this number should be stored as a single unformatted String: "1234567890".
Do you have to handle extensions? It can be hard to tell (123)456-7890 from 123-4567 ext 890 in an unformatted string.
And where are you storing the country information? You really have to associate it with each phone number some how, because if your going to the trouble of handeling international phone numbers you should also handle companies and people that have phone numbers in multiple countries.
You should probably do some research on international standards, I know there is a standard for phone numbers that goes something like +country code-area code-sub code-remaining digits.
Jay