On Mon, 25 Jun 2012 18:10:36 +0200, Audric Schiltknecht wrote:
Hi guys.
I'm having troubles with delivery reports.
When I send a message with the property "UseDeliveryReports" set to
"true",
I can get the delivery report from the GSM modem, but ofono is unable
to decode it:
ofonod[677]: SMS: < \r\n+CDS:
32\r\n07913386094000F006DB0A810011223344216052714081802160527140228000\r\n
ofonod[677]: drivers/atmodem/sms.c:at_cds_notify() Got new
Status-Report PDU via CDS:
07913386094000F006DB0A810011223344216052714081802160527140228000, 32
ofonod[677]: src/sms.c:ofono_sms_status_notify() len 32 tpdu len 32
ofonod[677]: Unable to decode PDU
The PDU is valid, since I can decode it using some online tool.
It seems that sms_decode does not correctly handle the SMSCC part
(913386094000F0),
and tries to decode it as the sender address, which obviously fails.
Digging a little further in the code, I found that the sms_decode()
function is responsible
of decoding the SMSC part of the PDU. However, this is done if tpdu_len
< len, which is not the case,
since both of them equal to 32.
If I correctly understand, 'tpdu' is returned by the modem in the +CDS
notification.
Here, its value is 32, which is correct as shown in the logs.
'len' is calculated in the decode_hex_own_buffer() function called in
the +CDS notification callback.
Here, its value also is 32, and I do not see how it could not be that.
Any help to point out my mistake(s) will be appreciated ;)
Regards,
Audric Schiltknecht
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono