Multipart SMS

Aleksander Morgado aleksander at aleksander.es
Thu Jul 11 08:47:34 UTC 2019


Hey!

> I have an issue with SMS > 160 characters not showing up in my SMS
> application.
>
> When SMS < 160 characters are received, the following steps take place:
>
> - MM emits an 'added' signal
> - in the callback, the SMS client pulls the SMS list with
> 'mm_modem_messaging_list'
> - in the 'cb_sms_list_ready' the PDU type of the last received SMS says
> 'MM_SMS_PDU_TYPE_DELIVER'
> - the SMS state is 'MM_SMS_STATE_RECEIVED' so the message has been
> completely received
> - the SMS text is fetched with mm_sms_get_text and displayed in the app
>

Yes.

>
> But with a multipart SMS things go different from here:
>
> - in the 'cb_sms_list_ready' the PDU type is 'MM_SMS_PDU_TYPE_UNKNOWN'
> - the SMS state is 'MM_SMS_STATE_RECEIVING', saying the message is being
> received but is not yet complete
> - no further events occur since the multipart message is stored in only
> one SMS object, which contains the entire message
> - the SMS text won't be fetched and displayed, since there is no clear
> indication of proper reception
>

Are we sure the second part was received and processed correctly?

> Given, that there is just one SMS object, I guess that the libmm API
> handles single-part and multi-part SMS in the same way. So I wonder why
> I get a different PDU/SMS state with the latter?
>

That is the idea, the libmm-glib API should work in the same way for
singlepart and multipart messages, as long as all the parts are
received and processed correctly. Could you share some debug logs of
MM while this is happening?

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list