// АРМ курсанта: приём вызова и разговор голосом. // Карточка КИО — lct-10, таймеры — lct-11. import { useCall } from "@/features/call/useCall"; import { sessionIdFromUrl } from "@/shared/api/session"; const STATUS_LABEL: Record = { connecting: "подключение", open: "на связи", reconnecting: "связь потеряна, переподключение", closed: "отключено", }; export function Call() { const sessionId = sessionIdFromUrl(); const call = useCall(sessionId); if (!sessionId) { return (

АРМ курсанта

В адресе нет номера занятия: откройте ссылку вида /trainee?session=…

); } return (

АРМ оператора 112

Канал{STATUS_LABEL[call.status]}
Вызов{call.incoming ? `${call.incoming.caller_number} · сценарий ${call.incoming.scenario_id} · режим ${call.incoming.mode}` : "ожидание"}
Гарнитура{call.micOn ? "микрофон включён" : "выключен"}
Звонящий{call.callerSpeaking ? "говорит" : "молчит"}

{call.phase === "incoming" && !call.micOn && ( )} {call.micOn && }{" "} {call.micOn && call.incoming?.mode !== "exam" && ( )}

{call.error &&

{call.error}

}

Разговор

{call.lines.map((line, index) => ( ))} {call.lines.length === 0 && }
{line.speaker === "caller" ? "звонящий" : "оператор"} {line.text}
—
); }