* Ofono CF states not always correct
@ 2011-01-11 10:00 Jarko Poutiainen
2011-01-11 15:16 ` Denis Kenzior
0 siblings, 1 reply; 13+ messages in thread
From: Jarko Poutiainen @ 2011-01-11 10:00 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 2125 bytes --]
Hello,
I have been trying out and going through the code concerning Call Forwarding and I found out that if you enable for example CF VoiceBusy and then CF VoiceUnconditional, the VoiceBusy is still according to ofono enabled. This of course as such isn't so bad but by using org.ofono.SupplementaryServices to query the CF states ofono gives different response i.e. now only the VoiceUnconditional is enabled and then I can disable only the VoiceUnconditional by using the org.ofono.SupplementaryServices and when doing so I found out that now ofono thinks that no CF is enabled even though VoiceBusy is actually active.
Now to fix this there exists multiple solutions I believe, here's some that I came up.
1:Ofono could send query to modem/network for all the CF values when ever voice unconditional value is changed. The good side in this is that ofono would definetly be up to date.
2:Have separate status value internally and change that accordingly. E.g<property> <number to> <status> and return<number to> to client when<status> == 1. Change any conditional<status> to 0 if unconditional<status> == 1 without touching the<number to> field and when unconditional<status> is changed to 0 change all conditional<status> to 1 if respecting<number to> exists. This would of course be much faster however I'm not sure how tedious this would be to implement.
3:Whenever unconditional value is changed, empty the internal "CF cache" i.e. remove all the conditional values all together or set "cache flag" to 0 and thus forcing the query to be made to modem/network.This should be as good as option 1 except the queries are made only when client needs it. Although the assumption is that client queries the properties after changing them(otherwise the client remains in wrong state). So depending on how the client's been implemented might result on system level to same behavior as option 1.
As I said these are what quickly came to my mind so there might be other solutions as well. So the reason for this posting is to raise discussion on what would be the correct way to fix this?
-Jarko-
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-11 10:00 Ofono CF states not always correct Jarko Poutiainen
@ 2011-01-11 15:16 ` Denis Kenzior
2011-01-14 13:20 ` Jarko Poutiainen
0 siblings, 1 reply; 13+ messages in thread
From: Denis Kenzior @ 2011-01-11 15:16 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1384 bytes --]
Hi Jarko,
On 01/11/2011 04:00 AM, Jarko Poutiainen wrote:
> Hello,
>
> I have been trying out and going through the code concerning Call
> Forwarding and I found out that if you enable for example CF VoiceBusy
> and then CF VoiceUnconditional, the VoiceBusy is still according to
> ofono enabled. This of course as such isn't so bad but by using
> org.ofono.SupplementaryServices to query the CF states ofono gives
> different response i.e. now only the VoiceUnconditional is enabled and
> then I can disable only the VoiceUnconditional by using the
> org.ofono.SupplementaryServices and when doing so I found out that now
> ofono thinks that no CF is enabled even though VoiceBusy is actually
> active.
>
So quickly looking at 22.082, for example 1.6.82.2:
"If Call forwarding on mobile subscriber busy is active, activation of
Call forwarding unconditional will be accepted. Call forwarding on
mobile subscriber busy will be quiescent during the active period of
Call forwarding unconditional. If Call forwarding unconditional is
subsequently deactivated, Call forwarding on mobile subscriber busy
becomes operative again (unless the interaction with another
supplementary service requests that it remains quiescent)."
To me it sounds like oFono is doing exactly the right thing. Are you
sure your modem is behaving properly?
Regards,
-Denis
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-11 15:16 ` Denis Kenzior
@ 2011-01-14 13:20 ` Jarko Poutiainen
2011-01-14 15:59 ` Denis Kenzior
0 siblings, 1 reply; 13+ messages in thread
From: Jarko Poutiainen @ 2011-01-14 13:20 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]
Hi Denis,
On 01/11/2011 05:16 PM, Denis Kenzior wrote:
> Hi Jarko,
>
> So quickly looking at 22.082, for example 1.6.82.2:
>
> "If Call forwarding on mobile subscriber busy is active, activation of
> Call forwarding unconditional will be accepted. Call forwarding on
> mobile subscriber busy will be quiescent during the active period of
> Call forwarding unconditional. If Call forwarding unconditional is
> subsequently deactivated, Call forwarding on mobile subscriber busy
> becomes operative again (unless the interaction with another
> supplementary service requests that it remains quiescent)."
>
> To me it sounds like oFono is doing exactly the right thing. Are you
> sure your modem is behaving properly?
>
> Regards,
> -Denis
It seems that I explained this poorly. So modem is behaving as you
quoted but ofono is not. I can for example get ofono in a state where
ofono replies that no CF is active even though one of them is.
e.g. when I do following:
./list-modems
./test-ussd '**61*+358401234567*11#'
./list-modems
./test-ussd '**21*+358401234567*11#'
./list-modems
Now ofono claims that both are active
./test-ussd '*#002#'
./list-modems
Now ofono correctly states that only VoiceUnconditional is active
./test-ussd '##21#'
./list-modems
Now ofono claims that no call forwarding is set active when VoiceNoReply
in fact is.
./test-ussd '*#002#'
./list-modems
Now ofono correctly states that VoiceNoReply is active
Does this make this any clearer?
-Jarko-
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-14 13:20 ` Jarko Poutiainen
@ 2011-01-14 15:59 ` Denis Kenzior
2011-01-18 12:21 ` Jarko Poutiainen
0 siblings, 1 reply; 13+ messages in thread
From: Denis Kenzior @ 2011-01-14 15:59 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1845 bytes --]
Hi Jarko,
On 01/14/2011 07:20 AM, Jarko Poutiainen wrote:
> Hi Denis,
>
> On 01/11/2011 05:16 PM, Denis Kenzior wrote:
>> Hi Jarko,
>>
>> So quickly looking at 22.082, for example 1.6.82.2:
>>
>> "If Call forwarding on mobile subscriber busy is active, activation of
>> Call forwarding unconditional will be accepted. Call forwarding on
>> mobile subscriber busy will be quiescent during the active period of
>> Call forwarding unconditional. If Call forwarding unconditional is
>> subsequently deactivated, Call forwarding on mobile subscriber busy
>> becomes operative again (unless the interaction with another
>> supplementary service requests that it remains quiescent)."
>>
>> To me it sounds like oFono is doing exactly the right thing. Are you
>> sure your modem is behaving properly?
>>
>> Regards,
>> -Denis
>
> It seems that I explained this poorly. So modem is behaving as you
> quoted but ofono is not. I can for example get ofono in a state where
> ofono replies that no CF is active even though one of them is.
>
> e.g. when I do following:
> ./list-modems
> ./test-ussd '**61*+358401234567*11#'
> ./list-modems
> ./test-ussd '**21*+358401234567*11#'
> ./list-modems
> Now ofono claims that both are active
> ./test-ussd '*#002#'
> ./list-modems
> Now ofono correctly states that only VoiceUnconditional is active
Both are active and the modem should be reporting both. At least that
is how I understood the specifications.
> ./test-ussd '##21#'
> ./list-modems
> Now ofono claims that no call forwarding is set active when VoiceNoReply
> in fact is.
> ./test-ussd '*#002#'
> ./list-modems
> Now ofono correctly states that VoiceNoReply is active
>
> Does this make this any clearer?
>
A bit, but having the AT command logs would help greatly.
Regards,
-Denis
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-14 15:59 ` Denis Kenzior
@ 2011-01-18 12:21 ` Jarko Poutiainen
2011-01-18 15:56 ` Denis Kenzior
0 siblings, 1 reply; 13+ messages in thread
From: Jarko Poutiainen @ 2011-01-18 12:21 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 5901 bytes --]
Hi Denis,
On Fri, 2011-01-14 at 17:59 +0200, Denis Kenzior wrote:
> Hi Jarko,
>
> Both are active and the modem should be reporting both. At least that
> is how I understood the specifications.
>
Well that is a bit debatable. As 27.007 states:
command:
+CCFC=<reason>,<mode>[,<number>[,<type>[,<class>[,<subaddr>[,<satype>[,<time>]]]]]]
<reason>: integer type
0 unconditional
1 mobile busy
2 no reply
3 not reachable
4 all call forwarding (refer 3GPP TS 22.030 [19])
5 all conditional call forwarding (refer 3GPP TS 22.030 [19])
<mode>: integer type
0 disable
1 enable
2 query status
3 registration
4 erasure
response when<mode>=2 and command successfull:
+CCFC:<status>,<class1>[,<number>,<type>[,<subaddr>,<satype>[,<time>]]][<CR><LF>+CCFC: <status>,<class2>[,<number>,<type>[,<subaddr>,<satype>[,<time>]]][...]]
<status>: integer type
0 not active
1 active
So actually they aren't both "active" at same time as the logs show but
personally I don't really care as long as the results are consistent
regardless which API you use which is not the case at the moment as
querying through org.ofono.CallForwarding can give you different result
than using org.ofono.SupplementaryServices.
> A bit, but having the AT command logs would help greatly.
Well hopefully these will help. I have numbered each step and copied
corresponding logs after it. list-modems doesn't cause AT queries to
modem(except on a very first time which I have already done) so I have
copied what it prints regarding CF. It's a bit long though so sorry
about that.
#1: ./list-modems
[ org.ofono.CallForwarding ]
ForwardingFlagOnSim = 0
VoiceNoReplyTimeout = 20
VoiceNotReachable =
VoiceBusy =
VoiceNoReply =
VoiceUnconditional =
#2: ./test-ussd '**61*+358401234567*11#'
ofonod[30925]: Default: > AT+CCFC=2,3,"358401234567",145,1,,,20\r
ofonod[30925]: Default: < \r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=2,2\r
ofonod[30925]: Default: < \r\n+CCFC: 1,1,"0401234567",129,"",,20\r\n\r
\nOK\r\n
#3: ./list-modems
[ org.ofono.CallForwarding ]
ForwardingFlagOnSim = 0
VoiceNoReplyTimeout = 20
VoiceNotReachable =
VoiceBusy =
VoiceNoReply = 0401234567
VoiceUnconditional =
#4: ./test-ussd '**21*+358401234567*11#'
ofonod[30925]: Default: > AT+CCFC=0,3,"358401234567",145,1\r
ofonod[30925]: Default: < \r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=0,2\r
ofonod[30925]: Default: < \r\n+CCFC: 1,1,"0401234567",129\r\n\r\nOK\r\n
#5: ./list-modems
[ org.ofono.CallForwarding ]
ForwardingFlagOnSim = 1
VoiceNoReplyTimeout = 20
VoiceNotReachable =
VoiceBusy =
VoiceNoReply = 0401234567
VoiceUnconditional = 0401234567
#6: ./test-ussd '*#002#'
ofonod[30925]: Default: > AT+CCFC=0,2\r
ofonod[30925]: Default: < \r\n+CCFC: 1,1,"0401234567",129\r\n\r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=1,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n+CCFC: 0,4\r\n+CCFC: 0,16\r
\n
ofonod[30925]: Default: < +CCFC: 0,32\r\n+CCFC: 0,64\r\n
ofonod[30925]: Default: < +CCFC: 0,128\r\n\r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=2,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n+CCFC: 0,4\r\n
ofonod[30925]: Default: < +CCFC: 0,16\r\n+CCFC: 0,32\r\n
ofonod[30925]: Default: < +CCFC: 0,64\r\n+CCFC: 0,128\r\n
ofonod[30925]: Default: < \r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=3,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n+CCFC: 0,4\r\n
ofonod[30925]: Default: < +CCFC: 0,16\r\n+CCFC: 0,32\r\n+CCFC: 0,64\r\n
ofonod[30925]: Default: < +CCFC: 0,128\r\n\r\nOK\r\n
#7: ./list-modems
[ org.ofono.CallForwarding ]
ForwardingFlagOnSim = 1
VoiceNoReplyTimeout = 20
VoiceNotReachable =
VoiceBusy =
VoiceNoReply =
VoiceUnconditional = 0401234567
#8: ./test-ussd '##21#'
ofonod[30925]: Default: > AT+CCFC=0,4\r
ofonod[30925]: Default: < \r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=0,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n
ofonod[30925]: Default: < +CCFC: 0,4\r\n+CCFC: 0,16\r\n+CCFC: 0,32\r\n
ofonod[30925]: Default: < +CCFC: 0,64\r\n+CCFC: 0,128\r\n
ofonod[30925]: Default: < \r\nOK\r\n
#9: ./list-modems
[ org.ofono.CallForwarding ]
ForwardingFlagOnSim = 0
VoiceNoReplyTimeout = 20
VoiceNotReachable =
VoiceBusy =
VoiceNoReply =
VoiceUnconditional =
#10: ./test-ussd '*#002#'
ofonod[30925]: Default: > AT+CCFC=0,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n+CCFC: 0,4\r\n+CCFC: 0,16\r
\n
ofonod[30925]: Default: < +CCFC: 0,32\r\n+CCFC: 0,64\r\n
ofonod[30925]: Default: < +CCFC: 0,128\r\n\r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=1,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n+CCFC: 0,4\r\n
ofonod[30925]: Default: < +CCFC: 0,16\r\n+CCFC: 0,32\r\n+CCFC: 0,64\r\n
ofonod[30925]: Default: < +CCFC: 0,128\r\n\r\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=2,2\r
ofonod[30925]: Default: < \r\n+CCFC: 1,1,"0401234567",129,"",,20\r\n\r
\nOK\r\n
ofonod[30925]: Default: > AT+CCFC=3,2\r
ofonod[30925]: Default: < \r\n+CCFC: 0,1\r\n
ofonod[30925]: Default: < +CCFC: 0,4\r\n+CCFC: 0,16\r\n
ofonod[30925]: Default: < +CCFC: 0,32\r\n+CCFC: 0,64\r\n
ofonod[30925]: Default: < +CCFC: 0,128\r\n\r\nOK\r\n
#11: ./list-modems
[ org.ofono.CallForwarding ]
ForwardingFlagOnSim = 0
VoiceNoReplyTimeout = 20
VoiceNotReachable =
VoiceBusy =
VoiceNoReply = 0401234567
VoiceUnconditional =
So as can be seen the result changes between #5 and #7 although nothing
has been changed. What's more concerning is that@#9 ofono claims that
no CF is active but as can be seen in #11 actually VoiceNoReply no
longer is "quiescent" but "active".
-Jarko-
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 12:21 ` Jarko Poutiainen
@ 2011-01-18 15:56 ` Denis Kenzior
2011-01-18 21:08 ` Pekka Pessi
0 siblings, 1 reply; 13+ messages in thread
From: Denis Kenzior @ 2011-01-18 15:56 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 807 bytes --]
Hi Jarko,
> So actually they aren't both "active" at same time as the logs show but
> personally I don't really care as long as the results are consistent
> regardless which API you use which is not the case at the moment as
> querying through org.ofono.CallForwarding can give you different result
> than using org.ofono.SupplementaryServices.
Ok, so I'm convinced we're not handling this properly. Based on your
testing and my own independent testing setting the Unconditional CF rule
does indeed 'hide' all other rules so they appear inactive.
So do you care to come up with a patch fixing this? Briefly thinking
about this I believe we can implement option 2 from your earlier email.
I'd rather play some tricks and not clear the cache unless really
necessary.
Regards,
-Denis
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 15:56 ` Denis Kenzior
@ 2011-01-18 21:08 ` Pekka Pessi
2011-01-18 21:24 ` Denis Kenzior
0 siblings, 1 reply; 13+ messages in thread
From: Pekka Pessi @ 2011-01-18 21:08 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 986 bytes --]
HI Denis,
2011/1/18 Denis Kenzior <denkenz@gmail.com>:
> Ok, so I'm convinced we're not handling this properly. Based on your
> testing and my own independent testing setting the Unconditional CF rule
> does indeed 'hide' all other rules so they appear inactive.
>
> So do you care to come up with a patch fixing this? Briefly thinking
> about this I believe we can implement option 2 from your earlier email.
I've yet to see a network which sends forwardingFeatureList for
conditional CFs if unconditional CF is active, they just tell that the
unconditional CFs are, uh, quiescent.
Try your self, do you get anything sensible from *#67# if you have CFU
active? (Like after step #4 above?)
> I'd rather play some tricks and not clear the cache unless really
> necessary.
I just don't see any option but clearing the cache. Of course, we can
optimize by the fact that CFU makes conditional CFs
inactive/quiescent.
--
Pekka.Pessi mail at nokia.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 21:08 ` Pekka Pessi
@ 2011-01-18 21:24 ` Denis Kenzior
2011-01-18 21:32 ` Pekka Pessi
0 siblings, 1 reply; 13+ messages in thread
From: Denis Kenzior @ 2011-01-18 21:24 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1387 bytes --]
Hi Pekka,
On 01/18/2011 03:08 PM, Pekka Pessi wrote:
> HI Denis,
>
> 2011/1/18 Denis Kenzior <denkenz@gmail.com>:
>> Ok, so I'm convinced we're not handling this properly. Based on your
>> testing and my own independent testing setting the Unconditional CF rule
>> does indeed 'hide' all other rules so they appear inactive.
>>
>> So do you care to come up with a patch fixing this? Briefly thinking
>> about this I believe we can implement option 2 from your earlier email.
>
> I've yet to see a network which sends forwardingFeatureList for
> conditional CFs if unconditional CF is active, they just tell that the
> unconditional CFs are, uh, quiescent.
>
> Try your self, do you get anything sensible from *#67# if you have CFU
> active? (Like after step #4 above?)
>
That was indeed the behavior on T-mobile during my personal testing. So
I'm already convinced ;)
>> I'd rather play some tricks and not clear the cache unless really
>> necessary.
>
> I just don't see any option but clearing the cache. Of course, we can
> optimize by the fact that CFU makes conditional CFs
> inactive/quiescent.
>
I think we can track the cached flag for conditional CFs independently
from CFU. The question is really whether the networks allow us to
modify conditional CFs when CFU is active. In my testing the answer is No.
Regards,
-Denis
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 21:24 ` Denis Kenzior
@ 2011-01-18 21:32 ` Pekka Pessi
2011-01-18 21:50 ` Denis Kenzior
0 siblings, 1 reply; 13+ messages in thread
From: Pekka Pessi @ 2011-01-18 21:32 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 374 bytes --]
Hi Denis,
2011/1/18 Denis Kenzior <denkenz@gmail.com>:
> I think we can track the cached flag for conditional CFs independently
> from CFU. The question is really whether the networks allow us to
> modify conditional CFs when CFU is active. In my testing the answer is No.
You can erase (##67#) or deactivate (#67#) them.
--
Pekka.Pessi mail at nokia.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 21:32 ` Pekka Pessi
@ 2011-01-18 21:50 ` Denis Kenzior
2011-01-18 22:08 ` Pekka Pessi
2011-01-26 9:14 ` Jarko Poutiainen
0 siblings, 2 replies; 13+ messages in thread
From: Denis Kenzior @ 2011-01-18 21:50 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1273 bytes --]
Hi Pekka,
On 01/18/2011 03:32 PM, Pekka Pessi wrote:
> Hi Denis,
>
> 2011/1/18 Denis Kenzior <denkenz@gmail.com>:
>> I think we can track the cached flag for conditional CFs independently
>> from CFU. The question is really whether the networks allow us to
>> modify conditional CFs when CFU is active. In my testing the answer is No.
>
> You can erase (##67#) or deactivate (#67#) them.
>
So CFB active.
Activate CFU
Query CFB -> Inactive
Deregister CFB -> OK
Query CFB -> Inactive
Register CFB -> Error
Deactivate CFU
Query CFB -> Inactive
Correct?
Jeez, who thought this stuff up.
So my thinking is that we should:
- Not update conditional cfs when cfu is active (whether via
GetProperties or mmi)
- only clear the conditional cache flag if a conditional operation is
attempted and succeeds while cfu is active
- Report conditional cfs as empty when CFU is active (and emit signals
appropriately when cfu is activated / deactivated)
- Don't bother running conditional cf queries via GetProperties if cfu
is active
Do you see any issues with this? I'm really trying to minimize the
number of queries we have to do in the most common case (which is
activating / deactivating cfu via settings)
Regards,
-Denis
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 21:50 ` Denis Kenzior
@ 2011-01-18 22:08 ` Pekka Pessi
2011-01-26 9:14 ` Jarko Poutiainen
1 sibling, 0 replies; 13+ messages in thread
From: Pekka Pessi @ 2011-01-18 22:08 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1243 bytes --]
Hi Denis,
2011/1/18 Denis Kenzior <denkenz@gmail.com>:
>> 2011/1/18 Denis Kenzior <denkenz@gmail.com>:
>>> I think we can track the cached flag for conditional CFs independently
>>> from CFU. The question is really whether the networks allow us to
>>> modify conditional CFs when CFU is active. In my testing the answer is No.
>>
>> You can erase (##67#) or deactivate (#67#) them.
>
> So CFB active.
>
> Activate CFU
> Query CFB -> Inactive
>
> Deregister CFB -> OK
> Query CFB -> Inactive
>
> Register CFB -> Error
>
> Deactivate CFU
> Query CFB -> Inactive
>
> Correct?
That is how I think it works.
> Jeez, who thought this stuff up.
> So my thinking is that we should:
> - Not update conditional cfs when cfu is active (whether via
> GetProperties or mmi)
> - only clear the conditional cache flag if a conditional operation is
> attempted and succeeds while cfu is active
> - Report conditional cfs as empty when CFU is active (and emit signals
> appropriately when cfu is activated / deactivated)
> - Don't bother running conditional cf queries via GetProperties if cfu
> is active
>
> Do you see any issues with this?
Nope, it sounds reasonable.
--
Pekka.Pessi mail at nokia.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-18 21:50 ` Denis Kenzior
2011-01-18 22:08 ` Pekka Pessi
@ 2011-01-26 9:14 ` Jarko Poutiainen
2011-01-26 19:10 ` Denis Kenzior
1 sibling, 1 reply; 13+ messages in thread
From: Jarko Poutiainen @ 2011-01-26 9:14 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1478 bytes --]
Hi Denis,
First sorry for slow reply.
On Tue, 2011-01-18 at 23:50 +0200, Denis Kenzior wrote:
>
> So my thinking is that we should:
> - Not update conditional cfs when cfu is active (whether via
> GetProperties or mmi)
> - only clear the conditional cache flag if a conditional operation is
> attempted and succeeds while cfu is active
> - Report conditional cfs as empty when CFU is active (and emit signals
> appropriately when cfu is activated / deactivated)
> - Don't bother running conditional cf queries via GetProperties if cfu
> is active
>
> Do you see any issues with this? I'm really trying to minimize the
> number of queries we have to do in the most common case (which is
> activating / deactivating cfu via settings)
So:
- Check if CFU is active and if so return empty string to any
conditional query regardless of the the actual state and regardless of
the used API.
- If CFU not active return the state of queried conditional
- If CFU active and there's an attempt to activate/deactivate
conditional make the operation to modem/network and return possible
error code but do not update conditional state in ofono OR if the
attempt is successful then clear the conditional cache flag.
did I get this right?
and to your earlier question regarding if I could make the patch
unfortunately I don't think I have got the time at the moment so should
I maybe make a TODO out of this so that it won't be forgotten?
-Jarko-
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Ofono CF states not always correct
2011-01-26 9:14 ` Jarko Poutiainen
@ 2011-01-26 19:10 ` Denis Kenzior
0 siblings, 0 replies; 13+ messages in thread
From: Denis Kenzior @ 2011-01-26 19:10 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1759 bytes --]
Hi Jarko,
On 01/26/2011 03:14 AM, Jarko Poutiainen wrote:
> Hi Denis,
>
> First sorry for slow reply.
>
> On Tue, 2011-01-18 at 23:50 +0200, Denis Kenzior wrote:
>>
>> So my thinking is that we should:
>> - Not update conditional cfs when cfu is active (whether via
>> GetProperties or mmi)
>> - only clear the conditional cache flag if a conditional operation is
>> attempted and succeeds while cfu is active
>> - Report conditional cfs as empty when CFU is active (and emit signals
>> appropriately when cfu is activated / deactivated)
>> - Don't bother running conditional cf queries via GetProperties if cfu
>> is active
>>
>> Do you see any issues with this? I'm really trying to minimize the
>> number of queries we have to do in the most common case (which is
>> activating / deactivating cfu via settings)
>
> So:
> - Check if CFU is active and if so return empty string to any
> conditional query regardless of the the actual state and regardless of
> the used API.
> - If CFU not active return the state of queried conditional
> - If CFU active and there's an attempt to activate/deactivate
> conditional make the operation to modem/network and return possible
> error code but do not update conditional state in ofono OR if the
> attempt is successful then clear the conditional cache flag.
>
> did I get this right?
>
Yep, sounds right.
> and to your earlier question regarding if I could make the patch
> unfortunately I don't think I have got the time at the moment so should
> I maybe make a TODO out of this so that it won't be forgotten?
>
That works. Or alternatively file a bug in Meego bugzilla, but since
this is a major change it probably belongs in the TODO.
Regards,
-Denis
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2011-01-26 19:10 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-11 10:00 Ofono CF states not always correct Jarko Poutiainen
2011-01-11 15:16 ` Denis Kenzior
2011-01-14 13:20 ` Jarko Poutiainen
2011-01-14 15:59 ` Denis Kenzior
2011-01-18 12:21 ` Jarko Poutiainen
2011-01-18 15:56 ` Denis Kenzior
2011-01-18 21:08 ` Pekka Pessi
2011-01-18 21:24 ` Denis Kenzior
2011-01-18 21:32 ` Pekka Pessi
2011-01-18 21:50 ` Denis Kenzior
2011-01-18 22:08 ` Pekka Pessi
2011-01-26 9:14 ` Jarko Poutiainen
2011-01-26 19:10 ` Denis Kenzior
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.