USSD encoding issue with u-blox TOBY-L210
ModemManager 1.20.0
Debian 11, Kernel 6.1.0-0.deb11.5-amd64
u-blox TOBY-L210, Version 17.00, primary port: ttyACM1, ports: ttyACM0 (at), ttyACM1 (at), ttyACM2 (at),
I tried sending a USSD code:
mmcli -m 0 --3gpp-ussd-initiate='*101#'
Response:
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Aborted: USSD terminated by network'
However, when sending the same command with screen /dev/ttyACM0
(disabled modemmanger for testing) the command goes through:
AT+CUSD=1,"*101#",15
OK
+CUSD: 0,"Teilnehmer wurde nicht gefunden.",15
When running in debug mode, the following can be seen:
ModemManager[41007]: <debug> [1680921533.983700] [ttyACM1/at] device open count is 3 (open)
ModemManager[41007]: <debug> [1680921533.984443] [ttyACM1/at] --> 'AT+CUSD=1,"002A0031003000310023",15<CR>'
ModemManager[41007]: <debug> [1680921533.996828] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921533.997329] [ttyACM1/at] device open count is 2 (close)
ModemManager[41007]: <debug> [1680921534.888156] [ttyACM1/at] <-- '<CR><LF>+CEREG: 4<CR><LF>'
ModemManager[41007]: <info> [1680921534.888617] [modem0] 3GPP registration state changed (home -> registering)
ModemManager[41007]: <debug> [1680921534.888780] [modem0] loading Operator Code...
ModemManager[41007]: <debug> [1680921534.888946] [ttyACM1/at] device open count is 3 (open)
ModemManager[41007]: <debug> [1680921534.889141] [ttyACM1/at] device open count is 4 (open)
ModemManager[41007]: <debug> [1680921534.889502] [ttyACM0/at] <-- '<CR><LF>+CEREG: 4<CR><LF>'
ModemManager[41007]: <debug> [1680921534.889777] [ttyACM1/at] --> 'AT+COPS=3,2<CR>'
ModemManager[41007]: <debug> [1680921534.890882] [ttyACM1/at] <-- '<CR><LF>+CIEV: 9,1<CR><LF>'
ModemManager[41007]: <debug> [1680921534.897654] [ttyACM0/at] <-- '<CR><LF>+CIEV: 9,1<CR><LF>'
ModemManager[41007]: <debug> [1680921534.916015] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921534.916470] [ttyACM1/at] device open count is 3 (close)
ModemManager[41007]: <debug> [1680921534.916678] [ttyACM1/at] --> 'AT+COPS?<CR>'
ModemManager[41007]: <debug> [1680921534.957267] [ttyACM1/at] <-- '<CR><LF>+COPS: 0,2,"23201",2<CR><LF>'
ModemManager[41007]: <debug> [1680921534.957806] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921534.958388] [modem0] couldn't convert operator string '23201' from charset 'UCS2': Hex conversion failed: invalid input length
ModemManager[41007]: <debug> [1680921534.958563] [modem0] operator normalized '23201'->'23201'
ModemManager[41007]: <debug> [1680921534.958652] [modem0] loaded Operator Code: 23201
ModemManager[41007]: <debug> [1680921534.958928] [modem0] loading Operator Name...
ModemManager[41007]: <debug> [1680921534.959057] [ttyACM1/at] device open count is 4 (open)
ModemManager[41007]: <debug> [1680921534.959246] [ttyACM1/at] device open count is 5 (open)
ModemManager[41007]: <debug> [1680921534.959471] [ttyACM1/at] device open count is 4 (close)
ModemManager[41007]: <debug> [1680921534.959679] [ttyACM1/at] --> 'AT+COPS=3,0<CR>'
ModemManager[41007]: <debug> [1680921534.974087] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921534.974586] [ttyACM1/at] device open count is 3 (close)
ModemManager[41007]: <debug> [1680921534.974831] [ttyACM1/at] --> 'AT+COPS?<CR>'
ModemManager[41007]: <debug> [1680921535.007210] [ttyACM1/at] <-- '<CR><LF>+COPS: 0,0,"A1",2<CR><LF>'
ModemManager[41007]: <debug> [1680921535.007731] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921535.008321] [modem0] couldn't convert operator string 'A1' from charset 'UCS2': Invalid conversion from UCS2 to UTF-8: Couldn't convert from UCS2 to UTF-8 with translit: Partial character sequence at end of input
ModemManager[41007]: <debug> [1680921535.008426] [modem0] operator normalized 'A1'->'A1'
ModemManager[41007]: <debug> [1680921535.008521] [modem0] loaded Operator Name: A1
ModemManager[41007]: <info> [1680921535.008745] [modem0] 3GPP registration state changed (registering -> home)
ModemManager[41007]: <debug> [1680921535.008848] [modem0] consolidated registration state: cs 'home', ps 'unknown', eps 'unknown', 5gs 'unknown' --> 'home'
ModemManager[41007]: <debug> [1680921535.009251] [ttyACM1/at] device open count is 2 (close)
ModemManager[41007]: <debug> [1680921535.731197] [ttyACM1/at] <-- '<CR><LF>+CIEV: 2,2<CR><LF>'
ModemManager[41007]: <debug> [1680921535.731859] [modem0] signal quality updated (40)
ModemManager[41007]: <debug> [1680921535.732165] [ttyACM0/at] <-- '<CR><LF>+CIEV: 2,2<CR><LF>'
ModemManager[41007]: <debug> [1680921535.732448] [modem0] signal quality updated (40)
ModemManager[41007]: <debug> [1680921536.593017] [ttyACM1/at] <-- '<CR><LF>+CGEV: NW MODIFY 4,0,0<CR><LF>'
ModemManager[41007]: <debug> [1680921536.594134] [ttyACM0/at] <-- '<CR><LF>+CGEV: NW MODIFY 4,0,0<CR><LF>'
ModemManager[41007]: <debug> [1680921536.844441] [ttyACM1/at] <-- '<CR><LF>+CUSD: 2,"0055006e0065007800700065006300740065006400200044006100740061002000560061006c00750065",72<CR><LF>'
ModemManager[41007]: <debug> [1680921536.844804] [modem0] unsolicited USSD URC received
ModemManager[41007]: <debug> [1680921536.846065] [ttyACM0/at] <-- '<CR><LF>+CUSD: 2,"Unexpected Data Value",244<CR><LF>'
ModemManager[41007]: <debug> [1680921536.846233] [modem0] unsolicited USSD URC received
This looks like modemmanager trying a different encoding scheme. Can I somehow force a different encoding?
The issue seems to be related to this one: #103
Trying to send with mmcli -m 0 --command=AT+CUSD=1,"*101#",15
:
ModemManager[41007]: <debug> [1680921790.279465] [ttyACM1/at] device open count is 3 (open)
ModemManager[41007]: <debug> [1680921790.279849] [ttyACM1/at] --> 'AT+CUSD=1,*101#,15<CR>'
ModemManager[41007]: <debug> [1680921790.293692] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921790.294690] [ttyACM1/at] device open count is 2 (close)
ModemManager[41007]: <debug> [1680921791.239243] [ttyACM1/at] <-- '<CR><LF>+CEREG: 4<CR><LF>'
ModemManager[41007]: <info> [1680921791.239710] [modem0] 3GPP registration state changed (home -> registering)
ModemManager[41007]: <debug> [1680921791.239860] [modem0] loading Operator Code...
ModemManager[41007]: <debug> [1680921791.240007] [ttyACM1/at] device open count is 3 (open)
ModemManager[41007]: <debug> [1680921791.240183] [ttyACM1/at] device open count is 4 (open)
ModemManager[41007]: <debug> [1680921791.240508] [ttyACM0/at] <-- '<CR><LF>+CEREG: 4<CR><LF>'
ModemManager[41007]: <debug> [1680921791.240818] [ttyACM1/at] --> 'AT+COPS=3,2<CR>'
ModemManager[41007]: <debug> [1680921791.242118] [ttyACM1/at] <-- '<CR><LF>+CIEV: 9,1<CR><LF>'
ModemManager[41007]: <debug> [1680921791.243334] [ttyACM0/at] <-- '<CR><LF>+CIEV: 9,1<CR><LF>'
ModemManager[41007]: <debug> [1680921791.258833] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921791.259287] [ttyACM1/at] device open count is 3 (close)
ModemManager[41007]: <debug> [1680921791.259492] [ttyACM1/at] --> 'AT+COPS?<CR>'
ModemManager[41007]: <debug> [1680921791.306227] [ttyACM1/at] <-- '<CR><LF>+COPS: 0,2,"23201",2<CR><LF>'
ModemManager[41007]: <debug> [1680921791.306768] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921791.307202] [modem0] couldn't convert operator string '23201' from charset 'UCS2': Hex conversion failed: invalid input length
ModemManager[41007]: <debug> [1680921791.307310] [modem0] operator normalized '23201'->'23201'
ModemManager[41007]: <debug> [1680921791.307400] [modem0] loaded Operator Code: 23201
ModemManager[41007]: <debug> [1680921791.307634] [modem0] loading Operator Name...
ModemManager[41007]: <debug> [1680921791.307746] [ttyACM1/at] device open count is 4 (open)
ModemManager[41007]: <debug> [1680921791.307916] [ttyACM1/at] device open count is 5 (open)
ModemManager[41007]: <debug> [1680921791.308036] [ttyACM1/at] device open count is 4 (close)
ModemManager[41007]: <debug> [1680921791.308193] [ttyACM1/at] --> 'AT+COPS=3,0<CR>'
ModemManager[41007]: <debug> [1680921791.327538] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921791.327989] [ttyACM1/at] device open count is 3 (close)
ModemManager[41007]: <debug> [1680921791.328197] [ttyACM1/at] --> 'AT+COPS?<CR>'
ModemManager[41007]: <debug> [1680921791.355497] [ttyACM1/at] <-- '<CR><LF>+COPS: 0,0,"A1",2<CR><LF>'
ModemManager[41007]: <debug> [1680921791.355991] [ttyACM1/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[41007]: <debug> [1680921791.356518] [modem0] couldn't convert operator string 'A1' from charset 'UCS2': Invalid conversion from UCS2 to UTF-8: Couldn't convert from UCS2 to UTF-8 with translit: Partial character sequence at end of input
ModemManager[41007]: <debug> [1680921791.356627] [modem0] operator normalized 'A1'->'A1'
ModemManager[41007]: <debug> [1680921791.356707] [modem0] loaded Operator Name: A1
ModemManager[41007]: <info> [1680921791.356920] [modem0] 3GPP registration state changed (registering -> home)
ModemManager[41007]: <debug> [1680921791.357007] [modem0] consolidated registration state: cs 'home', ps 'unknown', eps 'unknown', 5gs 'unknown' --> 'home'
ModemManager[41007]: <debug> [1680921791.357332] [ttyACM1/at] device open count is 2 (close)
ModemManager[41007]: <debug> [1680921792.036872] [ttyACM1/at] <-- '<CR><LF>+CIEV: 2,2<CR><LF>'
ModemManager[41007]: <debug> [1680921792.037496] [modem0] signal quality updated (40)
ModemManager[41007]: <debug> [1680921792.037765] [ttyACM0/at] <-- '<CR><LF>+CIEV: 2,2<CR><LF>'
ModemManager[41007]: <debug> [1680921792.038073] [modem0] signal quality updated (40)
ModemManager[41007]: <debug> [1680921792.944212] [ttyACM1/at] <-- '<CR><LF>+CGEV: NW MODIFY 4,0,0<CR><LF>'
ModemManager[41007]: <debug> [1680921792.945334] [ttyACM0/at] <-- '<CR><LF>+CGEV: NW MODIFY 4,0,0<CR><LF>'
ModemManager[41007]: <debug> [1680921793.157302] [ttyACM1/at] <-- '<CR><LF>+CUSD: 0,"Teilnehmer wurde nicht gefunden.",15<CR><LF>'
ModemManager[41007]: <debug> [1680921793.157630] [modem0] unsolicited USSD URC received
ModemManager[41007]: <debug> [1680921793.158564] [ttyACM0/at] <-- '<CR><LF>+CUSD: 0,"Teilnehmer wurde nicht gefunden.",15<CR><LF>'
ModemManager[41007]: <debug> [1680921793.158733] [modem0] unsolicited USSD URC received
ModemManager[41007]: <debug> [1680921794.729987] [modem0] loading signal quality...
ModemManager[41007]: <debug> [1680921794.730344] [ttyACM1/at] device open count is 3 (open)
ModemManager[41007]: <debug> [1680921794.730624] [ttyACM1/at] --> 'AT+CIND?<CR>'
ModemManager[41007]: <debug> [1680921794.744131] [ttyACM1/at] <-- '<CR><LF>+CIND: 5,2,1,0,0,0,0,0,1,0,0,1<CR><LF>'