【问题标题】:Get delivery status after sending sms via gsm modem using AT commands使用 AT 命令通过 gsm 调制解调器发送短信后获取发送状态
【发布时间】:2017-01-16 12:41:08
【问题描述】:

我的 php 文件有以下代码:

$serial->deviceOpen();

$serial->sendMessage('AT+CMGF=1'); 
$serial->sendMessage(chr(13));
$serial->sendMessage('AT+CMGS="+3XXXXX"');
$serial->sendMessage(chr(13));
$serial->sendMessage("THIS IS  TEST");
$serial->sendMessage(chr(26));

sleep(6);

$read=$serial->readPort();

我的代码包含 AT 命令,它现在可以通过 gsm 调制解调器向任何号码发送短信。现在我想获取交货状态。我在 putty 软件中使用了 AT 命令来查看交付状态,并得到了正确的结果。我想通过我的 php 代码查看报告。如何做到这一点?

【问题讨论】:

  • 每次在文本文件上发送写入数据.. 使用 fopen 和 fwrite
  • 对不起,我没听懂。你能给我一个有用的链接吗?

标签: php gsm at-command


【解决方案1】:

您可以通过新收到的短信来检查交付状态,该短信将告知成功。通过这个 AT cmds 访问它应该不难:

AT+CNMI New SMS message indication
AT+ CMGL List SMS messages from preferred storage
AT+CMGR Read SMS message

【讨论】:

    【解决方案2】:

    启用CNMI命令的投递状态报告,然后启用CSMP命令的投递报告请求。

    AT+CNMI=2,1,0,1,0
    AT+CSMP=49,167,0,0
    

    CSMP 命令中的第一个参数49 表示向GSM 网络发送报告的请求。如果不需要交货报告,只需使用 17 而不是 49。 然后使用 CMGS 命令发送您的短信。 发送报告将通过+CDS URC代码从调制解调器报告给主机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多