SHA256
Обновить диагностику звонков и документацию деплоя
This commit is contained in:
@@ -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`
|
||||
@@ -19,11 +19,11 @@
|
||||
- SSH: `player@shineup.me`
|
||||
- Домен: `shineup.me`
|
||||
- IP: `185.229.109.118`
|
||||
- Main test:
|
||||
- Second production:
|
||||
- SSH: `player@193.8.215.70`
|
||||
- Домен: `t.shineup.me`
|
||||
- IP: `193.8.215.70`
|
||||
- Reserve test:
|
||||
- Reserve test (temporarily down):
|
||||
- SSH: `player@93.170.12.154`
|
||||
- Домен: `test.shineup.me`
|
||||
- IP: `93.170.12.154`
|
||||
@@ -45,14 +45,14 @@
|
||||
|
||||
## Политика подтверждений
|
||||
|
||||
- `shineup.me` — production.
|
||||
- Любые изменения на `shineup.me`, включая deploy сервера, deploy UI, конфиги, перезапуски и миграции, делать только после отдельного явного подтверждения пользователя.
|
||||
- Если пользователь пишет просто `задеплой` без уточнения, по умолчанию это означает deploy на `t.shineup.me`.
|
||||
- `shineup.me` и `t.shineup.me` считать production-контурами.
|
||||
- Любые изменения на production-контурах, включая deploy сервера, deploy UI, конфиги, перезапуски и миграции, делать только после отдельного явного подтверждения пользователя.
|
||||
- `test.shineup.me` считать резервным тестовым хостом, который сейчас временно не работает.
|
||||
|
||||
## Main test deploy (`t.shineup.me`)
|
||||
## Second production deploy (`t.shineup.me`)
|
||||
|
||||
- Это основной сервер для тестов.
|
||||
- `deployServer` и `deployUI` по умолчанию направлены именно сюда.
|
||||
- Это второй production-сервер SHiNE.
|
||||
- Исторические задачи `deployServer`, `deployUI`, `deployServerTest2`, `deployUITest2` по-прежнему могут указывать сюда.
|
||||
- Серверный deploy не запускает JUnit/IT-тесты на удалённом сервере.
|
||||
- `deployServer` / `deployServerTest2` делают:
|
||||
- сборку fat-jar локально;
|
||||
@@ -66,6 +66,7 @@
|
||||
## Reserve test deploy (`test.shineup.me`)
|
||||
|
||||
- `test.shineup.me` считается резервным тестовым сервером.
|
||||
- Сейчас он помечен как временно неработающий.
|
||||
- Его настройки и адрес не менять без отдельной задачи.
|
||||
- Задачи `deployServerTest` и `deployUITest` считаются резервными и требуют отдельной причины.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Сервер `193.8.215.70` — основной test (`t.shineup.me`)
|
||||
# Сервер `193.8.215.70` — второй production (`t.shineup.me`)
|
||||
|
||||
- Пользователь: `player`
|
||||
- Домен: `t.shineup.me`
|
||||
@@ -18,9 +18,9 @@
|
||||
|
||||
## Статус
|
||||
|
||||
- Это основной сервер для тестов SHiNE.
|
||||
- Default deploy по умолчанию должен идти сюда.
|
||||
- Источник данных для тестовой БД: production `shineup.me`.
|
||||
- Это второй production-сервер SHiNE.
|
||||
- Исторические имена deploy-задач могут по-прежнему ссылаться на него как на `test2`.
|
||||
- В документации и в списке окружений считать его production-контуром.
|
||||
|
||||
## Caddy
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
## Статус
|
||||
|
||||
- Резервный тестовый сервер для SHiNE.
|
||||
- Сейчас помечен как временно неработающий.
|
||||
- Источник данных для тестовой БД: production `shineup.me`.
|
||||
- Пока не использовать для обычного deploy.
|
||||
- Основной прод-сервер: `shineup.me` (`185.229.109.118`).
|
||||
|
||||
Reference in New Issue
Block a user