まだ認識されていない特殊文字の特定の組み合わせを含むテキストメッセージをプログラムで送信するためにModemManager(mmcli 1.14.2)を使用するのに問題があります。
私が送信しようとしているテキストメッセージは次のとおりです。
OK({ yRgK1DNXQKo4C7uK43WnHArW1XbNekn6JJ80qgMTRcPM8pgGTJMwYDgseRRYOEA6NdCgQNgiSoheRZnK0czZy5P0GTny3rRrSEE9HTiFepFnhDxM6B2J3bpbHnHJiYbSQt40rt0dwIoZYeiEYyo7glw1kswTrg7He5Ojl8ysyxF4X54SCQomZrKRPsrEHpT2vLjCLfGn9pDGHxodwXbbKADm8j4waiGVnZfRBJBDSx8VUO28Yit068aM32t9a91NC0eUVkyUEGkNsm75cVQ7KJ0rpzucTRSudO7DJLxrgetz })
ここでは、大規模なペイロードをシミュレートするためにランダムな文字列を使用しています。実際、中括弧間のペイロードはより構造化されたモデルです。。
問題は、中かっこを使用してペイロードをカプセル化するたびに、メッセージが受信者に配信されないことです。
次の転送方法を使用すると、この問題が発生します。
MMCLIの使用
mmcli を使用してテキストメッセージを送信します。
mmcli -m 1 --messaging-create-sms="number=<NUMBER>,text='OK({yRgK1DNXQKo4C7uK43WnHArW1XbNekn6JJ80qgMTRcPM8pgGTJMwYDgseRRYOEA6NdCgQNgiSoheRZnK0czZy5P0GTny3rRrSEE9HTiFepFnhDxM6B2J3bpbHnHJiYbSQt40rt0dwIoZYeiEYyo7glw1kswTrg7He5Ojl8ysyxF4X54SCQomZrKRPsrEHpT2vLjCLfGn9pDGHxodwXbbKADm8j4waiGVnZfRBJBDSx8VUO28Yit068aM32t9a91NC0eUVkyUEGkNsm75cVQ7KJ0rpzucTRSudO7DJLxrgetz})'"
それから
mmcli -m 1 --sms <id> --send
次の結果を提供します。
SMSが正常に送信されました。
DBUSの使用
私は使うメッセージング新しいDBUSインタフェースの作成ショートメッセージSend()
、「数値」および「テキスト」(UTF8文字列)プロパティを設定し、そのメソッドを使用して送信します。
私はC#を使用しています。TMDS.Dバスバスと対話します。
質問
両方の方法を使用すると、受信者の携帯電話でメッセージを受信できなくなります。同じメッセージを送信しようとするといいえ中かっこは問題なく渡されます。別のメッセージを送信しようとするとそして中かっこ("に似ています)わかりました({テスト})「これは問題なく配信されます。モデムマネージャを使用して携帯電話で使用されているデバイスに上記のメッセージを送信しようとすると、問題なく受信されます(中括弧の有無、長いまたは短い)バージョン)。
ModemManagerに問題を引き起こす特別な文字の組み合わせがあるようで、送信されません。
携帯電話からModemManagerに同じメッセージを送信できることを見ると、通信会社側では何の問題もないと思うようになります。
残念ながら、実際のペイロードにはJSONでエンコードされたモデルが含まれているため、中括弧が重要です。
答え1
309文字のバッファを送信しようとしています。 SMSは制限されています(最大104メッセージ)。