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 _______________________________________________ ModemManager-devel mailing list ModemManager-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel