From 5979c31120ad8154b1916ddd7f9c59a4216a1347 Mon Sep 17 00:00:00 2001 From: RoyceDa Date: Sat, 4 Apr 2026 17:46:38 +0200 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/providers/CallProvider/CallProvider.tsx | 12 +++++------- .../protocol/packets/packet.signal.peer.ts | 11 ++++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/providers/CallProvider/CallProvider.tsx b/app/providers/CallProvider/CallProvider.tsx index 361189b..e6ccccd 100644 --- a/app/providers/CallProvider/CallProvider.tsx +++ b/app/providers/CallProvider/CallProvider.tsx @@ -216,15 +216,13 @@ export function CallProvider(props : CallProviderProps) { openCallsModal("The connection with the user was lost. The call has ended.") end(); } - if(activeCall){ + if(signalType == SignalType.RINGING_TIMEOUT) { /** - * У нас уже есть активный звонок, игнорируем все сигналы, кроме сигналов от текущего звонка + * Другой стороне был отправлен сигнал звонка, но она не ответила на него в течении определенного времени */ - if(packet.getSrc() != activeCall && packet.getSrc() != publicKey){ - console.info("Received signal from " + packet.getSrc() + " but active call is with " + activeCall + ", ignoring"); - info("Received signal for another call, ignoring"); - return; - } + openCallsModal("The user did not answer the call in time. Please try again later."); + end(); + return; } if(signalType == SignalType.END_CALL){ /** diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.signal.peer.ts b/app/providers/ProtocolProvider/protocol/packets/packet.signal.peer.ts index 8971b39..d94c418 100644 --- a/app/providers/ProtocolProvider/protocol/packets/packet.signal.peer.ts +++ b/app/providers/ProtocolProvider/protocol/packets/packet.signal.peer.ts @@ -12,7 +12,8 @@ export enum SignalType { ACTIVE = 4, END_CALL_BECAUSE_PEER_DISCONNECTED = 5, END_CALL_BECAUSE_BUSY = 6, - ACCEPT = 7 + ACCEPT = 7, + RINGING_TIMEOUT = 8 } /** @@ -42,7 +43,9 @@ export class PacketSignalPeer extends Packet { public _receive(stream: Stream): void { this.signalType = stream.readInt8(); - if(this.signalType == SignalType.END_CALL_BECAUSE_BUSY || this.signalType == SignalType.END_CALL_BECAUSE_PEER_DISCONNECTED){ + if(this.signalType == SignalType.END_CALL_BECAUSE_BUSY + || this.signalType == SignalType.RINGING_TIMEOUT + || this.signalType == SignalType.END_CALL_BECAUSE_PEER_DISCONNECTED){ return; } this.src = stream.readString(); @@ -60,7 +63,9 @@ export class PacketSignalPeer extends Packet { const stream = new Stream(); stream.writeInt16(this.getPacketId()); stream.writeInt8(this.signalType); - if(this.signalType == SignalType.END_CALL_BECAUSE_BUSY || this.signalType == SignalType.END_CALL_BECAUSE_PEER_DISCONNECTED){ + if(this.signalType == SignalType.END_CALL_BECAUSE_BUSY + || this.signalType == SignalType.RINGING_TIMEOUT + || this.signalType == SignalType.END_CALL_BECAUSE_PEER_DISCONNECTED){ return stream; } stream.writeString(this.src);