call: две фазы исходящего вызова — индикация + разные гудки (desktop/Android)
This commit is contained in:
1 parent
7198154106
commit
b90dc752d2
21 files changed
+170
-21
No files matched your search
@@ -127,6 +127,14 @@ API: `ajb_create / ajb_push / ajb_pull / ajb_stats / ajb_destroy`.
|
||||
|
||||
## 8. Тоны и диагностика
|
||||
|
||||
- **Исходящий звонок — две фазы с разными гудками** (у вызывающего):
|
||||
- фаза 1 «пытаемся связаться» (`OUTGOING`: INVITE отправлен/ретранслируется, маршрут
|
||||
устанавливается) — гудок «соединение» (короткие бипы);
|
||||
- фаза 2 «звоним» (`RINGING`: получен RINGING, у пира идёт вызов) — длинные гудки (ringback).
|
||||
Гудки генерируются платформенно-нативно: desktop — цикличные MP3 через `SoundManager`
|
||||
(`call_connecting`/`call_ringing`), Android — `ToneGenerator`
|
||||
(`TONE_SUP_DIAL`/`TONE_SUP_RINGTONE`). Переключение — по `CHAT_EVT_CALL_RINGING`,
|
||||
остановка — по `CALL_ACCEPTED`/`CALL_ENDED`/`CALL_ERROR`/hangup.
|
||||
- **Сталл >500мс** (нет входящих медиа) → в `call_pull_pcm` микшируется
|
||||
`CALL_TONE_GLITCH`: `пи-пи (2×150мс, gap 100мс) … тишина до 1.0с … пи(200мс)
|
||||
пауза(200мс) пи(200мс)`, 1000 Гц, цикл пока длится сталл.
|
||||
|
||||
@@ -68,6 +68,19 @@
|
||||
[ ] **DM-звонки** (fallback `group_id==0`) — не сделано: `call_is_online`/`call_start`
|
||||
требуют реальную группу (`topo_groups_find`), для DM (group_id==0) маршрута нет.
|
||||
|
||||
## Звонок: две фазы исходящего вызова (индикация + гудки)
|
||||
|
||||
[+] **Две фазы вызова** — сделано. Исходящий звонок разбит на 2 фазы с индикацией
|
||||
в окне вызова и разными гудками:
|
||||
- фаза 1 «Пытаемся связаться…» (`OUTGOING` — INVITE/маршрут) — гудок «соединение»;
|
||||
- фаза 2 «Звоним…» (`RINGING` — у пира идёт вызов) — длинные гудки (ringback).
|
||||
Desktop: `CallWindow::Ringing` + `SoundManager` loop `call_connecting`/`call_ringing`
|
||||
(MP3 в qrc), переключение по `onCallRinging`, остановка по accepted/ended/error;
|
||||
добавлена обработка `GUI_EVT_CALL_ERROR` (40) — раньше при «пир офлайн» окно/гудок
|
||||
зависали навсегда. Android: `CallRingback` (`ToneGenerator` DIAL/RINGTONE),
|
||||
подписи `OUTGOING`/`RINGING` в CallScreen + ActiveCallBanner.
|
||||
Звуковые события добавлены в SoundSettingsPage (call_connecting/call_ringing).
|
||||
|
||||
## Рефакторинг: per-instance chat/dm (однопоточный test_dm_e2e)
|
||||
|
||||
Сделано (глобальные синглтоны переведены на `UTUN_INSTANCE`):
|
||||
|
||||
Reference in new issue
Block a user