Hey,

while trying to resolve the issue when sending SMS with specific mbim modems 
(https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/562), I 
see different behaviour when sending SMS depending on the modem I use:

When I send an SMS using a non-MBIM modem (UBlox Toby L210, RNDIS), the SMS is 
shown (using mmcli) as sent. When I then restart ModemManager, the SMS is no 
longer there. So it seems that the message is not stored in SIM or modem.
When I send an SMS using my MBIM modem (Telit LE910C1-EU), the SMS is shown 
(using mmcli) as sent. When I then restart ModemManager, the SMS is still 
there. So it seems that the message is stored immediately when sending (to be 
precise: Any attempt to send the SMS creates an entry in the SMS storage on 
this modem -- so when I have three attempts to send an SMS, two failed and the 
third succeeded, I have two drafts and on sent message in the storage (!?) )

Is ModemManager capable to handle both of these scenarios? It seems to me that 
ModemManager does not expect the second scenario, which leads to the issue when 
deleting messages...

The SMS management in the MBIM protocol is extremely bad. There is no
notion of SMS storages or no action to explicitly store SMS messages.
Any SMS management operation on devices using the MBIM protocol
exclusively is really far from ideal.

In fact, it is a real show-stopper in my case, because there is no way to assure SMS sending to work properly: The message is stored, but I don't know where it is stored (got no index), so there is no way for ModemManager to properly delete the message. After a short while, SMS memory is full and I can't send any further messages. I can't even delete all messages, because ModemManager does not "see" them....

On possibility would be to read all messages any time one has been sent (as we do when ModemManager starts). But then there is still the question, how to find out which message is the one we just sent. Do you have any idea how to identify a message in the store after sending it without using the index?

Another possibility (just for my case) would be to delete all sent SMS each time after sending. But there is no support for that in mbimcli, although the MBIM protocol includes such a command. Do you have some guidance where to start if I want to implement it?

I have considered in the past modifying the logic so that all SMS
management operations are done via AT commands when an AT port is
available in the MBIM device, as that would allow us to be
full-featured again in this regard. This is something that could
benefit all MBIM devices out there, so a really nice thing to do IMO.
If anyone is up to the task, let me know and I'll provide some
guidance on what should be done.

It might be the only way for me to make SMS work when I want to use MBIM on that particular modem. So your guidance would be very helpful ....


(BTW: In both cases, ModemManager crashes when I try to store the message using 
mmcli after it has been sent).


Ohh, that's something to fix definitely. Could you open a new issue in
gitlab? We should not crash, we should return an error cleanly.
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/598

--
Best regards / Mit freundlichen Grüßen / Salutations distinguées

Ulrich Mohr

SEMEX-EngCon GmbH
Carl-Merz-Strass 26
76275 Ettlingen
Phone: +49 (0) 7243 5143596
email:  u.m...@semex-engcon.com
___________________________________________
Executive board: A. Stiegler, H.-J. Nitzpon
Commercial register: Mannheim, HRB 718881
Company domicile: Ettlingen

Reply via email to