Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2012, 04:11   #1
Regard
Новичок
Джуниор
 
Регистрация: 06.02.2012
Сообщений: 2
По умолчанию Отправка СМС проблемы с USB модема

Здравствуйте уважаемые спецы.
Помогите решить проблемку.

Воспользовался кодом в теме : http://www.programmersforum.ru/showt...454#post585454
"Отправка SMS посредством АТ команд через мобильник"

Отправлять СМС уже получается и на EN и RUS но вот затык:

1. как отправлять длинные смс.
2. как проверять доставлено смс или нет (статус).
3. как читать входящие смс и потом их удалять.
4. И как работать с USSD.

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

Помогите плиз с кодом на Delphi с расшифровками, а то я не профи и код писать мне сложновато. Если это не очень затруднит. Заранее спасибо Всем кто поможет.

А так же огромное спасибо raxp и dmitriegorovih за их труды в написании кода и инструкций очень помогли.


С уважение Алексей.
7550888@mail.ru
Regard вне форума Ответить с цитированием
Старый 11.02.2012, 10:43   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...пример отправки длинного SMS указан в конце темы выше по ссылке.

Цитата:
и код писать мне сложновато
всем сложновато, но ведь как то пишут.

Цитата:
2. как проверять доставлено смс или нет (статус).
3. как читать входящие смс и потом их удалять.
4. И как работать с USSD.
Читаем стандарт (рекомендую "AT Commands Interface Guide. – Wavecom, 2002, version 005"):
Цитата:
If the SMS message retrieved is an SMS message received from the SMS center (i.e. incoming SMS message), the information response of the +CMGR AT command in SMS text mode has the following format: (Optional fields are enclosed in square brackets.)
Код:
+CMGR: message_status,address,[address_text],
service_center_time_stamp[,address_type,TPDU_first_octet,protocol_identifier,data_coding_scheme,service_center_address,
service_center_address_type,
sms_message_body_length]<CR><LF>sms_message_body
If the SMS message retrieved is an SMS message that you wrote to the message storage area for sending out (i.e. outgoing SMS message), the format is: (Optional fields are enclosed in square brackets.)
Код:
+CMGR: message_status,address,[address_text][,address_type,TPDU_first_octet,protocol_identifier,data_coding_scheme,
validity_period],service_center_address,service_center_address_type,sms_message_body_length]<CR><LF>sms_message_body
For incoming SMS messages:
+CMGR: "REC READ","+85291234567",,"07/04/20,10:08:02+32",145,4,0,0,"+8529000 0000",145,49
It is easy to read text messages via AT commands.

For outgoing SMS messages:
+CMGR: "STO SENT","+85291234567",,145,17,0,0,16 7,"+85290000000",145,36
A simple demo of SMS text messaging.
Кроме AT+CMGR, есть команды чтения истории приходящих... при отсылке:
'AT+CMGL="STO UNSENT"' парсим ответ с этим же запросом - Исходящие
'AT+CMGL="STO SENT"' парсим ответ с этим же запросом - Отправленные
'AT+CMGL="REC READ"' парсим ответ с этим же запросом - Прочитанные
'AT+CMGL="REC UNREAD"' парсим ответ с этим же запросом - Непрочитанные
'AT+CMGL="ALL"' парсим ответ с этим же запросом - Все

Если после отправки SMS получен ответ:
'+CMGS' - Cообщение отправлено, также можно читать непрочитанную:
'AT+CMGL=0'

Отчет о доставке настраивается в самом телефоне (может быть включено, может быть выключено), в этом случае просто читаем периодически входящие (непрочитанные) SMS и парсим его.

Удаление SMS

'AT+CMGD=1' - удалить 1-ю SMS (более подробно в стандарте)

Баланс счета

Запрос (код проверки счета у разных операторов разный):
Код:
cbuf.Add('ATD*111#;' + #13 + #10); // баланс счета: +CUSD: 2
Парсим ответ:
Код:
function selu(s: string): string; // счет
var i:integer;
begin
 for i:= 1 to length(s) do
  if copy(s,i,5)='+CUSD' then result:= copy(s, i+7, length(s))
end;
p.s.: удачи!
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 11.02.2012 в 10:57.
raxp вне форума Ответить с цитированием
Старый 12.02.2012, 08:19   #3
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ТЫк вот тут всё понятно расписано..не знаю чего народ найти не может. + исходники есть

на 2. как проверять доставлено смс или нет (статус).

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

Последний раз редактировалось BARNEY; 12.02.2012 в 08:41.
BARNEY вне форума Ответить с цитированием
Старый 13.02.2012, 09:41   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

чтобы запросить отчет о доставке во втором байте поставьте 31

p.s. Кнопки правки не было.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 29.02.2012, 01:38   #5
Regard
Новичок
Джуниор
 
Регистрация: 06.02.2012
Сообщений: 2
По умолчанию

Спасибо большое за помощь в этой не легкой для меня задачи.
Мне очень помогли ваши коменты и подсказки.

СПАСИБО .
Regard вне форума Ответить с цитированием
Старый 29.07.2013, 15:10   #6
smsergey
 
Регистрация: 29.07.2013
Сообщений: 4
По умолчанию

Друзья, прошу помощи!
Данная ветка форума очень помогла в написании программки по приему/отправке СМС сообщений. Но столкнулся с такой проблемой: вставив симку в GSM-модем она занимает линию (при попытке позвонить на нее говориться "Абонент занят, перезвоните позже"). Соответственно, входящие СМС не доходят, но при этом исходящие отправляются. Модем разлочен, симка Мегафоновская, модель модема - Huawei E1550.
На сколько я могу предположить, при нормальном режиме работы, после вставки симки в модем и попытке на нее позвонить - должны идти длинные гудки, а не "занято".
В чем может быть проблема и куда копать, чтобы получать входящие СМС?
Пробовал команду AT+GSMBUSY=0, но данный модем ее не поддерживает.

Благодарю за любой совет.
smsergey вне форума Ответить с цитированием
Старый 29.07.2013, 20:13   #7
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

AT+CMGF пробывали?
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 29.07.2013, 20:49   #8
smsergey
 
Регистрация: 29.07.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
AT+CMGF пробывали?
Это же перевод в текстовый режим...
Конечно, пробовал.
GSMBUSY не работает ни с CMGF=1, ни с =0.

Но в этом ли проблема?

Может еще что-то попробовать?
smsergey вне форума Ответить с цитированием
Старый 29.07.2013, 20:52   #9
smsergey
 
Регистрация: 29.07.2013
Сообщений: 4
По умолчанию

Самое интересное, что вставлял симки разных оператором (Мегафон и МТС) и в вставлял модем в разные ПК - результат тот же - Абонент занят, перезвоните позднее. Значит дело в модеме.
У товарища модем другой марки, если позвонить на его симку - идут длинные гудки, как и положено.
smsergey вне форума Ответить с цитированием
Старый 30.08.2015, 12:32   #10
Massaget
Пользователь
 
Регистрация: 30.07.2015
Сообщений: 21
По умолчанию

Ребята: автор сабжа, отвечающие и прочие!
Если у кого на данный момент есть решение пунктов от 1 до 3, прошу поделиться.
Утилита по ссылке: Отправка SMS с 3G/GSM ни фига не фурычит. Модем: ZTE MF100 (не разлоченный).
У самого реализовано отправка коротких СМС, АТ терминал и по мелочи. Необходимо расширить функционал добавив функции автора темы. Вся сложность в срочности. Самому быстро замутить нет возможности. Позже могу выложить исходники вместе с реализованными функциями.
Ребята поделитесь куском кода!
Massaget вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3G usb-модем и получение смс belarusfight C/C++ Сетевое программирование 4 22.01.2012 21:53
Встроенная память usb модема, можно ли получить доступ на запись? Crystallon Свободное общение 10 04.10.2011 21:40
Отправка СМС через USB модем. Armatus Win Api 11 06.06.2011 14:26
Отправка смс cargo29 Работа с сетью в Delphi 11 05.04.2011 11:21
драйвер под Ubuntu 7.10 для usb модема [MoNAMur] Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 7 25.11.2009 17:30