From a9d63480cfcb864b6dc82a559bc9cdf1365dd542 Mon Sep 17 00:00:00 2001 From: evgeny Date: Mon, 19 Oct 2026 15:18:49 +0200 Subject: [PATCH] Document incoming policy and already-active radio contracts --- src/call/call.h | 5 +++-- src/radio/radio_call.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/call/call.h b/src/call/call.h index 9bc3bae1..d3f52dee 100644 --- a/src/call/call.h +++ b/src/call/call.h @@ -39,12 +39,13 @@ void call_hangup (struct UTUN_INSTANCE* inst, uint64_t call_id); int call_busy(struct UTUN_INSTANCE* inst); /* Продолжить исходящий вызов после предупреждения о телефонной занятости. Только uasync. */ void call_continue(struct UTUN_INSTANCE* inst, uint64_t call_id); -/* Живой статус ОС: 0=неизвестно, 1=свободен, 2=занят. Только uasync; публикует BGP при изменении. */ +/* Независимые настройки входящих вызовов; запрет выбранного типа приоритетнее проверки занятости. */ enum call_policy { CALL_POLICY_PUBLISH_PHONE = 1, CALL_POLICY_WARN_PHONE = 2, CALL_POLICY_REJECT_PHONE = 4, CALL_POLICY_BLOCK_CALLS = 8, CALL_POLICY_BLOCK_RADIO = 16 }; -/* policy — маска call_policy. Запреты применяются до проверки телефонной занятости. */ +/* Живое состояние ОС: 0=неизвестно, 1=свободен, 2=занят; policy — маска call_policy. + * Только uasync. Изменение статуса публикуется в BGP, если включён PUBLISH_PHONE. */ void call_set_phone_state(struct UTUN_INSTANCE* inst, int state, unsigned policy); /* Флаги BGP PHONE_KNOWN/BUSY с учётом собственного обычного звонка. Только uasync. */ uint8_t call_phone_status(struct UTUN_INSTANCE* inst); diff --git a/src/radio/radio_call.h b/src/radio/radio_call.h index b8da9daa..7f42e6d8 100644 --- a/src/radio/radio_call.h +++ b/src/radio/radio_call.h @@ -1,6 +1,8 @@ /* Адресный вызов участника в общую рацию CHAT-канала. * Ядро владеет сигналингом, GUI — рингтоном и включением обычной рации. * После INCOMING приложение вызывает READY; первый ответ ожидается строго 2с. + * WAIT_DECISION не запускает UI получателя; CONTINUE разрешает начало входящего. + * ALREADY_ACTIVE — уведомление, что адресат уже слушает канал; рацию вызывающего не включает. * ACCEPT отправляется после локального включения рации. FINISHED завершает только * приглашение, а не рацию. Все функции и события выполняются в uasync-потоке. */ #ifndef RADIO_CALL_H