This is not an answer to solve your problem. But, it definitely adds value to the solution
What is CALL_STATE_IDLE ?
Device call state: No activity.
So, we shouldn't expect it to send CALL_STATE_IDLE state when there is an active line. That's why the event CALL_STATE_IDLE is broadcasted only when all the calls are disconnected