[Перевод] Заблуждения программистов о телефонных номерах
Список составили разработчики Java, C++ и JavaScript библиотеки libphonenumber для парсинга, форматирования и проверки телефонных номеров
Телефонные номера используются повсеместно и довольно давно. Поэтому очень удивительно, сколько заблуждений остаётся у программистов относительно них.
1. Телефонные номера, действительные сейчас, останутся действительными всегда. Телефонные номера определённого типа (например, мобильные), никогда не сменят тип.
Подключенный сегодня телефонный номер завтра могут отключить. Бесплатный сегодня номер завтра может стать платным. Оператор связи может расширить диапазон доступных номеров, добавив дополнительную цифру и увеличив длину номера.
Подсказка. Не сохраняйте свойства телефонного номера, такие как валидность или тип. Проверяйте эту информацию с помощью библиотеки, когда необходимо.
2. Телефонный номер однозначно идентифицирует человека.
Ещё не так давно, когда мобильников не существовало, считалось вполне нормальным иметь один домашний телефон для всей семьи. В некоторых районах мира такое сохранилось до сих пор, когда родственники (или даже друзья) пользуются общим телефонным номером.
3. У человека есть только один телефонный номер.
Очевидно, это не всегда так.
4. Телефонные номера не могут быть использованы заново.
Старые номера заново вводят в оборот и раздают другим людям.
5. Каждый код страны соответствует в точности одной стране.
У США, Канады и нескольких карибских островов одинаковый код +1. Россия и Казахстан делят код +7. И это не единственные примеры!
6. Каждой стране соответствует только один код.
В данный момент (март 2016 года) на телефоны в спорной и не всеми признанной территории Косово можно дозвониться через национальные коды Сербии (+381), Словении (+386) или Монако (+377), смотря где и когда был выдан номер.
Подсказка. Используйте телефонный виджет, чтобы подтолкнуть пользователей к вводу телефонного номера в международном формате.
7. Телефонный номер можно набрать отовсюду.
Некоторые номера можно набрать только внутри страны. Некоторые набираются из определённой группы стран, например, как международные номера 00800. Некоторые набираются только если абонент обслуживается конкретным оператором связи.
8. Есть только два способа набрать номер: в международном формате или в местном.
Для некоторых номеров требуются различные префиксы, в зависимости от того, откуда набирается номер; с какого устройства и на какое устройство вы звоните; находитесь ли вы внутри или за пределами определённого географического региона.
Примеры:
- В Бразилии для внутренних звонков в определённых географических границ нужно явно указать код оператора, через которого вы хотите звонить.
- В Непале предваряющий номер »0» опускается в зависимости от того, звоните вы с мобильного или стационарного телефона.
- В Новой Зеландии нужно набрать код региона (например, 03), даже если номер в том же регионе, что и вы, за исключением «близкого» номера (обычно границы города/района), для которого код региона набирать нельзя.
Подсказка. Используйте formatForMobileDialling для получения конкретного номера, который пользователь должен набрать со своего мобильного телефона.
9. Чтобы сделать номер доступным для дозвона, достаточно сменить префикс.
В Аргентине для внутренних звонков нужно вставить цифры »15» после кода региона, но перед местным номером, а цифру »9» после кода страны (54) нужно удалить. Так международный номер +54 9 2982 123456 превращается в местный номер 02982 15 123456.
10. Ни один префикс реального телефонного номера не может быть реальным телефонным номером.
В некоторых странах возможно попасть на другого абонента, если набрать дополнительные цифры после телефонного номера. Так, номер 12345678 может принадлежать одному человеку, а номер 123456 — другому.
11. По неправильно набранному номеру невозможно дозвониться.
В некоторых странах или на некоторых аппаратах лишние цифры отбрасываются. Например, 1–800-MICROSOFT — это неправильный номер, но он всё равно соединит с Microsoft, потому что лишние цифры отбрасываются. Также и на номера вроде 911 в некоторых странах можно позвонить, набрав 911123, но не во всех странах.
В других странах оператор «исправляет» неправильный номер, например, добавляя мобильный код, если он знает, что это мобильный номер.
12. Все действующие телефонные номера соответствуют спецификациям ITU.
Спецификации ITU содержат стандарты вроде такого: «Национальные номера не могут быть больше 16 разрядов», но в Германии раздавали действующие телефонные номера длиннее этого.
13. Все действующие телефонные номера принадлежат какой-либо стране.
Есть много «национальных кодов», которые выдавали организациям без географической привязки, таким как »800» или спутниковые сервисы.
14. Телефонный номер содержит только цифры.
В Израиле некоторые рекламные номера начинаются с »*».
15. Телефонные номера всегда написаны в ASCII.
В Египте телефонные номера обычно записывают местными цифрами.
См. также
Заблуждения программистов относительно времени
Заблуждения программистов об именах