Как стать автором
Обновить

Комментарии 8

1)сделать метод async, чтобы избавиться от wait
2)не собирать xml как интерполяцию, т.к. если у вас в тексте будет например кавычка или символ <, xml будет невалидна

Это не конечный вариант кода. )))

1)сделать метод async, чтобы избавиться от wait

Конечно, на усмотрение разработчика

2)не собирать xml как интерполяцию, т.к. если у вас в тексте будет например кавычка или символ <, xml будет невалидна

Ну тут все жестко, другой код и не приходит, кавычки исключены, все вшито в софт модема

Смело можете доработать и запускать платный сервис по отправке СМС! )))
В свое время довелось попользоваться GSMComm. Хорошая библиотека и гораздо более надежная и менее костыльная, чем то что предложено в этой статье.

А вот назвать consumer'овские GSM модемы надежными не поднимается рука. Через достаточно непродолжительные промежутки времени у тех что я использовал отваливалась сеть и требовалось передергивать модем в usb порт. В итоге проблема решилась покупкой промышленного GSM модема.
НЛО прилетело и опубликовало эту надпись здесь
Если через родной интерфейс sms кирилицей отправляется нормально, то проверяйте кодировки коих в windows для русского языка целых три (cp866, cp1251 и UTF-8). В вызовах WinApi еще UTF-16. Если winforms, то рискну предположить что текст при вводе cp1251, модему же он нужен в UTF-8. Точно также скорее всего входящие смс придется перекодировать обратно. Когда мне нужно было такое, то со скриптом я тащил еще iconv специальную версию для windows.
а кто нибудь может порекомендовать решение как с модема переадресовать пришедшие смски на емайл

С русскими буквами легко не будет. Описанным методом отправки, это скорее всего не возможно принципиально. У Вас идет отправка нескольких полей (телефон, сообщение), на основе которых формируется в модеме команда AT+CMGS. Кодировки кроме латиницы представляются в кодировке UCS2, и команду нужно в другом режиме использовать. Отправка в модемных командах:
ЛАТИНИЦА:
AT+CMGF=1 [Enter]
AT+CMGS=+79261234567 [Enter]
hello habr, this is test message [Ctrl+Z]
КИРИЛЛИЦА:
AT+CMGF=0 [Enter]
AT+CMGS=84 [Enter]
0011000B919762214365F70008C146043F04400438043204350442002004450430043
10440002C0020044D0442043E00200442043504410442043E0432043E043500200441
043E043E043104490435043D04380435 [Ctrl+Z]
Я давно на Delphi делал отправщик через COM с русскими буквами на Delphi на основе статьи: https://habr.com/ru/post/133085/ .

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории