web-dev-qa-db-ja.com

MSISDN:それはSIMカードデータですか? MSISDNをフェッチするために提供されるすべての関数(BlackberryおよびAndroidから)が信頼できないのはなぜですか?

MSISDNについていくつか質問があります。わかります:

  1. MSISDNは基本的に電話番号です
  2. IMSIではありません

私がさらに知る必要があるのは:

  1. MSISDN番号はSIMカードに焼き付けられていますか?はいの場合、すべてのプロバイダーはSIMカードにMSISDN情報があることを確認していますか?いいえの場合、明確にするために、どのプログラミングコードもMSISDN番号をフェッチできませんか?

  2. 以下のコードとしてMSISDNをフェッチすることを提案する人もいます。ただし、デバイスに「私の電話番号」が設定されていない場合、両方のコードはnullを返します。逆に、設定されている場合は「私の電話番号」が返されます。したがって、問題は次のとおりです。「私の電話番号」はMSISDNと同じですか?

    TelephonyManager.getLine1Number();-> Androidの場合

    Phone.getDevicePhoneNumber(true);->ブラックベリーの場合

  3. 上記のコードのように、返される文字列データはデバイス自体またはSIMカードからフェッチされますか?

15
Maria Hientono

私はあなたのためにその問題についていくらかの洞察を持っています。

  1. MSISDN canはSIMカードに保存されますが、ほとんどのネットワークプロバイダー(南アフリカのすべてのプロバイダー)はMSISDNをSIMカードに保存しません。これにはいくつかの理由がありますが、最も注目すべきものは次のとおりです。
    • 動的MSISDN割り当て:プリペイドSIMは、最初に使用されたときにMSISDNが割り当てられることがあります。これは、ネットワークに利用可能なMSISDNのプールがあり、新しいプリペイドSIMがオンラインになるたびにそれらを割り当てることを意味します。これは、SIMが出荷されたとき、まだMSISDNがないことを意味します。つまり、SIMを出荷する前にMSISDNを保存することはできません。一部のネットワークは、特に使用可能な数が少なくなっている場合に、非アクティブな期間の後にMSISDN割り当てを「期限切れ」にし、これらの数を使用可能なプールに戻します。
    • 携帯電話番号ポータビリティ:一部の国では、モバイル加入者はMSISDNを維持しながら、ネットワークを変更できます。これは、MSISDNが1つのネットワーク用のSIMから別のネットワーク用のSIMに移動されることを意味します。

そのため、ユーザーはSIMのMSISDNエントリが空白になることがよくあります。ユーザーは引き続きMSISDNをSIMに保存できますが、これにより任意の番号を保存することもでき、設定されていることや、加入者の実際の電話番号であることが保証されません。

2. SIMカードに保存されている番号を取得するために、あなたが尋ねた電話。番号が設定されていない場合は取得できません。また、ユーザーの番号が間違っている場合は、詳細が正しくありません。

3.正解です。この文字列はSIM自体から取得されます。

MSISDNを検出するための唯一の半信頼性の高い方法は、モバイルオペレーターがヘッダーにMSISDNを含める場合にWAP/WEBを使用することです(Webビューのトリックを実行して、どのヘッダーが通過しているかを確認できます)。ただし、これらはネットワークの場合にのみ表示されます。それをサポートし、ユーザーがモバイルデータを使用している場合-つまり、ユーザーがWiFiを使用している場合は機能しません。

私が考えることができる他のメカニズム(私が考えることができる唯一の保証されたメカニズム)は、常にオペレーターから正しいMSISDNを取得するため、USSDセッションを介したものですが、プログラムでUSSDセッションを開いて読み取る方法が見つかりませんでした応答(少なくともAndroid)。出力がMSISDNのみのUSSDサービスがありますが、残念ながら、これはまだ使用可能であることが証明されていません。

20
darryn.ten

あなたが質問を投稿してから過去1時間に誰も返信しなかったので、これが私が知っていることです(私はこの分野の専門家ではありませんが、経験があります):

  1. MSISDNは電話番号です。人々があなたに電話をかけることができる数。
  2. SIMカードを変更(アップグレードまたは他のオペレーターへの変更)して電話番号= MSISDNを維持できるため、SIMカードに「焼き付ける」ことはできません。オペレーターには、SIMカードIDからMSISDNに変換し、通話/データ転送が行われたときに戻るマッピングテーブルがあると思います。 MSISDNがカードに保存されている可能性があります。
1
Szilard Barany

MSISDNにはBIGINTタイプがあることを考慮に入れる必要があります。したがって、出力すると、このように事前に型変換が行われます

0
Mikhail Levin