LINUX.ORG.RU

Русские СМС через AT команды


0

1

Пытаюсь отправить СМС при помощи AT команд. Кодирую все в UCS2, телефон её поддерживает. Диалог с телефоном проходит так:

ATZ
OK
AT+CMGF=1
OK
AT+CSCA="+79045290000"
OK
AT+CSCS="UCS2"
OK
AT+CMGS="+71234567890"
>
041F0440043E043204350440043A043000200074006500730074002000310032003300340035
В итоге цифры и английские буквы отображаются нормально, а вместо русских - пробелы.
Я таки неправильно кодирую или проблема в чем-то другом?
P.S.: Тело еще умеет HEX формат, но я не нашел информации по нему.
P.P.S.: читал LOR-FAQ, но не могу даже воспроизвести пример с русским текстом

Попробуй лучше SMS в виде PDU задавать (CMGF=0) — больше контроля и ненамного сложнее. Все эти древние стандартики поддерживаются современными телефонами черт-те как.

mannaz ()
Ответ на: комментарий от Devix

Зачем рэндомить, эта команда иррелевантна к токиу. Лучше использовать PDU формат

anonymous ()

это извращение, может вам стоит воспользоваться SMPP и нормально делать рассылки за копейки.

bukaka ()

я в этом не спец, но как предположение, может быть попробовать кодировать русские буквы utf8, cp1251, ....

bukaka ()

Надеюсь, всё таки в 7 бит?

uuu ()
Ответ на: комментарий от snoopcat
[neko@gdetotut ~]$ python2 -c 'print unicode("041F0440043E043204350440043A043000200074006500730074002000310032003300340035".decode("hex"), "utf-16-be").encode("utf8")' 
Проверка test 12345
snoopcat ★★★★★ ()

В итоге я использовал PDU режим. В нем та же функция перевода в UCS2 работала нормально.

proDOOMman ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.