45 void janus_ice_init(gboolean ice_lite, gboolean ice_tcp, gboolean full_trickle, gboolean ipv6, uint16_t rtp_min_port, uint16_t rtp_max_port);
66 int janus_ice_set_turn_server(gchar *turn_server, uint16_t turn_port, gchar *turn_type, gchar *turn_user, gchar *turn_pwd);
192 #define JANUS_HANDLE_WEBRTC_PROCESSING_OFFER (1 << 0)
193 #define JANUS_HANDLE_WEBRTC_START (1 << 1)
194 #define JANUS_HANDLE_WEBRTC_READY (1 << 2)
195 #define JANUS_HANDLE_WEBRTC_STOP (1 << 3)
196 #define JANUS_HANDLE_WEBRTC_ALERT (1 << 4)
197 #define JANUS_HANDLE_WEBRTC_NEGOTIATED (1 << 5)
198 #define JANUS_HANDLE_WEBRTC_TRICKLE (1 << 7)
199 #define JANUS_HANDLE_WEBRTC_ALL_TRICKLES (1 << 8)
200 #define JANUS_HANDLE_WEBRTC_TRICKLE_SYNCED (1 << 9)
201 #define JANUS_HANDLE_WEBRTC_DATA_CHANNELS (1 << 10)
202 #define JANUS_HANDLE_WEBRTC_CLEANING (1 << 11)
203 #define JANUS_HANDLE_WEBRTC_GOT_OFFER (1 << 14)
204 #define JANUS_HANDLE_WEBRTC_GOT_ANSWER (1 << 15)
205 #define JANUS_HANDLE_WEBRTC_HAS_AGENT (1 << 16)
206 #define JANUS_HANDLE_WEBRTC_ICE_RESTART (1 << 17)
207 #define JANUS_HANDLE_WEBRTC_RESEND_TRICKLES (1 << 18)
208 #define JANUS_HANDLE_WEBRTC_RFC4588_RTX (1 << 19)
209 #define JANUS_HANDLE_WEBRTC_NEW_DATACHAN_SDP (1 << 20)
428 #define LAST_SEQS_MAX_LEN 160
guint retransmit_recent_cnt
Number of retransmitted packets since last log message.
Definition: ice.h:486
GSource * rtcp_source
Definition: ice.h:300
guint32 last_ts
Last sent RTP timestamp.
Definition: ice.h:474
GHashTable * media
GLib hash table of media (m-line indexes are the keys)
Definition: ice.h:410
GHashTable * retransmit_seqs
HashTable of retransmittable sequence numbers, in case we receive NACKs.
Definition: ice.h:480
int janus_ice_set_turn_rest_api(gchar *api_server, gchar *api_key, gchar *api_method)
Method to force Janus to contact a TURN REST API server to get a TURN service to use when gathering c...
Definition: ice.c:1059
gboolean legacy_rid
Whether we should use the legacy simulcast syntax (a=simulcast:recv rid=..) or the proper one (a=simu...
Definition: ice.h:450
gchar * ruser
The ICE username for this stream.
Definition: ice.h:406
gint last_event_stats
Count of how many seconds passed since the last stats passed to event handlers.
Definition: ice.h:330
gboolean recv
Definition: ice.h:464
IP address related utility functions (headers)
gboolean janus_ice_is_full_trickle_enabled(void)
Method to check whether full-trickle support is enabled or not.
Definition: ice.c:92
SCTP processing for data channels (headers)
janus_refcount ref
Reference counter for this instance.
Definition: ice.h:504
void janus_set_slowlink_threshold(uint packets)
Method to modify the slowlink-threshold property (i.e., the number of lost packets per seconds that s...
Definition: ice.c:420
janus_rtcp_context * rtcp_ctx[3]
RTCP context(s) for the medium (may be simulcasting)
Definition: ice.h:466
void * app
Opaque application (plugin) pointer.
Definition: ice.h:286
guint16 rtx_seq_number
Current sequence number for the RFC4588 rtx SSRC session.
Definition: ice.h:482
gint64 ice_connected
Monotonic time of when ICE has successfully connected.
Definition: ice.h:358
guint64 handle_id
Handle identifier, guaranteed to be non-zero.
Definition: ice.h:280
guint32 transport_wide_cc_last_feedback_seq_num
Last transport wide seq num sent on feedback.
Definition: ice.h:390
void janus_trickle_destroy(janus_trickle *trickle)
Helper method to destroy a janus_trickle instance.
Definition: ice.c:783
gint janus_handle_attach_plugin(void *core_session, janus_handle *handle, janus_plugin *plugin)
Method to attach a Janus handle to a plugin.
Definition: ice.c:1146
gint cdone
Number of gathered candidates.
Definition: ice.h:292
Reference counter mechanism.
char * opaque_id
Opaque identifier, e.g., to provide inter-handle relationships to external tools. ...
Definition: ice.h:282
struct janus_seq_info * prev
Definition: ice.h:264
gint last_srtp_summary
Definition: ice.h:328
gsize janus_flags
Janus flags container.
Definition: utils.h:86
struct json_t json_t
Definition: plugin.h:225
janus_mutex mutex
Mutex to lock/unlock the ICE session.
Definition: ice.h:336
void janus_seq_list_free(janus_seq_info **head)
Definition: ice.c:554
uint16_t janus_ice_get_stun_port(void)
Method to get the STUN server port.
Definition: ice.c:49
GSource * stats_source
Definition: ice.h:300
json_t * candidate
JSON object of the trickle candidate(s)
Definition: ice.h:522
gboolean janus_ice_is_ice_lite_enabled(void)
Method to check whether ICE Lite mode is enabled or not (still WIP)
Definition: ice.c:80
int janus_ice_set_stun_server(gchar *stun_server, uint16_t stun_port)
Method to force Janus to use a STUN server when gathering candidates.
Definition: ice.c:968
struct janus_seq_info janus_seq_info
A helper struct for determining when to send NACKs.
gchar * local_sdp
SDP generated locally (just for debugging purposes)
Definition: ice.h:316
guint32 ssrc_peer_rtx[3]
Retransmissions SSRC(s) of the peer for this medium (may be simulcasting)
Definition: ice.h:446
guint32 ssrc_peer[3]
SSRC(s) of the peer for this medium (may be simulcasting)
Definition: ice.h:444
void janus_set_max_nack_queue(uint mnq)
Method to modify the max NACK value (i.e., the number of packets per handle to store for retransmissi...
Definition: ice.c:483
gchar * rpass
The ICE password for this stream.
Definition: ice.h:408
gchar * selected_pair
String representation of the selected pair as notified by libnice (foundations)
Definition: ice.h:366
janus_media_type type
Type of this medium.
Definition: ice.h:434
GHashTable * rtx_payload_types
Mapping of rtx payload types to actual media-related packet types.
Definition: ice.h:456
guint32 ssrc_peer_temp
Definition: ice.h:444
guint32 ssrc
SSRC of the server for this medium.
Definition: ice.h:440
char * janus_ice_get_turn_rest_api(void)
Method to get the specified TURN REST API backend, if any.
Definition: ice.c:69
janus_handle * janus_handle_create(void *core_session, const char *opaque_id)
Method to create a new Janus handle.
Definition: ice.c:1114
janus_handle_webrtc_medium * janus_handle_webrtc_medium_create(janus_handle *handle, janus_media_type type)
Method to quickly create a medium to be added to a handle PeerConnection.
Definition: ice.c:1485
void janus_handle_candidates_to_sdp(janus_handle *handle, janus_sdp_mline *mline, guint stream_id, guint component_id)
Method to add local candidates to a janus_sdp SDP object representation.
Definition: ice.c:2911
gboolean noerrorlog
Helper flag to avoid flooding the console with the same error all over again.
Definition: ice.h:419
GAsyncQueue * queued_packets
Queue of events in the loop and outgoing packets to send.
Definition: ice.h:324
gint64 first_ntp_ts[3]
First received NTP timestamp.
Definition: ice.h:470
gint64 agent_created
Monotonic time of when the ICE agent has been created.
Definition: ice.h:304
void janus_handle_setup_remote_candidates(janus_handle *handle, guint stream_id, guint component_id)
Method to handle remote candidates and start the connectivity checks.
Definition: ice.c:2943
GMutex janus_mutex
Janus mutex implementation.
Definition: mutex.h:61
SDP m-line representation.
Definition: sdp-utils.h:130
void janus_handle_resend_trickles(janus_handle *handle)
Method to resend all the existing candidates via trickle (e.g., after an ICE restart) ...
Definition: ice.c:3239
Plugin-Core communication (implementation)
gboolean process_started
Whether the setup of remote candidates for this component has started or not.
Definition: ice.h:368
void janus_ice_set_event_stats_period(int period)
Method to modify the event handler statistics period (i.e., the number of seconds that should pass be...
Definition: ice.c:287
guint32 ssrc_peer_rtx_orig[3]
Definition: ice.h:446
void janus_enable_opaqueid_in_api(void)
Method to enable opaque ID in Janus API responses/events.
Definition: ice.c:106
janus_rtp_switching_context rtp_ctx[3]
RTP switching context(s) in case of renegotiations (audio+video and/or simulcast) ...
Definition: ice.h:452
uint janus_get_no_media_timer(void)
Method to get the current no-media event timer (see above)
Definition: ice.c:412
gboolean janus_plugin_session_is_alive(janus_plugin_session *plugin_session)
Quick helper method to check if a plugin session associated with a Janus handle is still valid...
Definition: ice.c:582
gboolean janus_ice_is_ignored(const char *ip)
Method to check whether an interface/IP is currently in the ignore list for ICE (that is...
Definition: ice.c:267
GSList * remote_candidates
GLib list of remote candidates for this component (summary)
Definition: ice.h:364
gboolean janus_ice_is_ipv6_enabled(void)
Method to check whether IPv6 candidates are enabled/supported or not (still WIP)
Definition: ice.c:98
Instance of a text2pcap recorder.
Definition: text2pcap.h:49
volatile gint destroyed
Atomic flag to check if this instance has been destroyed.
Definition: ice.h:340
guint16 seq
Definition: ice.h:261
void janus_set_rfc4588_enabled(gboolean enabled)
Method to enable or disable the RFC4588 support negotiation.
Definition: ice.c:450
janus_refcount ref
Reference counter for this instance.
Definition: ice.h:342
void janus_ice_init(gboolean ice_lite, gboolean ice_tcp, gboolean full_trickle, gboolean ipv6, uint16_t rtp_min_port, uint16_t rtp_max_port)
ICE stuff initialization.
Definition: ice.c:796
Definition: refcount.h:78
GHashTable * media_bytype
GLib hash table of media (media types are the keys)
Definition: ice.h:417
volatile gint closepc
Whether a close_pc was requested recently on the PeerConnection.
Definition: ice.h:338
guint nack_sent_recent_cnt
Number of NACKs sent since last log message.
Definition: ice.h:490
int janus_handle_setup_local(janus_handle *handle, gboolean offer, gboolean trickle)
Method to locally set up the ICE candidates (initialization and gathering)
Definition: ice.c:2995
janus_text2pcap * text2pcap
In case this session must be saved to text2pcap, the instance to dump packets to. ...
Definition: ice.h:334
int mindex
Index of this medium in the media list.
Definition: ice.h:436
janus_mutex mutex
Mutex to lock/unlock this medium.
Definition: ice.h:500
Helper to handle pending trickle candidates (e.g., when we're still waiting for an offer) ...
Definition: ice.h:514
janus_handle_webrtc * pc
WebRTC PeerConnection this m-line belongs to.
Definition: ice.h:432
struct janus_seq_info * next
Definition: ice.h:263
gboolean do_transport_wide_cc
Whether we do transport wide cc.
Definition: ice.h:384
gboolean janus_ice_is_ice_tcp_enabled(void)
Method to check whether ICE-TCP support is enabled/supported or not (still WIP)
Definition: ice.c:86
GSList * candidates
GLib list of libnice remote candidates for this component.
Definition: ice.h:360
const gchar * janus_get_ice_state_name(gint state)
Helper method to get a string representation of a libnice ICE state.
Definition: ice.c:1086
void janus_ice_ignore_interface(const char *ip)
Method to add an interface/IP to the ignore list for ICE (that is, don't gather candidates) ...
Definition: ice.c:256
gchar * rtp_profile
RTP profile set by caller (so that we can match it)
Definition: ice.h:314
char * mid
Media ID.
Definition: ice.h:438
janus_media_type
Janus media types.
Definition: ice.h:213
GSource * rtp_source
GLib sources for outgoing traffic, recurring RTCP, and stats (and optionally TWCC) ...
Definition: ice.h:300
void janus_ice_relay_rtp(janus_handle *handle, int mindex, gboolean video, char *buf, int len)
Core RTP callback, called when a plugin has an RTP packet to send to a peer.
Definition: ice.c:3974
janus_flags webrtc_flags
Mask of WebRTC-related flags for this handle.
Definition: ice.h:290
guint32 ssrc_peer_new[3]
Definition: ice.h:444
janus_seq_info * last_seqs[3]
List of recently received sequence numbers (as a support to NACK generation, for each simulcast SSRC ...
Definition: ice.h:492
GThread * thread
GLib thread for the handle and libnice.
Definition: ice.h:298
janus_handle_webrtc * pc
WebRTC PeerConnection, if any.
Definition: ice.h:312
The plugin session and callbacks interface.
Definition: plugin.h:241
Janus handle.
Definition: ice.h:276
GSList * local_candidates
GLib list of local candidates for this component (summary)
Definition: ice.h:362
uint janus_get_max_nack_queue(void)
Method to get the current max NACK value (i.e., the number of packets per handle to store for retrans...
Definition: ice.c:490
void janus_handle_webrtc_hangup(janus_handle *handle, const char *reason)
Method to only hangup (e.g., DTLS alert) the WebRTC PeerConnection allocated by a Janus handle...
Definition: ice.c:1317
uint janus_get_slowlink_threshold(void)
Method to get the current slowlink-threshold value (see above)
Definition: ice.c:427
RTP context, in order to make sure SSRC changes result in coherent seq/ts increases.
Definition: rtp.h:223
guint transport_wide_cc_feedback_count
Transport wide cc rtp ext ID.
Definition: ice.h:394
gboolean send
Media direction.
Definition: ice.h:464
gint rid_ext_id
RTP Stream extension ID, and the related rtx one.
Definition: ice.h:380
janus_trickle * janus_trickle_new(const char *transaction, json_t *candidate)
Helper method to allocate a janus_trickle instance.
Definition: ice.c:710
void janus_ice_debugging_disable(void)
Method to disable libnice debugging (the default)
Definition: ice.c:214
void janus_ice_incoming_data(janus_handle *handle, char *label, char *buffer, int length)
Plugin SCTP/DataChannel callback, called by the SCTP stack when when there's data for a plugin...
Definition: ice.c:2745
guint state
libnice ICE component state
Definition: ice.h:356
RTCP processing (headers)
struct janus_media_stats janus_media_stats
Janus media statistics container.
uint16_t janus_ice_get_turn_port(void)
Method to get the TURN server port.
Definition: ice.c:63
GList * payload_types
List of payload types we can expect.
Definition: ice.h:454
uint janus_get_twcc_period(void)
Method to get the current TWCC period (see above)
Definition: ice.c:443
gint64 ts
Definition: ice.h:260
void * session
Opaque pointer to the core/peer session.
Definition: ice.h:278
void janus_ice_enable_nat_1_1(void)
Helper method to force Janus to overwrite all host candidates with the public IP. ...
Definition: ice.c:223
gint64 nack_sent_log_ts
Last time a log message about sending NACKs was printed.
Definition: ice.h:488
void janus_ice_deinit(void)
ICE stuff de-initialization.
Definition: ice.c:847
gboolean janus_is_opaqueid_in_api_enabled(void)
Method to check whether opaque ID have to be added to Janus API responses/events. ...
Definition: ice.c:109
Janus handle WebRTC PeerConnection.
Definition: ice.h:346
gchar * remote_hashing
Hashing algorhitm used by the peer for the DTLS certificate (e.g., "SHA-256")
Definition: ice.h:402
guint32 ssrc_peer_rtx_new[3]
Definition: ice.h:446
gboolean janus_is_rfc4588_enabled(void)
Method to check whether the RFC4588 support is enabled.
Definition: ice.c:454
void janus_ice_notify_hangup(janus_handle *handle, const char *reason)
Quick helper method to notify a WebRTC hangup through the Janus API.
Definition: ice.c:679
guint srtp_errors_count
Count of the recent SRTP replay errors, in order to avoid spamming the logs.
Definition: ice.h:326
gboolean noerrorlog
Helper flag to avoid flooding the console with the same error all over again.
Definition: ice.h:498
GQueue * retransmit_buffer
List of previously sent janus_rtp_packet RTP packets, in case we receive NACKs.
Definition: ice.h:478
char * rid[3]
Array of RTP Stream IDs (for Firefox simulcasting, if enabled)
Definition: ice.h:448
A helper struct for determining when to send NACKs.
Definition: ice.h:259
GHashTable * media_bymid
GLib hash table of media (mids are the keys)
Definition: ice.h:414
void janus_ice_relay_data(janus_handle *handle, char *label, char *buf, int len)
Core SCTP/DataChannel callback, called when a plugin has data to send to a peer.
char * janus_ice_get_stun_server(void)
Method to get the STUN server IP address.
Definition: ice.c:46
guint stream_id
libnice ICE stream ID
Definition: ice.h:350
gint janus_trickle_parse(janus_handle *handle, json_t *candidate, const char **error)
Helper method to parse trickle candidates.
Definition: ice.c:721
janus_mutex mutex
Mutex to lock/unlock this stream.
Definition: ice.h:421
gint janus_handle_destroy(void *core_session, janus_handle *handle)
Method to destroy a Janus handle.
Definition: ice.c:1222
gint payload_type
RTP payload types for this medium.
Definition: ice.h:458
int janus_ice_get_event_stats_period(void)
Method to get the current event handler statistics period (see above)
Definition: ice.c:290
DTLS/SRTP processing (headers)
gboolean janus_ice_is_ice_debugging_enabled(void)
Method to check whether libnice debugging has been enabled (http://nice.freedesktop.org/libnice/libnice-Debug-messages.html)
Definition: ice.c:196
struct janus_media_stats_info janus_media_stats_info
Janus media statistics.
janus_handle * handle
Janus handle this trickle candidate belongs to.
Definition: ice.h:516
gint mid_ext_id
SDES mid RTP extension ID.
Definition: ice.h:378
GMainLoop * mainloop
GLib loop for the handle and libnice.
Definition: ice.h:296
guint32 transport_wide_cc_last_seq_num
Last received transport wide seq num.
Definition: ice.h:388
gint64 icefailed_detected
Time of when we first detected an ICE failed (we'll need this for the timer above) ...
Definition: ice.h:372
GSource * dtlsrt_source
Re-transmission timer for DTLS.
Definition: ice.h:374
void janus_ice_set_static_event_loops(int loops)
Method to configure the static event loops mechanism at startup.
Definition: ice.c:142
gint ridrtx_ext_id
Definition: ice.h:380
janus_media_stats dtls_out_stats
Definition: ice.h:400
gint64 created
Monotonic time of when the handle has been created.
Definition: ice.h:284
GHashTable * media_byssrc
GLib hash table of media (SSRCs are the keys)
Definition: ice.h:412
int janus_ice_set_turn_server(gchar *turn_server, uint16_t turn_port, gchar *turn_type, gchar *turn_user, gchar *turn_pwd)
Method to force Janus to use a TURN server when gathering candidates.
Definition: ice.c:1009
guint32 ssrc_peer_orig[3]
Definition: ice.h:444
guint stream_id
ICE Stream ID.
Definition: ice.h:310
GMainContext * mainctx
GLib context for the handle and libnice.
Definition: ice.h:294
guint16 transport_wide_cc_cycles
Transport wide cc transport seq num wrap cycles.
Definition: ice.h:392
int janus_ice_test_stun_server(janus_network_address *addr, uint16_t port, janus_network_address *public_addr)
Method to check whether a STUN server is reachable.
Definition: ice.c:853
GSList * transport_wide_received_seq_nums
GLib list of transport wide cc stats in reverse received order.
Definition: ice.h:396
Janus DTLS-SRTP handle.
Definition: dtls.h:60
janus_dtls_srtp * dtls
DTLS-SRTP stack.
Definition: ice.h:376
gint framemarking_ext_id
Frame marking extension ID.
Definition: ice.h:382
A single media in a PeerConnection.
Definition: ice.h:430
Internal RTCP state context (for RR/SR)
Definition: rtcp.h:226
Structure to hold network addresses in a tagged union which should be IPv4 and IPv6 compatible...
Definition: ip-utils.h:53
GSource * twcc_source
Definition: ice.h:300
janus_plugin_session * app_handle
Opaque core/plugin session pointer.
Definition: ice.h:288
janus_dtls_role dtls_role
DTLS role of the server for this stream.
Definition: ice.h:398
char * transaction
Janus API transaction ID of the original trickle request.
Definition: ice.h:520
gint rtx_payload_type
Definition: ice.h:458
char * codec
Codec used in this medium.
Definition: ice.h:460
janus_media_stats in_stats
Stats for incoming data.
Definition: ice.h:494
void janus_handle_webrtc_destroy(janus_handle_webrtc *pc)
Method to only free resources related to a specific PeerConnection allocated by a Janus handle...
Definition: ice.c:1396
void janus_handle_dtls_handshake_done(janus_handle *handle)
Callback to be notified when the DTLS handshake for a specific component has been completed...
Definition: ice.c:4126
Plugin-Gateway session mapping.
Definition: plugin.h:228
volatile gint destroyed
Atomic flag to check if this instance has been destroyed.
Definition: ice.h:423
gint cdone
Whether this stream is ready to be used.
Definition: ice.h:354
gint64 retransmit_log_ts
Last time a log message about sending retransmits was printed.
Definition: ice.h:484
janus_media_stats out_stats
Stats for outgoing data.
Definition: ice.h:496
gchar * remote_fingerprint
Hashed fingerprint of the peer's certificate, as parsed in SDP.
Definition: ice.h:404
int janus_ice_get_static_event_loops(void)
Method to return the number of static event loops, if enabled.
Definition: ice.c:139
void janus_ice_enforce_interface(const char *ip)
Method to add an interface/IP to the enforce list for ICE (that is, only gather candidates from these...
Definition: ice.c:231
gchar * pc_mid
Main mid.
Definition: ice.h:308
volatile gint dump_packets
Flag to decide whether or not packets need to be dumped to a text2pcap file.
Definition: ice.h:332
void janus_set_twcc_period(uint period)
Method to modify the TWCC feedback period (i.e., how often TWCC feedback is sent back to media sender...
Definition: ice.c:434
volatile gint destroyed
Atomic flag to check if this instance has been destroyed.
Definition: ice.h:502
void janus_ice_debugging_enable(void)
Method to enable libnice debugging (http://nice.freedesktop.org/libnice/libnice-Debug-messages.html)
Definition: ice.c:199
gboolean(* video_is_keyframe)(const char *buffer, int len)
Pointer to function to check if a packet is a keyframe (depends on negotiated codec; video only) ...
Definition: ice.h:462
NiceAgent * agent
libnice ICE agent
Definition: ice.h:302
gint transport_wide_cc_ext_id
Transport wide cc rtp ext ID.
Definition: ice.h:386
gboolean do_nacks
Whether we should do NACKs (in or out) for this medium.
Definition: ice.h:476
guint32 first_rtp_ts[3]
First received RTP timestamp.
Definition: ice.h:472
gboolean janus_ice_is_enforced(const char *ip)
Method to check whether an interface is currently in the enforce list for ICE (that is...
Definition: ice.c:239
gchar * remote_sdp
SDP received by the peer (just for debugging purposes)
Definition: ice.h:318
guint16 state
Definition: ice.h:262
Dumping of RTP/RTCP packets to text2pcap or pcap format (headers)
char * janus_ice_get_turn_server(void)
Method to get the TURN server IP address.
Definition: ice.c:60
void janus_set_no_media_timer(uint timer)
Method to modify the no-media event timer (i.e., the number of seconds where no media arrives before ...
Definition: ice.c:405
gboolean controlling
ICE role (controlling or controlled)
Definition: ice.h:306
GHashTable * rtx_nacked[3]
Map(s) of the NACKed packets (to track retransmissions and avoid duplicates)
Definition: ice.h:468
guint32 ssrc_rtx
Retransmission SSRC of the server for this medium.
Definition: ice.h:442
void janus_handle_ice_restart(janus_handle *handle)
Method to restart ICE and the connectivity checks.
Definition: ice.c:3229
janus_media_stats dtls_in_stats
Data exchanged for DTLS handshakes and messages.
Definition: ice.h:400
GList * pending_trickles
List of pending trickle candidates (those we received before getting the JSEP offer) ...
Definition: ice.h:322
const gchar * hangup_reason
Reason this handle has been hung up.
Definition: ice.h:320
GSource * icestate_source
Timer to check when we should consider ICE as failed.
Definition: ice.h:370
janus_handle * handle
Janus handle this stream belongs to.
Definition: ice.h:348
void janus_ice_relay_sctp(janus_handle *handle, char *buffer, int length)
Core SCTP/DataChannel callback, called by the SCTP stack when when there's data to send...
Definition: ice.c:4101
void janus_ice_relay_rtcp(janus_handle *handle, int mindex, gboolean video, char *buf, int len)
Core RTCP callback, called when a plugin has an RTCP message to send to a peer.
Definition: ice.c:4046
void janus_ice_stop_static_event_loops(void)
Method to stop all the static event loops, if enabled.
Definition: ice.c:177
janus_dtls_role
DTLS roles.
Definition: dtls.h:45
gint64 received
Monotonic time of when this trickle candidate has been received.
Definition: ice.h:518
guint component_id
libnice ICE component ID
Definition: ice.h:352
janus_refcount ref
Reference counter for this instance.
Definition: ice.h:425
gint last_srtp_error
Count of the recent SRTP replay errors, in order to avoid spamming the logs.
Definition: ice.h:328