ModemManager - Невозможно отправить SMS с фигурными скобками

ModemManager - Невозможно отправить SMS с фигурными скобками

Я столкнулся с проблемой при использовании ModemManager (mmcli 1.14.2) для программной отправки SMS, содержащих определенную комбинацию специальных символов, которую мне еще предстоит идентифицировать.

Я пытаюсь отправить следующее SMS:

OK({ yRgK1DNXQKo4C7uK43WnHArW1XbNekn6JJ80qgMTRcPM8pgGTJMwYDgseRRYOEA6NdCgQNgiSoheRZnK0czZy5P0GTny3rRrSEE9HTiFepFnhDxM6B2J3bpbHnHJiYbSQt40rt0dwIoZYeiEYyo7glw1kswTrg7He5Ojl8ysyxF4X54SCQomZrKRPsrEHpT2vLjCLfGn9pDGHxodwXbbKADm8j4waiGVnZfRBJBDSx8VUO28Yit068aM32t9a91NC0eUVkyUEGkNsm75cVQ7KJ0rpzucTRSudO7DJLxrgetz })

Я использую случайную строку здесь только для имитации большой полезной нагрузки. На самом деле полезная нагрузка между фигурными скобками — это более структурированная модель.

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

Я сталкиваюсь с этой проблемой, используя следующие методы отправки.

Использование MMCLI

Отправка СМС с помощью mmcli:

mmcli -m 1 --messaging-create-sms="number=<NUMBER>,text='OK({yRgK1DNXQKo4C7uK43WnHArW1XbNekn6JJ80qgMTRcPM8pgGTJMwYDgseRRYOEA6NdCgQNgiSoheRZnK0czZy5P0GTny3rRrSEE9HTiFepFnhDxM6B2J3bpbHnHJiYbSQt40rt0dwIoZYeiEYyo7glw1kswTrg7He5Ojl8ysyxF4X54SCQomZrKRPsrEHpT2vLjCLfGn9pDGHxodwXbbKADm8j4waiGVnZfRBJBDSx8VUO28Yit068aM32t9a91NC0eUVkyUEGkNsm75cVQ7KJ0rpzucTRSudO7DJLxrgetz})'"

а потом

mmcli -m 1 --sms <id> --send

Что дает следующий результат:

успешно отправлено СМС

Использование DBUS

Я используюОбмен сообщениямиИнтерфейс DBUS для создания новогоSMS, задайте его свойства «число» и «текст» (строка UTF8), а затем отправьте его с помощью его Send()метода.

Я использую C# иTmds.Dbusдля взаимодействия с автобусом.

Проблема

Используя оба метода, я не могу получить сообщение на телефон получателя. Если я попытаюсь отправить то же самое сообщениебезфигурные скобки, оно доставляется без проблем. Если я попытаюсь отправить еще одно сообщениесфигурные скобки (что-то вроде "ОК({Тест})" оно все равно доставляется без проблем. Если я пытаюсь отправить любое из вышеперечисленных сообщений с телефона на устройство, которое я использую (с помощью менеджера модема), они принимаются без проблем (с фигурными скобками или без них, в длинной и короткой версии).

Похоже, что существует особая комбинация символов, которая вызывает проблемы в ModemManager и поэтому не отправляется.

Тот факт, что то же самое сообщение можно отправить с телефона в ModemManager, заставляет меня думать, что со стороны мобильного оператора нет никаких проблем.

К сожалению, поскольку фактическая полезная нагрузка содержит модель в кодировке JSON, фигурные скобки имеют значение.

решение1

Вы пытаетесь отправить буфер из 309 символов. У SMS есть ограничение (104).

Связанный контент