Про отправку смс есть тут http://forum.ru-board.com/topic.cgi?forum=35&topic=44459 может кто мне и поможет...
» Работа с GSM телефоном
Напишите, пожалуйста, пример в виде AT комманд для отправки смс с русскими символами.
Помогите, пожалуйста, с отправкой смс через AT+CMGS...
Ввожу команду: AT+CMGS=17<CR> 0001000B919780613291F3000004C9E9340B<ctrl-z>
Результат: ERROR
подскажите плиз что я делаю не так? в чём ошибка? (проверял несколько раз)
P.S. Ввод команды произвожу в точности как написал с учётом регистра и пробела после <CR> (не знаю важно ли это). Тестирую на Sony Ericsson K700.
А вот ещё проведённые тесты:
Команда: AT+CMGS=17
Выдаёт: ничё не выдаёт, зависает приложение и не отвисает сколько не жди
Команда: AT+CMGS=?
Выдаёт: ОК
Команда: AT+CMGS=17
0001000B919780623281F3000004C9E9340B
Команда: AT+CMGS=17
0001000B919780623281F3000004C9E9340B<ctrl+Z>
Выдаёт: ERROR
Ещё нашёл на одном сайте кое что:
Цитата
4. Для тех, кто уже был знаком с системой AT-команд простых модемов, замечу тот факт, что расширенные AT-команды у телефонов соединяются между собой в строке не напрямую, а через символ ";".
Попробовал записывать через точку с запятой и телефон видимо среагировал на этот знак и не выдал ошибки, но завис...
В общем уже сохраненные сообщения отсылаются:
Команда: AT+CMSS=?
Выдаёт: +CMSS:<mr>
OK
А вот просто отослать новое или сохранить сообщение так и не получается...
Ввожу команду: AT+CMGS=17<CR> 0001000B919780613291F3000004C9E9340B<ctrl-z>
Результат: ERROR
подскажите плиз что я делаю не так? в чём ошибка? (проверял несколько раз)
P.S. Ввод команды произвожу в точности как написал с учётом регистра и пробела после <CR> (не знаю важно ли это). Тестирую на Sony Ericsson K700.
А вот ещё проведённые тесты:
Команда: AT+CMGS=17
Выдаёт: ничё не выдаёт, зависает приложение и не отвисает сколько не жди
Команда: AT+CMGS=?
Выдаёт: ОК
Команда: AT+CMGS=17
0001000B919780623281F3000004C9E9340B
Команда: AT+CMGS=17
0001000B919780623281F3000004C9E9340B<ctrl+Z>
Выдаёт: ERROR
Ещё нашёл на одном сайте кое что:
Цитата
4. Для тех, кто уже был знаком с системой AT-команд простых модемов, замечу тот факт, что расширенные AT-команды у телефонов соединяются между собой в строке не напрямую, а через символ ";".
Попробовал записывать через точку с запятой и телефон видимо среагировал на этот знак и не выдал ошибки, но завис...
В общем уже сохраненные сообщения отсылаются:
Команда: AT+CMSS=?
Выдаёт: +CMSS:<mr>
OK
А вот просто отослать новое или сохранить сообщение так и не получается...
time13
Цитата:
не обижайтесь, но просто чтобы убедиться - в одну строку написали для удобства?
речь об <CR> - так и набираете или все же жмете enter?
http://forums.devx.com/showthread.php?t=148016
Цитата:
Ввожу команду: AT+CMGS=17<CR> 0001000B919780613291F3000004C9E9340B<ctrl-z>
не обижайтесь, но просто чтобы убедиться - в одну строку написали для удобства?
речь об <CR> - так и набираете или все же жмете enter?
http://forums.devx.com/showthread.php?t=148016
Дело в том что я подаю эти команды на соньку с другой мобилы по блютуфу.. там естественно никаких Ентеров и в помини нет, т.е. теоретически после строчки
AT+CMGS=17
он должен выдать
>
(и вот здесь уже вводить PDU)
Но как я уже писал после строчки AT+CMGS=17 приложение просто зависает..
Пробовал так же реализовать Enter через коды OD или #13, а так же с комбинациями угловых скобок - в этих случаях если после равно стоит хоть что-то (какой либо другой символ или буква) кроме числа, то стабильно выдаётся ERROR.
Уже эту проблему давненько пытаюсь решить и пришёл к двум выводам, что дело именно в том месте где я пытаюсь использовать клавиши такие, как Enter и ctrl-z. И тут, на мой взгляд, два варианта:
1) или всё таки существует какой то правильный синтаксис (то ли для этого приложения, то ли вообще в принципе) для программного или интерактивного решения задачи, который я ещё не попробовал.
2) или вообще в этом приложение не предусмотрена посылка таких "сложных" АТ-команд, ведь обычные без Ентеров работают на ура..
З.Ы. Приложение, которое использую: BT Info.
AT+CMGS=17
он должен выдать
>
(и вот здесь уже вводить PDU)
Но как я уже писал после строчки AT+CMGS=17 приложение просто зависает..
Пробовал так же реализовать Enter через коды OD или #13, а так же с комбинациями угловых скобок - в этих случаях если после равно стоит хоть что-то (какой либо другой символ или буква) кроме числа, то стабильно выдаётся ERROR.
Уже эту проблему давненько пытаюсь решить и пришёл к двум выводам, что дело именно в том месте где я пытаюсь использовать клавиши такие, как Enter и ctrl-z. И тут, на мой взгляд, два варианта:
1) или всё таки существует какой то правильный синтаксис (то ли для этого приложения, то ли вообще в принципе) для программного или интерактивного решения задачи, который я ещё не попробовал.
2) или вообще в этом приложение не предусмотрена посылка таких "сложных" АТ-команд, ведь обычные без Ентеров работают на ура..
З.Ы. Приложение, которое использую: BT Info.
time13
<CR> - это невидимый символ с кодом 0x0d, после него пробел НЕ нужен. Угловые скобки тоже не нужны. <ctrl-z> тоже невидимый символ, код не помню. Эти символы уходят в телефон на равных правах с остальными.
Когда я отправлял СМС-ки программно, я посылал строку в порт целиком от начала до <ctrl-z> включительно.
Если отправлять через терминал, набираем:
Код: AT+CMGS=17
<CR> - это невидимый символ с кодом 0x0d, после него пробел НЕ нужен. Угловые скобки тоже не нужны. <ctrl-z> тоже невидимый символ, код не помню. Эти символы уходят в телефон на равных правах с остальными.
Когда я отправлял СМС-ки программно, я посылал строку в порт целиком от начала до <ctrl-z> включительно.
Если отправлять через терминал, набираем:
Код: AT+CMGS=17
Через коды тоже пробовал:
Команда: AT+CMGS=17OD
Результат: ERROR
Команда: AT+CMGS=17 OD
Результат: ERROR
Команда: AT+CMGS=17 0x0d
Результат: ERROR
Команда: AT+CMGS=170x0d
Результат: ERROR
Так же целиком всю команду пробывал (код для ctrl-z = 1A = 0x1a), результат аналогичен ERROR.
В документации написано:
Цитата:
Есть ещё варианты?
Команда: AT+CMGS=17OD
Результат: ERROR
Команда: AT+CMGS=17 OD
Результат: ERROR
Команда: AT+CMGS=17 0x0d
Результат: ERROR
Команда: AT+CMGS=170x0d
Результат: ERROR
Так же целиком всю команду пробывал (код для ctrl-z = 1A = 0x1a), результат аналогичен ERROR.
В документации написано:
Цитата:
Если синтаксис команды неверен, то выдается «ERROR».
Есть ещё варианты?
time13
какие варианты если вы неправильно делаете??
Вы думаете, что если напишите код символы в виде цифр, то то приложение, в котором набираете текст команд, автоматом преобразует его в нужный символ?
Почитайте что такое ascii коды
какие варианты если вы неправильно делаете??
Вы думаете, что если напишите код символы в виде цифр, то то приложение, в котором набираете текст команд, автоматом преобразует его в нужный символ?
Почитайте что такое ascii коды
time13
Нужно вводить не символы "0x0d" или "OD", а один символ с кодом 0x0d.
Для пущей ясности строка "AT+CMGS=17OD" в бинарном виде выглядит как последовательность байтов 41 54 2b 43 4d 47 53 3d 31 37 30 44. Нам вместо "OD" (30 44) на конце надо ввести символ, у которого нет печатного представления (0d).
Другими словами, символы "OD" мы вводим нажатиями клавиш, на которых написаны буквы 'O' и 'D', а символ с кодом 0d мы вводим нажатием Enter.
Нужно вводить не символы "0x0d" или "OD", а один символ с кодом 0x0d.
Для пущей ясности строка "AT+CMGS=17OD" в бинарном виде выглядит как последовательность байтов 41 54 2b 43 4d 47 53 3d 31 37 30 44. Нам вместо "OD" (30 44) на конце надо ввести символ, у которого нет печатного представления (0d).
Другими словами, символы "OD" мы вводим нажатиями клавиш, на которых написаны буквы 'O' и 'D', а символ с кодом 0d мы вводим нажатием Enter.
Цитата:
Нужно вводить не символы "0x0d" или "OD", а один символ с кодом 0x0d.
Спасибо огромное что разживал подробно, но я никак не доганю..( что это будет за символ с кодом 0x0d? как будет выглядеть моя строка напиши если не сложно, плиз?
код 13, это и есть D (или 44) или 0D (или 30 44) это вроде как понятно...
в каком виде мне это добавить в конец строки?
time13
Вот в этом сообщении я написал, как вводить руками.
Вот в этом сообщении я написал, как вводить руками.
В каком этом?? ссылка выкинула меня на эту же страницу.
На этой странице ты писал тока как через нажатие энтеров вводить (без кода ентера)
и в бинарном виде... строку напиши пожалуйста...
если я ввожу просто AT+CMGS=17, то телефон зависает (тот с которого подаю команду)
На этой странице ты писал тока как через нажатие энтеров вводить (без кода ентера)
и в бинарном виде... строку напиши пожалуйста...
если я ввожу просто AT+CMGS=17, то телефон зависает (тот с которого подаю команду)
Цитата:
строку напиши пожалуйста...
AT+CMGS=17<CR>0001000B919780613291F3000004C9E9340B<ctrl-z>
<CR> и <ctrl-z> - непечатаемые символы с кодами 0x0d и 0x1a соответственно. Чтобы их набрать, нужно нажать соответственно Enter и Ctrl-z.
Убедись, что терминал в PDU режиме. На телефоне (том, с которого подаешь команду) научись набирать эти самые непечатаемые символы <CR> и <ctrl-z>.
это всё понятно уже давно как раз вопрос в том как их набирать? чё не пробую никак не выходит? а может быть такое что из этого приложения это вобще невозможно?
Не исключено. Идем на сайт приложения, и курим мануалы на тему ввода специальных символов.
вот вот)) где бы его ещё взять) ну ладно разберусь или попробую блювер установить может там чё лучше...
Я уж думал вы мне пытаетесь растолковать как эти непечатные символы вгонять, а я такой безмозглый не пойму ну всё равно спасибо за содействие!
З.Ы. Кто знает эти непечатные символы в BT Info пишите) буду просто примногоблагодарен)
Я уж думал вы мне пытаетесь растолковать как эти непечатные символы вгонять, а я такой безмозглый не пойму ну всё равно спасибо за содействие!
З.Ы. Кто знает эти непечатные символы в BT Info пишите) буду просто примногоблагодарен)
Всем доброго дня. Может кто знает почему модем Siemens M35i выдаёт ошибку сразу после ввода номера. Использую пример
Dzar
Цитата:
Ввожу:
at
OK
at+cscs=ucs2
OK
at+cmgf=1
OK
at+cmgs=1128547 (жму Enter)
ERROR
А в PDU всё нормально вводиться, но PDU это самый крайний случай.
Добавлено:
Извиняюсь проблему с вводом телефона решил тоже использовав юникод.
Всё работает и приходит на русском)))спс
Dzar
Цитата:
Проблема продолжается.... смс отправляется вот так
AT+CSCS="UCS2"
AT+CMGF=1
AT+CMGS="8916*******"
041F044004380432043504420021
то заместо слова "привет!" приходит " !"
может кто сталкивался?
Ввожу:
at
OK
at+cscs=ucs2
OK
at+cmgf=1
OK
at+cmgs=1128547 (жму Enter)
ERROR
А в PDU всё нормально вводиться, но PDU это самый крайний случай.
Добавлено:
Извиняюсь проблему с вводом телефона решил тоже использовав юникод.
Всё работает и приходит на русском)))спс
Как всегда рано радовался(. Дело в том, что через Hyper Terminal всё отлично посылается как с Siemens MC35i так и с Wavecom M1306B. Но когда загоняю тот же код в контроллер TWIDO, на телефон приходят квадраты а в Hypere вот что(в режиме gsm всё нормально передаётся, но там нет русского):
+CMGL: 1,"REC READ","002B00330037003*003*003*003*003*003*003*003*003*003*",,"09/
11/10,14:48:40+08"
A00A00041F044004380432043504
Посылаю слово "Привет". Во-первых теряются два последних символа , во вторых появляется дополнительно 6 символов в начале( Может это связано с тем , что контроллер соединяется с модемом по ASCII , Modbus). Может надо правильно установить AT+CSMP=17,167,0,8(стоит сейчас). Буду рад любой помощи)
+CMGL: 1,"REC READ","002B00330037003*003*003*003*003*003*003*003*003*003*",,"09/
11/10,14:48:40+08"
A00A00041F044004380432043504
Посылаю слово "Привет". Во-первых теряются два последних символа , во вторых появляется дополнительно 6 символов в начале( Может это связано с тем , что контроллер соединяется с модемом по ASCII , Modbus). Может надо правильно установить AT+CSMP=17,167,0,8(стоит сейчас). Буду рад любой помощи)
nox 911
Цитата:
Цитата:
во вторых появляется дополнительно 6 символов в началеПохоже, это кусок склеенной смс. В склеенных смс 6 байт в начале - это специальный заголовок. Несколько страниц назад я писал, как слать склеенные смс, и что-то про AT+CSMP. Должно помочь разобраться.
никто не хочет поделиться готовой программой отправки/приёма SMS по-русски?
Привет, помогите вот с этим, отправляю как предидущие постеры смс через gsm-шлюз:
AT+CSMP=17,167,0,8
AT+CSCS="UCS2"
AT+CMGF=1
AT+CMGS="0971234567"
041F044004380432043504420021
Приходит смс в виде квадратиков.
AT+CSMP=17,167,0,8
AT+CSCS="UCS2"
AT+CMGF=1
AT+CMGS="0971234567"
041F044004380432043504420021
Приходит смс в виде квадратиков.
cvieri
Цитата:
Цитата:
041F044004380432043504420021Это у меня срабатывало в нокии, но не срабатывало в самсунге. Можно попробовать послать юникодный текст как есть, то есть сами байты, а не их hex-представление. В текстовом режиме - разножопица: у разных производителей он по-разному работает. Если телефон поддерживает PDU mode, лучше работать в нём.
> Можно попробовать послать юникодный текст как есть
Это как, например киньте кусок кода, если не сложно
Это как, например киньте кусок кода, если не сложно
Люди, я не понимаю что происходит.
Почему в сообщения о подтверждении доставки дописываются FF?
Читаю
at+cmgr=16
+CMGR: 1,,167
079173256900090006800C91732519900550013001510360800130015103908000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
И что такое 167 - длина чего?
Почему в сообщения о подтверждении доставки дописываются FF?
Читаю
at+cmgr=16
+CMGR: 1,,167
079173256900090006800C91732519900550013001510360800130015103908000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
И что такое 167 - длина чего?
167 - длина PDU блока в октетах. Насколько мне не изменяет память, эта длина не включает номер сервис центра.
Т.е., пропускаем номер сервис-центра 0791732569000900, здесь он 8 октетов. Далее должно быть 167 октетов до конца.
Т.е., пропускаем номер сервис-центра 0791732569000900, здесь он 8 октетов. Далее должно быть 167 октетов до конца.
Доброе время суток.
Подскажите, как сделать чтобы при отправке sms отправитель был не номер телефона, а его наименование. Т.е. когда мне приходит SMS - то я сразу вижу от кого эта сообщение, хотя в адресной книге его нет.
Подскажите, как сделать чтобы при отправке sms отправитель был не номер телефона, а его наименование. Т.е. когда мне приходит SMS - то я сразу вижу от кого эта сообщение, хотя в адресной книге его нет.
JuliaX
С этим тоже сталкивался, причем одно может придти нормально, другое в таком виде. Видимо глюки в сети.
Тут мегафон чудить начал, похоже вообще отрубают подтверждения доставки смс. В некоторых точках модемы раньше нормально реагировавшие на команду +CNMI=3,1,0,1 стали выдавать ошибку, спасает отрубание параметра о приеме подтверждения +CNMI=3,1,0,0.
UPD.
Похоже мегафон не причем, глючат терминалы siemens.
Но пишу из-за другой проблемы, а именно - интерактивные USSD меню будь они неладны.
После посылки модему стандартной CUSD команды, она отрабатывает нормально и я ловлю URC ответ +CUSD=1, "...0467 бла бла бла ..", 75
> - сессия, приглашение к вводу чего-то. А именно реакции пользователя, нажатие кнопки для выбора. Так в каком виде ее туда засылать я нигде не нашел. Максимум, если послать эскейп символ 0х1В она прекращается с еррором или по таймауту тоже с еррором. Попытка заслать туда АТ команду не работает.
Очень Нужна помощь.
С этим тоже сталкивался, причем одно может придти нормально, другое в таком виде. Видимо глюки в сети.
Тут мегафон чудить начал, похоже вообще отрубают подтверждения доставки смс. В некоторых точках модемы раньше нормально реагировавшие на команду +CNMI=3,1,0,1 стали выдавать ошибку, спасает отрубание параметра о приеме подтверждения +CNMI=3,1,0,0.
UPD.
Похоже мегафон не причем, глючат терминалы siemens.
Но пишу из-за другой проблемы, а именно - интерактивные USSD меню будь они неладны.
После посылки модему стандартной CUSD команды, она отрабатывает нормально и я ловлю URC ответ +CUSD=1, "...0467 бла бла бла ..", 75
> - сессия, приглашение к вводу чего-то. А именно реакции пользователя, нажатие кнопки для выбора. Так в каком виде ее туда засылать я нигде не нашел. Максимум, если послать эскейп символ 0х1В она прекращается с еррором или по таймауту тоже с еррором. Попытка заслать туда АТ команду не работает.
Очень Нужна помощь.
Помогитe пожaлустa. Я из Узбeкистaнa. Скинтe пожaлустa примeр с исходникaм для отпрaвки смс с мобилникa, нa Delphi 7. Sasha070393@mail.ru
приветствую
что то с длинными смс у меня не складывается... одиночные - прекрасно могу кодировать, а вот длинные - нет...
вот пример:
AT+CMGS=24
0011000A9121436587090000000C050003070101E8329BFD06
00 - использовать smsc из карты
11 - pdu type
00 - что в качестве номера телефона отправителя будет использоваться номер карты --- ТУТ МОЖНО ПОДСТАВИТЬ ДРУГОЙ НОМЕР???
0A - длина номера получателя
91 - международный формат нормера получателя
2143658709 - номер получателя = 1234567890
00 - Идентификатор протокола
00 - кодировка 7 бит
00 - валидность доставки = 5 минут
0C - длины данных далее
050003070101 - добавка для длинного сообщения
05 - длина заголовка
00 - информация о том, что "длинное" собщение
03 - длина информационных данных
07 - идентфицикатор уникальный для всех составных сообщений
01 - всего частей в сообщении
01 - номер текущей части
E8329BFD06 - само сообщение = hello
в итоге если отправить сообщение - приходят иероглифы,
если воспользоваться pduspy - всё разбирается правильно, кроме самого текста сообщения - тоже ерунда какая то...
если выкинуть часть 050003070101 и поставить длину данных в 5 - сообщение приходит корректно..
где ошибка?
что то с длинными смс у меня не складывается... одиночные - прекрасно могу кодировать, а вот длинные - нет...
вот пример:
AT+CMGS=24
0011000A9121436587090000000C050003070101E8329BFD06
00 - использовать smsc из карты
11 - pdu type
00 - что в качестве номера телефона отправителя будет использоваться номер карты --- ТУТ МОЖНО ПОДСТАВИТЬ ДРУГОЙ НОМЕР???
0A - длина номера получателя
91 - международный формат нормера получателя
2143658709 - номер получателя = 1234567890
00 - Идентификатор протокола
00 - кодировка 7 бит
00 - валидность доставки = 5 минут
0C - длины данных далее
050003070101 - добавка для длинного сообщения
05 - длина заголовка
00 - информация о том, что "длинное" собщение
03 - длина информационных данных
07 - идентфицикатор уникальный для всех составных сообщений
01 - всего частей в сообщении
01 - номер текущей части
E8329BFD06 - само сообщение = hello
в итоге если отправить сообщение - приходят иероглифы,
если воспользоваться pduspy - всё разбирается правильно, кроме самого текста сообщения - тоже ерунда какая то...
если выкинуть часть 050003070101 и поставить длину данных в 5 - сообщение приходит корректно..
где ошибка?
HighTower
можно рабочий пример отправки SMS на русском?
можно рабочий пример отправки SMS на русском?
Предыдущая тема: Как удалять проекты в Builder 6.0?
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.