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 
59 };
60 
68 };
69 
79  char** ice_url;
80  char** ice_user;
81  char** ice_credential;
89 };
90 
109 };
110 
133  void (*on_connected)(otc_session *session, void *user_data);
134 
142  void (*on_disconnected)(otc_session *session, void *user_data);
143 
154  void (*on_connection_created)(otc_session *session,
155  void *user_data,
156  const otc_connection *connection);
157 
168  void (*on_connection_dropped)(otc_session *session,
169  void *user_data,
170  const otc_connection *connection);
171 
183  void (*on_stream_received)(otc_session *session,
184  void *user_data,
185  const otc_stream *stream);
186 
196  void (*on_stream_dropped)(otc_session *session,
197  void *user_data,
198  const otc_stream *stream);
210  void (*on_stream_has_audio_changed)(otc_session *session,
211  void *user_data,
212  const otc_stream *stream,
213  otc_bool has_audio);
214 
224  void (*on_stream_has_video_changed)(otc_session *session,
225  void *user_data,
226  const otc_stream *stream,
227  otc_bool has_video);
228 
240  void (*on_stream_video_dimensions_changed)(otc_session *session,
241  void *user_data,
242  const otc_stream *stream,
243  int width,
244  int height);
245 
255  void (*on_stream_video_type_changed)(otc_session *session,
256  void *user_data,
257  const otc_stream *stream,
258  enum otc_stream_video_type type);
277  void (*on_signal_received)(otc_session *session,
278  void *user_data,
279  const char *type,
280  const char *signal,
281  const otc_connection *connection);
282 
291  void (*on_reconnection_started)(otc_session *session, void *user_data);
292 
301  void (*on_reconnected)(otc_session *session, void *user_data);
302 
316  void (*on_archive_started)(otc_session *session,
317  void *user_data,
318  const char* archive_id,
319  const char* name);
320 
330  void (*on_archive_stopped)(otc_session *session,
331  void *user_data,
332  const char* archive_id);
344  void (*on_error)(otc_session *session,
345  void *user_data,
346  const char* error_string,
347  enum otc_session_error_code error);
348 
352  void *user_data;
353 
358  void *reserved;
359 };
360 
378 OTC_DECL(otc_session *) otc_session_new(const char *apikey,
379  const char *session_id,
380  const struct otc_session_callbacks *callbacks);
381 
404 
416  otc_bool suppress);
417 
424  const struct otc_custom_ice_config* custom_ice_config);
425 
431  const char* proxy_url);
432 
439  otc_bool ip_whitelist);
440 
445 
466 OTC_DECL(otc_session *) otc_session_new_with_settings(const char *apikey,
467  const char *session_id,
468  const struct otc_session_callbacks *callbacks,
469  otc_session_settings *settings);
470 
476 OTC_DECL(otc_status) otc_session_delete(otc_session *session);
477 
490 OTC_DECL(otc_status) otc_session_connect(otc_session *session,
491  const char *token);
492 
502 OTC_DECL(otc_status) otc_session_disconnect(otc_session *session);
503 
515 OTC_DECL(otc_status) otc_session_publish(otc_session *session,
516  otc_publisher *publisher);
517 
529 OTC_DECL(otc_status) otc_session_unpublish(otc_session *session,
530  otc_publisher *publisher);
531 
544 OTC_DECL(otc_status) otc_session_subscribe(otc_session *session,
545  otc_subscriber *subscriber);
546 
560  otc_subscriber *subscriber);
561 
580  const char *type,
581  const char *signal);
582 
603  const char *type,
604  const char *signal,
605  const otc_connection *connection);
606 
626 OTC_DECL(otc_status)
628  const char *type,
629  const char *signal,
630  struct otc_signal_options signal_options);
631 
654 OTC_DECL(otc_status)
656  const char *type,
657  const char *signal,
658  const otc_connection *connection,
659  struct otc_signal_options signal_options);
660 
676 OTC_DECL(otc_status) otc_session_report_issue(struct otc_session* session,
677  const char *issue_description,
678  char **issue_id);
679 
683 OTC_DECL(char *) otc_session_get_id(const otc_session *session);
684 
693 OTC_DECL(otc_connection *) otc_session_get_connection(const otc_session *session);
694 
705 OTC_DECL(struct otc_session_capabilities) otc_session_get_capabilities(const otc_session *session);
706 
716 OTC_DECL(void *) otc_session_get_user_data(const otc_session *session);
717 
718 OTC_END_DECL
719 
720 #endif // SESSION_H
Definition: session.h:39
int otc_status
Definition: base.h:114
struct otc_publisher otc_publisher
Definition: publisher.h:25
Definition: session.h:55
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:124
Definition: session.h:47
Definition: session.h:56
struct otc_subscriber otc_subscriber
Definition: subscriber.h:26
char ** ice_url
Definition: session.h:79
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:352
otc_status otc_session_send_signal_to_connection(otc_session *session, const char *type, const char *signal, const otc_connection *connection)
Definition: session.h:40
Definition: session.h:46
Definition: session.h:49
Definition: session.h:77
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:54
otc_status otc_session_settings_delete(otc_session_settings *settings)
Definition: session.h:53
Definition: session.h:43
void * reserved
Definition: session.h:358
Definition: session.h:97
Definition: session.h:41
struct otc_stream otc_stream
Definition: stream.h:18
otc_bool force_turn
Definition: session.h:82
otc_status otc_session_settings_set_ip_whitelist(otc_session_settings *settings, otc_bool ip_whitelist)
Definition: session.h:65
Definition: session.h:51
Definition: session.h:48
otc_stream_video_type
Definition: stream.h:24
Definition: session.h:57
Definition: session.h:44
otc_session_settings * otc_session_settings_new()
struct otc_session_capabilities otc_session_get_capabilities(const otc_session *session)
Definition: session.h:50
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:108
otc_status otc_session_settings_set_connection_events_suppressed(otc_session_settings *settings, otc_bool suppress)
char ** ice_credential
Definition: session.h:81
otc_connection * otc_session_get_connection(const otc_session *session)
int num_ice_servers
Definition: session.h:78
char ** ice_user
Definition: session.h:80
otc_bool use_custom_turn_only
Definition: session.h:86
otc_bool publish
Definition: session.h:66
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)