2008-09-13 74 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网络基础上对其进行调整。 [不,不依赖于交付报告 - 比短信传送更不可靠]

相关问题