Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/138: Рейтинг темы: голосов - 138, средняя оценка - 4.76
14 / 14 / 2
Регистрация: 26.12.2009
Сообщений: 28

Отправка длинных SMS в PDU

05.04.2011, 07:52. Показов 28318. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Вообщем, разбираюсь с отправкой смс... Вроде все понятно, только вопрос: как отсылать длинные смс? Люди добрые, помогите христа ради... Неделю инет рою... Ничего путного нет( Слышал, про UDH... Но че это за шляпа и куда её вставлять... Хз... Руководствовался: http://hardisoft.ru/soft/otpra... c-chast-1/

Добавлено через 15 часов 42 минуты
Неужели никто не знает?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2011, 07:52
Ответы с готовыми решениями:

Отправка SMS с сайта
Здравствуйте! Нужно создать форму с которой будем отправлять смс с сайта sms.idknet.com Как всё это реализовать? Легко ли? Спасибо!

Отправка SMS с сайта
Доброе время суток... Прошу помогите, обьясните или покажите... Хочу научится создавать приложение на C# которая будет работать через...

Отправка SMS через интернет
здраствуйте, помогите написать програму для отправки смс через интернет! пишу на c# , там нужны какието библиотеки их у меня нет(

36
4 / 4 / 0
Регистрация: 17.05.2011
Сообщений: 262
22.03.2013, 12:58
Студворк — интернет-сервис помощи студентам
А как получать уведомления о доставке?

Добавлено через 15 минут
2 байт 31, отчет как смс приходит? У меня не получается его отловить во входящих
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
22.03.2013, 13:05
Этот отчёт всё равно фуфлыжный и означает, что комутатор принял смс для передачи. Во всяком случае в роуминге это так. Телефон получает уведомление через пару секунд, Б-абонент получает сообщение через непрогнозируемый интервал времени, если вообще получает.
После такого мне сразу расхотелось заниматься анализом уведомления о доставке.
0
4 / 4 / 0
Регистрация: 17.05.2011
Сообщений: 262
22.03.2013, 13:27
У меня на телефонах включен отчет о доставке и он всегда приходит во вменяемое время. Если сразу не пришел, - значит телефон абонента выключен, при включении приходит моментально. Мне нужно точно знать что смс доставлена, модемы используются для контроля в ту
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
22.03.2013, 13:34
отчёт-то приходит. я ж не об этом говорю. впрочем, достоверность отчёта уже на совести оператора (который за это не отвечает).
0
4 / 4 / 0
Регистрация: 17.05.2011
Сообщений: 262
22.03.2013, 13:37
Цитата Сообщение от ksk Посмотреть сообщение
отчёт-то приходит. я ж не об этом говорю. впрочем, достоверность отчёта уже на совести оператора (который за это не отвечает).
Так у меня проблема с его получением на модеме. Вот так пакет формирую:
C#
1
string PDU_PACKET = "00[B]31[/B]000B91" + SMS.EncodePhoneNumber(phone) + "0008C1" + (SMS.StringToUCS2(message).Length / 2).ToString("X2") + SMS.StringToUCS2(message);
31 - запросить отчет о доставке среди прочего. Билайновская программка отчет о доставке отлавливает, я опрашивая входящие АТ+CMGL="ALL" не вижу. Вопрос, как его отловить программно?
0
 Аватар для VladislavTepes
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
22.03.2013, 20:19
DeadBoy, , вот вам работающий пример с исходником и подробное объяснение.
http://tails-up.blogspot.com/2... gsm-c.html
0
4 / 4 / 0
Регистрация: 17.05.2011
Сообщений: 262
23.03.2013, 13:59
Ну что, с отчетом никто не поможет?
0
GArt1984
20.03.2014, 19:36
Доброго времени суток. Никак в толк не возьму, как подсчитать длину последнего куска для команды AT+CMGS= в UCS2 кодировке.
А второй вопрос - каждый блок должен завершаться Ctrl+Z или как? Пытаюсь отправлять, до телефона доходит последний кусок, и в начале текста (...) * кол-во кусков до последнего. Т.е. телефон-то видит, похоже, что кусков много, но получает последний.
RFbager
28.03.2014, 17:52
Всем привет.Полностью разобрался в PDU в плане получения.Были написаны функции Для конвертации и из PDU в Ansi,и русский читает на все 100%.Проблема с длинными смс.Вырезаю заголовок внутри UD и пытаюсь преобразовать в читаемый вид-безрезультатно.По мимо заголовка в длинных смс еще какие-нить новшества(по сравнению с обычными) содержатся?
0 / 0 / 0
Регистрация: 25.10.2015
Сообщений: 2
30.10.2015, 15:25
Недавно тоже заинтересовался темой отправки смс с телефона. Благодарю DeadBoy за инструкции, помогли разобраться с PDU форматом.
Выяснилась одна странность, с Мегафона на Теле2 длинные смс не уходят(деньги исправно снимаются), приходит сообщение "Сообщение не доставлено", если же наоборот то все получается. Я правильно понимаю что ошибка тут не в коде а на стороне Мегафона?
0
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 17
02.04.2016, 23:33
Всем привет.
DeadBoy, спасибо за Ваши труды. Мануалы очень сильно помогли разобраться. И вправду в интернете мало информации по этой теме.
У меня возник вопрос по длинному смс. Указатель 8 битный и 16 битный, исходя из этих указателей генерируется случайное число.
Если 00 - 8 битный, то генерируется число 0..255
Если 08 - 16 битный, генерируется число 0..65535

У себя на телефоне проверил пару смсок (всего там штук 5-6) там везде 8 битный указатель, т.е. число от 0 до 255

Вопрос в следующем, когда применяется 16 битный указатель, от чего зависит, где и когда применяется,если все смс русские + англ?
0
0 / 0 / 0
Регистрация: 11.02.2017
Сообщений: 6
11.02.2017, 17:40
Зарегистрировался специально чтобы поблагодарить DeadBoy за его работу! Очень нужная работа, столько времени прошло с его решения, а все актуально!
0
0 / 0 / 0
Регистрация: 11.07.2019
Сообщений: 1
11.07.2019, 10:06
Прикладываю для потомков вариант своего решения по отправке коротких и длинных сообщений через донгл. Скрипт писал параллельно изучая основы PHP (и программирования в целом), поэтому прошу сильно не пинать, в целом все работает, но скорее всего написать можно куда более короче.
Формат команды:
Bash
1
php -f [SCRIPT_PATH]/LPTsmses_to_pdus.php +79XXXXXXXXX 'TEXT_SMS' [debug]
Не забудьте изменить переменную массива $dongle_sp_all с именами своих донглов.
Всем мир.
Вложения
Тип файла: zip LPTsmses_to_pdus.zip (4.7 Кб, 13 просмотров)
0
1 / 1 / 0
Регистрация: 11.11.2020
Сообщений: 2
12.11.2020, 07:57
Здравствуйте! Отправляю Длинную СМС по инструкции, ответ модема ОК, но на ТЕЛЕ 2 СМС приходит, а на билайн нет, не пойму куда копать

Часть первая
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
rnd := Random(255);
 
  str1 := 'Привет! Привет! Привет! Привет! Привет! Привет! Привет! Привет! При';  //67
  LText := AnsiToUCS(str1);  // преобразовал
  tlen1 := Round((Length(LText))/2); // количество байт чисто текста
 
  LMes := '';
  LMes := LMes + '00'; //SMS ЦЕНТР не исп, в подсчете байт не участвует
  LMes := LMes + '41'; //Поле флагов, с включенным битом UDHI 41- составное СМС с добавлением заголовков  01, просто исходящее
  LMes := LMes + '00'; //Неиспользуемое поле…
  LMes := LMes + '0B'; //Длина номера 11
  LMes := LMes + '91'; //Тип номера
  LMes := LMes + LTel; // Телефон в дебильном формате
  LMes := LMes + '00';  // Тоже непонятное поле, оставляем его как «00».
  LMes := LMes + '08';  //«08» - Кодировка UCS2 (70 знаков, 2 байта на каждый символ)
  //LMes := LMes + 'C4';  //TP-VP Если флаг (51 61 71) C4 - Одна неделя
  tlen1 := tlen1+1+5;
  LMes := LMes + IntToHex(Trunc(tlen1),2); //длина сообщения xxx Байта + 1 Байт UDHL + 5 Байт UDH  СЛЕДУЮЩИЕ
  LMes := LMes + '05'; //следующие 5 байт, относятся к UDH.
  LMes := LMes + '00'; //используем 8-битный указатель…
  LMes := LMes + '03'; //следующие 3 байта, это IE – информационные элементы.
  LMes := LMes + IntToHex(Trunc(rnd),2); //случайно с генерированный указатель, число от 0 до 255.
  LMes := LMes + '02'; //Общее количество сегментов…
  LMes := LMes + '01'; //Текущий сегмент.
  LMes := LMes + LText;
  sleep(1000);
  Lng := Round((Length(LMes)-2)/2);
  sleep(1000);
  WriteStr(Format(CMD_CMGS, [Lng]));
  sleep(1000);
  WriteStr(string(LMes) + ^Z);
  sleep(100);
 
  Result := ReadToOK(LRead);
Часть вторая

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  str1 := 'вет! Привет! Привет! Привет!';  //
  LText := AnsiToUCS(str1);  // преобразовал
  tlen1 := Round((Length(LText))/2); // количество байт чисто текста
 
  LMes := '';
  LMes := LMes + '00'; //SMS ЦЕНТР не исп, в подсчете байт не участвует
  LMes := LMes + '41'; //Поле флагов, с включенным битом UDHI 41- составное СМС с добавлением заголовков  01, просто исходящее
  LMes := LMes + '00'; //Неиспользуемое поле…
  LMes := LMes + '0B'; //Длина номера 11
  LMes := LMes + '91'; //Тип номера
  LMes := LMes + LTel; // Телефон в дебильном формате
  LMes := LMes + '00';  // Тоже непонятное поле, оставляем его как «00».
  LMes := LMes + '08';  //«08» - Кодировка UCS2 (70 знаков, 2 байта на каждый символ)
  //LMes := LMes + 'C4';  //TP-VP Если флаг (51 61 71) C4 - Одна неделя
  tlen1 := tlen1+1+5;
  LMes := LMes + IntToHex(Trunc(tlen1), 2); //длина сообщения xxx Байта + 1 Байт UDHL + 5 Байт UDH  СЛЕДУЮЩИЕ
  LMes := LMes + '05'; //следующие 5 байт, относятся к UDH.
  LMes := LMes + '00'; //используем 8-битный указатель…
  LMes := LMes + '03'; //следующие 3 байта, это IE – информационные элементы.
  LMes := LMes + IntToHex(Trunc(rnd), 2); //случайно с генерированный указатель, число от 0 до 255.
  LMes := LMes + '02'; //Общее количество сегментов…
  LMes := LMes + '02'; //Текущий сегмент.
  LMes := LMes + LText;
 
  Lng := Round((Length(LMes)-2)/2);
  sleep(1000);
  WriteStr(Format(CMD_CMGS, [Lng]));
  sleep(1000);
  WriteStr(string(LMes) + ^Z);
  sleep(100);
 
  Result := ReadToOK(LRead);
Результат(номер телефона заменил двойками):

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 OPEN: Success
WRITE: AT+CMGF=0
 
  READ: 
OK
 
WRITE: AT+CMGS=153
 
WRITE: 0041000B912222222222F200088C050003B60201041F0440043804320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F04400438
  READ: 
> 
  READ: 
+CMGS: 30
 
OK
 
WRITE: AT+CMGS=75
 
WRITE: 0041000B912222222222F200083E050003B6020204320435044200210020041F0440043804320435044200210020041F0440043804320435044200210020041F044004380432043504420021
  READ: 
> 
  READ: 
+CMGS: 31
 
OK
 
CLOSE: Success
Добавлено через 25 минут
Дело походу в сим или тарифе
0
4 / 4 / 0
Регистрация: 17.05.2011
Сообщений: 262
12.11.2020, 08:03
Копать в сторону оператора. Было такое, плк-контроллеры с модемом присылают сообщения на модем центра сбора. В модеме билайн, в контроллерах в основном билайн, но есть и мтс и мегафон. С контроллеров, установленных в городе, смс приходят исправно. С некоторых контроллеров, установленных в области, смс приходили, потом перестали приходить. При выезде проверяли симки, с которых не приходит, - работают. Брали журнал сообщений у оператора, сообщения с симок уходят и все. Пробовали разобраться с оператором, в чем проблема. Ответ один, - у нас все нормально. Пришлось на те контроллеры, с которых не приходили смс, поставить мегафон, теперь удивительным образом смс приходят. А с билайном - нет. Никакие настройки не менялись. Да их там и нет.
0
1 / 1 / 0
Регистрация: 11.11.2020
Сообщений: 2
12.11.2020, 09:34
Во общем может кому пригодится, дело может быть в операторах
проверил на двух симках

билайн -> теле 2 OK
билайн -> билайн OK
билайн -> мегафон OK
билайн -> МТС OK

теле 2 -> теле 2 OK
теле 2 -> билайн multipart NONE одинарное СМС OK
теле 2 -> мегафон multipart NONE одинарное СМС OK
теле 2 -> МТС OK
1
0 / 0 / 0
Регистрация: 16.12.2020
Сообщений: 1
16.12.2020, 22:33
Добрый день! У меня схожая проблема, - на определенные операторы длинные периодически не приходят. Пытаюсь понять причину. А какой модему Вас в оборудовании? ( у меня SIMCOM ). Если оборудование в области, не может ли быть роуминг? Пробовали на смартфоны или на кнопочные телефоны тоже? Может ли быть на тех телефонах на которые иногда не приходит включена функция антиспам?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.12.2020, 22:33

Отправка SMS через USB-модем
Интересует, можно ли и каким образом реализовать на С# механизм отправки смс через подключенный к машине ЮЗБ-модем. Может кто-то решал...

Отправка sms сообщения через smtp
Как с компьютера отправить SMS сообщение на мобильные устройства ? Какие ресурсы, библиотеки нужны ? Есть ли бесплатные сервисы для...

Отправка sms с помощью ASP
Интересует сабж.

Отправка SMS с помощью ASP
Подскажите пожалуйста, как с помощью ASP и/или WEB-сервиса отправлять SMS-сообщения

Отправка SMS через сайт оператора
Здраствуйте. Я точно не знаю по адресу ли я попал. Итак для мобильной компании нужна программа смс рассылки на подобии программы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru