RING event should only be sent when callsetup indicator is set to Incoming and there is no active call.
If call indicator is set to inactive while callsetup is already set to Incoming (waiting call has generated +CCWA), no RING event should be sent. Ref.: PTS test TC_AG_TWC_BV_02_I --- src/emulator.c | 18 +++--------------- 1 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/emulator.c b/src/emulator.c index 262e782..0fa6eac 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -1219,23 +1219,12 @@ void ofono_emulator_set_indicator(struct ofono_emulator *em, } /* - * Ring timer should be started when: - * - callsetup indicator is set to Incoming and there is no active call - * (not a waiting call) - * - or call indicator is set to inactive while callsetup is already - * set to Incoming. + * Ring timer should be started when callsetup indicator is set to + * Incoming and there is no active call (not a waiting call). * In those cases, a first RING should be sent just after the +CIEV * Ring timer should be stopped for all other values of callsetup */ - if (waiting) - return; - - /* Call state went from active/held + waiting -> incoming */ - if (call && value == OFONO_EMULATOR_CALL_INACTIVE && - cs_ind->value == OFONO_EMULATOR_CALLSETUP_INCOMING) - goto start_ring; - - if (!callsetup) + if (!callsetup || waiting) return; if (value != OFONO_EMULATOR_CALLSETUP_INCOMING) { @@ -1247,7 +1236,6 @@ void ofono_emulator_set_indicator(struct ofono_emulator *em, return; } -start_ring: notify_ring(em); em->callsetup_source = g_timeout_add_seconds(RING_TIMEOUT, notify_ring, em); -- 1.7.1 _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono