Hi Fred,
On 02/09/2012 08:12 AM, Frédéric Danis wrote:
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(-)
After looking at the test case, it seems to be dealing with testing the
consequences of CHLD=1. Essentially dropping the current active call
and accepting the waiting call. The logic you're changing is also
dealing with a slightly different case, namely if the active call is
dropped by the remote party during a waiting call.
In the case of CHLD=1, the sequence should be one of these:
1. Active Call Index -> Disconnected, Waiting call Index -> Active
In the case of remote party dropping the Active call, the sequences can be:
1. Active Call Index -> Disconnected, Waiting Call Index -> Incoming
The logic has to be modified to handle the transition state (e.g. call
indicator going from 1 to 0, and waiting call present) and send the
proper indicators when the final state is reached. Likely our handling
of the 'waiting' variable is incorrect, we cannot rely on the values of
callsetup and call, but instead should try to find any calls in the
'WAITING' state.
I believe that sending a call=0, then callsetup=0, call=1 is acceptable,
but ideally in the case of CHLD=1 we should be sending callsetup=0 only.
Regards,
-Denis