From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [RFC 2/2] doc: Add description for history agent interface
Date: Thu, 03 Feb 2011 09:58:10 -0600 [thread overview]
Message-ID: <4D4AD092.6030403@gmail.com> (raw)
In-Reply-To: <A459777776EB4841B844E1134E7928740157B51C@008-AM1MPN1-016.mgdnok.nokia.com>
[-- Attachment #1: Type: text/plain, Size: 3365 bytes --]
Hi Mikhail,
On 02/03/2011 05:57 AM, mikhail.zabaluev(a)nokia.com wrote:
> Hi Denis,
>
>> -----Original Message-----
>> From: ext Denis Kenzior [mailto:denkenz(a)gmail.com]
>> Sent: Wednesday, February 02, 2011 9:23 PM
>> To: ofono(a)ofono.org
>> Cc: Zabaluev Mikhail (Nokia-MS/Helsinki)
>> Subject: Re: [RFC 2/2] doc: Add description for history agent interface
>>
>> This has been discussed to death a bazillion times. So lets recap very
>> quickly:
>>
>> AT modems have two ways of delivering SMS messages:
>> - CMTI
>> - CMT
>>
>> CMTI delivery means the message goes to the SIM / ME store first, and
>> then signaled up. The modem takes care of automatically acking the
>> message in this case. CMT delivery gives the message straight to the
>> sms driver and expects messages to be acked.
>>
>> Here's the problem, half the modems in this world don't support CMTI
>> delivery, the other half does not support CMT delivery. oFono core
>> does
>> not know or care what mechanism is used. It is the driver's
>> responsibility to ack the received pdu.
>
> Sorry, I'm quite new to oFono.
> My gut instinct tells me that oFono should be able to hide the difference by providing CMTI-like spool semantics to the client in all cases. But I might be missing quite a lot of background here.
>
Actually that is not what we want. CMTI is pretty damn slow since you
have to store on the SIM first, then signal the core. And the core has
to delete from the SIM as well. CMT skips the first step and goes
straight to the core, only the ack is required.
>> If CMTI delivery is used, then the core has to care about SIM / ME
>> storage, reading of the SMS store and managing free space -> disaster
>> area. Been there, got the t-shirt.
>
> So, it's less disastrous if you implement some file-backed spool for both models.
>
And this is what we do, no?
>> If CMT delivery is used, you have to ack the message in a 'reasonable'
>> period of time. If you do not, then the modem silently (e.g. it does
>> not tell you) turns off SMS delivery. Of course you can send a
>> negative
>> ack, however, there is no mechanism that I'm aware of to tell the
>> network you can receive SMS messages again -> disaster area.
>>
>> Another fun fact about CMT delivery is that if you do not ack in a
>> 'reasonable' amount of time, the modem _silently_ turns off SMS
>> delivery. So putting acks over D-Bus is simply a bad idea.
>>
>> So oFono:
>> 1. Parses the SMS
>> 2. If the SMS is a multi-fragment SMS, it is written to store
>> 2a. If the SMS is the last missing fragment goes to step 2b, otherwise
>> goes to step 5
>> 2b. re-assembles the sms and removes intermediate store
>> 3. Signals the SMS over D-Bus / history
>> 4. Returns control to the driver which is responsible for acking the
>> SMS if needed.
>
> But this means that you do put a D-Bus roundtrip (step 3) in the loop for acks --> bad idea?
> Also, the first fragment may not be acked until you got the whole message AND confirmed to have stored it? Can it even work reliably in all networks?
We do not have a D-Bus roundtrip for the ack. The ack always happens as
soon as the fragment is delivered. It is assumed to hit the disk
synchronously in step 2 (for multi-fragment) or step 3 (in history).
Regards,
-Denis
next prev parent reply other threads:[~2011-02-03 15:58 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-01 17:29 [RFC 2/2] doc: Add description for history agent interface Marcel Holtmann
2011-02-02 13:23 ` Kai.Vehmanen
2011-02-02 16:43 ` Marcel Holtmann
2011-02-02 18:14 ` mikhail.zabaluev
2011-02-02 19:22 ` Denis Kenzior
2011-02-02 22:56 ` Kai.Vehmanen
2011-02-02 23:12 ` Marcel Holtmann
2011-02-03 10:54 ` mikhail.zabaluev
2011-02-03 7:13 ` Denis Kenzior
2011-02-03 10:11 ` Kai.Vehmanen
2011-02-03 12:42 ` mikhail.zabaluev
2011-02-03 11:57 ` mikhail.zabaluev
2011-02-03 15:58 ` Denis Kenzior [this message]
2011-02-02 19:32 ` Marcel Holtmann
2011-02-03 12:22 ` mikhail.zabaluev
2011-02-03 16:11 ` Denis Kenzior
2011-02-04 9:23 ` mikhail.zabaluev
2011-02-04 12:58 ` Marcel Holtmann
2011-02-04 16:52 ` mikhail.zabaluev
2011-02-04 17:05 ` Denis Kenzior
2011-02-04 18:07 ` mikhail.zabaluev
2011-02-04 18:13 ` Marcel Holtmann
2011-02-04 18:52 ` mikhail.zabaluev
2011-02-04 19:01 ` Denis Kenzior
2011-02-04 19:01 ` Marcel Holtmann
2011-02-04 19:33 ` mikhail.zabaluev
2011-02-04 19:48 ` Marcel Holtmann
2011-02-04 18:27 ` Denis Kenzior
2011-02-04 19:17 ` mikhail.zabaluev
2011-02-04 19:22 ` Marcel Holtmann
2011-02-04 19:27 ` Denis Kenzior
2011-02-04 17:15 ` Marcel Holtmann
2011-02-04 18:32 ` mikhail.zabaluev
2011-02-02 22:55 ` Kai.Vehmanen
2011-02-02 23:06 ` Marcel Holtmann
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=4D4AD092.6030403@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.