I have a form that asks for the customer's phone number number. The customer's are international and not limited to the U.S. and Canada.
Does anyone have any best practices on how to layout (and label) the form fields?
I'm afraid this question is a bit unclear to me.
Are you just asking for the customer's international phone code, not the number itself (a 'phone number number')?
It would probably make more sense just to ask which country the customer resided in. That way, your customer doesn't have to remember which code relates to which nation.
Be aware that you're going to run into fun and games with the 'dropped' first zero issue.
Eg the correct format for London England is +44 20 X XXX XXXX
However if you just ask for the country and the number you'll get people completing it as England, 020 X XXX XXXX
While I agree with @jbreckmckye to ask for the country, not the country's telephone number as that can be inferred from the country, I do think that most people know the telephone number of their country and can spit it out at will.
That said, I would not split the telephone number in separate fields at all.
I would ask for the for the country in a separate field like @jbreckmckye because the country also dictates how an address should be laid out (some countries have the postal code before the city, others have it after the city or even completely separate).
I would allow the telephone number to be entered in a free format. It may restrict what you can do with it "automatically" (or require a very good parser to enable automatic processing). More importantly though, it will allow users to enter their phone number in the way they are used to entering phone numbers instead of forcing them to conform to a format they may not be familiar with.
As a suggestion you could give an example of an international phone number adjacent to the telephone number field.
+31 (0)30 1234567
This example also shows the way international phone numbers are/should be formatted to take care of the dropped zero @PhillipW mentions.
In general terms the international format for a telephone number actually is
+<country> [(0)]<area> <subscriber>
Splitting a phone number field into multiple parts is navigating a course for future pain. Here are two reasons.
In some countries, there isn't one format, but many.
A New Zealand illustration. Early mobile phone subscribers got 6 digit subscriber numbers ...
This was at a time when land lines got 7 digit subscriber numbers
But now, mobile phone subscribers get 7 digit subscriber numbers - and to encourage old subscribers to move, some got to keep their 6 digit subscriber number
Phone number formats change
If there's one thing that's constant in the ICT industry, it's change.
In addition to the examples above, consider the changes experienced by my fathers retail business - each in turn, these were his business number format:
While these changes were all in the 1980's, this sort of change still happens - phone numbers in Australia changed from 7 to 8 digits in 1998.
"In general terms the international format for a telephone number actually is
+<country> [(0)]<area> <subscriber>"
AS others have mentioned, there isn't really a "general" way phone numbers are formatted. For example here in Denmark all numbers are 8-digit but there is never a leading zero when calling in-country, so for a Dane that (0) would just be utterly confusing.
Also, up until the 1990s the first two digits indeed used to be
<area> as mentioned, but now all danish telephone numbers are basically just random 8 digits – so the Danish format would just be