Исправить самообрыв звонка и обновить TURN
This commit is contained in:
parent
722d055e2d
commit
47574100f9
@ -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
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
# Фикс самообрыва звонка из-за `stop_call` push своей же сессии
|
||||||
|
|
||||||
|
- краткое описание:
|
||||||
|
- исправлена ситуация, когда активный звонок мог оборваться сразу после соединения;
|
||||||
|
- причина была в том, что `stop_call` push, предназначенный для других сессий того же пользователя, обрабатывался и в исходной сессии.
|
||||||
|
- что проверять:
|
||||||
|
- открыть несколько вкладок/устройств одного пользователя;
|
||||||
|
- принять звонок на одной сессии;
|
||||||
|
- убедиться, что активная сессия не обрывает звонок сразу после соединения;
|
||||||
|
- убедиться, что лишние сессии при этом закрывают свой локальный экран звонка.
|
||||||
|
- ожидаемый результат:
|
||||||
|
- звонок не завершается сразу после `call_connected`;
|
||||||
|
- `accepted_on_other_device` и связанные `stop_call` события больше не убивают исходную активную сессию.
|
||||||
|
- статус:
|
||||||
|
- pending
|
||||||
@ -42,14 +42,14 @@ call.ice.turn.password=
|
|||||||
# Каждый блок описывает один TURN-узел. Новые узлы добавляются по индексу.
|
# Каждый блок описывает один TURN-узел. Новые узлы добавляются по индексу.
|
||||||
# Приоритет авторизации на узел: sharedSecret -> статические username/password.
|
# Приоритет авторизации на узел: sharedSecret -> статические username/password.
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
call.ice.turn.servers.1.id=vps-05
|
call.ice.turn.servers.1.id=promo-node-93
|
||||||
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.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.sharedSecret=def6d444734d380d2f67a9d345b1debf985eaba0973c343e392c060d97c30106
|
||||||
call.ice.turn.servers.1.username=
|
call.ice.turn.servers.1.username=
|
||||||
call.ice.turn.servers.1.password=
|
call.ice.turn.servers.1.password=
|
||||||
|
|
||||||
call.ice.turn.servers.2.id=promo-node-93
|
call.ice.turn.servers.2.id=shineup-main-185
|
||||||
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.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.sharedSecret=def6d444734d380d2f67a9d345b1debf985eaba0973c343e392c060d97c30106
|
||||||
call.ice.turn.servers.2.username=
|
call.ice.turn.servers.2.username=
|
||||||
call.ice.turn.servers.2.password=
|
call.ice.turn.servers.2.password=
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
client.version=1.2.216
|
client.version=1.2.217
|
||||||
server.version=1.2.204
|
server.version=1.2.205
|
||||||
|
|||||||
@ -1636,7 +1636,13 @@ export async function handleStopCallPush(payload = {}) {
|
|||||||
if (!callId) return;
|
if (!callId) return;
|
||||||
const call = getCall(callId);
|
const call = getCall(callId);
|
||||||
if (!call) return;
|
if (!call) return;
|
||||||
|
const fromSessionId = String(payload?.fromSessionId || '').trim();
|
||||||
const reason = String(payload?.reason || 'stop_call_push').trim() || 'stop_call_push';
|
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, {
|
await finalizeCall(call, {
|
||||||
localReasonCode: call.connectedAtMs ? 'completed' : 'no_answer',
|
localReasonCode: call.connectedAtMs ? 'completed' : 'no_answer',
|
||||||
debugReason: `stop_call_push:${reason}`,
|
debugReason: `stop_call_push:${reason}`,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user