From 271744423ad609e4f1c10e5fee531a3d06b3bf10 Mon Sep 17 00:00:00 2001 From: Armen Babikyan Date: Mon, 1 Jun 2026 10:45:24 -0400 Subject: [PATCH] TEL-27488: Support German +49171-prefixed 13-digit mobile numbers --- python/dialpad_tests.py | 1 + python/phonenumbers/data/region_DE.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/python/dialpad_tests.py b/python/dialpad_tests.py index 1bd96249..a00e728b 100644 --- a/python/dialpad_tests.py +++ b/python/dialpad_tests.py @@ -26,6 +26,7 @@ '+17302559291', # https://dialpad.atlassian.net/browse/TEL-23411 '+18212219050', # https://dialpad.atlassian.net/browse/DP-151149 '+816012345678', # https://dialpad.atlassian.net/browse/TEL-25836 + '+491711234567890', # https://dialpad.atlassian.net/browse/TEL-27488 ] print ('######### - VALID BY LIBRARY - ################') diff --git a/python/phonenumbers/data/region_DE.py b/python/phonenumbers/data/region_DE.py index bb7f458e..91a7a8f4 100644 --- a/python/phonenumbers/data/region_DE.py +++ b/python/phonenumbers/data/region_DE.py @@ -4,7 +4,7 @@ PHONE_METADATA_DE = PhoneMetadata(id='DE', country_code=49, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}', possible_length=(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), possible_length_local_only=(2, 3)), fixed_line=PhoneNumberDesc(national_number_pattern='32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}', example_number='30123456', possible_length=(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), possible_length_local_only=(2, 3, 4)), - mobile=PhoneNumberDesc(national_number_pattern='1(?:(?:5(?:[0-25-9]\\d\\d|3(?:10|33))|7[26-9]\\d\\d)\\d{6}|6[023]\\d{7,8})|17\\d{8}', example_number='15123456789', possible_length=(10, 11)), + mobile=PhoneNumberDesc(national_number_pattern='1(?:(?:5(?:[0-25-9]\\d\\d|3(?:10|33))|7[26-9]\\d\\d)\\d{6}|6[023]\\d{7,8})|17(?:\\d{8}|1\\d{10})', example_number='15123456789', possible_length=(10, 11, 13)), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7,12}', example_number='8001234567890', possible_length=(10, 11, 12, 13, 14, 15)), premium_rate=PhoneNumberDesc(national_number_pattern='(?:137[7-9]|900(?:[135]|9\\d))\\d{6}', example_number='9001234567', possible_length=(10, 11)), shared_cost=PhoneNumberDesc(national_number_pattern='180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}', example_number='18012345', possible_length=(7, 8, 9, 10, 11, 12, 13, 14)),