package Number::Phone::Country::Data;
$VERSION = '1.5';
%Number::Phone::Country::idd_codes = (
# 1 => 'NANP',
# 2* checked against wtng.info 2011-07-08
20 => 'EG',
211 => 'SS',
212 => 'MA',
2125288 => 'EH', # \ from http://en.wikipedia.org/wiki/List_of_country_calling_codes#At_a_glance
2125289 => 'EH', # /
213 => 'DZ', 216 => 'TN',
218 => 'LY', 220 => 'GM', 221 => 'SN', 222 => 'MR',
223 => 'ML',
224 => 'GN',
225 => 'CI', 226 => 'BF', 227 => 'NE', 228 => 'TG',
229 => 'BJ', 230 => 'MU', 231 => 'LR', 232 => 'SL',
233 => 'GH', 234 => 'NG', 235 => 'TD', 236 => 'CF',
237 => 'CM', 238 => 'CV',
239 => 'ST', 240 => 'GQ', 241 => 'GA',
242 => 'CG', 243 => 'CD', 244 => 'AO', 245 => 'GW',
246 => 'IO', 247 => 'AC', 248 => 'SC', 249 => 'SD',
250 => 'RW', 251 => 'ET', 252 => 'SO', 253 => 'DJ',
254 => 'KE', 255 => 'TZ', 256 => 'UG', 257 => 'BI',
258 => 'MZ', 260 => 'ZM', 261 => 'MG',
262269 => 'YT', # Mayotte fixed lines
262639 => 'YT', # Mayotte GSM
262 => 'RE', # Assume that Reunion is everything else in +262
263 => 'ZW',
264 => 'NA', 265 => 'MW', 266 => 'LS', 267 => 'BW',
268 => 'SZ',
269 => 'KM',
27 => 'ZA', 290 => 'SH',
291 => 'ER',
297 => 'AW', 298 => 'FO', 299 => 'GL',
# 3* checked against wtng.info 2011-07-08
30 => 'GR', 31 => 'NL', 32 => 'BE', 33 => 'FR',
34 => 'ES', 350 => 'GI', 351 => 'PT',
352 => 'LU', 353 => 'IE', 35348 => 'GB', 354 => 'IS',
355 => 'AL', 356 => 'MT', 357 => 'CY', 358 => 'FI',
359 => 'BG', 36 => 'HU', 370 => 'LT', 371 => 'LV',
372 => 'EE', 373 => 'MD', 374 => 'AM', 375 => 'BY',
376 => 'AD', 377 => 'MC',
37744 => 'KOS', # from http://en.wikipedia.org/wiki/List_of_country_calling_codes#At_a_glance
37745 => 'KOS',
38128 => 'KOS',
38129 => 'KOS',
38138 => 'KOS',
38139 => 'KOS',
38643 => 'KOS',
38649 => 'KOS',
378 => 'SM', 379 => 'VA',
380 => 'UA', 381 => 'RS',
382 => 'ME', 385 => 'HR',
386 => 'SI',
387 => 'BA',
389 => 'MK', 39 => 'IT', 3966982 => 'VA',
# 4* checked against wtng.info 2011-07-08
40 => 'RO', 41 => 'CH', 420 => 'CZ', 421 => 'SK',
423 => 'LI',
43 => 'AT', 44 => 'GB',
45 => 'DK', 46 => 'SE',
47 => ['NO', 'BV', 'SJ'], 48 => 'PL', 49 => 'DE',
# http://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom#Crown_dependencies
441481 => 'GG', 447781 => 'GG', 447839 => 'GG', 447911 => 'GG',
441534 => 'JE', 447509 => 'JE', 447797 => 'JE', 447937 => 'JE', 447700 => 'JE', 447829 => 'JE',
441624 => 'IM', 447624 => 'IM', 447524 => 'IM', 447924 => 'IM',
# 5* checked against wtng.info 2011-07-08
# GS apparently shares (according to wikipedia) +500 with FK, but it's
# unknown whether it actually has any phone service at all or whether
# the handful of people there just use sat-phones
500 => ['FK', 'GS'],
501 => 'BZ', 502 => 'GT', 503 => 'SV', 504 => 'HN',
505 => 'NI', 506 => 'CR', 507 => 'PA',
508 => 'PM', 509 => 'HT',
51 => 'PE', 52 => 'MX', 53 => 'CU', 54 => 'AR',
55 => 'BR', 56 => 'CL', 57 => 'CO', 58 => 'VE',
# http://en.wikipedia.org/wiki/Telephone_numbers_in_France#Overseas_Departments_and_Territories
590 => ['GP', 'BL', 'MF'],
591 => 'BO', 592 => 'GY', 593 => 'EC',
594 => 'GF', 595 => 'PY', 596 => ['MQ', 'TF'], 597 => 'SR',
598 => 'UY',
599 => 'BQ',
5999 => 'CW',
# 6* checked against wtng.info 2011-07-08
60 => 'MY',
61 => 'AU',
6189162 => 'CC', # Cocos (Keeling) Islands
6189164 => 'CX', # Christmas Island
62 => 'ID', 63 => 'PH',
64 => 'NZ', 65 => 'SG', 66 => 'TH', 670 => 'TL',
67210 => 'AQ', # Davis station \
67211 => 'AQ', # Mawson | Australian Antarctic bases
67212 => 'AQ', # Casey |
67213 => 'AQ', # Macquarie Island /
6723 => 'NF', # Norfolk Island
673 => 'BN', 674 => 'NR', 675 => 'PG', 676 => 'TO',
677 => 'SB', 678 => 'VU', 679 => 'FJ', 680 => 'PW',
681 => 'WF', 682 => 'CK',
683 => 'NU', 685 => 'WS', 686 => 'KI', 687 => 'NC',
688 => 'TV',
689 => 'PF', 690 => 'TK', 691 => 'FM', 692 => 'MH',
# 7* from http://en.wikipedia.org/wiki/Telephone_numbers_in_Kazakhstan
# checked 2011-07-08
76 => 'KZ',
77 => 'KZ',
7 => 'RU',
# 8* checked against wtng.info 2011-07-08
81 => 'JP', 82 => 'KR', 84 => 'VN', 850 => 'KP',
852 => 'HK', 853 => 'MO', 855 => 'KH', 856 => 'LA',
86 => 'CN',
880 => 'BD',
886 => 'TW',
# 9* checked against wtng.info 2011-07-08
90 => 'TR', 91 => 'IN', 92 => 'PK', 93 => 'AF',
94 => 'LK', 95 => 'MM', 960 => 'MV', 961 => 'LB',
962 => 'JO', 963 => 'SY', 964 => 'IQ', 965 => 'KW',
966 => 'SA', 967 => 'YE', 968 => 'OM', 970 => 'PS',
971 => 'AE',
972 => 'IL', 973 => 'BH', 974 => 'QA', 975 => 'BT',
976 => 'MN', 977 => 'NP',
98 => 'IR',
992 => 'TJ',
993 => 'TM', 994 => 'AZ', 995 => 'GE',
996 => 'KG', 998 => 'UZ',
# these checked against wtng.info 2011-07-08
# https://en.wikipedia.org/wiki/Global_Mobile_Satellite_System
# https://en.wikipedia.org/wiki/International_Networks_%28country_code%29
800 => 'InternationalFreephone',
808 => 'SharedCostServices',
870 => 'Inmarsat',
871 => 'Inmarsat',
872 => 'Inmarsat',
873 => 'Inmarsat',
874 => 'Inmarsat',
878 => 'UniversalPersonalTelecoms',
881 => 'GMSS', # \ Sat-phones
8810 => 'ICO', # |
8811 => 'ICO', # |
8812 => 'Ellipso', # |
8813 => 'Ellipso', # |
# 8814 is spare # |
# 8815 is spare # |
8816 => 'Iridium', # |
8817 => 'Iridium', # |
8818 => 'Globalstar', # |
8819 => 'Globalstar', # /
882 => 'InternationalNetworks',
883 => 'InternationalNetworks',
883120 => 'Telenor',
883130 => 'Mobistar',
883140 => 'MTTGlobalNetworks',
8835100 => 'VOXBON',
888 => 'TelecomsForDisasterRelief',
# 979 is used for testing when we fail to load a module when we
# know what "country" it is
979 => 'InternationalPremiumRate',
991 => 'ITPCS',
# 999 deliberately NYI for testing; proposed to be like 888.
);
# Prefix Codes hash
# ISO code maps to 3 element array containing:
# - Country prefix
# - IDD prefix (for dialling from this country prefix to another)
# - NDD prefix (for dialling from one area of this country to another)
%Number::Phone::Country::prefix_codes = (
'AC' => ['247', '00', undef], # Ascension Island
'AD' => ['376', '00', undef], # Andorra
'AE' => ['971', '00', '0'], # United Arab Emirates
'AF' => [ '93', '00', '0'], # Afghanistan
'AG' => [ '1', '011', '1'], # Antigua and Barbuda
'AI' => [ '1', '011', '1'], # Anguilla
'AL' => ['355', '00', '0'], # Albania
'AM' => ['374', '00', '0'], # Armenia
'BQ' => ['599', '00', undef], # Bonaire, Saint Eustatius and Saba (ex-Netherland Antilles)
'CW' => ['599', '00', undef], # Curacao
'AO' => ['244', '00', undef], # Angola
'AQ' => ['672', undef, undef], # Antarctica
'AR' => [ '54', '00', '0'], # Argentina
'AS' => [ '1', '011', '1'], # American Samoa
'AT' => [ '43', '00', '0'], # Austria
'AU' => [ '61', '0011', '0'], # Australia
'AW' => ['297', '00', undef], # Aruba
'AZ' => ['994', '00', '0'], # Azerbaijan
'BA' => ['387', '00', '0'], # Bosnia and Herzegovina
'BB' => [ '1', '011', '1'], # Barbados
'BD' => ['880', '00', '0'], # Bangladesh
'BE' => [ '32', '00', '0'], # Belgium
'BF' => ['226', '00', undef], # Burkina Faso
'BG' => ['359', '00', '0'], # Bulgaria
'BH' => ['973', '00', undef], # Bahrain
'BI' => ['257', '00', undef], # Burundi
'BJ' => ['229', '00', undef], # Benin
'BL' => ['590', '00', '0'], # Saint Barthélemy
'BM' => [ '1', '011', '1'], # Bermuda
'BN' => ['673', '00', undef], # Brunei Darussalam
'BO' => ['591', '00', '0'], # Bolivia
'BR' => [ '55', '00', '0'], # Brazil
'BS' => [ '1', '011', '1'], # Bahamas
'BT' => ['975', '00', undef], # Bhutan
'BV' => [ '47', '00', undef], # Bouvet Island - Norway
'BW' => ['267', '00', undef], # Botswana
'BY' => ['375', '810', '8'], # Belarus (IDD really 8**10)
'BZ' => ['501', '00', undef], # Belize
'CA' => [ '1', '011', '1'], # Canada
'CC' => [ '61', '0011', '0'], # Cocos (Keeling) Islands
'CD' => ['243', '00', '0'], # Congo (Dem. Rep. of / Zaire)
'CF' => ['236', '00', undef], # Central African Republic
'CG' => ['242', '00', undef], # Congo
'CH' => [ '41', '00', '0'], # Switzerland
'CI' => ['225', '00', undef], # Cote D'Ivoire
'CK' => ['682', '00', undef], # Cook Islands
'CL' => [ '56', '00', '0'], # Chile
'CM' => ['237', '00', undef], # Cameroon
'CN' => [ '86', '00', '0'], # China
'CO' => [ '57', '009', '09'], # Colombia
'CR' => ['506', '00', undef], # Costa Rica
'CU' => [ '53', '119', '0'], # Cuba
'CV' => ['238', '0', undef], # Cape Verde Islands
'CX' => [ '61', '0011', '0'], # Christmas Island
'CY' => ['357', '00', undef], # Cyprus
'CZ' => ['420', '00', undef], # Czech Republic
'DE' => [ '49', '00', '0'], # Germany
'DJ' => ['253', '00', undef], # Djibouti
'DK' => [ '45', '00', undef], # Denmark
'DM' => [ '1', '011', 1], # Dominica
'DO' => [ '1', '011', 1], # Dominican Republic
'DZ' => ['213', '00', '0'], # Algeria
'EC' => ['593', '00', '0'], # Ecuador
'EE' => ['372', '00', undef], # Estonia
'EG' => [ '20', '00', '0'], # Egypt
'EH' => ['212', '00', '0'], # Western Sahara
'ER' => ['291', '00', '0'], # Eritrea
'ES' => [ '34', '00', undef], # Spain
'ET' => ['251', '00', '0'], # Ethiopia
'FI' => ['358', '00', '0'], # Finland
'FJ' => ['679', '00', undef], # Fiji
'FK' => ['500', '00', undef], # Falkland Islands (Malvinas)
'FM' => ['691', '00', undef], # Micronesia, Federated States of
'FO' => ['298', '00', undef], # Faroe Islands
'FR' => [ '33', '00', '0'], # France
'GA' => ['241', '00', undef], # Gabonese Republic
'GB' => [ '44', '00', '0'], # United Kingdom
'GD' => [ '1', '011', '1'], # Grenada
'GE' => ['995', '00', '0'], # Georgia
'GF' => ['594', '00', '0'], # French Guiana
'GG' => [ '44', '00', '0'], # Guernsey
'GH' => ['233', '00', '0'], # Ghana
'GI' => ['350', '00', undef], # Gibraltar
'GL' => ['299', '00', undef], # Greenland
'GM' => ['220', '00', undef], # Gambia
'GN' => ['224', '00', undef], # Guinea
'GP' => ['590', '00', '0'], # Guadeloupe
'GQ' => ['240', '00', undef], # Equatorial Guinea
'GR' => [ '30', '00', undef], # Greece
'GS' => ['500', '00', undef], # South Georgia and the South Sandwich Islands
'GT' => ['502', '00', undef], # Guatemala
'GU' => [ '1', '011', '1'], # Guam
'GW' => ['245', '00', undef], # Guinea-Bissau
'GY' => ['592', '001', undef], # Guyana
'HK' => ['852', '001', undef], # Hong Kong
'HN' => ['504', '00', undef], # Honduras
'HR' => ['385', '00', '0'], # Croatia
'HT' => ['509', '00', undef], # Haiti
'HU' => [ '36', '00', '06'], # Hungary
'ID' => [ '62', '001', '0'], # Indonesia
'IE' => ['353', '00', '0'], # Ireland
'IL' => ['972', '00', '0'], # Israel
'IM' => [ '44', '00', '0'], # Isle of Man
'IN' => [ '91', '00', '0'], # India
'IO' => ['246', '00', undef], # British Indian Ocean Territory
'IQ' => ['964', '00', '0'], # Iraq
'IR' => [ '98', '00', '0'], # Iran, Islamic Republic of
'IS' => ['354', '00', undef], # Iceland
'IT' => [ '39', '00', undef], # Italy
'JE' => [ '44', '00', '0'], # Jersey
'JM' => [ '1', '011', '1'], # Jamaica
'JO' => ['962', '00', '0'], # Jordan
'JP' => [ '81', '010', '0'], # Japan
'KE' => ['254', '000', '0'], # Kenya
'KG' => ['996', '00', '0'], # Kyrgyzstan
'KH' => ['855', '001', '0'], # Cambodia
'KI' => ['686', '00', undef], # Kiribati
'KM' => ['269', '00', undef], # Comoros
'KN' => [ '1', '011', '1'], # Saint Kitts and Nevis
'KP' => ['850', '00', '0'], # Korea, Democratic People's Republic of
'KR' => [ '82', '001', '0'], # Korea (South)
'KW' => ['965', '00', undef], # Kuwait
'KY' => [ '1', '011', '1'], # Cayman Islands
'KZ' => [ '7', '810', '8'], # Kazakhstan (IDD really 8[pause]10)
'LA' => ['856', '00', '0'], # Laos
'LB' => ['961', '00', '0'], # Lebanon
'LC' => [ '1', '011', '1'], # Saint Lucia
'LI' => ['423', '00', undef], # Liechtenstein
'LK' => [ '94', '00', '0'], # Sri Lanka
'LR' => ['231', '00', '0'], # Liberia
'LS' => ['266', '00', undef], # Lesotho
'LT' => ['370', '00', '8'], # Lithuania
'LU' => ['352', '00', undef], # Luxembourg
'LV' => ['371', '00', undef], # Latvia
'LY' => ['218', '00', '0'], # Libyan Arab Jamahiriya
'MA' => ['212', '00', '0'], # Morocco
'MC' => ['377', '00', '0'], # Monaco
'MD' => ['373', '00', '0'], # Moldova, Republic of
'ME' => ['382', '00', '0'], # Montenegro
'MF' => ['590', '00', '0'], # Saint Martin
'MG' => ['261', '00', '0'], # Madagascar
'MH' => ['692', '011', '1'], # Marshall Islands
'MK' => ['389', '00', '0'], # Macedonia, the Former Yugoslav Republic of
'ML' => ['223', '00', undef], # Mali
'MM' => [ '95', '00', '0'], # Myanmar
'MN' => ['976', '001', '0'], # Mongolia
'MO' => ['853', '00', undef], # Macao
'MP' => [ '1', '011', '1'], # Northern Mariana Islands
'MQ' => ['596', '00', '0'], # Martinique
'MR' => ['222', '00', undef], # Mauritania
'MS' => [ '1', '011', '1'], # Montserrat
'MT' => ['356', '00', undef], # Malta
'MU' => ['230', '00', undef], # Mauritius
'MV' => ['960', '00', undef], # Maldives
'MW' => ['265', '00', undef], # Malawi
'MX' => [ '52', '00', '01'], # Mexico
'MY' => [ '60', '00', '0'], # Malaysia
'MZ' => ['258', '00', undef], # Mozambique
'NA' => ['264', '00', '0'], # Namibia
'NC' => ['687', '00', undef], # New Caledonia
'NE' => ['227', '00', undef], # Niger
'NF' => ['672', '00', undef], # Norfolk Island
'NG' => ['234', '009', '0'], # Nigeria
'NI' => ['505', '00', undef], # Nicaragua
'NL' => [ '31', '00', '0'], # Netherlands
'NO' => [ '47', '00', undef], # Norway
'NP' => ['977', '00', '0'], # Nepal
'NR' => ['674', '00', undef], # Nauru
'NU' => ['683', '00', undef], # Niue
'NZ' => [ '64', '00', '0'], # New Zealand
'OM' => ['968', '00', undef], # Oman
'PA' => ['507', '00', undef], # Panama
'PE' => [ '51', '00', '0'], # Peru
'PF' => ['689', '00', undef], # French Polynesia
'PG' => ['675', '00', undef], # Papua New Guinea
'PH' => [ '63', '00', '0'], # Philippines
'PK' => [ '92', '00', '0'], # Pakistan
'PL' => [ '48', '00', undef], # Poland
'PM' => ['508', '00', '0'], # Saint Pierre and Miquelon
'PN' => ['872', undef, undef], # Pitcairn
'PR' => [ '1', '011', '1'], # Puerto Rico
'PS' => ['970', '00', '0'], # Palestinian Territory, Occupied
'PT' => ['351', '00', undef], # Portugal
'PW' => ['680', '011', undef], # Palau
'PY' => ['595', '002', '0'], # Paraguay
'QA' => ['974', '00', undef], # Qatar
'RE' => ['262', '00', '0'], # Reunion
'RO' => [ '40', '00', '0'], # Romania
'RS' => ['381', '00', '0'], # Serbia
'RU' => [ '7', '810', '8'], # Russia 8**10 NOTE: may change to 00, 0
'RW' => ['250', '00', '0'], # Rwanda
'SA' => ['966', '00', '0'], # Saudi Arabia
'SB' => ['677', '00', undef], # Solomon Islands
'SC' => ['248', '00', undef], # Seychelles
'SD' => ['249', '00', '0'], # Sudan
'SE' => [ '46', '00', '0'], # Sweden
'SG' => [ '65', '000', undef], # Singapore
'SH' => ['290', '00', undef], # Saint Helena
'SI' => ['386', '00', '0'], # Slovenia
'SJ' => ['47', '00', undef], # Svalbard and Jan Mayen
'SK' => ['421', '00', '0'], # Slovakia
'SL' => ['232', '00', '0'], # Sierra Leone
'SM' => ['378', '00', undef], # San Marino - area code is always 0549, so '0' not a national prefix
'SN' => ['221', '00', undef], # Senegal
'SO' => ['252', '00', undef], # Somalia
'SR' => ['597', '00', undef], # Suriname
'SS' => ['211', '00', '0'], # South Sudan
'ST' => ['239', '00', undef], # Sao Tome and Principe
'SV' => ['503', '00', undef], # El Salvador
'SX' => [ '1', '011', '1'], # Sint Maarten
'SY' => ['963', '00', '0'], # Syria
'SZ' => ['268', '00', undef], # Swaziland
'TC' => [ '1', '011', '1'], # Turks and Caicos Islands
'TD' => ['235', '00', undef], # Chad
'TF' => ['596', '00', '0'], # French Southern Territories
'TG' => ['228', '00', undef], # Togo
'TH' => [ '66', '001', '0'], # Thailand
'TJ' => ['992', '810', '8'], # Tajikistan (IDD really 8**10)
'TK' => ['690', '00', undef], # Tokelau
'TL' => ['670', '00', undef], # Timor-Leste
'TM' => ['993', '810', '8'], # Turkmenistan (IDD really 8**10)
'TN' => ['216', '00', undef], # Tunisia
'TO' => ['676', '00', undef], # Tonga Islands
'TR' => [ '90', '00', '0'], # Turkey
'TT' => [ '1', '011', '1'], # Trinidad and Tobago
'TV' => ['688', '00', undef], # Tuvalu
'TW' => ['886', '002', '0'], # Taiwan, Province of China
'TZ' => ['255', '000', '0'], # Tanzania, United Republic of
'UA' => ['380', '00', '0'], # Ukraine
'UG' => ['256', '000', '0'], # Uganda
'US' => [ '1', '011', '1'], # United States
'UY' => ['598', '00', '0'], # Uruguay
'UZ' => ['998', '810', '8'], # Uzbekistan (IDD really 8**10)
'VA' => ['379', '00', undef], # Holy See (Vatican City State)
'VC' => [ '1', '011', '1'], # Saint Vincent and the Grenadines
'VE' => [ '58', '00', '0'], # Venezuela
'VG' => [ '1', '011', '1'], # Virgin Islands, British
'VI' => [ '1', '011', '1'], # Virgin Islands, U.S.
'VN' => [ '84', '00', '0'], # Viet Nam
'VU' => ['678', '00', undef], # Vanuatu
'WF' => ['681', '00', undef], # Wallis and Futuna Islands
'WS' => ['685', '0', undef], # Samoa (Western)
'YE' => ['967', '00', '0'], # Yemen
'YT' => ['262', '00', '0'], # Mayotte
'ZA' => [ '27', '00', '0'], # South Africa
'ZM' => ['260', '00', '0'], # Zambia
'ZW' => ['263', '00', '0'], # Zimbabwe
);
$Number::Phone::Country::prefix_codes{UK} = $Number::Phone::Country::prefix_codes{GB};