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 
101 };
102 
112  char** ice_url;
113  char** ice_user;
115  char** ice_credential;
123 };
124 
144 };
145 
168  void (*on_connected)(otc_session* session, void* user_data);
169 
177  void (*on_disconnected)(otc_session* session, void* user_data);
178 
189  void (*on_connection_created)(otc_session* session,
190  void* user_data,
191  const otc_connection* connection);
192 
203  void (*on_connection_dropped)(otc_session* session,
204  void* user_data,
205  const otc_connection* connection);
206 
218  void (*on_stream_received)(otc_session* session,
219  void* user_data,
220  const otc_stream* stream);
221 
231  void (*on_stream_dropped)(otc_session* session,
232  void* user_data,
233  const otc_stream* stream);
246  void (*on_stream_has_audio_changed)(otc_session* session,
247  void* user_data,
248  const otc_stream* stream,
249  otc_bool has_audio);
250 
261  void (*on_stream_has_video_changed)(otc_session* session,
262  void* user_data,
263  const otc_stream* stream,
264  otc_bool has_video);
265 
277  void (*on_stream_video_dimensions_changed)(otc_session* session,
278  void* user_data,
279  const otc_stream* stream,
280  int width,
281  int height);
282 
292  void (*on_stream_video_type_changed)(otc_session* session,
293  void* user_data,
294  const otc_stream* stream,
295  enum otc_stream_video_type type);
314  void (*on_signal_received)(otc_session* session,
315  void* user_data,
316  const char* type,
317  const char* signal,
318  const otc_connection* connection);
319 
328  void (*on_reconnection_started)(otc_session* session, void* user_data);
329 
338  void (*on_reconnected)(otc_session* session, void* user_data);
339 
353  void (*on_archive_started)(otc_session* session,
354  void* user_data,
355  const char* archive_id,
356  const char* name);
357 
367  void (*on_archive_stopped)(otc_session* session,
368  void* user_data,
369  const char* archive_id);
381  void (*on_error)(otc_session* session,
382  void* user_data,
383  const char* error_string,
384  enum otc_session_error_code error);
385 
389  void* user_data;
390 
395  void* reserved;
396 };
397 
416 OTC_DECL(otc_session*)
417 otc_session_new(const char* apikey,
418  const char* session_id,
419  const struct otc_session_callbacks* callbacks);
420 
443 
455 OTC_DECL(otc_status)
457  otc_session_settings* settings,
458  otc_bool suppress);
459 
465 OTC_DECL(otc_status)
467  otc_session_settings* settings,
468  const struct otc_custom_ice_config* custom_ice_config);
469 
475 OTC_DECL(otc_status)
477  const char* proxy_url);
478 
484 OTC_DECL(otc_status)
486  otc_bool ip_whitelist);
487 
491 OTC_DECL(otc_status)
493 
515 OTC_DECL(otc_session*)
516 otc_session_new_with_settings(const char* apikey,
517  const char* session_id,
518  const struct otc_session_callbacks* callbacks,
519  otc_session_settings* settings);
520 
526 OTC_DECL(otc_status) otc_session_delete(otc_session* session);
527 
540 OTC_DECL(otc_status)
541 otc_session_connect(otc_session* session, const char* token);
542 
552 OTC_DECL(otc_status) otc_session_disconnect(otc_session* session);
553 
565 OTC_DECL(otc_status)
566 otc_session_publish(otc_session* session, otc_publisher* publisher);
567 
579 OTC_DECL(otc_status)
580 otc_session_unpublish(otc_session* session, otc_publisher* publisher);
581 
594 OTC_DECL(otc_status)
595 otc_session_subscribe(otc_session* session, otc_subscriber* subscriber);
596 
609 OTC_DECL(otc_status)
610 otc_session_unsubscribe(otc_session* session, otc_subscriber* subscriber);
611 
629 OTC_DECL(otc_status)
631  const char* type,
632  const char* signal);
633 
653 OTC_DECL(otc_status)
655  const char* type,
656  const char* signal,
657  const otc_connection* connection);
658 
678 OTC_DECL(otc_status)
680  const char* type,
681  const char* signal,
682  struct otc_signal_options signal_options);
683 
706 OTC_DECL(otc_status)
708  otc_session* session,
709  const char* type,
710  const char* signal,
711  const otc_connection* connection,
712  struct otc_signal_options signal_options);
713 
729 OTC_DECL(otc_status)
730 otc_session_report_issue(struct otc_session* session,
731  const char* issue_description,
732  char** issue_id);
733 
737 OTC_DECL(char*) otc_session_get_id(const otc_session* session);
738 
747 OTC_DECL(otc_connection*)
749 
760 OTC_DECL(struct otc_session_capabilities)
762 
772 OTC_DECL(void*) otc_session_get_user_data(const otc_session* session);
773 
774 OTC_END_DECL
775 
776 #endif // SESSION_H
Definition: session.h:40
int otc_status
Definition: base.h:114
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:159
Definition: session.h:61
Definition: session.h:84
struct otc_subscriber otc_subscriber
Definition: subscriber.h:27
char ** ice_url
Definition: session.h:112
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:389
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:110
Audio/Video stream.
otc_status otc_session_disconnect(otc_session *session)
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:395
Definition: session.h:131
Definition: session.h:45
struct otc_stream otc_stream
Definition: stream.h:18
otc_bool force_turn
Definition: session.h:116
otc_status otc_session_settings_set_ip_whitelist(otc_session_settings *settings, otc_bool ip_whitelist)
Definition: session.h:98
Definition: session.h:70
Definition: session.h:63
otc_stream_video_type
Definition: stream.h:24
Definition: session.h:86
Definition: session.h:53
otc_session_settings * otc_session_settings_new()
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:100
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:143
otc_status otc_session_settings_set_connection_events_suppressed(otc_session_settings *settings, otc_bool suppress)
char ** ice_credential
Definition: session.h:115
otc_connection * otc_session_get_connection(const otc_session *session)
int num_ice_servers
Definition: session.h:111
char ** ice_user
Definition: session.h:113
otc_bool use_custom_turn_only
Definition: session.h:120
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)