ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
peer_manager.h
Go to the documentation of this file.
1
30#pragma once
31
32#include <stdint.h>
33#include <stdbool.h>
34#include "common.h"
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
49// Forward declarations
51
59
71 void *user_data);
72
86
98typedef asciichat_error_t (*webrtc_send_sdp_callback_t)(const uint8_t session_id[16], const uint8_t recipient_id[16],
99 const char *sdp_type, const char *sdp, void *user_data);
100
112typedef asciichat_error_t (*webrtc_send_ice_callback_t)(const uint8_t session_id[16], const uint8_t recipient_id[16],
113 const char *candidate, const char *mid, void *user_data);
114
123
124// ============================================================================
125// Peer Manager Lifecycle
126// ============================================================================
127
142 const webrtc_signaling_callbacks_t *signaling_callbacks,
143 webrtc_peer_manager_t **manager_out);
144
153
154// ============================================================================
155// Signaling Message Processing
156// ============================================================================
157
171
182
183// ============================================================================
184// Connection Initiation (Joiner Role)
185// ============================================================================
186
200 const uint8_t participant_id[16]);
201
// end of webrtc_peer_manager group
203
204#ifdef __cplusplus
205}
206#endif
acip_webrtc_ice_t
acip_webrtc_sdp_t
unsigned char uint8_t
Definition common.h:56
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
stun_server_t
Definition stun.h:75
turn_server_t
Definition turn.h:101
asciichat_error_t webrtc_peer_manager_create(const webrtc_peer_manager_config_t *config, const webrtc_signaling_callbacks_t *signaling_callbacks, webrtc_peer_manager_t **manager_out)
Create a WebRTC peer manager.
asciichat_error_t webrtc_peer_manager_handle_ice(webrtc_peer_manager_t *manager, const acip_webrtc_ice_t *ice)
Handle incoming ICE candidate from ACDS.
webrtc_peer_role_t
Peer connection role (server or client)
asciichat_error_t(* webrtc_send_sdp_callback_t)(const uint8_t session_id[16], const uint8_t recipient_id[16], const char *sdp_type, const char *sdp, void *user_data)
Callback to send SDP via ACDS signaling.
asciichat_error_t webrtc_peer_manager_handle_sdp(webrtc_peer_manager_t *manager, const acip_webrtc_sdp_t *sdp)
Handle incoming SDP message from ACDS.
void webrtc_peer_manager_destroy(webrtc_peer_manager_t *manager)
Destroy peer manager and close all connections.
asciichat_error_t webrtc_peer_manager_connect(webrtc_peer_manager_t *manager, const uint8_t session_id[16], const uint8_t participant_id[16])
Initiate connection to remote peer (joiner role only)
asciichat_error_t(* webrtc_send_ice_callback_t)(const uint8_t session_id[16], const uint8_t recipient_id[16], const char *candidate, const char *mid, void *user_data)
Callback to send ICE candidate via ACDS signaling.
void(* webrtc_transport_ready_callback_t)(acip_transport_t *transport, const uint8_t participant_id[16], void *user_data)
Callback when DataChannel is ready and wrapped in ACIP transport.
@ WEBRTC_ROLE_JOINER
Session joiner - generates offers, receives answers.
@ WEBRTC_ROLE_CREATOR
Session creator - accepts offers, generates answers.
ACIP protocol message structures and helpers.
uint8_t session_id[16]
uint8_t participant_id[16]
Transport instance structure.
Definition transport.h:169
Cryptographic context structure.
Peer manager configuration.
webrtc_peer_role_t role
Session role (creator or joiner)
size_t turn_count
Number of TURN servers.
turn_server_t * turn_servers
TURN servers for relay.
size_t stun_count
Number of STUN servers.
void * user_data
Passed to callbacks.
webrtc_transport_ready_callback_t on_transport_ready
Called when DataChannel ready.
crypto_context_t * crypto_ctx
Crypto context for transports.
stun_server_t * stun_servers
STUN servers for ICE.
WebRTC peer manager structure.
Signaling callbacks for sending SDP/ICE.
void * user_data
Passed to callbacks.
webrtc_send_sdp_callback_t send_sdp
Send SDP via ACDS.
webrtc_send_ice_callback_t send_ice
Send ICE via ACDS.
Transport abstraction layer for ACIP protocol.