Нет простого способа конвертировать из локального формата в формат E.164.Проблема заключается в том, что локальный мобильный формат каждой страны различен, поэтому у вас не может быть единого набора правил для всех стран.Вы должны выяснить, какие форматы поддерживает местный оператор мобильной связи.
Если вам требуется поддержка нескольких стран, вы можете использовать его на MCC / MNC , возвращенном с iphone.Мне еще предстоит найти список того, какие локальные форматы поддерживаются в каких странах.Это также не решает проблему роумингового телефона, номер которого находится в местном формате.
Если вам приходится иметь дело с несколькими странами, у вас будут проблемы с такими странами, как Австралия, которые поддерживаютместные форматы чисел, которые делают преобразование их в формат E.164 практически невозможным без дополнительной информации ....
См. этот Вопрос , который в основном является тем же вопросом, что и у вас.
Я бы порекомендовал всем вашим пользователям использовать формат E.164 для хранения всех имеющихся там телефонных номеров.Если вам нужно поддержать конверсию, поддержите только те форматы стран, с которыми вам приходится иметь дело.Убедитесь, что вы изучили все форматы, которые поддерживает страна.
Вы можете попытаться использовать общий, как в приведенном выше вопросе, но он не будет работать для всех числовых форматов.
В программном обеспечении УАТС, над которым я работаю, мы используем механизм, основанный на правилах, который клиент может настроить для своей среды, и мы пытаемся предварительно заполнить страны, в которые мы продаем.