Ответ 1
У меня есть некоторое понимание этого вопроса для вас.
- MSISDN можно хранить на SIM-карте, однако большинство сетевых провайдеров (все провайдеры в Южной Африке) не хранят MSISDN на SIM-карте. Есть несколько причин для этого, наиболее заметное существо:
- Распределение динамических MSISDN: Prepaid SIMs когда-то выделяется MSISDN при первом использовании. Это означает, что сеть имеет пул доступных MSISDN и распределяет их всякий раз, когда появляется новая предоплаченная SIM-карта. Это означает, что при отправке SIM-карт у них еще нет MSISDN, что означает, что вы не можете хранить MSISDN до отправки SIM-карт. Некоторые сети "истекают" выделения MSISDN после периода бездействия, особенно когда их доступные номера работают на низком уровне, и возвращают эти числа в доступный пул.
- Мобильность мобильного номера: в некоторых странах мобильные абоненты могут сохранять свои MSISDN, но изменять сети. Это означает, что MSISDN будет перемещен с SIM-карты, которая предназначена для 1 сети для SIM-карты, которая предназначена для другой сети.
Таким образом, пользователь часто заканчивает запись MSISDN на SIM-карте пустой. Пользователь по-прежнему может хранить MSISDN на самой SIM-карте, но это также позволяет им хранить любое произвольное число, и не гарантируется, что он будет установлен или даже будет фактическим номером телефона абонентов.
2. Те звонки, которые вы задали, чтобы получить номер, который хранится на SIM-карте. Если номер не установлен, вы не получите его, и если у пользователя установлен неправильный номер, вы получите неверные данные.
3. Правильно, эта строка извлекается из самой SIM-карты.
Единственный полунадежный способ, который я обнаружил для MSISDN, - это WAP/WEB, когда Mobile Operator включает MSISDN в заголовках (вы можете сделать некоторые трюки webview, чтобы увидеть, какие заголовки проходят), однако вы видите только эти если сеть поддерживает его, и если пользователь находится на мобильных данных - то есть он не будет работать, если пользователь подключен к WiFi.
Другой механизм, о котором я могу думать (единственный гарантированный механизм, о котором я могу думать), - это сеанс USSD, поскольку вы всегда получаете правильный MSISDN от оператора, но я не нашел способ программного открытия USSD сессии и чтения ответа (по крайней мере, в Android). У меня есть служба USSD, единственным выходом которой является MSISDN, но, к сожалению, это еще не доказано для меня.