2008-09-13 7 views

答えて

5

GSMの仕様によると、唯一のIMSISIMカード上で利用可能であることが必要です。

実際の電話番号MSISDNは、オペレータのネットワーク内のHLRデータベースに格納されており、SIMカードで利用可能である必要はなく、電話機に送信する必要はありません。

どのような技術(Symbina、Java ...)を使用していても、デバイスやSIMから自分の電話番号を一貫して取得することはできません。オペレーターがSIMにSIMカードを保管している場合や、手動で入力する可能性がある場合は、幸運かもしれませんが、必ずしもそうである必要はありません。

+0

また、MSISDNがSIMに格納されていることがわかると、正しいものではない可能性があります。あなたの番号を別のネットワークから移植した場合は、SIMから読み込んだMSISDNが、移植番号ではなく元の番号であることがわかります。 –

0

Symbianデバイス(またはBREW、または他のプラットフォーム)からMSISDNを取得することは、一般的に不可能です。私たちは試しました。

2

パットが言っているように、SIMの「自分の番号」スロットにアクセスするためのAPIはありますが、まれに私の経験ではこのスロットがいっぱいです。

接続されたアプリケーションの電話番号を取得する通常の方法は、確認プロセスの一環としてSMSを送信することです。

  1. プログラムでSMSをハンドセットからサーバーに送信します(たくさんの優れたSMSゲートウェイ相互接続プロバイダーがあります)。 SMSは、ハンドセットの番号(またはより正確になるSIM)からサーバーに到着します。もちろん、SMSにはトークンが含まれている必要があります。そのため、サーバーは特定のセッション/ユーザーとリンクできます。 これは、ユーザーが自分の電話番号を入力する必要がないという利点があります(E.164形式で数値を書式設定する方法を理解している人がほんの少ししかないため、ごくわずかです)。 1つの欠点は、プロセスがあなたのユーザーのお金(1 SMS)を犠牲にすることができることです。

  2. ユーザーに電話番号(Webサイトまたはハンドセット)を入力させて、その電話番号を渡してサーバーに接続させます。受話器がサーバーから送信されるSMSが到着するのを待ちます。このSMSが実際に到着した場合は、入力した電話番号が正しいものであることを確認したことになります。明白な欠点は、これは、ユーザーが電話番号を正しく入力することに依存していることです。電話番号を世界中に書き込む方法が多すぎるため、数字をE.164に正規化するように聞こえるほど簡単ではありません。

悲しいことに、これらの方法のいずれも、特にSMSが未接続のトランスポートであるため、どちらも防弾ではありません。 GSMネットワークの負荷に応じて、ゲートウェイプロバイダの負荷、月の位相とSMSの吹き出しの方向は、到着するのに1秒から2ヶ月かかることがあります(後者の経験があります)。平均的な配信時間は数秒になることが多いですが、操作のタイムアウトを行う必要があり、地理的およびGSMネットワークベースで調整する必要があります。 [SMSの配信よりも信頼性の低い配信レポートには依存しない]

関連する問題