diff --git a/app/providers/CallProvider/CallProvider.tsx b/app/providers/CallProvider/CallProvider.tsx index d955f2a..f109cf3 100644 --- a/app/providers/CallProvider/CallProvider.tsx +++ b/app/providers/CallProvider/CallProvider.tsx @@ -231,6 +231,18 @@ export function CallProvider(props : CallProviderProps) { /** * Нам поступает звонок */ + if(callState != CallState.ENDED){ + /** + * У нас уже есть активный звонок, отправляем сигнал другой стороне, что линия занята + */ + let busySignal = new PacketSignalPeer(); + busySignal.setSrc(publicKey); + busySignal.setDst(packet.getSrc()); + busySignal.setSignalType(SignalType.END_CALL_BECAUSE_BUSY); + send(busySignal); + info("Received incoming call from " + packet.getSrc() + " but we are already on a call, sent busy signal"); + return; + } setWindowPriority(true); playSound("ringtone.mp3", true); setActiveCall(packet.getSrc()); @@ -476,6 +488,8 @@ export function CallProvider(props : CallProviderProps) { setDuration(0); setMutedState(false); setSoundState(true); + stopLoopSound(); + stopSound(); roleRef.current = null; }