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