Skip to content

v0.4.0

Compare
Choose a tag to compare
@mickel8 mickel8 released this 27 Feb 16:41
· 50 commits to main since this release
d4a0f77

IMPORTANT This version might require clearing or updating env vars when running from source on macOS. See docs for more.

Features:

  • added peer websocket close reason - now, server closes peer websocket with a reason e.g. "Internal server error", "Peer removed" or "Room stopped"
  • added support for path in JF_HOST env var
  • added framerate option in the File component - defaults to 30 FPS
  • added healthcheck endpoint - GET /health - requires authorization and returns: status, uptime and information about distribution (enabled/disabled, node status, number of nodes in a cluster).
  • added published tracks and their metadata to the REST API e.g. GET /room will return a list of rooms with their components and peers, where each component and each peer will also list all of its published tracks
  • added new server notifications: PeerMetadataUpdated, TrackAdded, TrackRemoved, TrackMetadataUpdated
  • added peerless room purge option - after predefined amount of time, if a room is empty, it will be automatically closed. This behaviour is disabled by default. See here.
  • added SIP component
  • added basic structured logging that can be enabled with JF_STRUCTURED_LOGGING
  • added python RTSP -> HLS example

Bugfixes:

  • fixed duplicated peer_disconnected notification
  • fixed prometheus metrics not being reset - now, after room is removed, its metrics are set to 0 - dopytać o interwał
  • fixed starting logs not being displayed when JF couldn't run in a distributed mode - now, even if JF crashes because of distribution-related problems, config logs will be displayed (i.e. JF version, WebRTC config, distribution config)
  • fixed removing component, which crashed from JF state (thanks to @gfodor)
  • fixed removing component, which finisehd its work from JF state
  • fixed authorization not required for /hls and /recording endpoints [BREAKING]
  • fixed authorization information in OpenAPI spec - previously, all endpoints were marked as requiring authorization, even if they didn't actually need it