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 
148 };
149 
172  void (*on_connected)(otc_session* session, void* user_data);
173 
181  void (*on_disconnected)(otc_session* session, void* user_data);
182 
193  void (*on_connection_created)(otc_session* session,
194  void* user_data,
195  const otc_connection* connection);
196 
207  void (*on_connection_dropped)(otc_session* session,
208  void* user_data,
209  const otc_connection* connection);
210 
222  void (*on_stream_received)(otc_session* session,
223  void* user_data,
224  const otc_stream* stream);
225 
235  void (*on_stream_dropped)(otc_session* session,
236  void* user_data,
237  const otc_stream* stream);
250  void (*on_stream_has_audio_changed)(otc_session* session,
251  void* user_data,
252  const otc_stream* stream,
253  otc_bool has_audio);
254 
265  void (*on_stream_has_video_changed)(otc_session* session,
266  void* user_data,
267  const otc_stream* stream,
268  otc_bool has_video);
269 
281  void (*on_stream_video_dimensions_changed)(otc_session* session,
282  void* user_data,
283  const otc_stream* stream,
284  int width,
285  int height);
286 
296  void (*on_stream_video_type_changed)(otc_session* session,
297  void* user_data,
298  const otc_stream* stream,
299  enum otc_stream_video_type type);
318  void (*on_signal_received)(otc_session* session,
319  void* user_data,
320  const char* type,
321  const char* signal,
322  const otc_connection* connection);
323 
332  void (*on_reconnection_started)(otc_session* session, void* user_data);
333 
342  void (*on_reconnected)(otc_session* session, void* user_data);
343 
357  void (*on_archive_started)(otc_session* session,
358  void* user_data,
359  const char* archive_id,
360  const char* name);
361 
371  void (*on_archive_stopped)(otc_session* session,
372  void* user_data,
373  const char* archive_id);
385  void (*on_error)(otc_session* session,
386  void* user_data,
387  const char* error_string,
388  enum otc_session_error_code error);
389 
402  void (*on_mute_forced)(otc_session *session,
403  void *user_data,
404  otc_on_mute_forced_info *mute_info);
405 
409  void* user_data;
410 
415  void* reserved;
416 };
417 
436 OTC_DECL(otc_session*)
437 otc_session_new(const char* apikey,
438  const char* session_id,
439  const struct otc_session_callbacks* callbacks);
440 
463 
475 OTC_DECL(otc_status)
477  otc_session_settings* settings,
478  otc_bool suppress);
479 
485 OTC_DECL(otc_status)
487  otc_session_settings* settings,
488  const struct otc_custom_ice_config* custom_ice_config);
489 
495 OTC_DECL(otc_status)
497  const char* proxy_url);
498 
504 OTC_DECL(otc_status)
506  otc_bool ip_whitelist);
507 
511 OTC_DECL(otc_status)
513 
535 OTC_DECL(otc_session*)
536 otc_session_new_with_settings(const char* apikey,
537  const char* session_id,
538  const struct otc_session_callbacks* callbacks,
539  otc_session_settings* settings);
540 
546 OTC_DECL(otc_status) otc_session_delete(otc_session* session);
547 
560 OTC_DECL(otc_status)
561 otc_session_connect(otc_session* session, const char* token);
562 
572 OTC_DECL(otc_status) otc_session_disconnect(otc_session* session);
573 
585 OTC_DECL(otc_status)
586 otc_session_publish(otc_session* session, otc_publisher* publisher);
587 
599 OTC_DECL(otc_status)
600 otc_session_unpublish(otc_session* session, otc_publisher* publisher);
601 
614 OTC_DECL(otc_status)
615 otc_session_subscribe(otc_session* session, otc_subscriber* subscriber);
616 
629 OTC_DECL(otc_status)
630 otc_session_unsubscribe(otc_session* session, otc_subscriber* subscriber);
631 
649 OTC_DECL(otc_status)
651  const char* type,
652  const char* signal);
653 
689 OTC_DECL(otc_status)
691  const char** excluded_streams_ids,
692  const int excluded_streams_len);
693 
719 OTC_DECL(otc_status)
721 
722 
743 OTC_DECL(otc_status)
745  const char *stream_id_to_mute);
746 
747 
767 OTC_DECL(otc_status)
769  const char* type,
770  const char* signal,
771  const otc_connection* connection);
772 
792 OTC_DECL(otc_status)
794  const char* type,
795  const char* signal,
796  struct otc_signal_options signal_options);
797 
820 OTC_DECL(otc_status)
822  otc_session* session,
823  const char* type,
824  const char* signal,
825  const otc_connection* connection,
826  struct otc_signal_options signal_options);
827 
843 OTC_DECL(otc_status)
844 otc_session_report_issue(struct otc_session* session,
845  const char* issue_description,
846  char** issue_id);
847 
851 OTC_DECL(char*) otc_session_get_id(const otc_session* session);
852 
861 OTC_DECL(otc_connection*)
863 
874 OTC_DECL(struct otc_session_capabilities)
876 
886 OTC_DECL(void*) otc_session_get_user_data(const otc_session* session);
887 
888 OTC_END_DECL
889 
890 #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:163
Definition: session.h:61
Definition: session.h:84
struct otc_subscriber otc_subscriber
Definition: subscriber.h:27
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:409
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:415
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:147
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)