MSISDN: это данные SIM-карты? Почему все предоставленные функции (от Blackberry и Android) для получения MSISDN не надежны?
у меня есть несколько вопросов о MSISDNs. Я понимаю:
- MSISDN-это в основном номер телефона
- это не IMSI
что мне нужно знать далее:
номер MSISDN сжигается (хранится) в SIM-карте? Если да, все ли поставщики удостоверяются, что в SIM-карте есть информация MSISDN? Если это нет, чтобы быть уточненным, ни один из программного кода не может получить MSISDN номер?
-
некоторые люди предлагают получить MSISDN, как показано ниже кода. Но оба кода возвращают null, если" мой номер телефона " не установлен в устройстве. С другой стороны, он вернет "мой номер телефона", если он установлен. Таким образом, вопрос: "мой номер телефона" равен MSISDN?
TelephonyManager.getLine1Number();
--> для AndroidPhone.getDevicePhoneNumber(true);
--> для Blackberry Как код выше, данные строки возврата извлекаются из самого устройства или с SIM-карты?
3 ответов
У меня есть некоторое понимание этого вопроса для вас.
- MSISDN can храниться на SIM-карте, однако большинство сетевых провайдеров (все провайдеры в Южной Африке) не хранят MSISDN на SIM-карте. Для этого есть несколько причин, наиболее примечательная из которых:
- динамическое распределение MSISDN: предоплаченные Симы иногда выделяются MSISDN при их первом использовании. Это означает, что сеть имеет пул доступных MSISDNs и выделяет их всякий раз, когда новый предоплаченный SIM приходит в интернет. Это означает, что при отправке SIMs у них еще нет MSISDN, что означает, что вы не можете хранить MSISDN до отправки SIMs. Некоторые сети "истекают" распределения MSISDN после периода бездействия, особенно когда их доступные номера заканчиваются, и возвращают эти номера в доступный пул.
- переносимость мобильных номеров: некоторые страны позволяют мобильным абонентам сохранять MSISDN, но изменять сети. Это означает, что MSISDN будет перемещен с SIM-карты для 1 сети на SIM-карту для другой сети.
таким образом, пользователь часто заканчивается с записью MSISDN на SIM-карте пустым. Пользователь по-прежнему может хранить MSISDN на SIM-карте, но это также позволяет им хранить любой произвольный номер, и это не гарантирует, что он будет установлен или даже будет фактическим номером телефона абонентов.
2. Те звонки, которые вы спросили о fetch номер, который хранится на SIM-карте. Если номер не установлен, вы не получите его, и если пользователь имеет неправильный номер, то у вас будут неправильные данные.
3. Правильно, эта строка извлекается из самой SIM-карты.
единственный полу-надежный способ обнаружения MSISDN - через WAP / WEB, когда мобильный оператор включает MSISDN в заголовки (вы можете сделать некоторые хитрости webview, чтобы увидеть, какие заголовки проходят) - однако вы видите их только если сеть поддерживает его и если пользователь находится на мобильных данных-т. е. он не будет работать, если пользователь находится на WiFi.
другой механизм, о котором я могу думать (единственный гарантированный механизм, о котором я могу думать), - через сеанс USSD, поскольку вы всегда получаете правильный MSISDN от оператора, но я не нашел способ программно открыть сеанс USSD и прочитать ответ (по крайней мере, в Android). У меня есть USSD-сервис, единственным выходом которого является MSISDN, но, к сожалению, это еще не доказано для меня.
поскольку никто не ответил в последний час, так как вы разместили свой вопрос, вот что я знаю (хотя я не эксперт в этой области, просто имею некоторый опыт):
- MSISDN-это номер телефона; номер, по которому люди могут позвонить вам.
- Он не может быть "сожжен" на sim-карте, поскольку вы можете изменить sim-карту (обновить или изменить на другого оператора) и сохранить свой номер телефона = MSISDN. Я думаю, что есть таблица сопоставления у операторов, которые скрывают от SIM-карты ID в MSISDN и обратно, когда выполняется вызов / передача данных. MSISDN может храниться на карте.
вы должны учитывать, что MSISDN имеет тип BIGINT. Поэтому вывод его делает преобразование типа заранее, такой