使用 AT 命令通过 gsm 调制解调器发送短信后获取传递状态

Get delivery status after sending sms via gsm modem using AT commands

我的 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 代码查看报告。如何做到这一点?

您可以通过新收到的通知成功的短信来检查发送状态。通过这个 AT 命令访问它应该不难:

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

通过CNMI命令启用传送状态报告,然后通过CSMP命令启用传送报告请求。

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

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