Bullseye: ModemManager - странности отправки СМС (ошибка, пока не отправить через Gammu)

#bullseye ModemManager (точнее, mmcli) нормально отправляют СМС только после того, как один раз отправить СМС с помощью gammu (после перезагрузки все опять ломается). Не подскажете, в чем может быть проблема?

Последовательность действий и результатов
  1. После перезагрузки:

~# mmcli -m 0 --messaging-create-sms=“number=‘+79876543210’,text=‘Тестовый test’”
Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/0
~# mmcli -s 0 --send
error: couldn’t send the SMS: ‘GDBus.Error:org.freedesktop.ModemManager1.Error.Message.InvalidTextParameter: Invalid text mode parameter’
~# mmcli -s 0 --store ### пробуем сохранить, а не отослать, чтобы исключить глюки сети
error: couldn’t store the SMS: ‘GDBus.Error:org.freedesktop.ModemManager1.Error.Message.InvalidTextParameter: Invalid text mode parameter’
## Похоже, ошибка обработки модемом где-то на уровне расшифровки PDU (или непонимания, что это именно PDU - в дебаг-логах MM вроде вполне нормальная PDUшная строка)

  1. Выпускаем Gammu:

~# gammu sendsms TEXT +79876543210 -unicode -text ‘Тестовый test’
If you want break, press Ctrl+C…
Sending SMS 1/1…waiting for network answer…OK, message reference=4
## Через Gammu все нормально отработало, СМС пришла

  1. Пробуем то же шаманство с ModemManager:

~# mmcli -m 0 --messaging-create-sms=“number=‘+79876543210’,text=‘Тестовый test’”
Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/1
~# mmcli -s 1 --send
successfully sent the SMS
~# mmcli -s 1 --store ## Просто для полноты проверки
successfully stored the SMS
~# mmcli -m 0 --messaging-list-sms
/org/freedesktop/ModemManager1/SMS/1 (sent)
/org/freedesktop/ModemManager1/SMS/0 (unknown)
## А теперь все нормально работает - до самой перезагрузки или apt purge gammu & apt autopurge (если сделать apt remove gammu & apt autoremove, то mmcli по-прежнему может отправлять СМС до перезагрузки)

спасибо! А какой контроллер и модем? Если gammu работает, то покажите пожалуйста модель и версию прошивки модема.

Контроллер - WB7, testing/bullseye + apt upgrade перед тестами. Gammu висит на ttyUSB2. По модему в gammu с наскоку не нашел нужной команды, в mmcli -m 0 выводится вот это:

  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: 7dfb256f82318d3af2cb58da26233492c80e984f
  --------------------------------
  Hardware |         manufacturer: INCORPORATED
           |                model: A7600E-H-LNSE
           |    firmware revision: A39C4B07A7600M7
           |            supported: gsm-umts
           |              current: gsm-umts
           |         equipment id: 861065040373483
  --------------------------------
  System   |               device: /sys/devices/platform/soc/1c1c000.usb/usb3/3-1
           |              drivers: option, rndis_host
           |               plugin: simtech
           |         primary port: ttyUSB1
           |                ports: ttyUSB0 (ignored), ttyUSB1 (at), ttyUSB2 (at), usb0 (net)
  --------------------------------
  Status   |       unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                state: registered
           |          power state: on
           |          access tech: lte
           |       signal quality: 67% (cached)
  --------------------------------
  Modes    |            supported: allowed: any; preferred: none
           |              current: allowed: any; preferred: none
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: ххххххх
           |          operator id: 25002
           |        operator name: MegaFon
           |         registration: home
  --------------------------------
  3GPP EPS | ue mode of operation: csps-1
  --------------------------------
  SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/0
           |       sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
           |                       slot 2: none
Детали по контроллеру

Batch No

7.3.2A/2 643

DTS Version

732

HW Revision

7.3.2

Manufacturing Date

2022-08-24 14:47:48

Release name

staging.06954.cf98af374eb4

Release suite

testing

Short SN

A7BYxxxx

Temperature Grade

industrial

Вы не пробовали SMS только с английскими символами?

Пробовал, конечно - с этого и начинал. Русский добавил только после того, как случайно наткнулся на восстановление отсылки смсок через mmcli с помощью gammu.
Есть какой-то способ сбросить модем к начальным настройкам или сравнить с ними текущую конфигурацию? Летом много с ним экспериментировал, теоретически мог что-то записать нестандартное, что gammu правит при инициализации, а ModemManager - нет…

AT&F - сброс согласно документации.

Нет, это уже сделал в первую очередь, не спасло.

Удалось ли решить проблему? У меня точно такие же симптомы…

Нет, не удалось - думаю в качестве обходного варианта сделать единичную отсылку СМС при включении девайса через gammu, а в скриптах уже работать с mm.
Пока забросил эксперименты - каждый раз при apt upgrade заканчивается место на /root, и девайс превращается в тыкву, лечащуюся сбросом к заводским и полной переустановкой всего заново, что несколько утомляет. Дождусь, наверное, перехода в stable и решения проблемы с местом на рутовом разделе.
#######################
Добавка, пока вспомнил: если работает интернет-подключение по модему, то не работает gammu. Так что отправлять СМС через gammu надо до того, как включилось gsm-подключение. С новым Automatic connection switching это добавляет радости в серые будни.

@EvgenyBoger помогите нам с проблемой пожалуйста. Я, например, использую модем только для отправки SMS в случае проблем (wb-rules Alarms), а теперь получается, что нет никакой гарантии, что такая смс будет отправлена…

1 лайк

Дополнительно выявил: как минимум при переходе на другую сим-карту снова перестает работать отправка через mm и опять надо «инициализироваться» через gammu. Т.е. пока всё совсем грустно.

А научите такое поведение воспроизводить? вот у меня модем с поднятым gprs, я ради проверки несколько раз отправляю СМС - оно просто уходит.

А в первом посте всё описано…Оно просто вот так. AT&F не помогает. Что смотреть - непонятно.
Если надо - могу дать ssh на контроллер, только скажите, откуда.

Что смотреть - выполните первую отправку SMS с помощью gammu вот так:
gammu --debug text --debug-file /root/gammu.log sendsms TEXT +79876543210 -unicode -text ‘Тестовый test’
Ну и выложите сам файл.
А еще - версию прошивки модема.

Версия прошивки:

model: A7600E-H-LNSE
firmware revision: A39C4B07A7600M7

Перезагрузился. Выполнил команду. Ошибка. Приложен gammu1.log
gammu1.log (4.4 КБ)
Второй запуск закончился успехом, СМС отправлена. Приложен gammu2.log
gammu2.log (14.9 КБ)

При доступе в интернет через модем - gammu не работает, при доступе через другие сетевые карты при первом после ребута запуске работает сразу, выдает
gammu.log (15.6 КБ)

Модем:
A7600E-H-LNSE
A39C4B07A7600M7

Оформляю как баг разработчикам. Да, воспроизводится хорошо.
И причина понятна.
gammu читает с модема smsc (номер центра сообщений) и включает его в SMS
А mmcli нет. Но так как в предыдущей sms он был задан - то используется.

Супер, спасибо, похоже на правильный диагноз. Очень ждем исправления!

Не совсем, там еще параметры, котрые в pdu-кодированном сообщении. Методика проста:
Берем из дебага gammu строчку:

Leaving GSM_SendSMS
1 "AT+CMGS=40"
2 "> "
3 "07919761989901F011000B919761769187F60008FF1A0422043504410442043E0432044B043900200074006500730074"
4 "+CMGS: 67"
5 "OK"

засовываем в онлайн декодер например Online SMS PDU Decoder/Converter | Diafaan SMS Server
и смотрим в чем отличия с такой же из mm.

То есть я вчера еще посидел и попробовал добавить номер smsc так:

mmcli -m 0 --messaging-create-sms="text=test15,number=+7******,smsc=+79037011111,delivery-report-request='yes'"

Но не прошло.

Feb 21 16:54:14 wirenboard-AQASN7R6 ModemManager[32350]: <debug> [1676998454.936753] [modem0/ttyUSB1/at] <-- '07919730071111F121000B919782434371F8000006F4F29C1EAB01'
Feb 21 16:54:14 wirenboard-AQASN7R6 ModemManager[32350]: <debug> [1676998454.937234] [modem0/ttyUSB1/at] <-- '<CR><LF>+CMS ERROR: 305<CR><LF>'
Feb 21 16:54:14 wirenboard-AQASN7R6 ModemManager[32350]: <debug> [1676998454.937485] [modem0/ttyUSB1/at] operation failure: 305 (Invalid text mode parameter)

Еще подебажу, но думаю путь верен, так как все прочее что отправляет gammu, например

mmcli -vvvv -m 0 --command=AT+CMEE=1
mmcli -vvvv -m 0 --command=AT+CFUN=1
mmcli -vvvv -m 0 --command=AT+CMGF=0
mmcli -vvvv -m 0 --command=AT+CGMM

влияния не оказывает.

Та же самая проблема, то у меня уже идет загвоздка на п.2

Я так понимаю gammu вы отдельно настраивали? или же перед этим нужно както останавливать сервис mmcli?

на п.2 gammu выдает у меня такую ошибку. будто модем занят (в конфиге указан порт dev/ttyUSB1
image

Не подскажите что нужно сделать?