ModemManager SMS Delivery State
Aleksander Morgado
aleksander at aleksander.es
Mon Dec 17 15:01:57 UTC 2018
Hey Andrea,
>
> I wrote a protocol plugin for libpurple, that interfaces with
> ModemManager via DBUS. Sending and receiving SMS works fine so far, but
> I'm struggling with getting the status for sent SMS.
>
> The SMS are created with 'delivery-report-request' = TRUE. Now I have
> difficulties to find a way to pull the 'DeliveryState' when an SMS has
> been sent.
>
> When I read the 'DeliveryState' property in the "Send" callback handler,
> the value is always 256. But it should rather be 0 or 1 for successful
> delivery.
>
The DeliveryState property of a *sent* SMS will always be
MM_SMS_DELIVERY_STATE_UNKNOWN (0x100).
> Apart from the exact DeliveryState, I wonder if the callback trigger
> confirms a successful delivery to the SMSC already?
>
No. When you send an SMS, the callback trigger confirms the SMS has
been sent only (as reported by the modem)
The way it works is like this:
* You send an SMS with delivery-report-request=TRUE
* While you do that, the "message reference" of the sent SMS will be
updated to the correct one.
* Once the SMS is received in the SMSC, the network will send you a new SMS.
* You receive a new SMS (pdu-type: status report) with a message
reference matching the one of your sent SMS.
* The received SMS contains the information of the delivery in the
DeliveryState property.
See some example of this flow here:
https://sigquit.wordpress.com/2012/09/14/sms-goodies-in-modemmanager/
--
Aleksander
https://aleksander.es
More information about the ModemManager-devel
mailing list