ModemManager - 無法傳送帶有花括號的簡訊

ModemManager - 無法傳送帶有花括號的簡訊

我遇到了使用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

給出以下結果:

簡訊發送成功

使用DBUS

我用訊息傳遞建立新的DBUS接口簡訊Send(),設定其“number”和“text”(UTF8字串)屬性,然後使用其方法發送。

我使用 C# 和TMDS.Dbus與總線互動。

問題

使用這兩種方法,我都無法在收件人的手機上接收訊息。如果我嘗試發送相同的訊息沒有大括號,它可以毫無問題地交付。如果我嘗試發送另一則訊息大括號(類似“好的({測試})「它仍然可以毫無問題地交付。如果我嘗試將上述任何訊息從手機發送到我正在使用的設備(使用調製解調器管理器),它們就會毫無問題地收到(帶或不帶花括號,長或短)版本)。

似乎有一種特殊的字元組合會導致 ModemManager 出現問題,因此不會被傳送。

事實上,相同的訊息可以從手機發送到 ModemManager,這讓我認為行動電信商方面沒有任何問題。

不幸的是,由於實際有效負載包含 JSON 編碼模型,因此花括號很重要。

答案1

您正在嘗試傳送 309 個字元的緩衝區。 SMS 有限制(最多 104 條)。

相關內容