Open Source Telephony
 help / color / mirror / Atom feed
From: Andras Domokos <andras.domokos@nokia.com>
To: ofono@ofono.org
Subject: Re: [PATCH 0/5] Call Counters (2nd)
Date: Wed, 08 Dec 2010 19:30:26 +0200	[thread overview]
Message-ID: <4CFFC0B2.5000600@nokia.com> (raw)
In-Reply-To: <1291824722.4795.188.camel@aeonflux>

[-- Attachment #1: Type: text/plain, Size: 6526 bytes --]

Hi Marcel,

On 12/08/2010 06:12 PM, ext Marcel Holtmann wrote:
> Hi Andras,
>
>    
>>>>> Lets take this one step and please explain to me what your requirements
>>>>> and objectives are. I also wanna see a top to bottom from UI down to the
>>>>> modem usage of this API.
>>>>>
>>>>>            
>>>> We need a UI showing total MO and MT call times. They also need to be
>>>> able to be reset, if the user so wishes. The data needs to be
>>>> reasonably reliable.
>>>>
>>>>          
>>> Fair enough, but when I look at such a feature as a whole, then my
>>> question is when does it need to be shown? What is your user interaction
>>> requirement with this data?
>>>
>>> Andras, please explain what reasonable reliable means.
>>>
>>>
>>>        
>> The call counters are shown to the user when he or she opens up
>> an application/applet whatever UI component that is meant for
>> showing this information.
>>      
> do we have a clear use case requirement from an UI point of view on how
> this is expected to be working.
>    
In our case, it is expected to have the counters information shown to the
user continuously updated with about 1 second granularity, as long as the
user keeps opened the UI showing the counters. This practically means
"live" call counters in the UI.

> I checked with my iPhone and how it does it. Basically it just updates
> after the call and only after you re-entered that menu.
>
> So here again, do we have a requirement to make this realtime or not.
> And I mean that from an user interaction point of view.
>
>    
>> Coming to the reliability part, saving the call counters information
>> often enough, gives us sort of hard guarantee that whatever happens
>> with any subsystem, be that SW or HW, the call counters will stay enough
>> accurate. Syncing to the permanent storage, based on our product
>> requirements, should take place in fact every 5 sec, or could be
>> configurable.
>>      
> Writing and syncing something to disk every 5 seconds costs us IO. Is
> this really a sacrifice that is acceptable.
>
>    
I agree, from pure technical point of view it's a costly operation.
>> There might be some liability issues if for some reason the counters would
>> "loose" time, the user my blame the phone manufacturer for the extra
>> expenses incurred by inaccurate counters.
>>      
> To be honest the counters can not be considered accurate anyway. Only
> the billing system has the final say.
>    
I think any info we decide to show to the user has to be accurate enough,
otherwise becomes meaningless.
>>>>> and consuming heavy IO with writing this information to disk. In
>>>>> addition to that there is no clear UI usage for the getter API.
>>>>>
>>>>>            
>>>> What do you mean? Do you mean your iPhone has no such UI?
>>>>
>>>>          
>>> I have actually tested this with an iPhone and it has such an UI
>>> element, but it is not realtime. It gets updated after the call has been
>>> completed.
>>>
>>> So why can't we just update/reset this in Tracker via the history plugin
>>> in a general way. I am failing to see the need for this inside oFono. It
>>> seems to me that doing this within the scope of the Tracker integration
>>> is a lot cleaner and better for CPU and IO usage.
>>>
>>>        
>> We can discuss the place of the call counters plugin, but I think using the
>> ofono history framework is a reasonable choice, with the note that the it
>> needs to be expanded with a history function called in the beginning
>> of a call.
>> The call counters plugin could be an optionally compiled/included (dynamic)
>> plugin or "downgraded" to experimental status.
>>      
> So I am actually thinking that doing that inside PulseAudio is a lot
> more efficient solution.
>
> The idea is that PA already runs in the user session and has to monitor
> the uplink/downlink state (and additionally could monitor call states as
> well if needed). So it knows when a call is active and it is active
> anyway doing the audio processing. So it could just then go ahead and
> write your call accounting into Tracker.
>
> Would such an architecture work for you guys?
>    
I don't know at the moment whether this solution is good and elegant
enough, we need to think about it.

>>>> The reason these are not properties is just because it makes no sense
>>>> to update the counters "live". The UI can poll if it so wishes, but
>>>> the poll interval is not something we want to decide.
>>>>
>>>>
>>>>          
>>>>> What are the granularity there. What is the expected user experience
>>>>> with this API. I don't see any clear usage model here.
>>>>>
>>>>> In addition to that, what is the problem with just updating the stats
>>>>> after the call has ended?
>>>>>
>>>>>            
>>>> Because if your battery runs out in the middle of a 4 hour conference
>>>> call, your timers are not updated and become worthless. Obviously,
>>>> this is a compromise between how reliable the counters are and how
>>>> many wakeups and IO we can bear.
>>>>
>>>>          
>>> I think this is not a good idea to have oFono handles this. Why can't
>>> the system daemon just shutdown all calls when the battery reaches
>>> critical limit.
>>>
>>> You will never fully run down the battery anyway. One of the system
>>> health components in the system will prevent it and then can cleanly
>>> shutdown oFono and thus all calls. The only case where the system could
>>> potentially misfunction in this area would be an emergency call. But
>>> that is a total different use case anyway.
>>>
>>>        
>> It was already pointed out by Mika Liljeberg there could be cases when we
>> might not get the chance to sync our data. We need to be prepared to cope
>> with such cases as well (syncing the data often "enough").
>>      
> Are these cases are really real life problems. For example with devices
> moving toward hotswap SIM cards, the exchange of battery and
> accidentally (or on purpose) removal seems to become more and more
> unrealistic.
>    
Probably this whole data reliability issue shouldn't be an oFono concern
after all, there must be a backend doing that and not only for oFono
data but any other highly important data.

> Regards
>
> Marcel
>
>
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> http://lists.ofono.org/listinfo/ofono
>    

Regards,
Andras

  reply	other threads:[~2010-12-08 17:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-22 16:25 [PATCH 0/5] Call Counters (2nd) Andras Domokos
2010-11-22 16:25 ` [RFC PATCH 1/5] history: expand history API include file Andras Domokos
2010-11-22 16:26 ` [RFC PATCH 2/5] history: expand history API Andras Domokos
2010-11-22 16:26 ` [RFC PATCH 3/5] voicecall: take into use the new history function Andras Domokos
2010-11-22 16:26 ` [RFC PATCH 4/5] plugins: add call counters Andras Domokos
2010-11-22 16:26 ` [RFC PATCH 5/5] doc: call counters API doc Andras Domokos
2010-12-07 12:57 ` [PATCH 0/5] Call Counters (2nd) Aki Niemi
2010-12-07 18:33   ` Denis Kenzior
2010-12-08  9:03   ` Marcel Holtmann
2010-12-08  9:34     ` Aki Niemi
2010-12-08 12:41       ` Marcel Holtmann
2010-12-08 13:28         ` Mika.Liljeberg
2010-12-08 16:01         ` Andras Domokos
2010-12-08 16:12           ` Marcel Holtmann
2010-12-08 17:30             ` Andras Domokos [this message]
2010-12-08 22:32               ` Marcel Holtmann
2010-12-08 21:02             ` Kai.Vehmanen
2010-12-08 22:35               ` Marcel Holtmann
2010-12-09 12:25                 ` Kai.Vehmanen
2010-12-09 18:10                   ` Marcel Holtmann
2010-12-09 19:52                     ` Kai.Vehmanen
2010-12-09 22:53                       ` Marcel Holtmann
2010-12-10  8:14                         ` Andras Domokos
2010-12-10 17:57                         ` =?unknown-8bit?q?R=C3=A9mi?= Denis-Courmont
2010-12-10 18:34                           ` Marcel Holtmann
2010-12-10 23:57                             ` =?unknown-8bit?q?R=C3=A9mi?= Denis-Courmont
2010-12-11 14:57                               ` Marcel Holtmann
2010-12-13  7:56                               ` Kai.Vehmanen
2010-12-12 15:46                         ` Kai.Vehmanen

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=4CFFC0B2.5000600@nokia.com \
    --to=andras.domokos@nokia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox