Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Отправка смс через gsm модем (https://javascript.ru/forum/server/62071-otpravka-sms-cherez-gsm-modem.html)

annie88 23.03.2016 11:27

Отправка смс через gsm модем
 
Доброго времени суток!
Появилась задача настройки смс рассылки в приложении. Собственно, для формирования файла использую php, а вот с передачей данных и команд модему возникли проблемы. Воспользовалась методом
$output = "mode COM1: BAUD=9600 PARITY=N data=8 stop=1 XON=off TO=on";    
    exec($output);
    $fp = fopen('COM1', 'r+');
    if(!$fp){
        echo"<br/>Port not accessible";
    }else{
        echo"<br/>Port COM1 opened successfully";
    }
    $writtenBytes = fputs($fp, "Hello");
    echo"<br/>Bytes written to port: $writtenBytes";
    $buffer = fgets($fp);
    echo"<br/>Read from buffer: $buffer";

, но он какой-то ненадежный: порт то доступен, то нет.
Пробовала использовать метод отсюда но он не работает для windows.
Подскажите, пожалуйста, как можно из php посылать сообщения модему? Или лучше будет создать для этих целей промежуточный сервис (например на Delphi)?

laimas 23.03.2016 13:57

А зачем вообще РНР если модем?

annie88 23.03.2016 14:17

Пользователю, допустим, нужно будет выслать его пароль для входа в кабинет. Совершенно не знаю как это нужно делать по-правильному, вот и решила, что нужно как-то с сервера посылать необходимые команды модему(он тоже подключен к серверу), а он в свою очередь должен будет их просто выполнить.
Буду благодарна, если наставите на путь истинный :).

laimas 23.03.2016 14:41

Цитата:

Сообщение от annie88
Пользователю, допустим, нужно будет выслать его пароль для входа в кабинет.

Надо полагать речь идет все-таки о веб приложении. Тогда причем тут модем? Не занимается модемами серверный язык, для этого есть сервера - Apache, Nginx, IIS, именно они ведают связью с клиентом, HTTP протоколом.

И сервер не может быть инициатором запроса. Достучаться до клиента по сети можно, но для этого он должен разрешить удаленный доступ, и выполнить определенные действия.

А пароли входа высылаются на почту клиенту.

annie88 23.03.2016 14:55

Цитата:

Сообщение от laimas (Сообщение 411812)

А пароли входа высылаются на почту клиенту.

Нужно будет пароли высылать на номер телефона, таково условие.
Цитата:

Сообщение от laimas
И сервер не может быть инициатором запроса

разве я не могу с сервера послать какую-нибудь информацию?
Неужели никак нельзя отдать команду модему через php? Не могли бы Вы подсказать,может быть есть какой-нибудь способ это сделать через командную строку?

laimas 23.03.2016 15:50

Цитата:

Сообщение от annie88
Нужно будет пароли высылать на номер телефона, таково условие.

Цитата:

Сообщение от annie88
разве я не могу с сервера послать какую-нибудь информацию?

Телефон это другое дело, на телефон да, непосредственно на клиентский компьютер нет, ибо у первого номер это уникальный адрес, а у второго он не обязательно статичный. Да и на телефоне своем я же тоже могу заблокировать прием сообщений.

О технологиях отправки с сервера написано и переписано, почитайте например тут, как это происходит. Сначала о способах как можно, а уж потом определяйтесь. А то модем, это где, на выделенном сервере или личный компьютер под столом это и есть сервер? )

freethetan 23.03.2016 17:10

annie88,
Не знаю как для Windows но для Linux существует много готовых решений
Kannel к примеру...
Я написал свой "велосипед" на питоне.Работает как сокет сервис.
По ходу должен быть кроссплатформенный.
Ищите готовые решения, свои велосипеды очень дорого обходятся.
В плане времени, но дают хороший опыт...
Успехов!

annie88 24.03.2016 08:52

Планируется для рассылки использовать GSM modem Cinterion MC52i.
Не подскажите, какой в настройках kannel.conf указывать тип модема(modemtype)?

laimas 24.03.2016 14:10

Его и указывайте, параметры его же будете использовать.


Часовой пояс GMT +3, время: 11:02.