Hi Aleksander,
I'm trying to investigate this issue. My observation is "mm_sms_part_get_index
((MMSmsPart *)ctx->current->data)" returns SMS_PART_INVALID_INDEX in the
function delete_next_part () in the file mm-sms-mbim.c. As a result
delete_next_part() returns from inside if (!ctx->current) check.
However, when I restart modemmanager and all the "deleted" SMS are listed again
and then if I try to delete them then mm_sms_part_get_index() returns a valid
index in delete_next_part and finaly mbim_device_command is called.
So the problem seems mm_sms_part_get_index ((MMSmsPart *)ctx->current->data)
not returning correct idx during delete. Any suggestion how to proceed from
here?
Amol
===
mm-sms-mbim.c:
static void
delete_next_part (GTask *task)
{
SmsDeletePartsContext *ctx;
MbimMessage *message;
MMSmsMbim *self;
self = g_task_get_source_object (task);
ctx = g_task_get_task_data (task);
/* Skip non-stored parts */
while (ctx->current &&
mm_sms_part_get_index ((MMSmsPart *)ctx->current->data) ==
SMS_PART_INVALID_INDEX) < - - This returns SMS_PART_INVALID_INDEX
ctx->current = g_list_next (ctx->current);
/* If all removed, we're done */
if (!ctx->current) {
mm_obj_err(self, "Inside NULL... %d", ctx->n_failed);
if (ctx->n_failed > 0)
g_task_return_new_error (task,
MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
"Couldn't delete %u parts from this SMS",
ctx->n_failed);
else
g_task_return_boolean (task, TRUE);
g_object_unref (task); < - - Function returns from here
return;
}
message = mbim_message_sms_delete_set_new (MBIM_SMS_FLAG_INDEX,
(guint32)mm_sms_part_get_index
((MMSmsPart *)ctx->current->data),
NULL);
mbim_device_command (ctx->device,
message,
10,
NULL,
(GAsyncReadyCallback)sms_delete_set_ready,
task);
mbim_message_unref (message);
}
-----Original Message-----
From: Aleksander Morgado <[email protected]>
Sent: Wednesday, 4 May 2022 1:16 PM
To: Amol Lad <[email protected]>
Cc: ModemManager (development) <[email protected]>
Subject: Re: Sent SMS not getting deleted from Modem
Hey,
On Wed, May 4, 2022 at 9:15 AM Amol Lad <[email protected]> wrote:
>
> Hi,
>
> I've observed this issue in MM 1.18.6. If I create and send SMS from
> ModemManager and then delete the message, ModemManager reports message
> successfully deleted but actually no QMI command is sent to the modem to
> delete the message. As a result, if I restart ModemManager, then that
> "deleted" SMS is again listed in ModemManager. If I try to delete it now then
> delete is successful. Sorry for confusing statement :).
>
This deserves a new issue in gitlab, could you open it with the details?
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/new
> Please refer to below steps along with the logs for what I'm trying to
> explain.
>
> Please advise what is going wrong
>
> # mmcli -m 0
> ----------------------------------
> General | path: /org/freedesktop/ModemManager1/Modem/0
> | device id: c6ffa92f0ce17a12c39b4a5e5c8e53f67bac2be2
> ----------------------------------
> Hardware | manufacturer: Sierra Wireless, Incorporated
> | model: Sierra Wireless EM7565 Qualcomm(r)
> Snapdragon(tm) X16 LTE-A
> | firmware revision: SWI9X50C_01.08.04.00
> | carrier config: default
> | h/w revision: EM7565
> | supported: gsm-umts, lte
> | current: gsm-umts, lte
> | equipment id: 353533100762262
> ----------------------------------
> System | device:
> /sys/devices/platform/soc/soc:internal-regs/f10f0000.usb3/usb2/2-1
> | drivers: qcserial, cdc_mbim
> | plugin: sierra
> | primary port: cdc-wdm0
> | ports: cdc-wdm0 (mbim), ttyUSB0 (qcdm), ttyUSB1
> (gps),
> | ttyUSB2 (at), wwan0 (net)
> ----------------------------------
> Status | unlock retries: sim-pin2 (3)
> | state: connected
> | power state: on
> | access tech: lte
> | signal quality: 19% (recent)
> ----------------------------------
> Modes | supported: allowed: 3g; preferred: none
> | allowed: 4g; preferred: none
> | allowed: 3g, 4g; preferred: 4g
> | allowed: 3g, 4g; preferred: 3g
> | current: allowed: 4g; preferred: none
> ----------------------------------
> Bands | supported: utran-1, utran-4, utran-6, utran-5,
> utran-8, utran-9,
> | utran-2, eutran-1, eutran-2, eutran-3,
> eutran-4, eutran-5, eutran-7,
> | eutran-8, eutran-9, eutran-12,
> eutran-13, eutran-18, eutran-19,
> | eutran-20, eutran-26, eutran-28,
> eutran-29, eutran-30, eutran-32,
> | eutran-41, eutran-42, eutran-43,
> eutran-46, eutran-48, eutran-66,
> | utran-19
> | current: eutran-1, eutran-2, eutran-3, eutran-4,
> eutran-5, eutran-7,
> | eutran-8, eutran-9, eutran-12,
> eutran-13, eutran-18, eutran-19,
> | eutran-20, eutran-26, eutran-28,
> eutran-29, eutran-30, eutran-32,
> | eutran-41, eutran-42, eutran-43,
> eutran-46, eutran-48, eutran-66
> ----------------------------------
> IP | supported: ipv4, ipv6, ipv4v6
> ----------------------------------
> 3GPP | imei: 353533100762262
> | enabled locks: fixed-dialing
> | operator id: 40445
> | operator name: airtel
> | registration: home
> ----------------------------------
> 3GPP EPS | ue mode of operation: csps-2
> | initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
> | initial bearer apn: internet
> | initial bearer ip type: ipv4
> ----------------------------------
> SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
> | sim slot paths: slot 1:
> /org/freedesktop/ModemManager1/SIM/0 (active)
> | slot 2: none
> ----------------------------------
> Bearer | paths: /org/freedesktop/ModemManager1/Bearer/1
>
>
> # mmcli -m 0 --messaging-create-sms="text='Hi',number='+919886559096'"
> Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/0
>
> # mmcli -s 0 --send
> successfully sent the SMS
>
> debug 2022-05-04T06:39:16+00:00 : [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<< length = 76
> <<<<<< data =
> 03:00:00:00:4C:00:00:00:2B:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:03:00:00:00:01:00:00:00:1C:00:00:00:00:00:00:00:08:00:00:00:10:00:00:00:00:01:00:0C:91:19:89:68:55:09:69:00:00:02:C8:34
> debug 2022-05-04T06:39:16+00:00 : [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< Header:
> <<<<<< length = 76
> <<<<<< type = command (0x00000003)
> <<<<<< transaction = 43
> <<<<<< Fragment header:
> <<<<<< total = 1
> <<<<<< current = 0
> <<<<<< Contents:
> <<<<<< service = 'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)
> <<<<<< cid = 'send' (0x00000003)
> <<<<<< type = 'set' (0x00000001)
> <<<<<< Fields:
> <<<<<< Format = '0'
> <<<<<< PduMessage = {
> <<<<<< PduData = '00:01:00:0c:91:19:89:68:55:09:69:00:00:02:c8:34'
> <<<<<< }
>
> >>>>>> RAW:
> >>>>>> length = 52
> >>>>>> data =
> >>>>>> 03:00:00:80:34:00:00:00:2B:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:03:00:00:00:00:00:00:00:04:00:00:00:A8:00:00:00
> debug 2022-05-04T06:39:16+00:00 : [/dev/cdc-wdm0] Received message
> (translated)...
> >>>>>> Header:
> >>>>>> length = 52
> >>>>>> type = command-done (0x80000003)
> >>>>>> transaction = 43
> >>>>>> Fragment header:
> >>>>>> total = 1
> >>>>>> current = 0
> >>>>>> Contents:
> >>>>>> status error = 'None' (0x00000000)
> >>>>>> service = 'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)
> >>>>>> cid = 'send' (0x00000003)
> >>>>>> Fields:
> >>>>>> MessageReference = '168'
>
> # mmcli -m 0 --messaging-list-sms
> /org/freedesktop/ModemManager1/SMS/0 (sent)
>
> # mmcli -m 0 --messaging-delete-sms=0
> successfully deleted SMS from modem
>
> < NO QMI MESSAGES ARE PRINTED HERE>
>
> # mmcli -m 0 --messaging-list-sms
> No sms messages were found
>
> RESTART MODEMMANAGER
>
> # /etc/init.d/modemmanager restart
>
> # mmcli -m 0 --messaging-list-sms
> /org/freedesktop/ModemManager1/SMS/0 (sent) < - - This message was
> deleted above and it got reappeared
>
> # mmcli -m 0 --messaging-delete-sms=0
> successfully deleted SMS from modem
>
> NOW THE MESSAGE GOT DELETED:
>
> debug 2022-05-04T06:41:23+00:00 : [/dev/cdc-wdm0] Sent message...
> <<<<<< RAW:
> <<<<<< length = 56
> <<<<<< data =
> 03:00:00:00:38:00:00:00:2A:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:04:00:00:00:01:00:00:00:08:00:00:00:01:00:00:00:01:00:00:00
> debug 2022-05-04T06:41:23+00:00 : [/dev/cdc-wdm0] Sent message (translated)...
> <<<<<< Header:
> <<<<<< length = 56
> <<<<<< type = command (0x00000003)
> <<<<<< transaction = 42
> <<<<<< Fragment header:
> <<<<<< total = 1
> <<<<<< current = 0
> <<<<<< Contents:
> <<<<<< service = 'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)
> <<<<<< cid = 'delete' (0x00000004)
> <<<<<< type = 'set' (0x00000001)
> <<<<<< Fields:
> <<<<<< Flag = 'index'
> <<<<<< MessageIndex = '1'
> debug 2022-05-04T06:41:23+00:00 : [/dev/cdc-wdm0] Received message...
> >>>>>> RAW:
> >>>>>> length = 48
> >>>>>> data =
> >>>>>> 03:00:00:80:30:00:00:00:2A:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:04:00:00:00:00:00:00:00:00:00:00:00
> debug 2022-05-04T06:41:23+00:00 : [/dev/cdc-wdm0] Received message
> (translated)...
> >>>>>> Header:
> >>>>>> length = 48
> >>>>>> type = command-done (0x80000003)
> >>>>>> transaction = 42
> >>>>>> Fragment header:
> >>>>>> total = 1
> >>>>>> current = 0
> >>>>>> Contents:
> >>>>>> status error = 'None' (0x00000000)
> >>>>>> service = 'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)
> >>>>>> cid = 'delete' (0x00000004)
> debug 2022-05-04T06:41:23+00:00 : [/dev/cdc-wdm0] Received message...
> >>>>>> RAW:
> >>>>>> length = 52
> >>>>>> data =
> >>>>>> 07:00:00:80:34:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:05:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00
> debug 2022-05-04T06:41:23+00:00 : [/dev/cdc-wdm0] Received message
> (translated)...
> >>>>>> Header:
> >>>>>> length = 52
> >>>>>> type = indicate-status (0x80000007)
> >>>>>> transaction = 0
> >>>>>> Fragment header:
> >>>>>> total = 1
> >>>>>> current = 0
> >>>>>> Contents:
> >>>>>> service = 'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)
> >>>>>> cid = 'message-store-status' (0x00000005)
> >>>>>> Fields:
> >>>>>> Flag = 'none'
> >>>>>> MessageIndex = '0'
>
> # mmcli -m 0 --messaging-list-sms
> No sms messages were found
--
Aleksander
https://aleksander.es