0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 3

Отправка СМС с USB модема. Ограничение в 56 символов на смс. Что делать?

08.04.2017, 19:05. Показов 4923. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане.

Недавно возникла задача написания программы для отправки смсок через модем. Так как сам в кодинге откровенно слаб начал искать подобного рода исходники и нашел https://habrahabr.ru/post/133085/ в силу своих возможностей переделал то, что было под себя, но возникла какая-то странная проблема. Длинна отправляемого сообщения не может быть больше 56 символов(на кирилице) включительно, если больше, то программа как будто бы зависает. Если предположить, что дело в том, что программа упирается в предельную длину смс тогда странно, ведь длинна смс должна быть 70.

Господа, может среди вас есть кто знает ответ на этот вопрос. Буду рад помощи и премного благодарен!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2017, 19:05
Ответы с готовыми решениями:

Отправка смс с помощью GSM модема
Народ привет! Кто писал отпраку смс через АТ команды. Делаю так, но ничего не отправляет, скорее всего кривые строки в конце переменных...

Перехват и обработка входящих смс + отправка заготовленного смс с приложения
Перехват и обработка входящих смс + отправка заготовленного смс с приложения Подскажите кто сталкивался , Такое возможно на iOS ...

Как отправить СМС с USB-модема в локальную сеть
Доброго времени суток. такой вопрос. имеется USB модем МТС 4G, подключенный к роутеру ZyXEL KEENETIC. как мне по локальной сети отправить...

3
 Аватар для Пытливый
3763 / 2271 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
08.04.2017, 21:01
Если считать, что приведенный код 100% рабочий, то видимо ваша переделка под себя дала такой эффект. Без вашего кода гадать на кофейной гуще можно долго, так-что ждем деталей
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
08.04.2017, 22:57
длина смс 140 байт
если мы отправляем русский текст - каждая буква - два байта, т.е. макс 70
НО
если букв более 70, то два или три не помню точно байта уходят на признак, что сообщение разделено на части, номер части и номер группы
итого влезает 67 букв, остальное идет следующим куском
склеиваются пришедшие смс уже ПО принимающей стороны
0
0 / 0 / 0
Регистрация: 08.04.2017
Сообщений: 3
09.04.2017, 12:21  [ТС]
Кода много, он как бы разделен на три части, поэтому не знаю что именно лучше выложить сюда.
Залил свой текущий исходник SMS_GSM.rar
Если гляните, буду безмерно благодарен!

Добавлено через 3 минуты
Вот в том то и дело, что должно быть символов 70,а у меня получается только 56. Не знаю точно, но есть подозрение что где то здесь кроется ответ

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
function TGSMComander.SendSMSMessage(ASMS: TSMSMessage): Boolean;
var
  Lng, i:  Integer;
  LRead, LText, LMes, LTel, ANum: String;
begin
  ANum := ASms.Number;
  if (Length(ANum) mod 2) = 1 then
    ANum := ANum + 'F';
 
  for i := 1 to Length(ANum) do
    if i mod 2 = 0 then
      LTel := LTel + ANum[i] + ANum[i-1];
 
  LText := AnsiToUCS(ASms.Text);
  LMes := '00'; // Длина и номер SMS центра. 0 - означает, что будет использоваться дефолтный номер.
  LMes := LMes + '11'; // SMS-SUBMIT
  LMes := LMes + '00'; // Длина и номер отправителя. 0 - означает что будет использоваться дефолтный номер.
  LMes := LMes + IntToHex(Length(ASms.Number), 2); // Длина номера получателя
  LMes := LMes + '91'; // Тип-адреса. (91 указывает международный формат телефонного номера, 81 - местный формат).
  LMes := LMes + LTel; // Телефонный номер получателя в международном формате.
  LMes := LMes + '00'; // Идентификатор протокола
  LMes := LMes + '08'; // Старший полубайт означает сохранять SMS у получателя или нет (FLASH sms),  Младший полубайт - кодировка(0 - латиница 8 - кирилица).
  LMes := LMes + 'C1'; // Срок доставки сообщения. С1 - неделя
  LMes := LMes + IntToHex(Trunc(Length(LText)/2),2); // Длина текста сообщения.
  LMes := LMes + LText; // TP-User-Data. Эти октеты представляют сообщение "hellohello", преобразованное в 7 битку.
 
  Lng := Round((Length(LMes)-2)/2);
 
  WriteStr(Format(CMD_CMGS, [Lng]));
  WriteStr(LMes + END_CMD);
 
  Result := ReadToOK(LRead)
end;
Добавлено через 2 часа 43 минуты
Цитата Сообщение от krapotkin Посмотреть сообщение
длина смс 140 байт
если мы отправляем русский текст - каждая буква - два байта, т.е. макс 70
НО
если букв более 70, то два или три не помню точно байта уходят на признак, что сообщение разделено на части, номер части и номер группы
итого влезает 67 букв, остальное идет следующим куском
склеиваются пришедшие смс уже ПО принимающей стороны
Ковыряясь в исходниках и анализируя приходящие смс понял, что в моем случае эти 70 символов входит системная информация, те самые настройки смс.
Оправляю смс длиной три символа - длина отправляемого сообщения 20
4 символа 22
50 - 114.
Так и должно быть или что-то не так делаю?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2017, 12:21
Помогаю со студенческими работами здесь

Отправка смс через USB модем
Всем привет! Никак не могу найти материал, по вопросу - как отправить смс через USB модем(в моем случаем это мегафон 1550). Т.е. нужно из...

Отправка СМС через 3G USB модем
Всем добрый день!Перелопатил все просторы инета. много примеров но все платные. может кто реализовывал такое и может поделиться примером...

что делать когда программа просит смс код?
Скачал программу статистикаа она денег просит. https://yadi.sk/i/MujZkANhpp27k

Скачал самораспаковывающийся архив с торрентом, выслал СМС - файл не распаковывается, что делать?
Прошу прощения, ищу где можно задать вопрос. На Скачал самораспаковывающийся архив, последовал инструкциям. Распаковалось 95 % -...

Как отправить СМС с модема мегафона?
Здравствуйте, для диплома, делал программу которая оповещает работника письмом по почте. По окончания написании программы я задался...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru