Merge pull request #536 from meetecho/event-handlers
Event handler plugins
Shimmed libsrtp2 API
Updated code to reflect API changes in case libsrtp2 is detected
Merge branch 'master' into event-handlers
Initialize BIO filter at startup
Changes to DTLS BIO filter for OpenSSL 1.1.0
Changed naming of threads, fixed wav header in audiobridge recording, anticipated sessions stuff in Janus startup (to avoid issues when some of the transport plugins drag and requests start arriving)
Conditional support of DTLSv1_set_initial_timeout_durationNote: DTLSv1_set_initial_timeout_duration is a method only supported in recent versione of BoringSSL, and allows for setting a different value for the retransmission timeout used by DTLS (which by default is 1s, very high for WebRTC: this commit sets 100ms). You need to explicitly enable the flag when doing the configure as we can't check for its availability in the existing BoringSSL setup, which is typically a static library. Update BoringSSL to the latest version (removed the revision line from the README) and when configuring add --enable-boringssl --enable-dtls-settimeout, then make clean and make again.
Added events to new TextRoom plugin and aligned to master
Don't ignore alerts for DataChannel only (or non-muxed) components
dtls: add warning when autogenerating key/cert
dtls: automatically generate a key and cert if they were not specified
The cert/key are generated on startup and not stored. Better use theseinstead of the sample ones everyone probably uses.
Shamelessby borrowed and adapted from MediaSoup. Thanks @ibc!
dtls: refactor loading certificate and key files
This lays the groundwork for auto-generating them later.
misc: style fixes (editorconfig)
dtls: simplify key loading code
- const-ify some function arguments- remove unneeded global variables- remove unneeded function- add function to cleanup DTLS state
Allow for the events to be disabled completely (broadcast=no in [events] of janus.cfg)
Event handler plugins, first draft
Add number of packets sent/received per medium to Admin API
fix leak of component (timeout) source
use g_source_unref() instead ofif(G_IS_OBJECT()) g_object_unref()
G_IS_OBJECT() was not true for the timeout source, on my system
Initialize timeout value before calling DTLSv1_get_timeout (issue #419)
Attempt to fix the infamous DTLS decrypt alert error (issue #316)
More details when something in OpenSSL fails
Fixed parsing of fingerprints so that they can be different per each stream
Decreased verbosity for some lines (info to verb), and added call to nice_agent_remove_stream when enforcing bundle/rtcp-mux (see #154)
Converted memory allocations to GLib ones, and fixed a couple of leaks
Added some timing related details to the handle info in the admin API
Implemented new OpenSSL BIO filter to fix fragmentation issue in DTLS on large certificates (see #252)
Fix on mid management (Firefox Nightly)
Fixes to some memory leaks in the Janus core
Added reason to hangup event (and improved it)
Merge pull request #125 from yultide/master
Janus build fixes for OSX
DTLS fix for issue #132 (and #134 as well?)
Better DTLS-related debug (handle info)
First draft for some data transfer statistics in the admin API
Fixed DTLS handshake issue with Firefox Nightly
Fix for the recent ICE issues with Firefox stable
Some improvements on the DTLS handshake (and related debugging)
Further changes to the other threads (plugin and core)
sctp / dtls threads should deref themselves so they are cleaned up
since no other thread join()s them
Experimental IPv6 support and new Recorder/Playout pluginAdded experimental IPv6 support for media;Added a new plugin to record and then replay WebRTC sessions;Several fixes on memory leaks, especially in plugins;Some more fixes scattered across the project
Several fixesImproved DTLS timer and retransmissions;Added a helper to parse on/off configuration values;Added API command to enable/disable streaming mountpoints;Added a (commented) H.264 sample mountpoint to the streaming configuration;Improved SSRC multiplexing in the Video MCU;...
Several changes and fixesFixed configure.ac for default plugin dependencies;Renamed configuration files as samples, and added a 'make configs' target to turn them into configuration files (and avoid overwriting them at each 'make install');Replaced all sprintf with g_snprintf (issue #60)...
core: Fix old-style function definitions
And add a warning flag to prevent new ones being introduced.
janus: Fix various signed/unsigned integer comparisons
This tidies up a few compiler warnings.
Bug fixingFixed bugs #53 and #54
First steps in adding support for SSRC multiplexing (Plan B) to the VideoMCU pluginFirst steps on adding support to SSRC multiplexing (Plan B) in Janus;Integrated this support in the Video MCU plugin (basic, to improve);Made ID in streams creation optional (streaming plugin);...
Improved hangup of PCs from plugins
Added a basic recording functionality plugins can useAdded a new helper to allow plugins to record RTP media frames in a structured way;Added a simple external utility to post-process those recordings to a webm or opus file;Integrated the recording functionality in the Video MCU plugin, and added a new configuration value to selectively enable/disable the feature
Fixed an issue where, for non-bundled streams including data channels, setup_media would not be called in plugins
Added support for Data ChannelsAdded a first integration of Data Channels (strings only for now)Modified Echo Test and Video Call demos to include Data ChannelsUpdated documentation and FAQGeneral bug fixing here and there
Added BUNDLE support and fixed Trickle ICEAdded BUNDLE support;Fixed Trickle ICE and made the default in JS (can be disabled by passing trickle:false);Added util methods for manipulating flags bitmasks
Version 0.0.2, several fixes and improvementsSeveral improvements on memory management (allocations, memory leaks, etc.);Added levels for logging and debugging;Cosmetic changes to the demos (e.g., bitrate in Video MCU feeds)
New demo (screen sharing) and bugfixesFixed some force closes when closing sessions;Added more documentation (e.g., how to deploy Janus);Added a description of each demo to the HTML pages;Added a new demo (screen sharing) that makes use of the existing Video MCU plugin;...