Мне нужен доступ к модему ZTE для доступа к SIM ToolKit. Я много искал. Ничто не работает для меня. Мне нужно выполнить следующие команды AT из PHP:
AT+CUSD=1,'*111#',15.
Я пытался из командной строки, и это работает. просто не мог выполнить эту команду из PHP. Это должно быть просто.
require "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("COM6");
$serial->confBaudRate(115200);
// Then we need to open it
$serial->deviceOpen();
// To write into
$serial->sendMessage("AT+CMGF=1\n\r");
$serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r");
$serial->sendMessage("sms text\n\r");
$serial->sendMessage(chr(26));
//wait for modem to send message
sleep(7);
$read=$serial->readPort();
$serial->deviceClose();
Я не знаю почему, но я не смог найти решение, хотя я установил DIO, PHP_Serial и многие другие инструменты из GitHub.
Если не удалось правильно объяснить мою проблему, проверьте следующую ссылку. У этого парня была такая же проблема. но это решение не работает для меня.
Подобная проблема, решение работает для других, а не для меня!
У нас точно такая же проблема, но мне удалось это исправить.
// From this Code
$serial->sendMessage("AT+CMGF=1\n\r");
$serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r");
$serial->sendMessage("sms text\n\r");
$serial->sendMessage(chr(26));
// Change it to
$serial->sendMessage("AT+CMGF=1");
$serial->sendMessage(chr(13));
$serial->sendMessage('AT+cmgs="+92234444444"');
$serial->sendMessage(chr(13));
$serial->sendMessage("sms text");
$serial->sendMessage(chr(26));
Я не знаю, почему так должно быть. Моя теория состоит в том, что если вы используете свой сервер в Windows, он не может обнаружить, что \ n \ r являются кодами ascii 13 или 26 в отличие от серверов Linux. Я понял из этого https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/at-cmgs-text-mode/ ссылка, что синтаксис команд AT + должен быть таким ^ ^ ^
Ура!
Других решений пока нет …