Encoding issue when sending USSD codes on Telit LE910
I'm using a Telit LE910 (EU V2) and trying to send a USSD code (in my case *101#) to request my credit. The procedure is working with a Huawei modem I've also been using, so I'm sure that it's a bug related to the Telit modem.
To send the USSD code I'm using mmcli (--3gpp-ussd-initiate=*101#
). Furthermore I'm running ModemManager (version 1.8.2) in --debug
mode, so I can trace what's specifically happening.
To gain some further knowledge about the supported encodings on the Telit modem I've also been using mmcli (--command=AT+CSCS=?
).
The default encoding seems to be "UCS2"
, other possibilities are "GSM","IRA","8859-1","PCCP437","UCS2","HEX"
.
When issuing the USSD request using mmcli, the following request is sent to the modem:
AT+CUSD=1,"002A0031003000310023",15
After some seconds I receive a
+CUSD: 4
from the modem and the command returns with
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
After fiddling around for a while and also trying out some of the other encodings (using an AT commando to manually switch) I noticed that it seem to work when sending the USSD code unencoded/in plain text:
Using mmcli to send the USSD code (--command=AT+CUSD=1,"*101#",15
) I can see the USSD response being successfully received in the debug window. The output is then displayed in the presumably selected encoding.
In my case the USSD response was "Ihr aktuelles Guthaben beträgt 9,53 Euro.".
e.g. when using UCS2 the response is
+CUSD: 2,"00490068007200200061006B007400750065006C006C0065007300200047007500740068006100620065006E0020006200650074007200E40067007400200039002C003500330020004500750072006F002E",15
when using HEX the response is
+CUSD: 2,"49687220616B7475656C6C657320477574686162656E20626574727B677420392C3533204575726F2E",15
etc.
Is there any possibility to fix (or at least manually patch) this?
In case you need some further information just let me know.