1 Sep 11, 2010: libphonenumber-5.1.2
3 - Fixing regression in AsYouTypeFormatter where it no longer worked for numbers entered in national
4 format for countries with no national prefix, e.g. Spain.
6 Sep 5, 2010: libphonenumber-5.1.1
8 - Added better logging/exception handling for catching cases where metadata is invalid/missing.
10 Sep 3, 2012: libphonenumber-5.1
12 - Inserting a space after the national prefix in the AsYouTypeFormatter when formatting numbers in
13 national format, if the formatting rules for that country dictate that a space is appropriate.
14 - Format emergency numbers and short-codes as a block in the AsYouTypeFormatter.
16 - Updated metadata for region code(s): BF, BG, DZ, GA, IT, JP, KW, PF
18 Aug 20, 2012: libphonenumber-5.0.3
20 - New alternate formatting data for country calling code(s): 43
21 - Updated metadata for region code(s): AT, BF, JO, NG, RU, SL
22 - New geocoding data for country calling code(s): 62 (en, id), 98 (fa)
24 Aug 07, 2012: libphonenumber-5.0.2
26 - Updated metadata for region code(s):
27 BF, CN, DJ, IL, JO, KH, KZ, MA, MT, MV, MY, NC, NG, SD, SK, SN, TL, UZ
28 - New geocoding data for country calling code(s): 7 (ru), 98 (en)
29 - Updated geocoding data for country calling code(s): 7 (en)
31 July 26th, 2012: libphonenumber-5.0.1
34 - New geocoding data for country calling codes 40, 57, 66, 82, 91.
35 - Fixed comments for 353 (IE).
37 July 12th, 2012: libphonenumber-5.0
39 - Support for alternate formats when finding phone numbers.
40 - Allowing two-digit numbers to be parsed if they are entered in national-format with no
45 - Reflowed this file to 100 char width to make it unambiguous as to what the standard should be.
47 July 6th, 2012: libphonenumber-4.9.1
49 - AR, BA, BF, CR, DE, EC, ES, KZ, MK, NC, NG, PF, SB, UZ, non-geo entity 882
50 - Geocoding data updates for country calling codes 54 (AR) and 81 (JP), new data for 234 (NG)
52 June 21st, 2012: libphonenumber-4.9
54 - formatInOriginalFormat fixed not to add a star sign if it was not present originally.
57 - Non-geographical entities with calling code 882 (BebbiCell, Maritime Communications, Oration
58 Technologies, Telespazio and Thuraya)
59 - Geocoding data updates for country calling codes 221, 224, 226, 242, 244, 245
60 * Functionality changes:
61 - Minimum allowed length for a national significant number (NSN) when parsing changed from 3 to 2.
62 - Support parsing of RFC3966-formatted strings with an isdn-subaddress or extra parameters
64 - Allow soft hyphen to appear in phone numbers (\u00AD)
66 - Add extra unit tests for non-geographical phone number entities
67 - ExampleNumbersTest testEmergency tests now uses ShortNumberUtil
69 June 14th, 2012: libphonenumber-4.8.5
70 * Metadata update only:
71 - AC, CR, DE, DK, IL, IN, IS, KH, LI, LR, MA, MD, MK, PA, SA, SG, SS
73 June 6th, 2012: libphonenumber-4.8.4
74 * Metadata update only:
76 - Non-geographical entity with calling code 881 (Iridium)
78 May 30th, 2012: libphonenumber-4.8.3
79 * Metadata update only:
80 - AN, ET, KW, MN, SX, TC, TL
82 May 16th, 2012: libphonenumber-4.8.2
83 * Metadata update only:
84 - BH, CR, EE, JO, KW, LA, QA, SI, TH
85 - Non-geographical entity with calling code 878 (VISIONng)
87 May 8th, 2012: libphonenumber-4.8.1
88 * Metadata update only:
89 - CA, CI, EG, HK, IN, IR, LB, MA, ME, MM
90 - Non-geographical entity with calling code 870 (Inmarsat)
91 - Geocoding updates for country calling codes 1 for new area codes
93 April 24th, 2012: libphonenumber-4.8
94 * Functionality changes
95 - RFC format now outputs a number starting with "tel:"
96 - Parsing support for numbers in RFC format that contain the country info in the "phone-context"
98 - Support for obtaining area codes for Italy, Vatican City, San Marino
100 - AM, AO, AR, BE, BF, CD, EG, GH, GM, GN, IN, IR, IT, JO, LA, LC, MD, MS, NO, PA, PK, SI, SJ, SO,
101 SY, TC, TN, UZ, VN, ZW
102 - Geocoding updates for country calling codes 1, 20, 233, 31, 33, 352, 374, 54, 56, 86
103 * Refactoring of matching functions, including moving them to PhoneNumberMatcher.
105 March 16th, 2012: libphonenumber-4.7
107 - Now return "too long" for input that is longer than 250 chars when parsing
109 - AC,AM,AT,AZ,BF,BR,BY,BZ,CR,CU,DE,DJ,EE,EG,ET,GA,GH,HK,HN,ID,IN,JP,KE,KG,KH,KR,KW,KY,LB,LU,MA,MD,
110 MK,NA,NE,NZ,SA,SB,SC,SE,SL,SN,UZ
111 * Refactoring of test classes so that tests requiring the test metadata to be loaded have a common
112 base class which handles this.
114 February 9th, 2012: libphonenumber-4.6
116 - Fix for formatByPattern to enable RFC formatting to work
117 - Fix for RFC formatting to work even when the international formatting rule starts with
119 - Logging consistency changes - some warnings are no longer printed, others have become only
121 - Fix for isValidNumberForRegion potentially throwing a NPE
122 - Parsing Israeli * numbers written in international format now works
123 - PhoneNumberMatcher doesn't match timestamps as phone-numbers
125 - Updates for AN, AX, BF, BJ, BR, BS, DJ, FI, IN, LV, MW, RS, SC, VN
126 - New countries supported: SS (South Sudan), CW (CuraƧao) and BQ (Bonaire, Sint Eustatius and Saba)
127 * Refactoring of the private formatting functions in PhoneNumberUtil to ensure names are more
128 descriptive and to reduce code duplication.
130 January 19th, 2012: libphonenumber-4.5
132 - Support for non-geographical country calling codes (e.g. +800).
133 - Modify formatInOriginalFormat to not insert/remove/modify digits in the original number passed
135 - Fix formatOutOfCountryKeepingAlphaChars to not throw a NPE.
138 - Updates for AR, BH, CI, CN, CR, DE, GA, IL, JO, JP, KE, KZ, LB, LK, LT, MV, MW, MZ, NA, NL, NZ,
139 PL, RO, SA, SV, TM, UG, US
140 - New country calling codes: 800, 808, 883, 888, 979
141 - Geocoding data updates: AR, US
143 December 9th, 2011: libphonenumber-4.4
145 - Support for Voicemail numbers
146 - Support prefixes "xt" and "xtn" to indicate extensions of phone numbers
147 - Change formatInOriginalFormat to use raw_input for numbers with incorrect leading zeroes, instead
148 of all invalid numbers.
151 - Updates for AR, BD, CH, CI, IL, IR, IS, IT, JP, KW, LR, MM, NG, SA, SC, UZ
153 November 24th, 2011: libphonenumber-4.3
155 - Fix the problems with AYTF crashing for longer numbers entered with +CountryCode, and incorrectly
156 removing national prefix for some numbers.
157 - Improve PhoneNumberMatcher to not match numbers ending with '%'.
158 - Fix formatNumberForMobileDialing to handle Israeli star numbers, Peruvian and Colombian numbers.
159 - Modify formatInOriginalFormat to use the raw input if we don't have a formatting pattern for a
161 - Simple offline geocoding function which takes into account the user's region.
164 - Updates for CR, GN, JP, KE, PL, SG, SR, SX, TH, TK
166 November 10th, 2011: libphonenumber-4.2
168 - Providing an "exact match" isEmergencyNumber method
169 - Improvement to PhoneNumberMatcher: requires national prefix to be present when matching
170 national-format numbers, unless matching for a region where it is explicitly marked in the
171 metadata that they may be omitted. Applies to leniency level VALID and higher.
172 - Change formatNumberForMobileDialing not to modify the phoneNumber passed in.
175 - Emergency numbers added for all remaining countries
176 - Collected data on which numbers we format with a national prefix are commonly written without one
178 - Updates for AR, AT, BH, CZ, GR, IR, KM, LT, MX, PT, SE, SO, UG
179 - Addition of SX (Sint Maarten)
181 October 19th, 2011: libphonenumber-4.1
183 - Update code and metadata for countries with IDD "8~10" to accept phone numbers where the "~" is
185 - Modify formatInOriginalFormat to use raw_input (when present) when the number is considered as
186 invalid by the library.
187 - Add ShortNumberUtil to deal with international short phone numbers, such as short codes and
189 - Increase the maximum phone-number length accepted when parsing (now set to
193 - Updates: BF, BN, CN, DE, DK, DO, FR, IN, KI, KW, MC, MD, ML, PA, QA, SB, UK, WS
194 - Emergency number information also added to: AE, AF, AL, AM, AR, AT, AU, BA,
195 BB, BD, BE, BG, BH, BO, BR, BY, CA, CH, CL, CN, CO, CR, CY, CZ, DE, DJ, DK,
196 DO, DZ, EC, EE, EG, ES, FI, FJ, FO, FR, GB, GE, GF, GH, GI, GL, GR, GT, GY,
197 HK, HN, HR, HU, ID, IE, IL, IN, IR, IS, IT, JM, JO, JP, KR, KW, KY, KZ, LB,
198 LK, LT, LU, LV, MA, MC, MD, ME, MK, ML, MM, MN, MO, MT, MU, MV, MX, MY, NG,
199 NI, NL, NO, NP, OM, PA, PE, PH, PK, PL, PM, PT, PY, QA, RO, RS, RU, RW, SA,
200 SB, SD, SE, SG, SI, SK, SL, SM, SR, SV, SY, TD, TH, TJ, TM, TN, TR, TT, TW,
201 UA, UG, US, UY, UZ, VA, VE, VN, VU, ZA, ZM, ZW
203 October 6th, 2011: libphonenumber-4.0
205 - New function formatNumberForMobileDialing, which attempts to format a number in such a way that
206 the call can be connected from a mobile phone. If this is impossible, for example for numbers
207 that cannot be internationally dialled, then an empty string is returned.
208 - Fallback functionality to English for non-CJK languages for geocoding
211 - Collecting data for emergency numbers
212 - Updates: AR, AU, BR, CN, CZ, EG, GD, IE, IL, JM, KW, KH, SD, SO, TR, UG, UZ
213 - Geocoding data changes: AO, AR, AT, BJ, BR, CD, CG, CI, CL, CN, CV, DE, ES,
214 FR, GR, GW, HU, KM, MR, MZ, NL, PL, PT, SE, ST, SZ
216 September 13th, 2011: libphonenumber-3.9
218 - Enable AsYouTypeFormatter to handle long IDD and NDD.
219 - Allow the presence of an IDD following a +.
220 - Fix formatting of phone numbers which contain only 0s in the national number.
221 - Refactored some code in geocoding including AreaCodeMap and the storage strategies.
224 - Updates: AM, BE, BH, BJ, BR, BT, BZ, CI, CL, CN, DE, DK, DM, DZ, EC, EG, FJ,
225 GR, HR, HT, IN, IQ, IS, JM, KE, KG, KH, KR, LA, LB, LR, MA, MD, ML, MO, MX,
226 MY, NE, NG, PG, PH, PK, PY, QA, SA, SD, SG, SN, TD, TG, TH, TN, TT, UG, YE,
228 - New geocoding data for: AC, CG, CU, CV, EG, ET, FI, FI, FI, GL, JP, KM, MA,
229 MA, MU, MU, MU, MZ, RS, SH, SH, SL, SO, ST, TG, TG, TG, UG, ZM
230 - Updated geocoding data for: AR, DE
232 August 11th, 2011: libphonenumber-3.8
234 - Fix to demo to not throw null-ptr exceptions for invalid NANPA numbers
235 - Fixed AYTF to not accept plus signs in the middle of input
236 - PhoneNumberMatcher improvements - added STRICT_GROUPING and EXACT_GROUPING levels, numbers
237 followed/preceded by a currency symbol will not match, multiple numbers separated by phone-number
238 punctuation will now match. ", " is no longer accepted as an extension symbol when matching, only
239 when parsing. "x" is only accepted as a carrier code or extension marker, not otherwise.
240 - Changes to handling of leading zeroes - these will not be silently ignored anymore, but will be
241 stored as part of the number.
242 - PhoneNumberOfflineGeocoder - new method to get the description of a number that assumes the
243 validity of the number has already been checked and will not re-verify it.
244 - Split geocoding US binary data into multiple files.
247 - Updates: AR, AT, AU, AZ, BE, BF, BH, BY, CA, CN, CO, CR, HT, HU, IT, KG, KH,
248 LB, LI, ME, NC, RS, SE, TT, US, VG, ZA
249 - New geocoding data for: AL, AM, AO, BF, BJ, BW, CD, CI, CZ, DZ, EE, GH, GM,
250 GN, GR, GW, HU, IS, KE, LK, LS, LT, LU, LV, MD, MG, MR, NA, PE, QN, SD, SK,
251 SN, SZ, TN, VE, VN, ZA, ZW
252 - Updated geocoding data for: GB, PT, US
253 - Revised sorting of geocoding data
257 - Refactored AreaCodeMap to minimize binary and memory footprint by using 2 different strategies.
258 - Refactored BuildMetadataFromXml.java and added unittests.
261 - Regenerate binaries for all existing area code mapping data with smaller sizes.
262 - Added city-level area code data mapping for US and Canada.
266 - Fixed issue 38, issue 39, issue 41 and issue 43
269 - Added phone number area mapping files for
272 - TW in English, Simplified and Traditional Chinese
274 - IT in English and Italian
276 - TR in English and Turkish
277 - CH in English, German, French and Italian
278 - Updates: CR, GE, IT, JP, KW, MH, MP, MU, PE, PM, RW, TG, TJ, TK
282 - Added PhoneNumberOfflineGeocoder, supporting classes and their unittests.
283 - Added GenerateAreaCodeData to transform phone number area mapping files from text files to binary
285 - Modified PhoneNumberParserServlet.java and phonenumberparser.jsp to incorporate
286 PhoneNumberOfflineGeocoding in the appengine demo.
289 - Added phone number area mapping files for NANPA countries and GB in English, NL in Dutch, AR, CL
290 and ES in Spanish, AT and DE in German, SE in Swedish, BR in Portuguese, KR in English, Korean,
291 Simplified and Traditional Chinese, and CN in Simplified Chinese.
295 - Fixes for PhoneNumberMatcher to be more restrictive in valid mode and not match numbers
296 surrounded by Latin characters. This ensures, for example, the string abc123456789acg will not be
297 marked as a phone numbers.
298 - Enable PhoneNumberUtil to handle all digits, rather than a subset
299 - Fix for AYTF issue36 and improvement for US AYTF behaviour.
301 - Updates: BG, EG, ES, GH, PF, SC, SY, VA
305 - Phonenumber now implements Serializable.
306 - findNumbers doesn't accept numbers with mis-matched brackets as phone-numbers
307 - An offline phone number geocoder has been added. The current implementation just returns the
308 region name for the phone number; more detailed geocoding will be added later.
310 - New countries: GF, KP, NC, PA, PF, PW, PY, SB, SR, TO, UY, VU
311 - Updates: CY, CZ, ES, GB, GQ, JM, MQ, TN, VI
315 - Fixed potential for a null-ptr exception in getExampleNumber
316 - Potential speed improvement with replacement of StringBuffer with StringBuilder
318 - Changed way that international formats are specified to make it easier to do so
319 - New countries: AX, CC, CX, WF
320 - Updates: AM, AR, AU, AW, CN, CO, CR, DM, EC, ET, FI, FJ, GH, IN, JP, KE, KM,
321 KN, LR, MD, MQ, MX, NP, PH, SC, SE, SM, SN, SY, UG, US, VC, VI, ZM
325 - Improved PhoneNumberMatcher for cases with other numbers before or after the phone number.
326 - Improved AsYouTypeFormatter not to use formatting rules containing non-formatting characters
327 (e.g. '*' in Israeli star numbers).
329 - New countries: FJ, FM, GY, NF, NI, NR, TV.
330 - Updates: AM, AZ, BF, BW, BZ, CI, CR, GB, GP, HK, JM, KH, LB, LY, MV, PE, PK, SZ, TJ, US.
331 * Minor documentation updates
335 - Adding date exclusion pattern in PhoneNumberMatcher.
336 - Fixing bug with selecting a suitable region for numbers with leading zeros where mutiple regions
337 for that country code are possible.
339 - Updates: AG, AI, AS, BB, BM, BS, CA, DM, DO, ET, FO, GD, GE, GU, IN, JM, KN, KY, LC, MN, MP, MR,
340 MS, NO, PR, TC, TR, TT, US, VC, VG, VI
341 - New countries: CK, FK, GT, IO, KI, SJ, SV
342 * Documentation updates and some small refactoring to AsYouTypeFormatter
346 - Can parse and format numbers in RFC-3966 format.
347 - Added isAlphaNumber to check to see if a number is a "vanity" or "alpha" number
348 - Can format a number made up of alpha-characters in an "out-of-country" format (e.g. 0011 1
349 800-SIX-FLAG to dial an American alpha-number from Australia).
351 - Renamed private vars, private methods and fixed comments to try and differentiate between country
352 (calling) codes and region codes.
353 == Non-backwards-compatible API changes: ==
354 - Renamed getSupportedCountries to getSupportedRegions, as this more accurately reflects that the
355 library is based around region codes.
356 - getNationalSignificantNumber is no longer a static method, but is instead an instance method.
358 - Bug-fixes and updates for AU, AZ, EE, FI, IN, JO, KW, KZ, MV, RU, RR, VA
363 - New mobile-number pattern for AU
367 - New function to format a number with the preferred domestic carrier code used when parsing,
368 falling back to a default calling code otherwise (formatNationalNumberWithPreferredCarrierCode).
369 - We now store the preferred domestic carrier code used when the user calls parseAndKeepRawInput
370 - New functionality to extract phone-numbers from text (findNumbers). This is just the first
371 version - it does not extract ALPHA numbers such as 0800 CALL ME, or numbers where alternate
372 endings are specified (such as 03-331 6005/6006).
374 - Tidying up the test file to use several pre-defined phone number constants
375 - Fixing several lint errors
376 - Added javadoc to formatNationalNumberWithCarrierCode
377 - Fixed bug where a null pointer exception was thrown when getAsYouTypeFormatter was called with an
379 - Improved AsYouTypeFormatter to deal with countries with variable-length patterns such as LU
381 - Bug-fixes and updates for the following countries: BF, BO, BR, CL, CO, CR, DK, FO, GE, KR, KW,
382 LA, LU, MU, SC, SH, TR, VE
387 - releasing the code to run the demo on localhost or appengine.
391 - Adding support for AC
395 - Update UAN number ranges for IM and JE.
399 - Better isNumberMatch method. This will now recognise numbers starting with a national prefix as
400 an NSN_MATCH, instead of SHORT_NSN_MATCH.
401 == Note Non-backwards-compatible API change here! ==
402 This will no longer throw a NumberParseException - instead we will return NOT_A_NUMBER if one
403 or other of the numbers provided do not match.
404 - New number-type UAN now supported in the code. This represents Company Numbers or Universally
407 - Bug-fixes and updates for the following countries: AG, AZ, BA, BE, CA, CU, ES, FI, GB, GD, GG,
408 IE, IL, IM, IN, IR, IT, JE, JP, KR, KW, NG, NZ, PK, PS, PT, RU, SE, SG, SY, US
409 - New countries: CO, LU, LY, MC, SM
410 - Addition of "Personal Number" ranges to all NANPA countries
414 - Introducing equals() and hashCode() methods for the Phonenumber.PhoneNumber class
418 - Fixing critical bug with non-Android-compatible code. isEmpty() was being used and CANON_EQ in
423 - Handle null phone-numbers when parsing by throwing a NumberParseException.
424 - Handle extension written with an accented "o", as per Spanish, when parsing.
425 - Handle U+30FC dashes as phone-number punctuation.
426 - Allow "ZZ" or null regions to be specified for numbers starting with a full-width "+" symbol, or
427 with other characters (such as whitespace) before the leading +.
428 - new getLengthOfNationalDestinationCode function
430 - New types of numbers introduced: UAN (universal or "company" numbers) and short codes. Note that
431 "generalDesc" patterns do not encompass short-codes. No code-support for these has been
432 introduced as of yet. We are also now enabling the collection of data for information such as
433 area-code-optional, and no-international-dialling ranges.
434 - Data updates as per ITU notifications/bug fixes for the following countries: AM, BH, CD, CG, CR,
435 DE, DJ, EE, GB, GN, HU, IE, JO, JP, LB, LR, MA, MK, MN, MR, NA, PG, SC, SG, SO, SZ, VN, ZA, ZW
436 - Data added for the following countries: BZ, CU, EC, FO, GI, HN, HT, LK, MT, MV, NU, PS, SD
437 - Indentation fixes in reg-exes for the following countries: BG, GB
438 - Allow nationalPrefixForParsing to be specified for countries with no national prefix, to handle
439 possible carrier prefixes
444 - Updated comments for GB/GG/IM/JE
448 - Updates to existing countries: AD, AG, AI, AN, AS, BB, BG, BM, BS, BW, CA, DM, DO, GD, GH, GM,
449 GU, IN, JM, KN, KY, KZ, LB, LC, MP, MS, PR, SY, TC, TT, TZ, US, VC, VG, VI.
450 - Reorganize reg-exes for better readability.
455 - Updates to existing countries: AE, GB, GG, IM, JE
459 - Allowed parsing of numbers that start with "++" or a full-width "+" symbol
460 - Allowed reg-exes for national and possible number patterns to have white space in them in the
462 - Added a more useful toString method for the phone number proto class
464 - Updates to existing countries: AF, BF, BO, ES, GB, GG, IM, IS, JE, JE, JP, KR, PE, PT, RU, SE,
467 - Parsing empty strings with invalid region codes no longer throws a null pointer exception
471 - Added new phone number type: pager
473 - update to existing country: GG, IM, JE, RS, RU
475 - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition()
476 - AsYouTypeFormatter for UK childline number
479 * Bug fix on KZ metadata.
483 - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and
484 BuildMetadataProtoFromXml.java
485 - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java
486 - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate
491 - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format.
492 - AsYouTypeFormatter for formatting Chinese 400/800 numbers entered in national format.
494 - new countries: AM, AN, BH, GL, IS
495 - adding national prefix 1 to all NANPA countries.
496 - update to existing countries: BF, FR, UK, PK, RE
499 * Further improve startup performance
500 - Preload no country specific metadata at startup.
501 - Stop creating the file containing mapping from country calling code to region code and loading
502 it at startup; instead, do the initialization in PhoneNumberUtil.
506 * Improve startup performance
507 - Separate generated metadata binary file to one file per region
508 - Preload US at start up, and load other region at the time when needed
509 - Create a file containing mapping from country calling code to region code, and load it at
511 - Same change also applied to unittests
516 - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN
519 - China local number formatting for AsYouTypeFormatter
520 - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910#