Hi Denis,
On 08/23/2012 01:36 AM, Denis Kenzior wrote:
Hi Philippe,
On 08/22/2012 11:18 AM, Philippe Nunes wrote:
> GCF test cases 31.2.1.6.1/2 are asking to make a query according a
> specific
> class.
> The default class is applied when no class is specified in the SS code.
> ---
> src/call-forwarding.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/src/call-forwarding.c b/src/call-forwarding.c
> index 91e34c6..7531f07 100644
> --- a/src/call-forwarding.c
> +++ b/src/call-forwarding.c
> @@ -1012,7 +1012,7 @@ static void ss_set_query_cf_callback(const
> struct ofono_error *error, int total,
>
> static void ss_set_query_next_cf_cond(struct ofono_call_forwarding *cf)
> {
> - cf->driver->query(cf, cf->query_next, BEARER_CLASS_DEFAULT,
> + cf->driver->query(cf, cf->query_next, cf->ss_req->cls,
> ss_set_query_cf_callback, cf);
> }
>
> @@ -1167,6 +1167,16 @@ static gboolean cf_ss_control(int type, const
> char *sc,
> return TRUE;
> }
>
> + /*
> + * Some modems don't understand all classes very well, particularly
> + * the older models. So if the bearer class is the default, we
> + * just use the more commonly understood value of 7 since BEARER_SMS
> + * is not applicable to CallForwarding conditions according to 22.004
> + * Annex A
> + */
> + if (cls == BEARER_CLASS_SS_DEFAULT)
> + cls = BEARER_CLASS_DEFAULT;
> +
Strictly speaking this is wrong. You cannot modify the cls here as it is
used to generate the reply in cf_ss_control_reply. Since
BEARER_CLASS_SS_DEFAULT != BEARER_CLASS_DEFAULT you will generate the
wrong result.
OK, but I don't understand why we intend to generate a reply including
classes for which we don't know the status?
With BEARER_CLASS_SS_DEFAULT, we are considering the classes
DataSync/DataAsync/Fax/Sms/Voice.
But by default, the query is asking the status only for
BEARER_CLASS_DEFAULT (Data/Fax/Voice).
So, why, don't we match strictly the reply with the query?
Meanwhile, I send you a new patch.
Regards,
Philippe.
> cf->ss_req->ss_type = type;
> cf->ss_req->cf_type = cf_type;
> cf->ss_req->cls = cls;
> @@ -1188,16 +1198,6 @@ static gboolean cf_ss_control(int type, const
> char *sc,
> break;
> }
>
> - /*
> - * Some modems don't understand all classes very well, particularly
> - * the older models. So if the bearer class is the default, we
> - * just use the more commonly understood value of 7 since BEARER_SMS
> - * is not applicable to CallForwarding conditions according to 22.004
> - * Annex A
> - */
> - if (cls == BEARER_CLASS_SS_DEFAULT)
> - cls = BEARER_CLASS_DEFAULT;
> -
> switch (cf->ss_req->ss_type) {
> case SS_CONTROL_TYPE_REGISTRATION:
> string_to_phone_number(sia,&ph);
Regards,
-Denis