So, while some of the options will suffice, none of the current phone number formats match for Australian landlines, and I won’t even get into the full formatting breakdown (see wikipedia for that. Suffice it to say depending on length and and prefix, the formatting can vary widely, even if you decide to go with national number format (and what happens then if someone starts putting in international numbers when your existing data is all in a national format?).
But, apart from having an (99) 9999-9999 option, smart number/country based formatting would be really great, and Google has even done all the tedious work in libphonenumber for Java, C++ and Javascript. Third party ports for other languages are linked from the Github README.
In particular given a country, and a number it can parse, validate, format the number in a variety of ways (local, national, international), potentially tell you what type of number (voip, fixed line, mobile), time zone, carrier and lots of nice stuff.
It has an internal representation that’s basically country code and a standardized national number, so once you have that you can format it as a national number, an international number in + format, dialling number from another country, etc.
But honestly, just smart formatting with a field configured default country would be an awesome start.
(and yeah, you should see the Asterisk dialplans to cover Aussie numbers… Ugh)
-David