10 #include "capabilities.h"
18 #ifdef DOXYGEN_OTC_SESSION_TYPEDEF
24 #ifndef OTC_SESSION_FWD_DECL
25 #define OTC_SESSION_FWD_DECL
378 const char* archive_id,
392 const char* archive_id);
406 const char* error_string,
457 const
char* session_id,
516 const
char* proxy_url);
556 const
char* session_id,
710 const
char** excluded_streams_ids,
711 const
int excluded_streams_len);
764 const
char *stream_id_to_mute);
864 const
char* issue_description,
int otc_bool
Definition: base.h:127
int otc_status
Definition: base.h:153
struct otc_connection otc_connection
Definition: connection.h:19
struct otc_publisher otc_publisher
Definition: publisher.h:27
otc_session * otc_session_new_with_settings(const char *apikey, const char *session_id, const struct otc_session_callbacks *callbacks, otc_session_settings *settings)
otc_status otc_session_send_signal(otc_session *session, const char *type, const char *signal)
otc_session_settings * otc_session_settings_new()
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_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)
void * otc_session_get_user_data(const otc_session *session)
otc_status otc_session_unpublish(otc_session *session, otc_publisher *publisher)
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_disconnect(otc_session *session)
struct otc_session_settings otc_session_settings
Definition: session.h:31
otc_session * otc_session_new(const char *apikey, const char *session_id, const struct otc_session_callbacks *callbacks)
otc_status otc_session_force_mute_stream(const otc_session *session, const char *stream_id_to_mute)
otc_connection * otc_session_get_connection(const otc_session *session)
otc_session_error_code
Definition: session.h:37
@ OTC_SESSION_CONNECTION_REFUSED
Definition: session.h:50
@ OTC_SESSION_INTERNAL_ERROR
Definition: session.h:61
@ OTC_SESSION_NOT_CONNECTED
Definition: session.h:67
@ OTC_SESSION_CONNECTION_TIMED_OUT
Definition: session.h:53
@ OTC_SESSION_CONNECTION_FAILED
Definition: session.h:45
@ OTC_SESSION_SIGNAL_DATA_TOO_LONG
Definition: session.h:78
@ OTC_SESSION_NO_MESSAGING_SERVER
Definition: session.h:70
@ OTC_SESSION_AUTHORIZATION_FAILURE
Definition: session.h:38
@ OTC_SESSION_UNEXPECTED_GET_SESSION_INFO_REPONSE
Definition: session.h:90
@ OTC_SESSION_PUBLISHER_NOT_FOUND
Definition: session.h:74
@ OTC_SESSION_ILLEGAL_STATE
Definition: session.h:57
@ OTC_SESSION_CONNECTION_DROPPED
Definition: session.h:43
@ OTC_SESSION_BLOCKED_COUNTRY
Definition: session.h:40
@ OTC_SESSION_FORCE_UNPUBLISH_OR_INVALID_STREAM
Definition: session.h:56
@ OTC_SESSION_STATE_FAILED
Definition: session.h:84
@ OTC_SESSION_NULL_OR_INVALID_PARAMETER
Definition: session.h:72
@ OTC_SESSION_INVALID_SESSION
Definition: session.h:63
@ OTC_SESSION_SUBSCRIBER_NOT_FOUND
Definition: session.h:86
@ OTC_SESSION_INVALID_SIGNAL_TYPE
Definition: session.h:65
@ OTC_SESSION_SIGNAL_TYPE_TOO_LONG
Definition: session.h:81
@ OTC_SESSION_CONNECTION_LIMIT_EXCEEDED
Definition: session.h:47
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_delete(otc_session *session)
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_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)
char * otc_session_get_id(const otc_session *session)
otc_stream_video_type
Definition: stream.h:24
struct otc_stream otc_stream
Definition: stream.h:18
Definition: session.h:114
char ** ice_credential
Definition: session.h:119
otc_bool use_custom_turn_only
Definition: session.h:124
int num_ice_servers
Definition: session.h:115
otc_bool force_turn
Definition: session.h:120
char ** ice_url
Definition: session.h:116
char ** ice_user
Definition: session.h:117
Definition: session.h:164
void * user_data
Definition: session.h:428
void(* on_connection_dropped)(otc_session *session, void *user_data, const otc_connection *connection)
Definition: session.h:208
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:315
void(* on_connected)(otc_session *session, void *user_data)
Definition: session.h:173
void(* on_stream_received)(otc_session *session, void *user_data, const otc_stream *stream)
Definition: session.h:223
void(* on_stream_dropped)(otc_session *session, void *user_data, const otc_stream *stream)
Definition: session.h:236
void(* on_stream_video_dimensions_changed)(otc_session *session, void *user_data, const otc_stream *stream, int width, int height)
Definition: session.h:300
void * reserved
Definition: session.h:434
void(* on_stream_has_audio_changed)(otc_session *session, void *user_data, const otc_stream *stream, otc_bool has_audio)
Definition: session.h:251
void(* on_error)(otc_session *session, void *user_data, const char *error_string, enum otc_session_error_code error)
Definition: session.h:404
void(* on_archive_stopped)(otc_session *session, void *user_data, const char *archive_id)
Definition: session.h:390
void(* on_mute_forced)(otc_session *session, void *user_data, otc_on_mute_forced_info *mute_info)
Definition: session.h:421
void(* on_stream_has_captions_changed)(otc_session *session, void *user_data, const otc_stream *stream, otc_bool has_captions)
Definition: session.h:284
void(* on_disconnected)(otc_session *session, void *user_data)
Definition: session.h:182
void(* on_connection_created)(otc_session *session, void *user_data, const otc_connection *connection)
Definition: session.h:194
void(* on_archive_started)(otc_session *session, void *user_data, const char *archive_id, const char *name)
Definition: session.h:376
void(* on_reconnection_started)(otc_session *session, void *user_data)
Definition: session.h:351
void(* on_stream_has_video_changed)(otc_session *session, void *user_data, const otc_stream *stream, otc_bool has_video)
Definition: session.h:266
void(* on_signal_received)(otc_session *session, void *user_data, const char *type, const char *signal, const otc_connection *connection)
Definition: session.h:337
void(* on_reconnected)(otc_session *session, void *user_data)
Definition: session.h:361
otc_bool force_mute
Definition: session.h:101
otc_bool publish
Definition: session.h:99
Definition: session.h:135
otc_bool retry_after_reconnect
Definition: session.h:148
struct otc_subscriber otc_subscriber
Definition: subscriber.h:28