ModemManager: no se pueden enviar SMS con llaves

ModemManager: no se pueden enviar SMS con llaves

Tengo un problema al utilizar ModemManager (mmcli 1.14.2) para enviar SMS mediante programación que contiene una determinada combinación de caracteres especiales que aún tengo que identificar.

El SMS que estoy intentando enviar es el siguiente:

OK({ yRgK1DNXQKo4C7uK43WnHArW1XbNekn6JJ80qgMTRcPM8pgGTJMwYDgseRRYOEA6NdCgQNgiSoheRZnK0czZy5P0GTny3rRrSEE9HTiFepFnhDxM6B2J3bpbHnHJiYbSQt40rt0dwIoZYeiEYyo7glw1kswTrg7He5Ojl8ysyxF4X54SCQomZrKRPsrEHpT2vLjCLfGn9pDGHxodwXbbKADm8j4waiGVnZfRBJBDSx8VUO28Yit068aM32t9a91NC0eUVkyUEGkNsm75cVQ7KJ0rpzucTRSudO7DJLxrgetz })

Estoy usando una cadena aleatoria aquí solo para simular una carga útil grande. En realidad, la carga útil entre llaves es un modelo más estructurado..

El problema es que cada vez que uso llaves para encapsular la carga útil, el mensaje no se entrega al destinatario.

Me enfrento a este problema utilizando los siguientes métodos de envío.

Usando MMCLI

Envío de SMS usando mmcli con:

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

y luego

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

Lo que da el siguiente resultado:

envió exitosamente el SMS

Usando DBUS

Yo uso elMensajeríaInterfaz DBUS para crear un nuevoSMS, establezca sus propiedades "número" y "texto" (cadena UTF8) y luego envíelo usando su Send()método.

Yo uso C# yTmds.Dbuspara interactuar con el autobús.

El problema

Al utilizar ambos métodos, no puedo recibir el mensaje en el teléfono del destinatario. Si intento enviar el mismo mensajesinllaves, se entrega sin ningún problema. Si intento enviar otro mensajeconllaves (algo como "Aceptar ({Prueba})"todavía se entrega sin ningún problema. Si intento enviar cualquiera de los mensajes anteriores desde un teléfono al dispositivo que estoy usando (con el administrador de módem), se reciben sin ningún problema (con o sin llaves, largas y cortas). versión).

Parece que hay una combinación especial de caracteres que causa problemas a ModemManager y por lo tanto no se envía.

El hecho de que el mismo mensaje pueda enviarse desde un teléfono a ModemManager me hace pensar que no hay ningún problema por parte del operador de telefonía móvil.

Desafortunadamente, dado que la carga útil real contiene un modelo codificado JSON, las llaves son importantes.

Respuesta1

Estás intentando enviar un búfer de 309 caracteres. Los SMS tienen un límite (de 104).

información relacionada