OpenTok C SDK
Loading...
Searching...
No Matches
session.h
Go to the documentation of this file.
1
7#ifndef SESSION_H
8#define SESSION_H
9
10#include "capabilities.h"
11#include "config.h"
12#include "publisher.h"
13#include "subscriber.h"
14#include "stream.h"
15
16OTC_BEGIN_DECL
17
18#ifdef DOXYGEN_OTC_SESSION_TYPEDEF
21typedef struct otc_session otc_session;
22#endif
23
24#ifndef OTC_SESSION_FWD_DECL
25#define OTC_SESSION_FWD_DECL
26typedef struct otc_session otc_session;
27#endif
28
32
33#define ENCRYPTION_SECRET_MINIMUM_LENGTH 8
34#define ENCRYPTION_SECRET_MAXIMUM_LENGTH 256
35
109
127
153
175
198 void (*on_connected)(otc_session* session, void* user_data);
199
207 void (*on_disconnected)(otc_session* session, void* user_data);
208
220 void* user_data,
221 const otc_connection* connection);
222
234 void* user_data,
235 const otc_connection* connection);
236
249 void* user_data,
250 const otc_stream* stream);
251
262 void* user_data,
263 const otc_stream* stream);
277 void* user_data,
278 const otc_stream* stream,
279 otc_bool has_audio);
280
292 void* user_data,
293 const otc_stream* stream,
294 otc_bool has_video);
308 void* user_data,
309 const otc_stream* stream,
310 otc_bool has_captions);
311
324 void* user_data,
325 const otc_stream* stream,
326 int width,
327 int height);
328
339 void* user_data,
340 const otc_stream* stream,
341 enum otc_stream_video_type type);
361 void* user_data,
362 const char* type,
363 const char* signal,
364 const otc_connection* connection);
365
375
384 void (*on_reconnected)(otc_session* session, void* user_data);
385
400 void* user_data,
401 const char* archive_id,
402 const char* name);
403
414 void* user_data,
415 const char* archive_id);
427 void (*on_error)(otc_session* session,
428 void* user_data,
429 const char* error_string,
430 enum otc_session_error_code error);
431
444 void (*on_mute_forced)(otc_session *session,
445 void *user_data,
446 otc_on_mute_forced_info *mute_info);
447
452
457 void* reserved;
458};
459
482OTC_DECL(otc_session*)
483otc_session_new(const char* apikey,
484 const char* session_id,
485 const struct otc_session_callbacks* callbacks);
486
515
527OTC_DECL(otc_status)
529 otc_session_settings* settings,
530 otc_bool suppress);
531
537OTC_DECL(otc_status)
539 otc_session_settings* settings,
540 const struct otc_custom_ice_config* custom_ice_config);
541
547OTC_DECL(otc_status)
549 const char* proxy_url);
550
556OTC_DECL(otc_status)
558 otc_bool ip_whitelist);
559
575OTC_DECL(otc_status)
577 otc_bool enable);
578
591OTC_DECL(otc_status)
593
597OTC_DECL(otc_status)
599
621OTC_DECL(otc_session*)
623 const char* session_id,
624 const struct otc_session_callbacks* callbacks,
625 otc_session_settings* settings);
626
633OTC_DECL(otc_status) otc_session_delete(otc_session* session);
634
647OTC_DECL(otc_status)
648otc_session_connect(otc_session* session, const char* token);
649
664OTC_DECL(otc_status) otc_session_disconnect(otc_session* session);
665
677OTC_DECL(otc_status)
679
691OTC_DECL(otc_status)
693
706OTC_DECL(otc_status)
708
721OTC_DECL(otc_status)
723
741OTC_DECL(otc_status)
743 const char* type,
744 const char* signal);
745
781OTC_DECL(otc_status)
783 const char** excluded_streams_ids,
784 const int excluded_streams_len);
785
811OTC_DECL(otc_status)
813
814
835OTC_DECL(otc_status)
837 const char *stream_id_to_mute);
838
858OTC_DECL(otc_status)
859otc_session_force_disconnect(const otc_session* session, const otc_connection* connection);
860
880OTC_DECL(otc_status)
882 const char* type,
883 const char* signal,
884 const otc_connection* connection);
885
905OTC_DECL(otc_status)
907 const char* type,
908 const char* signal,
909 struct otc_signal_options signal_options);
910
933OTC_DECL(otc_status)
935 otc_session* session,
936 const char* type,
937 const char* signal,
938 const otc_connection* connection,
939 struct otc_signal_options signal_options);
940
956OTC_DECL(otc_status)
958 const char* issue_description,
959 char** issue_id);
960
964OTC_DECL(char*) otc_session_get_id(const otc_session* session);
965
974OTC_DECL(otc_connection*)
976
987OTC_DECL(struct otc_session_capabilities)
989
999OTC_DECL(void*) otc_session_get_user_data(const otc_session* session);
1000
1052OTC_DECL(otc_status)
1054
1055OTC_END_DECL
1056
1057#endif // SESSION_H
int otc_bool
Definition base.h:167
int otc_status
Definition base.h:262
struct otc_connection otc_connection
Definition connection.h:19
OpenTok Publisher.
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)
Audio/Video stream.
otc_stream_video_type
Definition stream.h:24
struct otc_stream otc_stream
Definition stream.h:18
Definition session.h:135
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
Definition base.h:173
Definition session.h:189
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
Definition session.h:114
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
Definition session.h:160
otc_bool retry_after_reconnect
Definition session.h:173
OpenTok Subscriber.
struct otc_subscriber otc_subscriber
Definition subscriber.h:30