Обновить диагностику звонков и документацию деплоя

This commit is contained in:
AidarKC
2026-07-14 20:07:31 +04:00
parent 2a4c2c64c9
commit 118be418b5
10 changed files with 393 additions and 68 deletions
@@ -0,0 +1,30 @@
# Исправление завершения звонка и таймаутов ACK
## Краткое описание
Исправлена клиентская логика звонков:
- входящий экран теперь должен закрываться сразу при `remote_hangup`;
- после нажатия `Ответить` добавлен таймаут ожидания стадии `connecting`, чтобы окно не висело бесконечно;
- исходящий таймаут ожидания ACK больше не обрывает звонок слишком рано, если invite уже был доставлен.
- в локальный app log клиента добавлен точный timeline по этапам звонка: invite, выбор remoteSessionId, accept/offer/answer, ICE, смены `RTCPeerConnection` и финализация.
- добавлена явная диагностика `SESSION_NOT_FOUND` для звонковых сигналов: отдельный timeline-этап в клиенте и отдельный серверный warn-лог.
## Что проверять
- Если исходящая сторона завершила звонок, входящее окно у второй стороны закрывается сразу.
- Если принять входящий звонок, а соединение/offer не приходит, экран не висит бесконечно и сам завершается по таймауту.
- Если invite был доставлен, исходящий звонок не падает через 10 секунд раньше времени только из-за медленного ACK.
- В app log по звонку видна последовательность этапов с локальными `+N ms`, по которой можно понять, где именно образуется задержка или гонка.
- Если сигнал звонка не дошёл до целевой сессии, это явно видно и в клиенте, и в серверном логе.
## Ожидаемый результат
- Нет бесконечно висящего окна `Соединяем…` на принимающей стороне.
- В логах вместо преждевременного `no_ack_10s` для уже доставленного invite появляется более поздний таймаут.
- При `remote_hangup` звонок визуально завершается сразу.
- По каждому проблемному звонку есть локальный timeline и тот же краткий timeline попадает в `CallDeliveryReport`.
- В серверных логах есть строка `CALL_SIGNAL_SESSION_NOT_FOUND ...` с `callId`, `targetSessionId` и количеством активных сессий адресата.
## Статус
`pending`