1March 16th, 2012: libphonenumber-4.7 2* Bug fixes 3 - Now return "too long" for input that is longer than 250 chars when parsing 4* Metadata changes 5 - 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, 6 MK,NA,NE,NZ,SA,SB,SC,SE,SL,SN,UZ 7 * Refactoring of test classes so that tests requiring the test metadata to be loaded have a common 8 base class which handles this. 9 10February 9th, 2012: libphonenumber-4.6 11* Bug fixes 12 - Fix for formatByPattern to enable RFC formatting to work 13 - Fix for RFC formatting to work even when the international formatting rule starts with 14 punctuation 15 - Logging consistency changes - some warnings are no longer printed, others have become only 16 WARNINGS 17 - Fix for isValidNumberForRegion potentially throwing a NPE 18 - Parsing Israeli * numbers written in international format now works 19 - PhoneNumberMatcher doesn't match timestamps as phone-numbers 20* Metadata changes 21 - Updates for AN, AX, BF, BJ, BR, BS, DJ, FI, IN, LV, MW, RS, SC, VN 22 - New countries supported: SS (South Sudan), CW (Curaçao) and BQ (Bonaire, Sint Eustatius and Saba) 23* Refactoring of the private formatting functions in PhoneNumberUtil to ensure names are more 24 descriptive and to reduce code duplication. 25 26January 19th, 2012: libphonenumber-4.5 27* Code changes 28 - Support for non-geographical country calling codes (e.g. +800). 29 - Modify formatInOriginalFormat to not insert/remove/modify digits in the original number passed 30 in. 31 - Fix formatOutOfCountryKeepingAlphaChars to not throw a NPE. 32 33* Metadata changes 34 - Updates for AR, BH, CI, CN, CR, DE, GA, IL, JO, JP, KE, KZ, LB, LK, LT, MV, MW, MZ, NA, NL, NZ, 35 PL, RO, SA, SV, TM, UG, US 36 - New country calling codes: 800, 808, 883, 888, 979 37 - Geocoding data updates: AR, US 38 39December 9th, 2011: libphonenumber-4.4 40* Code changes 41 - Support for Voicemail numbers 42 - Support prefixes "xt" and "xtn" to indicate extensions of phone numbers 43 - Change formatInOriginalFormat to use raw_input for numbers with incorrect leading zeroes, instead 44 of all invalid numbers. 45 46* Metadata changes 47 - Updates for AR, BD, CH, CI, IL, IR, IS, IT, JP, KW, LR, MM, NG, SA, SC, UZ 48 49November 24th, 2011: libphonenumber-4.3 50* Code changes 51 - Fix the problems with AYTF crashing for longer numbers entered with +CountryCode, and incorrectly 52 removing national prefix for some numbers. 53 - Improve PhoneNumberMatcher to not match numbers ending with '%'. 54 - Fix formatNumberForMobileDialing to handle Israeli star numbers, Peruvian and Colombian numbers. 55 - Modify formatInOriginalFormat to use the raw input if we don't have a formatting pattern for a 56 number. 57 - Simple offline geocoding function which takes into account the user's region. 58 59* Metadata changes 60 - Updates for CR, GN, JP, KE, PL, SG, SR, SX, TH, TK 61 62November 10th, 2011: libphonenumber-4.2 63* Code changes 64 - Providing an "exact match" isEmergencyNumber method 65 - Improvement to PhoneNumberMatcher: requires national prefix to be present 66 when matching national-format numbers, unless matching for a region where it 67 is explicitly marked in the metadata that they may be omitted. Applies to 68 leniency level VALID and higher. 69 - Change formatNumberForMobileDialing not to modify the phoneNumber passed in. 70 71* Metadata changes 72 - Emergency numbers added for all remaining countries 73 - Collected data on which numbers we format with a national prefix are 74 commonly written without one and added this 75 - Updates for AR, AT, BH, CZ, GR, IR, KM, LT, MX, PT, SE, SO, UG 76 - Addition of SX (Sint Maarten) 77 78October 19th, 2011: libphonenumber-4.1 79* Code changes 80 - Update code and metadata for countries with IDD "8~10" to accept phone 81 numbers where the "~" is omitted. 82 - Modify formatInOriginalFormat to use raw_input (when present) when the number 83 is considered as invalid by the library. 84 - Add ShortNumberUtil to deal with international short phone numbers, such as 85 short codes and emergency numbers. 86 - Increase the maximum phone-number length accepted when parsing (now set to 87 16). 88 89* Metadata changes 90 - Updates: BF, BN, CN, DE, DK, DO, FR, IN, KI, KW, MC, MD, ML, PA, QA, SB, UK, 91 WS 92 - Emergency number information also added to: AE, AF, AL, AM, AR, AT, AU, BA, 93 BB, BD, BE, BG, BH, BO, BR, BY, CA, CH, CL, CN, CO, CR, CY, CZ, DE, DJ, DK, 94 DO, DZ, EC, EE, EG, ES, FI, FJ, FO, FR, GB, GE, GF, GH, GI, GL, GR, GT, GY, 95 HK, HN, HR, HU, ID, IE, IL, IN, IR, IS, IT, JM, JO, JP, KR, KW, KY, KZ, LB, 96 LK, LT, LU, LV, MA, MC, MD, ME, MK, ML, MM, MN, MO, MT, MU, MV, MX, MY, NG, 97 NI, NL, NO, NP, OM, PA, PE, PH, PK, PL, PM, PT, PY, QA, RO, RS, RU, RW, SA, 98 SB, SD, SE, SG, SI, SK, SL, SM, SR, SV, SY, TD, TH, TJ, TM, TN, TR, TT, TW, 99 UA, UG, US, UY, UZ, VA, VE, VN, VU, ZA, ZM, ZW 100 101October 6th, 2011: libphonenumber-4.0 102* Code changes 103 - New function formatNumberForMobileDialing, which attempts to format a number in 104 such a way that the call can be connected from a mobile phone. If this is 105 impossible, for example for numbers that cannot be internationally dialled, 106 then an empty string is returned. 107 - Fallback functionality to English for non-CJK languages for geocoding 108 109* Metadata changes 110 - Collecting data for emergency numbers 111 - Updates: AR, AU, BR, CN, CZ, EG, GD, IE, IL, JM, KW, KH, SD, SO, TR, UG, UZ 112 - Geocoding data changes: AO, AR, AT, BJ, BR, CD, CG, CI, CL, CN, CV, DE, ES, 113 FR, GR, GW, HU, KM, MR, MZ, NL, PL, PT, SE, ST, SZ 114 115September 13th, 2011: libphonenumber-3.9 116* Code changes 117 - Enable AsYouTypeFormatter to handle long IDD and NDD. 118 - Allow the presence of an IDD following a +. 119 - Fix formatting of phone numbers which contain only 0s in the national number. 120 - Refactored some code in geocoding including AreaCodeMap and the storage 121 strategies. 122 123* Metadata changes 124 - Updates: AM, BE, BH, BJ, BR, BT, BZ, CI, CL, CN, DE, DK, DM, DZ, EC, EG, FJ, 125 GR, HR, HT, IN, IQ, IS, JM, KE, KG, KH, KR, LA, LB, LR, MA, MD, ML, MO, MX, 126 MY, NE, NG, PG, PH, PK, PY, QA, SA, SD, SG, SN, TD, TG, TH, TN, TT, UG, YE, 127 ZA, ZM 128 - New geocoding data for: AC, CG, CU, CV, EG, ET, FI, FI, FI, GL, JP, KM, MA, 129 MA, MU, MU, MU, MZ, RS, SH, SH, SL, SO, ST, TG, TG, TG, UG, ZM 130 - Updated geocoding data for: AR, DE 131 132August 11th, 2011: libphonenumber-3.8 133* Code changes 134 - Fix to demo to not throw null-ptr exceptions for invalid NANPA numbers 135 - Fixed AYTF to not accept plus signs in the middle of input 136 - PhoneNumberMatcher improvements - added STRICT_GROUPING and EXACT_GROUPING 137 levels, numbers followed/preceded by a currency symbol will not match, 138 multiple numbers separated by phone-number punctuation will now match. ", " 139 is no longer accepted as an extension symbol when matching, only when 140 parsing. "x" is only accepted as a carrier code or extension marker, not 141 otherwise. 142 - Changes to handling of leading zeroes - these will not be silently ignored 143 anymore, but will be stored as part of the number. 144 - PhoneNumberOfflineGeocoder - new method to get the description of a number that assumes 145 the validity of the number has already been checked and will not re-verify it. 146 - Split geocoding US binary data into multiple files. 147 148* Metadata changes 149 - Updates: AR, AT, AU, AZ, BE, BF, BH, BY, CA, CN, CO, CR, HT, HU, IT, KG, KH, 150 LB, LI, ME, NC, RS, SE, TT, US, VG, ZA 151 - New geocoding data for: AL, AM, AO, BF, BJ, BW, CD, CI, CZ, DZ, EE, GH, GM, 152 GN, GR, GW, HU, IS, KE, LK, LS, LT, LU, LV, MD, MG, MR, NA, PE, QN, SD, SK, 153 SN, SZ, TN, VE, VN, ZA, ZW 154 - Updated geocoding data for: GB, PT, US 155 - Revised sorting of geocoding data 156 157July 5th, 2011 158* Code changes 159 - Refactored AreaCodeMap to minimize binary and memory footprint by using 2 different strategies. 160 - Refactored BuildMetadataFromXml.java and added unittests. 161 162* Metadata changes 163 - Regenerate binaries for all existing area code mapping data with smaller sizes. 164 - Added city-level area code data mapping for US and Canada. 165 166June 29th, 2011 167* Code changes 168 - Fixed issue 38, issue 39, issue 41 and issue 43 169 170* Metadata changes 171 - Added phone number area mapping files for 172 - JP in Japanese 173 - FR in French 174 - TW in English, Simplified and Traditional Chinese 175 - RU in English 176 - IT in English and Italian 177 - PT in Portuguese 178 - TR in English and Turkish 179 - CH in English, German, French and Italian 180 - Updates: CR, GE, IT, JP, KW, MH, MP, MU, PE, PM, RW, TG, TJ, TK 181 182June 14th, 2011 183* Code changes 184 - Added PhoneNumberOfflineGeocoder, supporting classes and their unittests. 185 - Added GenerateAreaCodeData to transform phone number area mapping files from text files to binary 186 files. 187 - Modified PhoneNumberParserServlet.java and phonenumberparser.jsp to incorporate 188 PhoneNumberOfflineGeocoding in the appengine demo. 189 190* Metadata changes 191 - Added phone number area mapping files for NANPA countries and GB in English, NL in Dutch, AR, CL 192 and ES in Spanish, AT and DE in German, SE in Swedish, BR in Portuguese, KR in English, Korean, 193 Simplified and Traditional Chinese, and CN in Simplified Chinese. 194 195June 10th, 2011 196* Code changes: 197 - Fixes for PhoneNumberMatcher to be more restrictive in valid mode and not match numbers 198 surrounded by Latin characters. This ensures, for example, the string abc123456789acg will not be 199 marked as a phone numbers. 200 - Enable PhoneNumberUtil to handle all digits, rather than a subset 201 - Fix for AYTF issue36 and improvement for US AYTF behaviour. 202* Metadata changes: 203 - Updates: BG, EG, ES, GH, PF, SC, SY, VA 204 205May 24th, 2011 206* Code changes: 207 - Phonenumber now implements Serializable. 208 - findNumbers doesn't accept numbers with mis-matched brackets as phone-numbers 209 - An offline phone number geocoder has been added. The current implementation just returns the 210 region name for the phone number; more detailed geocoding will be added later. 211* Metadata changes: 212 - New countries: GF, KP, NC, PA, PF, PW, PY, SB, SR, TO, UY, VU 213 - Updates: CY, CZ, ES, GB, GQ, JM, MQ, TN, VI 214 215May 9th, 2011 216* Code changes: 217 - Fixed potential for a null-ptr exception in getExampleNumber 218 - Potential speed improvement with replacement of StringBuffer with StringBuilder 219* Metadata changes 220 - Changed way that international formats are specified to make it easier to do so 221 - New countries: AX, CC, CX, WF 222 - Updates: AM, AR, AU, AW, CN, CO, CR, DM, EC, ET, FI, FJ, GH, IN, JP, KE, KM, 223 KN, LR, MD, MQ, MX, NP, PH, SC, SE, SM, SN, SY, UG, US, VC, VI, ZM 224 225Apr 26th, 2011 226* Code changes: 227 - Improved PhoneNumberMatcher for cases with other numbers before or after the phone number. 228 - Improved AsYouTypeFormatter not to use formatting rules containing non-formatting characters 229 (e.g. '*' in Israeli star numbers). 230* Metadata changes: 231 - New countries: FJ, FM, GY, NF, NI, NR, TV. 232 - Updates: AM, AZ, BF, BW, BZ, CI, CR, GB, GP, HK, JM, KH, LB, LY, MV, PE, PK, SZ, TJ, US. 233* Minor documentation updates 234 235Apr 11th, 2011 236* Bug fixes: 237 - Adding date exclusion pattern in PhoneNumberMatcher. 238 - Fixing bug with selecting a suitable region for numbers with leading zeros where mutiple regions 239 for that country code are possible. 240* Metadata changes: 241 - Updates: AG, AI, AS, BB, BM, BS, CA, DM, DO, ET, FO, GD, GE, GU, IN, JM, KN, KY, LC, MN, MP, MR, 242 MS, NO, PR, TC, TR, TT, US, VC, VG, VI 243 - New countries: CK, FK, GT, IO, KI, SJ, SV 244* Documentation updates and some small refactoring to AsYouTypeFormatter 245 246Mar 31st, 2011 247* New functionality: 248 - Can parse and format numbers in RFC-3966 format. 249 - Added isAlphaNumber to check to see if a number is a "vanity" or "alpha" number 250 - Can format a number made up of alpha-characters in an "out-of-country" format (e.g. 0011 1 251 800-SIX-FLAG to dial an American alpha-number from Australia). 252* Code changes: 253 - Renamed private vars, private methods and fixed comments to try and differentiate between country 254 (calling) codes and region codes. 255 == Non-backwards-compatible API changes: == 256 - Renamed getSupportedCountries to getSupportedRegions, as this more accurately reflects that the 257 library is based around region codes. 258 - getNationalSignificantNumber is no longer a static method, but is instead an instance method. 259* Metadata changes: 260 - Bug-fixes and updates for AU, AZ, EE, FI, IN, JO, KW, KZ, MV, RU, RR, VA 261 - New country: ME 262 263Mar 22nd, 2011 264* Metadata changes: 265 - New mobile-number pattern for AU 266 267Mar 10th, 2011 268* New functionality: 269 - New function to format a number with the preferred domestic carrier code used when parsing, 270 falling back to a default calling code otherwise (formatNationalNumberWithPreferredCarrierCode). 271 - We now store the preferred domestic carrier code used when the user calls parseAndKeepRawInput 272 - New functionality to extract phone-numbers from text (findNumbers). This is just the first 273 version - it does not extract ALPHA numbers such as 0800 CALL ME, or numbers where alternate 274 endings are specified (such as 03-331 6005/6006). 275* Code changes: 276 - Tidying up the test file to use several pre-defined phone number constants 277 - Fixing several lint errors 278 - Added javadoc to formatNationalNumberWithCarrierCode 279 - Fixed bug where a null pointer exception was thrown when getAsYouTypeFormatter was called with an 280 invalid region code 281 - Improved AsYouTypeFormatter to deal with countries with variable-length patterns such as LU 282* Metadata changes: 283 - Bug-fixes and updates for the following countries: BF, BO, BR, CL, CO, CR, DK, FO, GE, KR, KW, 284 LA, LU, MU, SC, SH, TR, VE 285 - New country: SH 286 287Mar 10th, 2011 288* Code changes: 289 - releasing the code to run the demo on localhost or appengine. 290 291Mar 7th, 2011 292* Metadata changes: 293 - Adding support for AC 294 295Feb 11th, 2011 296* Metadata changes: 297 - Update UAN number ranges for IM and JE. 298 299Feb 9th, 2011 300* Code changes: 301 - Better isNumberMatch method. This will now recognise numbers starting with a national prefix as 302 an NSN_MATCH, instead of SHORT_NSN_MATCH. 303 == Note Non-backwards-compatible API change here! == 304 This will no longer throw a NumberParseException - instead we will return NOT_A_NUMBER if one 305 or other of the numbers provided do not match. 306 - New number-type UAN now supported in the code. This represents Company Numbers or Universally 307 Accessible Numbers. 308* Metadata changes: 309 - Bug-fixes and updates for the following countries: AG, AZ, BA, BE, CA, CU, ES, FI, GB, GD, GG, 310 IE, IL, IM, IN, IR, IT, JE, JP, KR, KW, NG, NZ, PK, PS, PT, RU, SE, SG, SY, US 311 - New countries: CO, LU, LY, MC, SM 312 - Addition of "Personal Number" ranges to all NANPA countries 313 314Jan 31st, 2011 315* Code changes: 316 - Introducing equals() and hashCode() methods for the Phonenumber.PhoneNumber class 317 318Jan 28th, 2011 319* Code changes: 320 - Fixing critical bug with non-Android-compatible code. isEmpty() was being used and CANON_EQ in 321 reg-ex matches. 322 323Jan 20th, 2011 324* Code improvements: 325 - Handle null phone-numbers when parsing by throwing a NumberParseException. 326 - Handle extension written with an accented "o", as per Spanish, when parsing. 327 - Handle U+30FC dashes as phone-number punctuation. 328 - Allow "ZZ" or null regions to be specified for numbers starting with a full-width "+" symbol, or 329 with other characters (such as whitespace) before the leading +. 330 - new getLengthOfNationalDestinationCode function 331* Metadata changes: 332 - New types of numbers introduced: UAN (universal or "company" numbers) and short codes. Note that 333 "generalDesc" patterns do not encompass short-codes. No code-support for these has been 334 introduced as of yet. We are also now enabling the collection of data for information such as 335 area-code-optional, and no-international-dialling ranges. 336 - Data updates as per ITU notifications/bug fixes for the following countries: AM, BH, CD, CG, CR, 337 DE, DJ, EE, GB, GN, HU, IE, JO, JP, LB, LR, MA, MK, MN, MR, NA, PG, SC, SG, SO, SZ, VN, ZA, ZW 338 - Data added for the following countries: BZ, CU, EC, FO, GI, HN, HT, LK, MT, MV, NU, PS, SD 339 - Indentation fixes in reg-exes for the following countries: BG, GB 340 - Allow nationalPrefixForParsing to be specified for countries with no national prefix, to handle 341 possible carrier prefixes 342 343Jan 3rd, 2011 344* Metadata changes: 345 - Updates to JE 346 - Updated comments for GB/GG/IM/JE 347 348November 25th, 2010 349* Metadata changes: 350 - Updates to existing countries: AD, AG, AI, AN, AS, BB, BG, BM, BS, BW, CA, DM, DO, GD, GH, GM, 351 GU, IN, JM, KN, KY, KZ, LB, LC, MP, MS, PR, SY, TC, TT, TZ, US, VC, VG, VI. 352 - Reorganize reg-exes for better readability. 353 - Updated comments. 354 355October 22nd, 2010 356* Metadata changes: 357 - Updates to existing countries: AE, GB, GG, IM, JE 358 359October 15th, 2010 360* Code improvements: 361 - Allowed parsing of numbers that start with "++" or a full-width "+" symbol 362 - Allowed reg-exes for national and possible number patterns to have white space in them in the 363 source XML file 364 - Added a more useful toString method for the phone number proto class 365* Metadata changes: 366 - Updates to existing countries: AF, BF, BO, ES, GB, GG, IM, IS, JE, JE, JP, KR, PE, PT, RU, SE, 367 TT, ZW 368* Bug fixes: 369 - Parsing empty strings with invalid region codes no longer throws a null pointer exception 370 371September 4th, 2010 372* Code improvement: 373 - Added new phone number type: pager 374* Metadata change: 375 - update to existing country: GG, IM, JE, RS, RU 376* Bug fixes: 377 - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition() 378 - AsYouTypeFormatter for UK childline number 379 380September 1st, 2010 381* Bug fix on KZ metadata. 382 383August 17th, 2010 384* Code improvement: 385 - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and 386 BuildMetadataProtoFromXml.java 387 - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java 388 - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate 389 files. 390 391August 16th, 2010 392* Bug fixes 393 - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format. 394 - AsYouTypeFormatter for formatting Chinese 400/800 numbers entered in national format. 395* Metadata change: 396 - new countries: AM, AN, BH, GL, IS 397 - adding national prefix 1 to all NANPA countries. 398 - update to existing countries: BF, FR, UK, PK, RE 399 400August 4th, 2010 401* Further improve startup performance 402 - Preload no country specific metadata at startup. 403 - Stop creating the file containing mapping from country calling code to region code 404 and loading it at startup; instead, do the initialization in PhoneNumberUtil. 405 406July 31th, 2010 407 408* Improve startup performance 409 - Separate generated metadata binary file to one file per region 410 - Preload US at start up, and load other region at the time when needed 411 - Create a file containing mapping from country calling code to region code, 412 and load it at startup 413 - Same change also applied to unittests 414 415July 30th, 2010 416* Metadata change: 417 - new country: TL 418 - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN 419 420* Code improvement 421 - China local number formatting for AsYouTypeFormatter 422 - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910# 423