OpenTok C SDK
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 
16 OTC_BEGIN_DECL
17 
18 #ifdef DOXYGEN_OTC_SESSION_TYPEDEF
21 typedef struct otc_session otc_session;
22 #endif
23 
24 #ifndef OTC_SESSION_FWD_DECL
25 #define OTC_SESSION_FWD_DECL
26 typedef struct otc_session otc_session;
27 #endif
28 
32 
39  1004,
41  1026,
44  1022,
46  1006,
48  1027,
51  1023,
54  1021,
58  1015,
62  2000,
64  1005,
66  1461,
68  1010,
71  1503,
73  1011,
75  1113,
79  1413,
82  1414,
87  1112,
91  2001,
92 };
93 
105 };
106 
116  char** ice_url;
117  char** ice_user;
119  char** ice_credential;
127 };
128 
149 };
150 
173  void (*on_connected)(otc_session* session, void* user_data);
174 
182  void (*on_disconnected)(otc_session* session, void* user_data);
183 
195  void* user_data,
196  const otc_connection* connection);
197 
209  void* user_data,
210  const otc_connection* connection);
211 
223  void (*on_stream_received)(otc_session* session,
224  void* user_data,
225  const otc_stream* stream);
226 
236  void (*on_stream_dropped)(otc_session* session,
237  void* user_data,
238  const otc_stream* stream);
252  void* user_data,
253  const otc_stream* stream,
254  otc_bool has_audio);
255 
267  void* user_data,
268  const otc_stream* stream,
269  otc_bool has_video);
285  void* user_data,
286  const otc_stream* stream,
287  otc_bool has_captions);
288 
301  void* user_data,
302  const otc_stream* stream,
303  int width,
304  int height);
305 
316  void* user_data,
317  const otc_stream* stream,
318  enum otc_stream_video_type type);
337  void (*on_signal_received)(otc_session* session,
338  void* user_data,
339  const char* type,
340  const char* signal,
341  const otc_connection* connection);
342 
352 
361  void (*on_reconnected)(otc_session* session, void* user_data);
362 
376  void (*on_archive_started)(otc_session* session,
377  void* user_data,
378  const char* archive_id,
379  const char* name);
380 
390  void (*on_archive_stopped)(otc_session* session,
391  void* user_data,
392  const char* archive_id);
404  void (*on_error)(otc_session* session,
405  void* user_data,
406  const char* error_string,
407  enum otc_session_error_code error);
408 
421  void (*on_mute_forced)(otc_session *session,
422  void *user_data,
423  otc_on_mute_forced_info *mute_info);
424 
428  void* user_data;
429 
434  void* reserved;
435 };
436 
455 OTC_DECL(otc_session*)
456 otc_session_new(const char* apikey,
457  const char* session_id,
458  const struct otc_session_callbacks* callbacks);
459 
482 
494 OTC_DECL(otc_status)
496  otc_session_settings* settings,
497  otc_bool suppress);
498 
504 OTC_DECL(otc_status)
506  otc_session_settings* settings,
507  const struct otc_custom_ice_config* custom_ice_config);
508 
514 OTC_DECL(otc_status)
516  const char* proxy_url);
517 
523 OTC_DECL(otc_status)
525  otc_bool ip_whitelist);
526 
530 OTC_DECL(otc_status)
532 
554 OTC_DECL(otc_session*)
555 otc_session_new_with_settings(const char* apikey,
556  const char* session_id,
557  const struct otc_session_callbacks* callbacks,
558  otc_session_settings* settings);
559 
566 
579 OTC_DECL(otc_status)
580 otc_session_connect(otc_session* session, const char* token);
581 
592 
604 OTC_DECL(otc_status)
606 
618 OTC_DECL(otc_status)
620 
633 OTC_DECL(otc_status)
635 
648 OTC_DECL(otc_status)
650 
668 OTC_DECL(otc_status)
670  const char* type,
671  const char* signal);
672 
708 OTC_DECL(otc_status)
710  const char** excluded_streams_ids,
711  const int excluded_streams_len);
712 
738 OTC_DECL(otc_status)
740 
741 
762 OTC_DECL(otc_status)
764  const char *stream_id_to_mute);
765 
766 
786 OTC_DECL(otc_status)
788  const char* type,
789  const char* signal,
790  const otc_connection* connection);
791 
811 OTC_DECL(otc_status)
813  const char* type,
814  const char* signal,
815  struct otc_signal_options signal_options);
816 
839 OTC_DECL(otc_status)
841  otc_session* session,
842  const char* type,
843  const char* signal,
844  const otc_connection* connection,
845  struct otc_signal_options signal_options);
846 
862 OTC_DECL(otc_status)
864  const char* issue_description,
865  char** issue_id);
866 
870 OTC_DECL(char*) otc_session_get_id(const otc_session* session);
871 
880 OTC_DECL(otc_connection*)
882 
893 OTC_DECL(struct otc_session_capabilities)
895 
905 OTC_DECL(void*) otc_session_get_user_data(const otc_session* session);
906 
907 OTC_END_DECL
908 
909 #endif // SESSION_H
int otc_bool
Definition: base.h:127
int otc_status
Definition: base.h:153
struct otc_connection otc_connection
Definition: connection.h:19
OpenTok Publisher.
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)
Audio/Video stream.
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: base.h:133
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
Definition: session.h:98
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
OpenTok Subscriber.
struct otc_subscriber otc_subscriber
Definition: subscriber.h:28