431013c3e30efd454748d9b0b099667927a90732
Ручной модуль api/calls.ts повторяет контракт сервера: разбор звонка один и тот же для REST-ручек, READY-снапшота и событий DM_CALL_*, поэтому состояние разбирается одним кодом. Стор dmCall ведёт медиа-сессию поверх общей обёртки lib/livekit: те же плитки, устройства, качество публикации и продление токена, но без серверных ролей — мьют и деаф только свои. Рингтон синтезируется Web Audio (файлов в проекте нет): входящий — пока звонят нам, исходящий — пока ждём ответа; свёрнутая вкладка замолкает. Карточка беседы несёт active_call: маркер «идёт звонок» приходит в READY и в списке бесед, а дальше обновляется событиями DM_CALL_RING/UPDATE/END. Завершение гасит локальную сессию и играет сигнал тем, кто был в звонке.
The file is empty.
Languages
TypeScript
52.5%
Go
39.2%
Shell
4.5%
Rust
1.9%
CSS
0.4%
Other
1.3%