2008-09-13 75 views

回答

5

根據GSM規範中,只有IMSI要求是可用的SIM卡上。

實際電話號碼MSISDN存儲在運營商網絡的HLR數據庫中,並且不需要在SIM卡上可用或傳輸到電話。

因此,無論您使用何種技術(Symbina,Java ...),您都永遠無法從設備或SIM卡中獲得自己的電話號碼。如果運營商將其存儲在SIM卡上,或者手機爲用戶提供了手動輸入的可能性,那麼您可能會感到非常幸運,但不一定非要這樣。

+0

此外,如果您確實發現MSISDN存儲在SIM卡上,它可能不是正確的。如果您從另一個網絡移植了您的號碼,則可能會發現您從SIM中讀取的MSISDN是原始號碼,而不是您的移植號碼。 – 2009-10-27 16:20:09

0

通常不可能從Symbian設備(或BREW或任何其他平臺)獲取MSISDN。我們已經嘗試過。

2

正如Pat所說,雖然有API用於訪問SIM卡上的「自己的號碼」插槽,但很少以我的經驗填滿此插槽。

獲取連接應用程序的電話號碼的常用策略是發送SMS作爲驗證過程的一部分。或者:

  1. 以編程方式從手機發送短信到您的服務器(許多好的短信網關互連提供商那裏)。短信將從手機號碼(或SIM卡更正確)到達您的服務器。當然,SMS應該包含一些令牌,以便服務器可以將它與給定的會話/用戶相關聯。 這樣做的好處是你不需要用戶輸入他們自己的電話號碼(由於很少有人知道如何格式化E.164格式的數字,所以它很脆弱)。一個缺點是,該過程可能會花費您的用戶資金(一條短信)。

  2. 讓用戶輸入他們的電話號碼(網站或手機)並連接到您的服務器,傳遞該電話號碼。讓手機等待從服務器發送的短信到達。如果這封短信確實到達,您已經驗證了他們輸入的電話號碼是正確和有效的。顯而易見的缺點是,這依賴於用戶正確地輸入他們的號碼 - 再次,鑑於在世界各地編寫電話​​號碼的過多方式,其不像聽起來將數字歸一化到E.164那樣微不足道。......

唉,這些方法都不是防彈的,特別是因爲SMS是無連接的傳輸。根據GSM網絡負載的不同,網關提供商的負載,月亮的相位以及吹短信的窗口的方向可能需要一秒到一個月的時間才能到達(是的,我確實有後者的經驗)。平均交付時間通常在幾秒鐘內,但您必須在操作超時時間內進行操作,並且可能需要在地理和GSM網絡基礎上對其進行調整。 [不,不依賴於交付報告 - 比短信傳送更不可靠]

相關問題