Имеется модем класса B, подключенный к COM порту. Оператор MTS.
Нужно
-Отправить смс-сообщение из командной строки(используя скрипты).-Передавать данные по GSM каналу(звонить, отправлять СМС), во время сеанса GPRS.
Не могу понять как при приостановить передачу данных по gprs, на время передачи данных по каналу GSM.
Придется тебе написать хотя бы функцию которая будет опрашивать модем
с помощью AT команд и отправлять sms! Почитай мануал на модем, так же и про преостановку
данных читай мануал и AT команды :)
>Придется тебе написать хотя бы функцию которая будет опрашивать модем
>с помощью AT команд и отправлять sms! Почитай мануал на модем, так
>же и про преостановку
>данных читай мануал и AT команды :)
ат-команды = это круто.. для всех осей..[ frebsd6x ]:
юзни gsmlib :=> gsmsendsms -d /dev/ttyU0 8999999999 "text"
Сори за офтоп
А для CDMA модемов никто случано то же самое не делал???
(AT комманды ля GSM модемов не подходят точно, пробовал)
Кого вы лечите AT команды не подходят для модемов?
еще как подходят, какой у тебя модем?
>Кого вы лечите AT команды не подходят для модемов?
>еще как подходят, какой у тебя модем?AT+CMGS="+7921xxxxxxx"
не воспринимается, пишет ERROR
SkyLink модем CMOTECH CDMA CNU-550
Возьми соединись с модемом через com port в гипертерминале и отправь команду AT, должен прийти ОК
а то что ты пишешь
AT+CMGS="+7921xxxxxxx"
надо просто мануал покопать, ведь команды различаются!
и темболее одной командой для передачи sms не обойдешься
это точно!
GSM модем такой же как и обычный, с ним ПК вяжется с помощью AT команд!
А еще в гугл загляни почитай про gsm модемы!
>Возьми соединись с модемом через com port в гипертерминале и отправь команду
>AT, должен прийти ОК
>а то что ты пишешь
>AT+CMGS="+7921xxxxxxx"
>надо просто мануал покопать, ведь команды различаются!
>и темболее одной командой для передачи sms не обойдешься
>это точно!
>GSM модем такой же как и обычный, с ним ПК вяжется с
>помощью AT команд!
>А еще в гугл загляни почитай про gsm модемы!Модем команды воспринимает, на AT - OK
А если начинаешь все дальше по плану пфтаться делать, все хана ERROR-ы выдает
Гуглил уже. В том то и дело что это не GSM модем а CDMA.
>>Придется тебе написать хотя бы функцию которая будет опрашивать модем
>>с помощью AT команд и отправлять sms! Почитай мануал на модем, так
>>же и про преостановку
>>данных читай мануал и AT команды :)
> ат-команды = это круто.. для всех осей..
> [ frebsd6x ]:
> юзни gsmlib :=> gsmsendsms -d /dev/ttyU0 8999999999 "text"Уважаемый! спасибо большое! сходу заработало!
>Имеется модем класса B, подключенный к COM порту. Оператор MTS.
> Нужно
> -Отправить смс-сообщение из командной строки(используя скрипты).
>
> -Передавать данные по GSM каналу(звонить, отправлять СМС), во время сеанса
>GPRS.
>
> Не могу понять как при приостановить передачу данных по gprs,
>на время передачи данных по каналу GSM.
ищи документацию со списком поддерживаемых AT команд. Как сказали, смотреть нужно в их сторону. Увы, не все терминалы их поддерживают, так что нужно точно смотреть спецификацию, а дальше либо через ppp chat, либо напрямую в порт барабанить
Ниже линк к доке, где есть набор необходимых команд, для отправки SMS(я пользуюсь Siemens MC35-ыми, так что и дока по ним, но если терминал поддерживает GSM 07 - проблем быть недолжно), раздел 12-й:http://www.allwireless.ru/files/datasheet/mc35i_atc_0103.pdf
Правильно народ говорит, сначала с командами разобраться нужно, а уж какими средствами отправку выполнить - вопрос второй.
Вот только текст СМС придется кодировать согласно спецификации, если работать с СОМ-портом напрямую.
Да вы что, народ! я программер, занимаюсь платежными терминалами. у нас стоит МС35i. чё я с ним только не делал, не то что смс писал - звонил. всё там можно. просто не полениться, полное описание АТ команд прочитать, тогда все будет. правда ещё бы для этого англ. знать надо, потому как, озаботившись этим вопросом в свое время, на русском языке я их не нашёл (
>Да вы что, народ! я программер, занимаюсь платежными терминалами. у нас стоит
>МС35i. чё я с ним только не делал, не то что
>смс писал - звонил. всё там можно. просто не полениться, полное
>описание АТ команд прочитать, тогда все будет. правда ещё бы для
>этого англ. знать надо, потому как, озаботившись этим вопросом в свое
>время, на русском языке я их не нашёл (слушай Копатель я щас разбираюсь с работой этого модема. мне надо данные принять по GSM каналу во FreeBSD (желательно из php). Это как делать просто из COM порта читать?
>Да вы что, народ! я программер, занимаюсь платежными терминалами. у нас стоит
>МС35i. чё я с ним только не делал, не то что
>смс писал - звонил. всё там можно. просто не полениться, полное
>описание АТ команд прочитать, тогда все будет. правда ещё бы для
>этого англ. знать надо, потому как, озаботившись этим вопросом в свое
>время, на русском языке я их не нашёл (Пользуясь рекомендациями из инета:
1. Взял винды
2.Подключил Siemens MC35i к COM -порту
3. Установил драйвер
4. Послал на модем SMS
5. Запустил HyperTerminal
6. Ввел команду:
at+cmgl=4
ответ:
+CMGL: 1,0,,24
07919761989901F0040B919761359667F80000702111315271210531D98C5603OK
Ответ говорит о том, что SMS внутри модема
Как это сообщение перевести в нормальный формат? Сложно ли
написать прогоамму конвертации для чтения и накопления сообщений?
>[оверквотинг удален]
> ответ:
> +CMGL: 1,0,,24
> 07919761989901F0040B919761359667F80000702111315271210531D98C5603
>
> OK
>
> Ответ говорит о том, что SMS внутри модема
> Как
>это сообщение перевести в нормальный формат? Сложно ли
>написать прогоамму конвертации для чтения и накопления сообщений?Нужно установить формат для SMS, с помощью такой команды:
AT+CMGF=1
Чтобы проверить текущий формат:
AT+CMGF?
Чтобы узнать возможные форматы:
AT+CMGF=?
В ответе будет 0 и 1.
0 - формат PDU;
1 - текстовый формат.
Однако, если SMS содержит кирилицу, то они все равно в виде цифр будут выводиться. Так работает модем Siemens MC35i terminal.
Хотя когда-то пробовал работать с модемом Fargo 100, он нормально понимает кирилицу...Удачи!
>Имеется модем класса B, подключенный к COM порту. Оператор MTS.
> Нужно
> -Отправить смс-сообщение из командной строки(используя скрипты).
>
> -Передавать данные по GSM каналу(звонить, отправлять СМС), во время сеанса
>GPRS.
>
> Не могу понять как при приостановить передачу данных по gprs,
>на время передачи данных по каналу GSM.perl use device::gsm
у меня все супер работает
только немогу решить проблему отправки русских смс
ктонибудь в курсе как надо закодировать текст ?
Подскажите, а какими командами можно отправить файл с одного модема на другой?
>Подскажите, а какими командами можно отправить файл с одного модема на другой?
>smstools3 [dot] kekekasvi [dot] com - и отправляйте и принимайте смс наздоровье.
все через консоль через com порт очень гибко и удобно
>smstools3 [dot] kekekasvi [dot] com - и отправляйте и принимайте смс наздоровье.да-да правду говорит мы с биллинга через нее рассылаем уведомления
>>smstools3 [dot] kekekasvi [dot] com - и отправляйте и принимайте смс наздоровье.
>
>да-да правду говорит мы с биллинга через нее рассылаем уведомленияА как у вас с отсылкой на русском языке?
>>>smstools3 [dot] kekekasvi [dot] com - и отправляйте и принимайте смс наздоровье.
>>
>>да-да правду говорит мы с биллинга через нее рассылаем уведомления
>
>А как у вас с отсылкой на русском языке?И на русском тоже.
В этой теме http://forum.lissyara.su/viewtopic.php?f=3&t=12237&start=75#... все уже решено.
>>>>smstools3 [dot] kekekasvi [dot] com - и отправляйте и принимайте смс наздоровье.
>>>
>>>да-да правду говорит мы с биллинга через нее рассылаем уведомления
>>
>>А как у вас с отсылкой на русском языке?
>
>И на русском тоже.
>В этой теме http://forum.lissyara.su/viewtopic.php?f=3&t=12237&start=75#... все уже решено.Вот ещё наш вариант: http://subnets.ru/blog/?p=33
м.б. кому пригодится
Лопатил тему насчет отправки SMS через GSM телефон или модем с помощью AT команд.
Условие было отсылка скриптом, т.е. автоматом по каким-то событиям.
Подключается девайс к ком порту и создаем исполняемый файл содержащий:#!/bin/sh
#если нуно вводить пин для модемов
#/bin/echo -e 'at+сpin=1234 \n'>/dev/ttyS0
#sleep 60#Установка текст режима для месаг
/bin/echo -e 'AT+CMGF=1 \n'>/dev/ttyS0
sleep 2
#Сообщение для абонента ХХХХХХХХ
/bin/echo -e 'AT+CMGS=ХХХХХХХХХ \n'>/dev/ttyS0
sleep 2
#текст сообщения "бла бла бла" \032 это код CTRL-Z указывает на конец сообщения
/bin/echo -e 'бла бла бла \032 \n' >/dev/ttyS0
sleep 2
#конец файлаСлипы нужны чтоб небыло наложение команд для тормазнутых дивайсах
>[оверквотинг удален]
>#Сообщение для абонента ХХХХХХХХ
>/bin/echo -e 'AT+CMGS=ХХХХХХХХХ \n'>/dev/ttyS0
>sleep 2
>#текст сообщения "бла бла бла" \032 это код CTRL-Z указывает на конец
>сообщения
>/bin/echo -e 'бла бла бла \032 \n' >/dev/ttyS0
>sleep 2
>#конец файла
>
>Слипы нужны чтоб небыло наложение команд для тормазнутых дивайсахСпасибо за инфу, очень пригодилась. Хочу поделится еще кое-какими полезностями, может кому пригодиться:
1. У меня через GSM шлюз eccom Basis не отправлялись смс из-за кода переноса строки: в линухе используется (на сколько мне известно, если ошибаюсь - поправьте) CR, а в форточках - CR и LF. Так вот, пока не прописал \015 \012 вместо \n в команде echo, были ошибки и смс отправлялись через раз.
2. Посмотреть логирование по COM порту можно следующим образом:
nohup cat /dev/ttyS0 > /var/log/ttyS0.log (/dev/ttyS0 нужно ест-но заменить на тот дев, к которому подключен модем).
Спасибо за ответы, делаю так:microcom -s 115200 /dev/ttyS1
ATZ
OK
AT+CMGF=1
OK
AT+CMGS="+7912XXXXXXX"
> TEST123 CTRL+Z
SMS мне приходит в течении 10 сек
Затем пытаюсь то же самое сделать в скрипте:#!/bin/sh
/bin/echo -e 'AT+CMGF=1 \n' > /dev/ttyS1
sleep 2
/bin/echo -e 'AT+CMGS="+7912XXXXXXX" \n' > /dev/ttyS1
sleep 2
/bin/echo -e 'TEST123 \032 \n' > /dev/ttyS1
sleep 2
"\032" - код CTRL+Z
"\n" - Вместо Enter
Sleep - что бы команда успела выполниться перед запуском следующей
Смс не отправляется, понять причины не могу, целый день потратил, помогите, пожалуйста, что я делаю не так?
>[оверквотинг удален]
> sleep 2
> /bin/echo -e 'AT+CMGS="+7912XXXXXXX" \n' > /dev/ttyS1
> sleep 2
> /bin/echo -e 'TEST123 \032 \n' > /dev/ttyS1
> sleep 2
> "\032" - код CTRL+Z
> "\n" - Вместо Enter
> Sleep - что бы команда успела выполниться перед запуском следующей
> Смс не отправляется, понять причины не могу, целый день потратил, помогите, пожалуйста,
> что я делаю не так?#!/bin/sh
DEVICE=/dev/ttyUSB0
PHONE=+79xxxxxxxxx
MESSAGE="Test message"/bin/echo -e "AT+CMGF=1\r\n">$DEVICE
sleep 1
/bin/echo -e "AT+CMGS=\"$PHONE\"\r\n">$DEVICE
sleep 1
/bin/echo -e "$MESSAGE\032\r\n" >$DEVICE