From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: VS: [PATCH 09/11] Support for concatenated SMS status report. And ofono_history_sms is now updated according to received status reports.
Date: Mon, 31 May 2010 11:18:30 -0500 [thread overview]
Message-ID: <201005311118.31480.denkenz@gmail.com> (raw)
In-Reply-To: <EA8B5A37FEEFC048AF3F8170D2819913B8C1280A47@jklmail01.ixonos.local>
[-- Attachment #1: Type: text/plain, Size: 3313 bytes --]
Hi Pasi,
> > I'd like to see a status_report assembly similar to how the sms_assembly
> > is done. This should exist in smsutil.c/.h so that we can easily unit
> > test this functionality (which I would also like to see.)
> >
> > Another desirable feature for the status report assembly is to save off
> > the status report fragments on disk, so that status reports (for
> > multi-fragment SMSes) received across oFono / system reboots and crashes
> > are handled appropriately.
>
> Could you clarify a bit what do you mean by "status_report assembly
> silmilar to how the sms_assembly is done"?
The function of sms_assembly is twofold:
- It takes care of all the de-fragmentation logic and only gives back a list
of sms fragments once the entire list is received. This is done outside of
src/sms.c so that we can easily unit test this functionality and to keep
clutter out of the main core logic.
- It takes care of writing fragments out to disk, so that in case of reset /
reboot the received fragments are not lost. This storage is keyed by the IMSI
of SIM card, so even if the SIM is removed and a new inserted things just
work.
For status reports I'd like something similar. E.g. if I send a concatenated
message with 3 fragments, and only 2 status reports come in before reboot, the
next time I startup and receive the 3rd status report, the message state
should be updated appropriately.
>
> Currently I have a belief that status-report, which relates to sent
> concatenated message, does not know anything about other status-reports
> which relate to the same concatenated message. I have to admit that I am
> not sure if this belief is correct. Is it?
You are correct in that each status report is handled / delivered separately.
However, just relying on MR is not enough. If you're sending lots of messages
it is quite easy to overflow the MR. So you must at least take the destination
address into account.
Also, for sms fragments containing a udh, you can set some bits indicating to
the SMSC to preserve the outgoing headers. This way you can actually
correlate the outgoing fragmentation information to the incoming status
reports. See Service Center Control Parameters IEI. Whether this is useful
in practice, I'm not sure...
>
> If the status-reports of the concatenated message know about each other,
> then I might have some kind of picture what you are looking for concidering
> the status_report assembly. Otherwise I am little bit lost what you are
> after if my current solution does not satisfy you at all.
If the SMSC sends you the original headers, then you have a pretty good chance
of reliably correlating between sent message fragments and incoming status
reports. If you don't, then fall back to the regular MR + destination address
approach.
The status_report_assembly can actually take some information as input. Such
as the fragment concatentation header, message reference, outgoing address and
expiration time.
So in summary:
- should be in src/smsutil.c
- store intermediate state on disk and restore the state as needed on startup
- takes mr + destination address into account
- only notifies once all fragments are received or first fails
Regards,
-Denis
next prev parent reply other threads:[~2010-05-31 16:18 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-27 10:54 [PATCH 01/11] In drivers/atmodem/sms.c:at_cmgl_cpms_cb() there is a temporary fix for Siemens TC65. If AT+CMGL=4 is sent to TC65, the AT command queue jams pasi.miettinen
2010-05-27 10:54 ` [PATCH 02/11] Made needed changes to at_cds_notify() for status report and corrected at_cmgl_cpms_cb() to meet the ISO standard pasi.miettinen
2010-05-27 10:54 ` [PATCH 03/11] Enable status report pasi.miettinen
2010-05-27 10:54 ` [PATCH 04/11] Changes for SMS statur report pasi.miettinen
2010-05-27 10:54 ` [PATCH 05/11] Added message delivery time to dbus message pasi.miettinen
2010-05-27 10:54 ` [PATCH 06/11] Made it possible to ask for status report via SendMessage method parameters. True=status report on, false=off pasi.miettinen
2010-05-27 10:54 ` [PATCH 07/11] Removed Siemens TC65 specific code pasi.miettinen
2010-05-27 10:54 ` [PATCH 08/11] Some style corrections pasi.miettinen
2010-05-27 10:54 ` [PATCH 09/11] Support for concatenated SMS status report. And ofono_history_sms is now updated according to received status reports pasi.miettinen
2010-05-27 10:54 ` [PATCH 10/11] Some naming changes to enum sms_status_report_result pasi.miettinen
2010-05-27 10:54 ` [PATCH 11/11] Style corrections pasi.miettinen
2010-05-28 17:20 ` Denis Kenzior
2010-05-28 17:26 ` [PATCH 09/11] Support for concatenated SMS status report. And ofono_history_sms is now updated according to received status reports Denis Kenzior
2010-05-31 12:33 ` VS: " Miettinen Pasi
2010-05-31 16:18 ` Denis Kenzior [this message]
2010-05-28 17:15 ` [PATCH 07/11] Removed Siemens TC65 specific code Denis Kenzior
2010-05-27 11:32 ` [PATCH 06/11] Made it possible to ask for status report via SendMessage method parameters. True=status report on, false=off Aki Niemi
2010-05-27 11:39 ` Marcel Holtmann
2010-05-27 11:56 ` Aki Niemi
2010-06-09 22:21 ` Inaky Perez-Gonzalez
2010-06-09 22:47 ` Denis Kenzior
2010-06-09 23:29 ` Inaky Perez-Gonzalez
2010-06-10 1:11 ` Marcel Holtmann
2010-05-27 11:51 ` Denis Kenzior
2010-05-27 13:19 ` Marcel Holtmann
2010-05-28 9:08 ` VS: " Miettinen Pasi
2010-05-28 17:34 ` Denis Kenzior
2010-05-27 11:41 ` [PATCH 04/11] Changes for SMS statur report Aki Niemi
2010-05-28 12:02 ` VS: " Miettinen Pasi
2010-05-28 17:12 ` Denis Kenzior
2010-05-28 16:56 ` [PATCH 03/11] Enable status report Denis Kenzior
2010-05-28 16:55 ` [PATCH 02/11] Made needed changes to at_cds_notify() for status report and corrected at_cmgl_cpms_cb() to meet the ISO standard Denis Kenzior
2010-05-28 16:48 ` [PATCH 01/11] In drivers/atmodem/sms.c:at_cmgl_cpms_cb() there is a temporary fix for Siemens TC65. If AT+CMGL=4 is sent to TC65, the AT command queue jams Denis Kenzior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201005311118.31480.denkenz@gmail.com \
--to=denkenz@gmail.com \
--cc=ofono@ofono.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.