Научите правильно слать СМС
-
Помогите разобраться с СМС-ками.
Имеется модем из "Связного", что за модель ХЗ, но lsusb видит его так:
Bus 002 Device 006: ID 1bbb:0000 T & A Mobile Phones
Через gnokii --sendsms - отправляется как надо.
NetXMS при попытке отправить тестовую СМС выдает следующее:
[03-Oct-2012 17:14:59] [CLSN-0] Received message CMD_SEND_SMS
[03-Oct-2012 17:14:59] ConfigReadStr: name=AllowDirectSMS value="1"
[03-Oct-2012 17:14:59] SMS send: to {+7920XXXXXXX}: {PREVED}
[03-Oct-2012 17:15:00] SMS send: ATZ sent, got {}
[03-Oct-2012 17:15:01] SMS send: ATE0 sent, got {}
[03-Oct-2012 17:15:02] SMS send: AT+CMGF=0 sent, got {}
[03-Oct-2012 17:15:03] SMS send: AT+CSCA? sent, got {}
[03-Oct-2012 17:15:03] SMSCreatePDUString: Formatted phone before: 7920XXXXXXXF,12
[03-Oct-2012 17:15:03] SMSCreatePDUString: Formatted phone: 9702476904F2
[03-Oct-2012 17:15:03] SMSCreatePDUString: Got payload size: 6
[03-Oct-2012 17:15:03] SMS send: AT+CMGS=20
[03-Oct-2012 17:15:03] SMS about to send: 0011000C919702476904F20000AA065069D15A2402
[03-Oct-2012 17:15:04] SMS send: AT+CMGS + message body sent, got {}Однако на телефон так ничего и не пришло. Подскажите, куда копать?
-
-
Так и должно быть. При отправке в PDU mode номер кодируется. Просто поменяйте местами старший и младший полубайт в каждом байте. 9702476904F2 получается из 7920XXXXXXX (пусть останется интрига, так и быть ;))
Вообще, странно что ответом на ATZ является пустая строка.
[03-Oct-2012 17:15:00] SMS send: ATZ sent, got {}Используете libnxsms_generic?
-
Я сталкивался с проблемами со скоростью порта. Generic SMS драйвер по умолчанию пытается работать на 9600. Попробуйте поставить скорость побольше - 38400 или выше, и проверьте что в настройках самого виртуального порта тоже эта скорость стоит (это для Windows актуально, про Linux не знаю).
-
-
@victor said in Научите правильно слать СМС:
Я сталкивался с проблемами со скоростью порта. Generic SMS драйвер по умолчанию пытается работать на 9600. Попробуйте поставить скорость побольше - 38400 или выше, и проверьте что в настройках самого виртуального порта тоже эта скорость стоит (это для Windows актуально, про Linux не знаю).
К сожалению, скорость не помогла:
[04-Oct-2012 11:33:32] Loading Generic SMS Driver (configuration: /dev/ttyUSB1,38400,8,n,1)
[04-Oct-2012 11:33:32] SMS init: port={/dev/ttyUSB1}, speed=38400, data=8, parity=NONE, stop=1
[04-Oct-2012 11:56:44] [CLSN-0] Received message CMD_SEND_SMS
[04-Oct-2012 11:56:44] SMS send: to {+79100751498}: {TEST}
[04-Oct-2012 11:56:45] SMS send: ATZ sent, got {}
[04-Oct-2012 11:56:46] SMS send: ATE0 sent, got {}
[04-Oct-2012 11:56:47] SMS send: AT+CMGF=0 sent, got {}
[04-Oct-2012 11:56:48] SMS send: AT+CSCA? sent, got {}
[04-Oct-2012 11:56:48] SMSCreatePDUString: Formatted phone before: 79100751498F,12
[04-Oct-2012 11:56:48] SMSCreatePDUString: Formatted phone: 9701701594F8
[04-Oct-2012 11:56:48] SMSCreatePDUString: Got payload size: 4
[04-Oct-2012 11:56:48] SMS send: AT+CMGS=18
[04-Oct-2012 11:56:48] SMS about to send: 0011000C919701701594F80000AA04D4E2940A
[04-Oct-2012 11:56:49] SMS send: AT+CMGS + message body sent, got {}Попробую еще поиграть со скоростями.
ЗЫ. Пришел к успеху. Помогла смена порта на ttyUSB2, и скорости на 19200 - все СМС доходят как надо.
Большое спасибо всем за помощь!
-
-
@sabonez said in Научите правильно слать СМС:
А вот теперь вылез вопрос с кодировкой, можно ли кириллицу корректно по СМС отправить и как?
Вполне даже устроит решение по прикручиванию транслита к СМС-рассылкам.

Ну кириллица это хорошо, однако транслитом смску можно длиннее в два раза отправить или на английском. Да и по дефолту смс же в UTF Идут? У вас юникод сборка netxms?
--enable-unicode при сборке и CodePage = UTF-8 в конфиг. -
-
@sabonez said in Научите правильно слать СМС:
СМС-ки вроде в UCS-2.
SMS с русскими буквами можно посылать только в PDU режиме насколько я понимаю. Кроме того, сам сервер должен работать в UNICODE или code page должен быть выставлен в CP-1251.
@sabonez said in Научите правильно слать СМС:
База у меня в 1251, с utf-8 почему-то java-console под вендой не задружилась - резала русские имена. Если это как-то лечится, может есть смысл конвертнуть базу в UTF?
Здесь скорее проблема с самим сервером, а не с базой. Проверьте что параметр CodePage в netxmsd.cond выставлен в CP1251, или попробуйте UNICODE сборку сервера.
-
@victor said in Научите правильно слать СМС:
SMS с русскими буквами можно посылать только в PDU режиме насколько я понимаю. Кроме того, сам сервер должен работать в UNICODE или code page должен быть выставлен в CP-1251.
А про какой code page речь?
У меня вроде все верно - в netxmsd.conf:
CodePage = CP1251
База, соотвественно, тоже везде DEFAULT CHARSET=cp1251.Впринципе я без юникода вполне себе обхожусь, вот только с СМС-ками загвоздка. Можно конечно gnokii прикрутить на сервере.
Виктор, а не сложно ли будет реализовать такую хотелку - галочку в настройках сервера "Отправлять SMS транслитом", ну и в зависимости от настройки CodePage, конвертить сообщения из UTF или 1251 в транслит перед отправкой? Было бы прекрасно, и доступного текста в 2 раза больше опять же
-
@sabonez said in Научите правильно слать СМС:
@victor said in Научите правильно слать СМС:
SMS с русскими буквами можно посылать только в PDU режиме насколько я понимаю. Кроме того, сам сервер должен работать в UNICODE или code page должен быть выставлен в CP-1251.
А про какой code page речь?
У меня вроде все верно - в netxmsd.conf:
CodePage = CP1251
База, соотвественно, тоже везде DEFAULT CHARSET=cp1251.Впринципе я без юникода вполне себе обхожусь, вот только с СМС-ками загвоздка. Можно конечно gnokii прикрутить на сервере.
Виктор, а не сложно ли будет реализовать такую хотелку - галочку в настройках сервера "Отправлять SMS транслитом", ну и в зависимости от настройки CodePage, конвертить сообщения из UTF или 1251 в транслит перед отправкой? Было бы прекрасно, и доступного текста в 2 раза больше опять же
Вам легче написать трасформейшн скрипт и отправлять сообщения через макрос потом %[translit("очень важно сообщение")]
Ну, UCS это и есть юникод насколько я понимаю.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login