Define live phone presence and call continuation API
This commit is contained in:
1 parent
1d28ced4f4
commit
505185430c
3 files changed
+11
No files matched your search
@@ -37,6 +37,12 @@ void call_decline(struct UTUN_INSTANCE* inst, uint64_t call_id);
|
||||
void call_hangup (struct UTUN_INSTANCE* inst, uint64_t call_id);
|
||||
/* Проверка занятости обычным звонком; только uasync, включая входящий/исходящий. */
|
||||
int call_busy(struct UTUN_INSTANCE* inst);
|
||||
/* Продолжить исходящий вызов после предупреждения о телефонной занятости. Только uasync. */
|
||||
void call_continue(struct UTUN_INSTANCE* inst, uint64_t call_id);
|
||||
/* Живой статус ОС: 0=неизвестно, 1=свободен, 2=занят. Только uasync; публикует BGP при изменении. */
|
||||
void call_set_phone_state(struct UTUN_INSTANCE* inst, int state);
|
||||
/* Флаги BGP PHONE_KNOWN/BUSY с учётом собственного обычного звонка. Только uasync. */
|
||||
uint8_t call_phone_status(struct UTUN_INSTANCE* inst);
|
||||
|
||||
/* Read-only онлайн-проверка (GUI может звать из любого потока). */
|
||||
int call_is_online(struct UTUN_INSTANCE* inst, const char* ch_id, uint64_t peer_node_id);
|
||||
@@ -98,6 +104,7 @@ void call_start_trampoline (void* arg);
|
||||
void call_accept_trampoline (void* arg);
|
||||
void call_decline_trampoline(void* arg);
|
||||
void call_hangup_trampoline (void* arg);
|
||||
void call_continue_trampoline(void* arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -77,6 +77,8 @@ struct reality_client_config;
|
||||
|
||||
#define TOPO_FLAG_SEND_SUBNETS 0x01
|
||||
#define TOPO_FLAG_RADIO 0x02
|
||||
#define TOPO_FLAG_PHONE_KNOWN 0x04 /* состояние телефона опубликовано */
|
||||
#define TOPO_FLAG_PHONE_BUSY 0x08 /* занят телефонным либо обычным uTun-вызовом */
|
||||
#define TOPO_GROUP_UTUN 0x8000000000000000ULL
|
||||
#define TOPO_GROUP_TYPE_UTUN 1
|
||||
#define TOPO_GROUP_TYPE_CHAT 2
|
||||
@@ -219,6 +221,7 @@ struct TOPO_GROUP_NODE {
|
||||
uint8_t conn_presence; // маска NCONN_*: известные виды подключения
|
||||
uint8_t conn_up; // маска NCONN_*: работающие виды подключения
|
||||
uint8_t radio; // 1 = узел слушает рацию канала (TOPO_FLAG_RADIO)
|
||||
uint8_t phone_status; // TOPO_FLAG_PHONE_KNOWN/BUSY; подсказка интерфейсу, не основание для отказа
|
||||
struct NODE_CONN_DIRECT* handle; // не владеет транспортом; NCD принадлежит сессии группы
|
||||
};
|
||||
|
||||
|
||||
@@ -261,6 +261,7 @@ struct UTUN_INSTANCE {
|
||||
uint16_t keepalive_interval; // желаемый keepalive (ms), из конфига. для handshake
|
||||
uint8_t client_activity; // CLIENT_ACTIVITY_STANDBY/ACTIVE
|
||||
uint8_t client_activity_requested; // режим frontend; stream owners могут временно удерживать эффективный ACTIVE
|
||||
uint8_t phone_state; // 0=неизвестно, 1=свободен, 2=занят; живое состояние ОС, не сохраняется
|
||||
struct utun_activity_cbk_entry* activity_cbks; // подписки на смену client_activity
|
||||
struct peer_sleep_cbk_entry* peer_sleep_cbks; // подписки на смену спячки пира (keepalive)
|
||||
|
||||
|
||||
Reference in new issue
Block a user