2 changed files with 39 additions and 50 deletions
@ -0,0 +1,37 @@
|
||||
/* Внутреннее состояние call.c/call_video_transport.c; доступ только из uasync. */ |
||||
#ifndef CALL_PRIV_H |
||||
#define CALL_PRIV_H |
||||
#include "call.h" |
||||
#include "../../lib/ll_queue.h" |
||||
|
||||
enum call_state { CALL_ST_IDLE, CALL_ST_OUTGOING, CALL_ST_RINGING, CALL_ST_ACTIVE, CALL_ST_ENDED }; |
||||
enum call_role { CALL_ROLE_CALLER, CALL_ROLE_CALLEE }; |
||||
struct call_video_transport; |
||||
struct call_session { |
||||
struct ll_entry ll; |
||||
uint64_t call_id, group_id, peer_node_id; |
||||
uint8_t role, state, reason; |
||||
struct call_ctx *ctx; |
||||
struct CONN_MGR_HANDLE *cm_handle; |
||||
void *ring_timer, *invite_timer; |
||||
uint8_t no_route_strikes; |
||||
void *traffic_timer, *teardown_timer, *stats_timer; |
||||
uint8_t connection_reported, connection_type; |
||||
uint64_t connection_next_hop, last_media_tb; |
||||
uint16_t tx_media_seq; |
||||
struct ll_queue *tx_q; |
||||
struct queue_waiter_handle send_waiter; |
||||
uint32_t c_tx_frames, c_rx_frames, c_tx_dropped, c_rx_dropped; |
||||
struct call_video_transport *video; |
||||
}; |
||||
struct call_ctx { |
||||
struct UTUN_INSTANCE *inst; |
||||
int initialized; |
||||
struct ll_queue *sessions; |
||||
uint32_t c_calls_started, c_calls_ended; |
||||
call_media_recv_fn media_recv_fn; |
||||
void *media_recv_arg; |
||||
const struct call_audio_ops *audio_ops; |
||||
}; |
||||
struct call_session *call_session_find(struct call_ctx *ctx, uint64_t call_id); |
||||
#endif |
||||
Loading…
Reference in new issue