mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 17:14:59 +03:00
Introduce a call kind (AUDIO default, VIDEO) so dialogs support both audio and video calls. Video path is unchanged; audio is a separate full-screen component built 1:1 on the «Аудиозвонок.dc.html» baseline. Backend - CallSession.kind (CallKind AUDIO|VIDEO, default AUDIO) + migration 0005 - create_call_request(kind), CallCreateView validates kind from request body - serializers expose kind in call_payload, public_invite_payload, public_call_state_payload (drop stale hardcoded capabilities) - timeline system message reflects kind («аудио-/видеозвонок») - tests updated for the kind field and new message wording @edevs/ui - useCallRtcSession gains videoEnabled (default true; video unchanged); audio requests audio-only getUserMedia, no camera fallback - AudioCallView, AudioCallWaveform (live AnalyserNode oscilloscope), AudioCallIcons (mic/speaker/phone/status), audioCallStates, audio-call.css - exported via index.ts internal-ui - two call buttons in the conversation header (audio + video) - CallOverlay becomes a kind dispatcher: VideoCallOverlay (unchanged) / AudioCallOverlay; kind threaded through model/hook/workspace web-chat - CallInfo.kind; invite banner shows audio vs video title and icon - CallApp dispatches to AudioCallStage for audio; audio resolve/build in model Infra - compose.yaml: widen Coturn relay UDP range to 49160-49999 (~420 relay calls) with explanatory comment