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
19 
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 
194  void (*on_connection_created)(otc_session* session,
195  void* user_data,
196  const otc_connection* connection);
197 
208  void (*on_connection_dropped)(otc_session* session,
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);
251  void (*on_stream_has_audio_changed)(otc_session* session,
252  void* user_data,
253  const otc_stream* stream,
254  otc_bool has_audio);
255 
266  void (*on_stream_has_video_changed)(otc_session* session,
267  void* user_data,
268  const otc_stream* stream,
269  otc_bool has_video);
270 
282  void (*on_stream_video_dimensions_changed)(otc_session* session,
283  void* user_data,
284  const otc_stream* stream,
285  int width,
286  int height);
287 
297  void (*on_stream_video_type_changed)(otc_session* session,
298  void* user_data,
299  const otc_stream* stream,
300  enum otc_stream_video_type type);
319  void (*on_signal_received)(otc_session* session,
320  void* user_data,
321  const char* type,
322  const char* signal,
323  const otc_connection* connection);
324 
333  void (*on_reconnection_started)(otc_session* session, void* user_data);
334 
343  void (*on_reconnected)(otc_session* session, void* user_data);
344 
358  void (*on_archive_started)(otc_session* session,
359  void* user_data,
360  const char* archive_id,
361  const char* name);
362 
372  void (*on_archive_stopped)(otc_session* session,
373  void* user_data,
374  const char* archive_id);
386  void (*on_error)(otc_session* session,
387  void* user_data,
388  const char* error_string,
389  enum otc_session_error_code error);
390 
403  void (*on_mute_forced)(otc_session *session,
404  void *user_data,
405  otc_on_mute_forced_info *mute_info);
406 
410  void* user_data;
411 
416  void* reserved;
417 };
418 
437 OTC_DECL(otc_session*)
438 otc_session_new(const char* apikey,
439  const char* session_id,
440  const struct otc_session_callbacks* callbacks);
441 
464 
476 OTC_DECL(otc_status)
478  otc_session_settings* settings,
479  otc_bool suppress);
480 
486 OTC_DECL(otc_status)
488  otc_session_settings* settings,
489  const struct otc_custom_ice_config* custom_ice_config);
490 
496 OTC_DECL(otc_status)
498  const char* proxy_url);
499 
505 OTC_DECL(otc_status)
507  otc_bool ip_whitelist);
508 
512 OTC_DECL(otc_status)
514 
536 OTC_DECL(otc_session*)
537 otc_session_new_with_settings(const char* apikey,
538  const char* session_id,
539  const struct otc_session_callbacks* callbacks,
540  otc_session_settings* settings);
541 
547 OTC_DECL(otc_status) otc_session_delete(otc_session* session);
548 
561 OTC_DECL(otc_status)
562 otc_session_connect(otc_session* session, const char* token);
563 
573 OTC_DECL(otc_status) otc_session_disconnect(otc_session* session);
574 
586 OTC_DECL(otc_status)
587 otc_session_publish(otc_session* session, otc_publisher* publisher);
588 
600 OTC_DECL(otc_status)
601 otc_session_unpublish(otc_session* session, otc_publisher* publisher);
602 
615 OTC_DECL(otc_status)
616 otc_session_subscribe(otc_session* session, otc_subscriber* subscriber);
617 
630 OTC_DECL(otc_status)
631 otc_session_unsubscribe(otc_session* session, otc_subscriber* subscriber);
632 
650 OTC_DECL(otc_status)
652  const char* type,
653  const char* signal);
654 
690 OTC_DECL(otc_status)
692  const char** excluded_streams_ids,
693  const int excluded_streams_len);
694 
720 OTC_DECL(otc_status)
722 
723 
744 OTC_DECL(otc_status)
746  const char *stream_id_to_mute);
747 
748 
768 OTC_DECL(otc_status)
770  const char* type,
771  const char* signal,
772  const otc_connection* connection);
773 
793 OTC_DECL(otc_status)
795  const char* type,
796  const char* signal,
797  struct otc_signal_options signal_options);
798 
821 OTC_DECL(otc_status)
823  otc_session* session,
824  const char* type,
825  const char* signal,
826  const otc_connection* connection,
827  struct otc_signal_options signal_options);
828 
844 OTC_DECL(otc_status)
845 otc_session_report_issue(struct otc_session* session,
846  const char* issue_description,
847  char** issue_id);
848 
852 OTC_DECL(char*) otc_session_get_id(const otc_session* session);
853 
862 OTC_DECL(otc_connection*)
864 
875 OTC_DECL(struct otc_session_capabilities)
877 
887 OTC_DECL(void*) otc_session_get_user_data(const otc_session* session);
888 
889 OTC_END_DECL
890 
891 #endif // SESSION_H
Definition: session.h:40
int otc_status
Definition: base.h:133
struct otc_publisher otc_publisher
Definition: publisher.h:26
Definition: session.h:81
char * otc_session_get_id(const otc_session *session)
otc_status otc_session_settings_set_custom_ice_config(otc_session_settings *settings, const struct otc_custom_ice_config *custom_ice_config)
Definition: session.h:164
Definition: session.h:61
Definition: session.h:84
struct otc_subscriber otc_subscriber
Definition: subscriber.h:28
char ** ice_url
Definition: session.h:116
otc_status otc_session_settings_set_proxy_url(otc_session_settings *settings, const char *proxy_url)
OpenTok Subscriber.
otc_session_error_code
Definition: session.h:37
void * user_data
Definition: session.h:410
otc_status otc_session_send_signal_to_connection(otc_session *session, const char *type, const char *signal, const otc_connection *connection)
Definition: session.h:43
Definition: session.h:57
Definition: session.h:65
Definition: session.h:114
Audio/Video stream.
otc_status otc_session_disconnect(otc_session *session)
otc_status otc_session_force_mute_all(otc_session *session, const char **excluded_streams_ids, const int excluded_streams_len)
otc_status otc_session_delete(otc_session *session)
struct otc_session otc_session
Definition: session.h:21
otc_status otc_session_connect(otc_session *session, const char *token)
otc_session * otc_session_new_with_settings(const char *apikey, const char *session_id, const struct otc_session_callbacks *callbacks, otc_session_settings *settings)
Definition: session.h:78
otc_status otc_session_settings_delete(otc_session_settings *settings)
Definition: session.h:74
Definition: session.h:50
void * reserved
Definition: session.h:416
Definition: session.h:135
Definition: session.h:45
struct otc_stream otc_stream
Definition: stream.h:18
otc_bool force_turn
Definition: session.h:120
otc_status otc_session_settings_set_ip_whitelist(otc_session_settings *settings, otc_bool ip_whitelist)
Definition: session.h:98
Definition: base.h:113
Definition: session.h:70
Definition: session.h:63
otc_status otc_session_disable_force_mute(otc_session *session)
otc_stream_video_type
Definition: stream.h:24
Definition: session.h:86
Definition: session.h:53
otc_session_settings * otc_session_settings_new()
otc_status otc_session_force_mute_stream(const otc_session *session, const char *stream_id_to_mute)
struct otc_session_capabilities otc_session_get_capabilities(const otc_session *session)
Definition: session.h:67
struct otc_connection otc_connection
Definition: connection.h:19
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_subscribe(otc_session *session, otc_subscriber *subscriber)
struct otc_session_settings otc_session_settings
Definition: session.h:31
int otc_bool
Definition: base.h:107
Definition: session.h:38
OpenTok Publisher.
otc_status otc_session_send_signal(otc_session *session, const char *type, const char *signal)
otc_session * otc_session_new(const char *apikey, const char *session_id, const struct otc_session_callbacks *callbacks)
otc_status otc_session_unsubscribe(otc_session *session, otc_subscriber *subscriber)
otc_bool retry_after_reconnect
Definition: session.h:148
otc_status otc_session_settings_set_connection_events_suppressed(otc_session_settings *settings, otc_bool suppress)
char ** ice_credential
Definition: session.h:119
otc_connection * otc_session_get_connection(const otc_session *session)
int num_ice_servers
Definition: session.h:115
char ** ice_user
Definition: session.h:117
otc_bool use_custom_turn_only
Definition: session.h:124
otc_bool force_mute
Definition: session.h:101
otc_bool publish
Definition: session.h:99
otc_status otc_session_publish(otc_session *session, otc_publisher *publisher)
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_report_issue(struct otc_session *session, const char *issue_description, char **issue_id)
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)