99 const char *sdp_type,
const char *sdp,
void *user_data);
113 const char *candidate,
const char *mid,
void *user_data);
asciichat_error_t
Error and exit codes - unified status values (0-255)
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 participant_id[16]
Transport instance structure.
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.