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