ModemManager - Não é possível enviar SMS com chaves

ModemManager - Não é possível enviar SMS com chaves

Estou com um problema ao usar o ModemManager (mmcli 1.14.2) para enviar SMS programaticamente que contém uma certa combinação de caracteres especiais que ainda não identifiquei.

O SMS que estou tentando enviar é o seguinte:

OK({ yRgK1DNXQKo4C7uK43WnHArW1XbNekn6JJ80qgMTRcPM8pgGTJMwYDgseRRYOEA6NdCgQNgiSoheRZnK0czZy5P0GTny3rRrSEE9HTiFepFnhDxM6B2J3bpbHnHJiYbSQt40rt0dwIoZYeiEYyo7glw1kswTrg7He5Ojl8ysyxF4X54SCQomZrKRPsrEHpT2vLjCLfGn9pDGHxodwXbbKADm8j4waiGVnZfRBJBDSx8VUO28Yit068aM32t9a91NC0eUVkyUEGkNsm75cVQ7KJ0rpzucTRSudO7DJLxrgetz })

Estou usando uma string aleatória aqui apenas para simular uma grande carga útil. Na realidade, a carga útil entre chaves é um modelo mais estruturado.

O problema é que sempre que uso chaves para encapsular o payload, a mensagem não é entregue ao destinatário.

Estou enfrentando esse problema usando os seguintes métodos de envio.

Usando MMCLI

Envio de SMS usando mmcli com:

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

e então

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

O que dá o seguinte resultado:

enviou o SMS com sucesso

Usando DBUS

Eu uso oMensagensInterface DBUS para criar um novoSMS, defina suas propriedades "número" e "texto" (string UTF8) e envie-o usando seu Send()método.

Eu uso C# eTmds.Dbusinteragir com o ônibus.

O problema

Usando os dois métodos, não consigo receber a mensagem no telefone do destinatário. Se eu tentar enviar a mesma mensagemsemaparelho encaracolado, ele é entregue sem nenhum problema. Se eu tentar enviar outra mensagemcomaparelho encaracolado (algo como "OK({Teste})"ele ainda é entregue sem nenhum problema. Se eu tentar enviar alguma das mensagens acima de um telefone para o dispositivo que estou usando (com gerenciador de modem), elas serão recebidas sem nenhum problema (com ou sem chaves, longas e curtas versão).

Parece que há uma combinação especial de caracteres que causa problemas ao ModemManager e, portanto, não é enviada.

O fato de a mesma mensagem poder ser enviada de um telefone para o ModemManager me faz pensar que não há nenhum problema por parte da operadora móvel.

Infelizmente, como a carga útil real contém um modelo codificado em JSON, as chaves são importantes.

Responder1

Você está tentando enviar um buffer de 309 caracteres. SMS tem um limite (de 104).

informação relacionada