From 47574100f98bcd83b0460d1580b7f262a65131b4e2d3756645e531774b98e948 Mon Sep 17 00:00:00 2001 From: AidarKC Date: Fri, 19 Jun 2026 18:25:47 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=81=D0=B0=D0=BC=D0=BE=D0=BE=D0=B1=D1=80=D1=8B?= =?UTF-8?q?=D0=B2=20=D0=B7=D0=B2=D0=BE=D0=BD=D0=BA=D0=B0=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20TURN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-06-19_1742_turn-uzel-93-only.md | 14 ++++++++++++++ ...026-06-19_1835_fix-stop-call-push-self-kill.md | 15 +++++++++++++++ .../src/main/resources/application.properties | 8 ++++---- VERSION.properties | 4 ++-- shine-UI/js/services/call-service.js | 6 ++++++ 5 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 Dev_Docs/Pending_Features/2026-06-19_1742_turn-uzel-93-only.md create mode 100644 Dev_Docs/Pending_Features/2026-06-19_1835_fix-stop-call-push-self-kill.md diff --git a/Dev_Docs/Pending_Features/2026-06-19_1742_turn-uzel-93-only.md b/Dev_Docs/Pending_Features/2026-06-19_1742_turn-uzel-93-only.md new file mode 100644 index 0000000..afee8ba --- /dev/null +++ b/Dev_Docs/Pending_Features/2026-06-19_1742_turn-uzel-93-only.md @@ -0,0 +1,14 @@ +# Отключение устаревшего TURN-узла `45.136.124.227` + +- краткое описание: + - из конфигурации звонков убран устаревший TURN-узел `45.136.124.227:3478`; + - основным и единственным выдаваемым TURN-узлом оставлен `93.170.12.154:3478`. +- что проверять: + - сделать несколько тестовых звонков между разными устройствами/сетями; + - убедиться, что звонок доходит до стадии соединения и появляется звук; + - убедиться, что в логах `CallDeliveryReport` больше не фигурирует `45.136.124.227`. +- ожидаемый результат: + - клиентам больше не выдаётся устаревший TURN-адрес; + - звонки не заваливаются из-за попыток использовать отключённый TURN-узел. +- статус: + - pending diff --git a/Dev_Docs/Pending_Features/2026-06-19_1835_fix-stop-call-push-self-kill.md b/Dev_Docs/Pending_Features/2026-06-19_1835_fix-stop-call-push-self-kill.md new file mode 100644 index 0000000..891e248 --- /dev/null +++ b/Dev_Docs/Pending_Features/2026-06-19_1835_fix-stop-call-push-self-kill.md @@ -0,0 +1,15 @@ +# Фикс самообрыва звонка из-за `stop_call` push своей же сессии + +- краткое описание: + - исправлена ситуация, когда активный звонок мог оборваться сразу после соединения; + - причина была в том, что `stop_call` push, предназначенный для других сессий того же пользователя, обрабатывался и в исходной сессии. +- что проверять: + - открыть несколько вкладок/устройств одного пользователя; + - принять звонок на одной сессии; + - убедиться, что активная сессия не обрывает звонок сразу после соединения; + - убедиться, что лишние сессии при этом закрывают свой локальный экран звонка. +- ожидаемый результат: + - звонок не завершается сразу после `call_connected`; + - `accepted_on_other_device` и связанные `stop_call` события больше не убивают исходную активную сессию. +- статус: + - pending diff --git a/SHiNE-server/src/main/resources/application.properties b/SHiNE-server/src/main/resources/application.properties index 7609457..369673e 100644 --- a/SHiNE-server/src/main/resources/application.properties +++ b/SHiNE-server/src/main/resources/application.properties @@ -42,14 +42,14 @@ call.ice.turn.password= # Каждый блок описывает один TURN-узел. Новые узлы добавляются по индексу. # Приоритет авторизации на узел: sharedSecret -> статические username/password. # ------------------------------------------------------------ -call.ice.turn.servers.1.id=vps-05 -call.ice.turn.servers.1.urls=turn:45.136.124.227:3478?transport=udp,turn:45.136.124.227:3478?transport=tcp +call.ice.turn.servers.1.id=promo-node-93 +call.ice.turn.servers.1.urls=turn:93.170.12.154:3478?transport=udp,turn:93.170.12.154:3478?transport=tcp call.ice.turn.servers.1.sharedSecret=def6d444734d380d2f67a9d345b1debf985eaba0973c343e392c060d97c30106 call.ice.turn.servers.1.username= call.ice.turn.servers.1.password= -call.ice.turn.servers.2.id=promo-node-93 -call.ice.turn.servers.2.urls=turn:93.170.12.154:3478?transport=udp,turn:93.170.12.154:3478?transport=tcp +call.ice.turn.servers.2.id=shineup-main-185 +call.ice.turn.servers.2.urls=turn:185.229.109.118:3478?transport=udp,turn:185.229.109.118:3478?transport=tcp call.ice.turn.servers.2.sharedSecret=def6d444734d380d2f67a9d345b1debf985eaba0973c343e392c060d97c30106 call.ice.turn.servers.2.username= call.ice.turn.servers.2.password= diff --git a/VERSION.properties b/VERSION.properties index a8b6c74..ee18127 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.216 -server.version=1.2.204 +client.version=1.2.217 +server.version=1.2.205 diff --git a/shine-UI/js/services/call-service.js b/shine-UI/js/services/call-service.js index da018ff..7534b7e 100644 --- a/shine-UI/js/services/call-service.js +++ b/shine-UI/js/services/call-service.js @@ -1636,7 +1636,13 @@ export async function handleStopCallPush(payload = {}) { if (!callId) return; const call = getCall(callId); if (!call) return; + const fromSessionId = String(payload?.fromSessionId || '').trim(); const reason = String(payload?.reason || 'stop_call_push').trim() || 'stop_call_push'; + const currentSessionId = String(state?.session?.sessionId || '').trim(); + if (fromSessionId && currentSessionId && fromSessionId === currentSessionId) { + await emitDebug(call, 'info', 'stop_call_push_ignored_for_origin_session', reason); + return; + } await finalizeCall(call, { localReasonCode: call.connectedAtMs ? 'completed' : 'no_answer', debugReason: `stop_call_push:${reason}`,