Выполнять команды AT для отправки смс в php

Я пытаюсь выполнить команды AT из PHP.

Я попробовал exec () и shell_exec ()

Пожалуйста, не предлагайте сторонний SMS-шлюз, мой клиент не хочет раскрывать свою личную информацию и хочет отправлять SMS с его собственного сервера.

У меня есть модем GSM, подключенный к последовательному порту, к которому я могу получить доступ через «шпатлевку», как на рис. шпаклевка 1

И я могу ввести команды AT для отправки SMS, как показано на рисунке ниже. введите описание изображения здесь

Я хочу запускать эти AT-команды через PHP.

Привет, я отправляю sms, используя php-класс в Windows 8 этим кодом php.

 require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); - require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $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(); 

Ссылка на PHP SERIAL

Вам просто нужен класс связи RS232, такой как этот http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html

В качестве альтернативы вы также можете использовать fopen ()

 exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on'); $fd = fopen('COM1:', O_RDWR); fwrite($fd,chr(0).chr(1)); fclose($fd);