Как определить, совпадает ли номер телефона (с кодом страны вызова) с другим (без кода страны) - PullRequest
1 голос
/ 22 июня 2011

Я работаю над приложением типа Viber для iPhone (http://www.viber.com/).

Мне нужно использовать номер телефона пользователя в качестве идентификатора в моей базе данных.

Когда пользователь запускает приложение, мне нужно определить, какие контакты используют одно и то же приложение. Я могу получить контактный телефон с IOS API.

Но этот сценарий проблематичен при рассмотрении кодов вызова стран (http://en.wikipedia.org/wiki/List_of_country_calling_codes):

При «регистрации» ПОЛЬЗОВАТЕЛЬ А вводит свой номер телефона без кода страны. ПОЛЬЗОВАТЕЛЬ A находится в списке контактов ПОЛЬЗОВАТЕЛЯ B, но без кода страны вызова.

Например, во Франции: +33 x xx xx xx xx ссылается на тот же телефон, что и 0x xx xx xx xx

Есть ли простой способ решить эту проблему?

1 Ответ

2 голосов
/ 23 июня 2011

Нет простого способа конвертировать из локального формата в формат E.164.Проблема заключается в том, что локальный мобильный формат каждой страны различен, поэтому у вас не может быть единого набора правил для всех стран.Вы должны выяснить, какие форматы поддерживает местный оператор мобильной связи.

Если вам требуется поддержка нескольких стран, вы можете использовать его на MCC / MNC , возвращенном с iphone.Мне еще предстоит найти список того, какие локальные форматы поддерживаются в каких странах.Это также не решает проблему роумингового телефона, номер которого находится в местном формате.

Если вам приходится иметь дело с несколькими странами, у вас будут проблемы с такими странами, как Австралия, которые поддерживаютместные форматы чисел, которые делают преобразование их в формат E.164 практически невозможным без дополнительной информации ....

См. этот Вопрос , который в основном является тем же вопросом, что и у вас.

Я бы порекомендовал всем вашим пользователям использовать формат E.164 для хранения всех имеющихся там телефонных номеров.Если вам нужно поддержать конверсию, поддержите только те форматы стран, с которыми вам приходится иметь дело.Убедитесь, что вы изучили все форматы, которые поддерживает страна.

Вы можете попытаться использовать общий, как в приведенном выше вопросе, но он не будет работать для всех числовых форматов.

В программном обеспечении УАТС, над которым я работаю, мы используем механизм, основанный на правилах, который клиент может настроить для своей среды, и мы пытаемся предварительно заполнить страны, в которые мы продаем.

...