Hi Frédéric,

On 04/13/2011 11:05 AM, Frédéric Danis wrote:
> ---
>  src/emulator.c |   89 +++++++++++++++++++++++++++++++++++++++++++++++--------
>  1 files changed, 76 insertions(+), 13 deletions(-)
> 

Patch has been applied, thanks.  One thing you need to watch out for though:

> +     /*
> +      * Ring timer should be started when callsetup indicator is set to
> +      *   Incoming
> +      * If there is no active call, a first RING should be sent just after
> +      *   the +CIEV
> +      * It should be stopped for all other values of callsetup
> +      */
> +     if (g_str_equal(name, OFONO_EMULATOR_IND_CALLSETUP) == FALSE)
>               return;
> +
> +     if (value == OFONO_EMULATOR_CALLSETUP_INCOMING) {
> +             if (call_ind->value == OFONO_EMULATOR_CALL_INACTIVE)
> +                     send_callsetup_notification(em);
> +
> +             em->callsetup_source = g_timeout_add_seconds(RING_TIMEOUT,
> +                                     send_callsetup_notification, em);
> +     } else if (value != OFONO_EMULATOR_CALLSETUP_INCOMING &&
> +                                             em->callsetup_source) {
> +             g_source_remove(em->callsetup_source);
> +             em->callsetup_source = 0;

It is quite possible for the following situation to occur:

Initial State:
Active Call A + Waiting Call B

User dials another number C

Which results in:
Held call A, Waiting call B and Dialing call C.  This case is not
covered by the original spec, so you might need to be extra pedantic on
when you remove the callsetup_source.

>       }
>  }

Regards,
-Denis
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to