3.8000 2021-09-19
- Bugfix for numbers in local format which may be ambiguous for UK Crown Dependencies
when using Number::Phone::Lib
- Bugfix for when you ask for an object representing a number in one country
but provide a number for a different country. This mostly affects countries
that contain other jurisdictions squatting on parts of their number plan,
such as the Vatican in the Italian plan, and the Crown Dependencies in the UK
plan. It is now an error to ask for an object representing a number in a
'sub-country' which isn't valid in that sub-country (eg asking for a Jersey
object but passing a Guernsey number); but if you ask for an object representing
the 'super-country' but pass a 'sub-country' number you'll still get an object
representing the sub-country. ie, say "gimme a GB object for this 'ere Guernsey number"
and you'll get a Guernsey object.
- Data updates
3.7003 2021-06-02
- Data updates;
- Add deprecation warning for platforms with 32 bit int (support will
go away some time after 2023-06-01 with no further warning)
2021-03-09 3.7002 Data updates
2021-02-04 3.7001 Data from OFCOM/CNAC/NPA/localcallingguide.com squirreled
away during builds for greater reproducibility;
Data updates
2020-12-04 3.7000 Bugfixes in dial_to for stubs and unallocated UK numbers;
Windows doesn't properly support fork() so skip the tests for it;
Minor documentation clarification re constructor;
Stub classes shrunk by de-duping areanames;
Kosovo appears to have fully switched to using its own country code;
Option to build --without_uk and save disk space
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/95);
Correctly identify UK 04, 05[01234789], and 06 numbers as invalid,
instead of valid but unallocated (fix arising from
https://github.com/DrHyde/perl-modules-Number-Phone/issues/98);
Use data from a tagged release of libphonenumber instead of whatever
is in master, so builds are more reproducible, and expose that
tag in libphonenumber_tag method;
Expose OFCOM, CNAC, NPA and localcallingguide.com data update
date/time in N::P::{UK,NANP::CA,NANP::US,NANP}->data_source;
Data updates
2020-09-04 3.6006 Data updates
2020-06-06 3.6005 Data updates
2020-05-11 3.6004 Data updates;
Improved doco on the data update policy :-)
2020-04-27 3.6003 Testing improvements for fork()ing code;
Data updates
2020-03-09 3.6002 Data updates
2019-12-11 3.6001 Inmarsat +871 to +874 have been de-commissioned;
Added some US overlay codes (not all are in use yet);
Data updates
2019-09-12 3.6000 Data updates;
UK is_drama() numbers now all respond appropriately
to is_mobile, is_tollfree etc, and the mobile range
is correctly identified as being UK-wide and not Jersey
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/67);
Areaname() sensitive to your locale
2019-06-11 3.5001 Corrected international dialling data for Antarctic
research stations;
Cleaned up Unicode-spoor in some US operators' names;
Numerous new area codes in the US;
Doco clarification re incomplete numbers;
Data updates
2019-03-03 3.5000 Added operator data for almost all of the NANP;
Data updates
2018-12-05 3.4006 Expose libphonenumber's IDD prefix regexes
(see https://github.com/DrHyde/perl-modules-Number-Phone/pull/89);
New NANP area codes for Jamaica and Canada;
Data updates
2018-06-19 3.4005 Improved formatting of UK mobile and pager numbers
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/75);
Reinstate Kosovo squatting on +377, +381, and +386, as the change-
over is apparently not yet complete;
Data updates
2018-04-10 3.4004 We now have some data from libphonenumber for Kosovo
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/66);
Kosovo has migrated to +383 so get rid of the special cases in +377 etc;
Bug-fix for when national prefix transforms apply
(see https://github.com/DrHyde/perl-modules-Number-Phone/pull/87);
N::P::Country::Data is now mostly built from libphonenumber
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/34);
Corrected the Vatican's area code within the Italian numbering plan;
Added a special case for San Marino within the Italian numbering plan;
Data updates
2018-02-03 3.4003 UK "protected" numbers should have false is_allocated();
Bugfix for countries that don't have area names (see
https://github.com/DrHyde/perl-modules-Number-Phone/issues/64);
Match libphonenumber's behaviour when countries have identical
validators for fixed_line and mobile (see
https://github.com/DrHyde/perl-modules-Number-Phone/issues/84);
Accept numbers in some more unusual national dialling formats (see
https://github.com/DrHyde/perl-modules-Number-Phone/issues/77);
Recognise some more special rate numbers in Barbados and Bahamas (see
https://github.com/DrHyde/perl-modules-Number-Phone/pull/86);
Add format_for_country method;
Data updates
2017-09-05 3.4002 Add new US and CA area codes;
UK data is now in a normal data file instead of a humungous binary
module;
Re-open the UK database in children after forking
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/72);
UK data can be slurped into memory for faster access (but slow startup);
Data updates
2017-07-02 3.4001 Added some nominally redundant dependencies (see
https://github.com/DrHyde/perl-modules-Number-Phone/pull/68);
UK "protected" numbers are now included;
Data updates
2017-03-14 3.4000 Changed Kosovo's placeholder country-code from KOS to XK;
+383 (Kosovo) is now a special-case for validation
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/66);
Data updates
2016-12-06 3.3000 Implemented is_drama
(see https://github.com/DrHyde/perl-modules-Number-Phone/pull/61);
NANP modules now know about is_tollfree, is_specialrate and
is_personal;
Number::Phone::Country will now warn that exporting is deprecated;
Stubs and dial_to are no longer experimental;
Minor doco improvements, including some from the Debian project
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/60);
Minor coverage improvements by getting rid of some redundant
code paths;
More comprehensive testing of stubs, and resulting bug-fixes for
territories that appear as part of another's number plan, such
as enormous Kazakhstan and tiny Tristan da Cunha;
Data updates
2016-09-07 3.2001 Data updates
2016-06-05 3.2000 Bump version number because rpm is stupid and thinks
3.1 < 3.0014;
Recognize Isle of Man (IM) free/special-rate
numbers;
Data updates
2016-03-04 3.1 Added the format_using() method and the ability to
use third-party formatters, thanks to Michael
Schout for the suggestion;
Data updates
2015-12-08 3.0014 Deprecated APIs of being able to call most methods as
class methods or functions instead of object methods
have now been deleted;
Remove unnecessary N::P::NANP->country method - the
implementation in the superclass is sufficient;
Data updates
2015-11-04 3.0013 Fix another bug in the tests which threw up
misleading failures if a country-specific subclass
was installed
2015-10-26 3.0012 Updated dialing prefixes in N::P::Country
from Michael Gray;
Fix broken code for is_specialrate in stubs,
which previously always returned undef (ie
unknown) even when libphonenumber knew it was
eg premium rate (bug found by Gerhard Poul's
PR 46);
+44 3 numbers have is_specialrate set;
Fix bug where Number::Phone::Country would get
re-set to 'UK' mode instead of the ISO-ly
correct 'GB' mode;
Data updates.
2015-09-09 3.0011 Data updates
2015-07-20 3.0010 Fix a minor bug in the tests which were throiwing up
misleading failures if a country-specific subclass
was installed
2015-07-18 3.0009 Data updates;
Heard Island has nothing to do with the Marshall Islands!
Don't create stub objects when given just a country code
(see https://github.com/DrHyde/perl-modules-Number-Phone/issues/40)
2015-06-05 3.0008 Turn on the utf-8 flag on areacode names;
Data updates
2015-03-13 3.0007 Mostly just updated data from Google and OFCOM;
Announced approximately quarterly release schedule
2014-12-03 3.0006 Updated country codes and access codes for some
French overseas departments and ex-Soviet countries;
Fix bug confusing Georgia (GE) and South Georgia (GS);
2014-11-25 3.0005 Bugfix for stubs of countries with no national dialing
code.
2014-11-24 3.0004 Mailing list for users created;
Bugfixes for Curacao, Svalbard;
Bugfixes for stubs of countries where numbers can
begin with the national dialling prefix, eg Russia,
where the prefix is 8 but area codes like 812 exist;
New UK allocations
2014-09-04 3.0003 Bugfix: N::P->new("CC", 0...") now works
(where 0 is the national dialling prefix);
New UK allocations
2014-08-22 3.0002 Be more consistent when formatting UK numbers
for which we have incomplete data from OFCOM,,
no matter how they're instantiated;
New UK allocations
2014-06-17 3.0001 Make N::P::UK->format() cope better when OFCOM
don't tell us how long 08 numbers are;
New UK allocations
2014-04-25 3.0 Add Number::Phone::Lib, a libphonenumber-compatible
subclass. This lacks some functionality but is
considerably faster (for UK numbers) and compatible
(for non-geographic NANP numbers);
Add some new CA/US area codes;
Add more GMSS codes;
Use libphonenumber data for some NANP countries (some
have dodgy data*) for is_mobile, is_fixed_line
* Some countries have duplicate regexes for fixed_line/mobile in libphonenumber,
and others have regexes that match the same data
2014-04-15 2.2003 Bugfix to tighten up length checking for
unallocated UK numbers;
New UK allocations
2013-07-04 2.2002 New UK allocations
2012-11-29 2.2001 Bugfix to avoid using broken third-party
Number::Phone::* modules that aren't proper
sub-classes;
New UK allocations
2012-11-21 2.2 Bugfix stub countries to not have random \ in
area names;
Minor doco fix "from Number::Phone::UK, it would
return DE" is obviously wrong;
Some stuff in stubs for the breakup of the
Dutch colonies in the Caribbean;
New UK allocations;
Documentation (and stub implementation in superclass)
for new operator_ported() method;
New dial_to() method;
Much doco improvement;
Switch to DBM::Deep 2 for UK data, to fix Windows
test failures, see eg http://tinyurl.com/n-p2-1fail;
2012-10-30 2.1 Fix so we don't die trying to parse Inmarsat
and other non-country entities, see
https://github.com/DrHyde/perl-modules-Number-Phone/issues/8
2012-10-30 2.0002 Fixed how we extract patterns of leading digits
for number formats from libphonenumber, see
https://github.com/DrHyde/perl-modules-Number-Phone/issues/7;
Added some minimal tests for this;
Import from libphonenumber
2012-10-27 2.0001 New UK allocations, import from libphonenumber
and OFCOM
2012-01-29 2.0 Fix nasty bug in formatting unallocated UK numbers;
Sint Maarten (SX) moved from +599 5 to +1 721;
UK formatting improved for 3+7 and 2+8 formats;
Isle of Man (IM), Guernsey (GG) and Jersey (JE)
now sort-of treated as countries;
The minimal objects returned when there's no detailed
country-specific module available are far more
intelligent, thanks to libphonenumber's data;
New UK allocations;
Deprecated ridiculous ways of calling most methods;
2011-10-29 1.9 New UK allocations;
Use libphonenumber's data for N::P::Country;
Use libphonenumber's data for N::P::NANP areanames
2011-08-18 1.8006 Add South Sudan (SS, +211) to N::P::Country;
New UK allocations
2011-08-05 1.8005 Include tests for bugfix in distro
2011-08-05 1.8004 Bugfix for divining country code from subclasses;
New UK allocations
2011-07-19 1.8003 UK parser made a teensy bit more robust;
UK parser bugfixed for 01768 88 mixed length stupidity
New UK allocations
2011-07-08 1.8002 New UK allocations;
Numerous small changes in Number::Phone::Country
Tidying number ranges in Mayotte;
Minor bugfix for Mayotte;
Gibraltar can't be called in the Spanish
numbering scheme any more;
Ellipsos satcomms have gone away;
Kazakhstan has +76 and +77 instead of random
bits all over +7;
Western Sahara number ranges identified;
Kosovo (no ISO3166 country code yet, so I'm
temporarily using KOS, as used by the UN
Development Programme, see
wikipedia://List_of_UNDP_country_codes);
Canada and the US have some new codes;
Netherlands Antilles are splitting up;
Dominican Republic now has +1 849;
2011-05-20 1.8001 New UK allocations
2010-09-12 1.8 INCOMPATIBLE CHANGE: constructor will now return
a minimal object instead of undef if there's no
country-specific module available
New UK allocations
2010-07-05 1.7101 Bugfix for N::P->new('CC', '+NN12345');
2010-07-02 1.7100 Bugfix for N::P->new('CC', '12345');
New UK allocations
2010-02-17 1.7004 New UK allocations;
UK geographic numbers are no longer assumed to
be fixed lines - damn those VoIP providers!
2009-10-18 1.7003 Minor bugfix, see https://rt.cpan.org/ ticket 48581;
New UK allocations
2009-04-22 1.7002 Fix minor bug (...::UK constructor returning 0
instead of undef for (some?) invalid numbers,
reported by Tomasz Chomiuk;
New UK allocations
2009-03-04 1.7001 Kill warnings about GE being deprecated;
Add missing dep on Digest::MD5
2009-02-26 1.7 Fix formatting for valid but unallocated UK numbers;
One of the UK telcos whose name we check for in
tests renamed itself;
New UK allocations;
Added country-to-code and national/international
prefix data to N::P::C, thanks to Michael Schout
2008-05-27 1.6 Magic country detection now works (thanks to
Jos Boumans for reporting the bug);
New UK allocations
2008-02-27 1.581 Added dependency on perl 5.006 (DBM::Deep uses 'our');
Removed docs from N::P::UK::DBM::Deep and
replaced with note about its status;
New UK allocations;
Removed t/pod* temporarily
2007-06-01 1.58 Number::Phone::Country updated to reflect KM/YT split
Mayotte moved into parts of +262, so now shares with
Reunion instead of Comoros
New UK allocations (in particular 03 range)
2007-03-13 1.57 New UK allocations;
Bundle DBM::Deep cos old version is incompatible
2007-02-24 1.5601 New UK allocations
2006-12-08 1.56 New UK allocations;
Updated OFCOM parser;
Loads of Number::Phone::Country updates -
+1: NANP overlays: 226, 438, 762, 769, 829;
+269: Split Mayotte/Comores;
+381/2: Yugoslavia's *still* breaking up! (RS and ME);
+61 89162/4: Cocos and Christmas islands
+672 3: Norfolk Island
+672 1 0/1/2/3: Australian Antarctic bases
+681: Wallace and Futuna (corrected CCTLD)
+881 0: ICO Global
+881 3: Ellipso
+881 6: Iridium
+881 7: Iridium
+881 8: Globalstar
2006-08-25 1.55 Damnit, 1.54's ...UK->location() was wrong
2006-08-24 1.54 And again!
2006-08-23 1.53 Doh! How we loaded location data was buggy
2006-08-23 1.52 Documentation patches;
Corrected CHANGELOG entry for v1.51;
Added location data for the UK
2006-08-22 1.51 Updated UK data to access DATA filehandle directly,
which depends on DBM::Deep 0.97 and above. This
saves even more memory and makes the module load
a lot faster;
New UK allocations;
Some improvements and fixes in OFCOM data parser;
Bug fixes :-( for UK numbers with a significant F digit
2005-10-16 1.5 UK data moved into an embedded DBM::Deep structure
to save memory (NB: this adds dependencies)
Added location() method
2005-10-11 1.4004 New UK allocations
Removed 'use warnings' and 'use diagnostics' because
they pointlessly require a later version of perl;
re the above, tests now all use -w instead
2005-08-23 1.4003 Updated N::P::Country to use CS instead of YU for
Yugoslavia (ISO 3166 has been updated)
Fixed non-US and non-CA countries in N::P::Country's
phone2country_and_idd function (BUGFIX)
New UK allocations
2005-08-02 1.4002 New UK allocations
2005-06-27 1.4001 Added phone2country_and_idd to N::P::Country
new UK allocations etc
2005-05-18 1.4 updated Number::Phone::Country to remove American
Samoa's +684 code, it has migrated to +1 684 in
the NANP
N::P::C now correctly identifies US numbers
doesn't just assume a NANP number is US if it's
not assigned to another country
N::P::C no longer uses <DATA>
N::P::C added missing countries
some tidying in N::P::C's tests
N::P->country now defaults to returning current country
some tidying in N::P base class
new UK number allocations
UK data file now has version number (autogen from date)
UK data fixed for numbers "Allocated for Migration only"
Added NANP class and NANP::XX subclasses
2005-04-12 1.3004 new UK number allocations
removed 'use diagnostics'
2004-12-05 1.3003 new UK number allocations
2004-11-26 1.3002 OFCOM's UK data had some spurious spaces in numeric
fields, which broke some 070 numbers, these are now
filtered out
2004-11-10 1.3001 new UK number allocations
2004-10-20 1.3 Added note about number portability in UK module.
Added areaname() method to interface definition
and an implementation in the UK module.
Defined translates_to() method in superclass.
Added Number::Phone::Country to distribution. This
was previously maintained by T.J.Mather.
2004-10-13 1.2001 No code changes, just new UK number allocations
2004-09-22 1.2 Oops, forgot to add is_ipphone to docs for N::P::UK
last time.
Updated N::P::UK::Data with some new number ranges.
2004-09-15 1.1 Number::Phone::UK now implements is_ipphone, and
N::P::UK::Data has appropriate data in it, as
OFCOM have this week publishedthe allocations they
made a few weeks ago.
Removed is_voip() alias, it didn't work properly
under all the possible ways of invoking it.