diff --git a/restcomm/restcomm.interpreter/src/main/java/org/restcomm/connect/interpreter/VoiceInterpreter.java b/restcomm/restcomm.interpreter/src/main/java/org/restcomm/connect/interpreter/VoiceInterpreter.java index dab18ac17a..867476409e 100644 --- a/restcomm/restcomm.interpreter/src/main/java/org/restcomm/connect/interpreter/VoiceInterpreter.java +++ b/restcomm/restcomm.interpreter/src/main/java/org/restcomm/connect/interpreter/VoiceInterpreter.java @@ -1328,6 +1328,12 @@ private void onCallStateChanged(Object message, ActorRef sender) throws Transiti if (dialBranches != null && dialBranches.contains(sender)) { dialBranches.remove(sender); } + if (dialBranches == null || dialBranches.size() == 0){ + // https://github.com/RestComm/Restcomm-Connect/issues/2895 + // Race condition If there is Play/Say Verb after dial verb, if the Dia verb is failing to call to the other, + // NTFY to stop ringing tone also stop RQNT for playing/say verb. Better to stop it here. + call.tell(new StopMediaGroup(), self()); + } checkDialBranch(message,sender,action); } else if (sender.equals(call)) { fsm.transition(message, finished);