10#include "capabilities.h"
18#ifdef DOXYGEN_OTC_SESSION_TYPEDEF
24#ifndef OTC_SESSION_FWD_DECL
25#define OTC_SESSION_FWD_DECL
33#define ENCRYPTION_SECRET_MINIMUM_LENGTH 8
34#define ENCRYPTION_SECRET_MAXIMUM_LENGTH 256
401 const char* archive_id,
415 const char* archive_id);
429 const char* error_string,
484 const
char* session_id,
549 const
char* proxy_url);
623 const
char* session_id,
783 const
char** excluded_streams_ids,
784 const
int excluded_streams_len);
837 const
char *stream_id_to_mute);
958 const
char* issue_description,
int otc_bool
Definition base.h:167
int otc_status
Definition base.h:262
struct otc_connection otc_connection
Definition connection.h:19
struct otc_publisher otc_publisher
Definition publisher.h:33
otc_session * otc_session_new(const char *apikey, const char *session_id, const struct otc_session_callbacks *callbacks)
otc_status otc_session_send_signal(otc_session *session, const char *type, const char *signal)
otc_status otc_session_force_disconnect(const otc_session *session, const otc_connection *connection)
otc_status otc_session_settings_set_custom_ice_config(otc_session_settings *settings, const struct otc_custom_ice_config *custom_ice_config)
struct otc_session otc_session
Definition session.h:21
otc_status otc_session_settings_set_connection_events_suppressed(otc_session_settings *settings, otc_bool suppress)
otc_status otc_session_disable_force_mute(otc_session *session)
otc_connection * otc_session_get_connection(const otc_session *session)
otc_status otc_session_connect(otc_session *session, const char *token)
otc_status otc_session_publish(otc_session *session, otc_publisher *publisher)
otc_status otc_session_report_issue(struct otc_session *session, const char *issue_description, char **issue_id)
otc_session_settings * otc_session_settings_new(void)
otc_status otc_session_unpublish(otc_session *session, otc_publisher *publisher)
otc_status otc_session_set_encryption_secret(otc_session *session, const char *secret)
Sets the end-to-end encryption secret that will be used by all publishers and subscribers in the sess...
otc_status otc_session_unsubscribe(otc_session *session, otc_subscriber *subscriber)
otc_status otc_session_subscribe(otc_session *session, otc_subscriber *subscriber)
otc_status otc_session_settings_set_session_migration(otc_session_settings *settings, otc_bool enable)
Enables or disables Session Migration for a session.
struct otc_session_settings otc_session_settings
Definition session.h:31
otc_status otc_session_settings_set_single_peer_connection(otc_session_settings *settings, otc_bool enable)
Enables or disables Single Peer Connection (SPC) for a session.
otc_status otc_session_force_mute_stream(const otc_session *session, const char *stream_id_to_mute)
char * otc_session_get_id(const otc_session *session)
otc_session_error_code
Definition session.h:40
@ OTC_SESSION_CONNECTION_REFUSED
Definition session.h:53
@ OTC_SESSION_INTERNAL_ERROR
Definition session.h:64
@ OTC_SESSION_NOT_CONNECTED
Definition session.h:70
@ OTC_SESSION_CONNECTION_TIMED_OUT
Definition session.h:56
@ OTC_SESSION_CONNECTION_FAILED
Definition session.h:48
@ OTC_SESSION_SIGNAL_DATA_TOO_LONG
Definition session.h:81
@ OTC_SESSION_NO_MESSAGING_SERVER
Definition session.h:73
@ OTC_SESSION_ENCRYPTION_SECRET_MISSING
Definition session.h:98
@ OTC_SESSION_AUTHORIZATION_FAILURE
Definition session.h:41
@ OTC_SESSION_UNEXPECTED_GET_SESSION_INFO_REPONSE
Definition session.h:96
@ OTC_SESSION_INVALID_ENCRYPTION_SECRET
Definition session.h:101
@ OTC_SESSION_PUBLISHER_NOT_FOUND
Definition session.h:77
@ OTC_SESSION_ILLEGAL_STATE
Definition session.h:60
@ OTC_SESSION_CONNECTION_DROPPED
Definition session.h:46
@ OTC_SESSION_UNABLE_TO_SEND_SIGNAL
Definition session.h:87
@ OTC_SESSION_BLOCKED_COUNTRY
Definition session.h:43
@ OTC_SESSION_FORCE_UNPUBLISH_OR_INVALID_STREAM
Definition session.h:59
@ OTC_SESSION_STATE_FAILED
Definition session.h:90
@ OTC_SESSION_NULL_OR_INVALID_PARAMETER
Definition session.h:75
@ OTC_SESSION_ENCRYPTION_NOT_ENABLED
Definition session.h:104
@ OTC_SESSION_INVALID_SESSION
Definition session.h:66
@ OTC_SESSION_SUBSCRIBER_NOT_FOUND
Definition session.h:92
@ OTC_SESSION_INVALID_SIGNAL_TYPE
Definition session.h:68
@ OTC_SESSION_SIGNAL_TYPE_TOO_LONG
Definition session.h:84
@ OTC_SESSION_CONNECTION_LIMIT_EXCEEDED
Definition session.h:50
otc_status otc_session_send_signal_to_connection_with_options(otc_session *session, const char *type, const char *signal, const otc_connection *connection, struct otc_signal_options signal_options)
otc_status otc_session_settings_delete(otc_session_settings *settings)
otc_status otc_session_send_signal_with_options(otc_session *session, const char *type, const char *signal, struct otc_signal_options signal_options)
otc_status otc_session_settings_set_ip_whitelist(otc_session_settings *settings, otc_bool ip_whitelist)
otc_status otc_session_send_signal_to_connection(otc_session *session, const char *type, const char *signal, const otc_connection *connection)
struct otc_session_capabilities otc_session_get_capabilities(const otc_session *session)
otc_session * otc_session_new_with_settings(const char *apikey, const char *session_id, const struct otc_session_callbacks *callbacks, otc_session_settings *settings)
void * otc_session_get_user_data(const otc_session *session)
otc_status otc_session_settings_set_proxy_url(otc_session_settings *settings, const char *proxy_url)
otc_status otc_session_force_mute_all(otc_session *session, const char **excluded_streams_ids, const int excluded_streams_len)
otc_stream_video_type
Definition stream.h:24
struct otc_stream otc_stream
Definition stream.h:18
char ** ice_credential
Definition session.h:140
otc_bool filter_out_lan_candidates
Definition session.h:148
otc_bool use_custom_turn_only
Definition session.h:145
int num_ice_servers
Definition session.h:136
otc_bool force_turn
Definition session.h:141
char ** ice_url
Definition session.h:137
char ** ice_user
Definition session.h:138
void * user_data
Definition session.h:451
void(* on_connection_dropped)(otc_session *session, void *user_data, const otc_connection *connection)
Definition session.h:233
void(* on_stream_video_type_changed)(otc_session *session, void *user_data, const otc_stream *stream, enum otc_stream_video_type type)
Definition session.h:338
void(* on_connected)(otc_session *session, void *user_data)
Definition session.h:198
void(* on_stream_received)(otc_session *session, void *user_data, const otc_stream *stream)
Definition session.h:248
void(* on_stream_dropped)(otc_session *session, void *user_data, const otc_stream *stream)
Definition session.h:261
void(* on_stream_video_dimensions_changed)(otc_session *session, void *user_data, const otc_stream *stream, int width, int height)
Definition session.h:323
void * reserved
Definition session.h:457
void(* on_stream_has_audio_changed)(otc_session *session, void *user_data, const otc_stream *stream, otc_bool has_audio)
Definition session.h:276
void(* on_error)(otc_session *session, void *user_data, const char *error_string, enum otc_session_error_code error)
Definition session.h:427
void(* on_archive_stopped)(otc_session *session, void *user_data, const char *archive_id)
Definition session.h:413
void(* on_mute_forced)(otc_session *session, void *user_data, otc_on_mute_forced_info *mute_info)
Definition session.h:444
void(* on_stream_has_captions_changed)(otc_session *session, void *user_data, const otc_stream *stream, otc_bool has_captions)
Definition session.h:307
void(* on_disconnected)(otc_session *session, void *user_data)
Definition session.h:207
void(* on_connection_created)(otc_session *session, void *user_data, const otc_connection *connection)
Definition session.h:219
void(* on_archive_started)(otc_session *session, void *user_data, const char *archive_id, const char *name)
Definition session.h:399
void(* on_reconnection_started)(otc_session *session, void *user_data)
Definition session.h:374
void(* on_stream_has_video_changed)(otc_session *session, void *user_data, const otc_stream *stream, otc_bool has_video)
Definition session.h:291
void(* on_signal_received)(otc_session *session, void *user_data, const char *type, const char *signal, const otc_connection *connection)
Definition session.h:360
void(* on_reconnected)(otc_session *session, void *user_data)
Definition session.h:384
otc_bool force_mute
Definition session.h:119
otc_bool publish
Definition session.h:115
otc_bool force_disconnect
Definition session.h:123
otc_bool subscribe
Definition session.h:117
otc_bool retry_after_reconnect
Definition session.h:173
struct otc_subscriber otc_subscriber
Definition subscriber.h:30