使用 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 代码从调制解调器报告给主机。
我的 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 代码从调制解调器报告给主机。