【问题标题】:AT command to know own phone numberAT命令知道自己的电话号码
【发布时间】:2017-06-28 16:39:35
【问题描述】:

我最近一直在进行 AT 命令测试。当 SIM 卡未订阅 SMS 和语音通话时(在某些特殊情况下,SIM 卡用于实验室实验),我很难找到自己的号码。有什么方法可以使用 AT 命令知道自己的电话号码。 说对于airtel(印度),自己的msisdn号码的ussd代码是* 121 * 9#。所以如果我拨打ATD*121*9#,我会得到AT命令用户界面上显示的信息吗?还是有其他方法可以知道自己的电话号码?非常感谢您的帮助。

【问题讨论】:

    标签: at-command


    【解决方案1】:

    AT+CNUM 返回与订阅者相关的 MSISDN。

    但在很多情况下它只会返回OK。这是因为 +CNUM 命令读取了一个为 SIM 自己的电话号码保留的特殊电话簿存储区域。服务提供商可能会也可能不会为您存储电话号码。

    如果您想使用 +CNUM 命令读取 MSISDN 并且当前未对其进行编程,请按照以下步骤操作(但请注意,几乎所有其他设备都有自己的 AT 命令规则集,因此可能因设备而异到设备,但概念相同): at+cnum?

    +CME 错误:未知

    at+cpbs? - 显示活跃的电话簿存储空间

    +CPBS: "SM",250,250

    好的

    at+cpbs=ON - 选择活动电话簿存储到 MSISDN 列表

    好的

    at+cpbs? - 显示有效的电话簿存储,

    +CPBS: "ON",0,3 - MSISDN 列表为空

    好的

    at+cpbw=,"+918723976327" - 输入您自己的 MSISDN

    好的

    at+cpbs? - 显示有效的电话簿存储,

    +CPBS: "ON",1,3 - MSISDN 列表有一项

    好的

    at+cpbr=1 - 读取 MSISDN 列表,位置 1

    +CPBR: 1,"+918723976327",145,"" - 自己的 MSISDN

    好的

    at+cnum

    +CNUM: ,"+918723976327",145 - 自己的 MSISDN

    希望这会有所帮助!

    【讨论】:

    • 很好的解决方案。
    • AT+CPBS=? +CPBS: ("SM","DC","MC","ME","RC","EN")
    • 没有“ON”
    • @Zibri,请原谅我的任何困惑,我想向您解释,AT 命令很多时候是非常特定于制造商的,就像在我工作的调制解调器中,有许多新实现的 AT 命令,即使有响应也可以更改。
    • 所以据我了解,如果您之前已经知道自己的号码,这只会帮助您自己设置 CNUM,对吧?
    【解决方案2】:

    AT+CNUM 应该返回您自己的电话号码。

    【讨论】:

    • 那么它可能没有正确实施,如下面的答案所述。您也可以尝试使用AT+CPBS="ON"AT+CPBR=1 阅读包含您的电话号码的电话簿,据我所知,这也是可选的。
    【解决方案3】:

    如果一切都失败了,另一种选择是尝试向自己发送短信。就我而言,它完美无缺。

    AT+CMGF=1
    OK
    AT+CMGS="my mobile number"
    > This is a test.
    >
    +CMGS: 119
    

    您应该用 CTRLZ 结束 SMS 消息。

    【讨论】:

    • 另外值得注意的是,CTRL+Z 信号是 0x1A 或十进制 26。我花了一段时间才找到那个,因为从 Arduino 或终端应用程序发送它时,不可能只放“CTRL+Z”,希望它能发送正确的控制字节
    • 但是我们怎么知道“我的手机号码”呢?
    • @lucaswxp 你不知道你的手机号码吗?好吧,如果是这种情况(或者如果您没有手机),上述解决方案将无济于事。
    【解决方案4】:

    来自标准 AT 命令集的信息,可从3GPP获得

    AT+CNUM 返回用户号码 - 但此 AT 命令的实现是可选的。

    您还可以将 AT 命令用于 USSD 事务,例如+CUSD Section 7.15 of TS 27.007 及相关命令,获取订阅者号。

    【讨论】:

      【解决方案5】:

      AT+CUSD=1

      Set 命令允许控制非结构化补充服务数据 (USSD > 3GPP TS 22.090)。
      0 - 禁用 DTA 中的结果代码显示
      1 - 在 DTA 中启用结果代码显示
      2 - 取消正在进行的 USSD 会话(不适用于读取命令

      AT+CPBS="ON"

      Set 命令选择电话簿内存存储,将被其他电话簿命令使用。
      “ON” - SIM 自己的号码 (MSISDN) 电话簿(+CPBF 不适用于此存储)。

      AT+CPBR=1

      执行命令从使用 +CPBS 选择的当前电话簿内存存储中返回位置号码范围内的电话簿条目。如果省略,则只返回位置。

      AT*101#

      回复:
      +CUSD: 2,"",15
      +CUSD: 2,"05551234567",15

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 2016-02-18
        • 2011-07-13
        • 2014-11-04
        • 1970-01-01
        相关资源
        最近更新 更多