Skip to content

Releases: daily-co/daily-js

0.85.0

15 Oct 15:54

Choose a tag to compare

Bugfixes

  • Fixed an issue where the initial send settings were not being respected for cam video.

Other improvements

  • Made it so you no longer have to specify the broad 'unsafe-eval' in your Content Security Policy (CSP) when using video background processing (virtual backgrounds or background blur). You can specify the narrower 'wasm-unsafe-eval' instead (assuming you've also specified avoidEval: true when instantiating your Daily client).

0.84.0

11 Sep 19:05

Choose a tag to compare

Features

  • Added support for calling phone extensions during dialout operations, allowing users to specify an extension number and wait time before dialing the extension after the main call connects.
  • Added prebuilt specific pip-started and pip-stopped events.

Other improvements

  • Improved reliability of handling auto-start recording/transcription options when joining room.
  • Improved handling for unsupported browsers. The Daily constructor will now throw an error of WebRTC not supported or suppressed if the browser will not support a call.

0.83.1

19 Aug 17:11

Choose a tag to compare

Urgent Browser Fixes

  • ‼️ POTENTIAL BREAKAGE ON Chrome 140:
    This release contains an update to the mediasoup-client dependency to provide a fix in advance of the Chrome 140 release. Without this fix, any client that upgrades to 140 and tries to join or reconnect to a call with a video track but not an audio track, will fail. GOOD NEWS: By default, daily-js will obtain an audio track, even when audio is muted, so this only occurs in the following scenarios:

    1. A user denies permissions ONLY for microphones
    2. A user does not have a microphone device
    3. One of the following daily-js APIs are used:
      1. A call is initiated with alwaysIncludeMicInPermissionPrompt: false as part of the advanced dailyConfig options.
      2. Call setLocalAudio() with the flag forceDiscardTracksetLocalAudio(false, { forceDiscardTrack: true })
      3. Call setInputDevicesAsync() with audioSource set to falsesetInputDevicesAsync({ audioSource: false })

    For more detailed information, here's a link to the original mediasoup issue report

  • ‼️ FIREFOX 142 REPORTS BAD NETWORK FALSELY

    This release also contains a work-around for an issue introduced with Firefox 142, where daily-js will incorrectly tag all calls as having a bad network due to roundTripTime.

Bugfixes

  • Fixed a regression in 0.82.0 where calling startScreenShare() with captureOptions would ignore the captureOptions

Other improvements

  • Removed deprecated and unused support for rtp-tracks recording

0.82.0

06 Aug 22:08

Choose a tag to compare

Features

  • Added support for startScreenSharing() prior to join(). Note: A call to preAuth() or startCamera() is still required first to initialize state.

Bugfixes

  • Fixed and improved error handling for setOutputDeviceAsync(). With this change, setOutputDevicesAsync() will now throw an error if the call fails.

Other improvements

  • Updated dependencies to resolve security vulnerabilities
  • Bumped Krisp version to the latest with the latest models and added handling for CPU overload which can cause choppy voice output. This change will temporarily and silently pause audio processing while the CPU recovers. If the system continues to be overloaded, daily-js will eventually emit a audio-processor-error with an errorMsg of "Krisp error: system overload", turn off the processor, and mute the microphone.

0.81.0

16 Jul 12:01

Choose a tag to compare

Features

  • Added ignoreAudioLevel parameter to startCustomTrack. When enabled, the SFU will exclude the track from participant audio level calculations.
  • Added a new dialin-error type: start-failed.

Other improvements

  • Updated enumerateDevices() to report errors only when significant, and added improved logging to track enumerateDevices timing.

0.80.0

05 Jun 20:28

Choose a tag to compare

Features

  • Added support for join time permissions for the SIP/PSTN user.

Other improvements

  • Removed the use of STUN from Xirsys.
  • Updated packages to address security vulnerabilities.

0.79.0

30 Apr 22:46

Choose a tag to compare

Bugfixes

  • Various fixes and improvements around handling Krisp errors.

Other improvements

  • Removed a client-side limit on max_live_streams
  • Disabled redux devtools

0.78.0

18 Apr 01:50

Choose a tag to compare

Bugfixes

  • Various fixes to the ejection logic, where a user could be ejected at the wrong time if their local computer clock is off or join if the time resulted in the past. ⚠️ PLEASE NOTE: This means that if you were for some reason setting eject_after_elapsed to a negative value, participants will no longer be allowed to join.
  • Starting in 0.72.0, on Chrome, providing an invalid deviceId for audio results in OverconstrainedErrors. This is continued fall out for handling Chrome's change in their handling of deviceId
  • Fix for issue 261 where errors in Krisp initialization were getting unhandled and could cause issues when joining.

Other improvements

  • Reverted the change that disabled background effects on Windows when software WebGL was in use. Instead, we now log a warning and introduced a new fatal-error type: video-processor-warning for applications to determine best behavior. Please note that when this warning occurs, the expected behavior is for the user’s video frame rate to drop significantly. Docs to be added shortly here
  • Added instanceId to webhooks for raw tracks.
  • Removed the beta feature warning from testCallQuality()
  • Added a log around enumerateDevices() to identify any time it takes longer than expected. This primarily is for knowing when join times are affected on Firefox due to the tab not being in focus.
  • Improved the new networkState calculations, removing recvPacketLoss from the calculations for now as it is typically misleading.

0.77.0

27 Mar 21:13

Choose a tag to compare

Features

  • Added support for the new canReceive permission, which controls which tracks participants are permitted to receive from one another. Check out the docs for updateParticipant() and the participant properties for more information.

  • Introduced two new fields to getNetworkStats() intended to replace threshold and quality:

    1. networkState: Will hold a value of goodwarningbad, or unknown to match the API of testCallQuality() and are based on packet loss, the available outgoing bitrate, and round trip times.
    2. networkStateReasons: An array of strings stating which stats fields triggered the warning or bad state. (If the state is good, the reasons will be empty or undefined).

    See the docs for getNetworkStats()and the network-quality-change event for more information.

  • ‡ Added support for setting the callerId when using sipCallTransfer() to transfer a call to a PSTN number

Bugfixes

  • Fixed broken proxyUrl support

Other improvements

  • Disabled background effects for Windows browsers without hardware graphics acceleration. This is already the behavior on other platforms, but Windows would continue to attempt to apply affects at the cost of video frame rates.
  • Updated packages to resolve security vulnerabilities
  • ‡ Removed recordings_bucket details from the return of room(). This field will now be simply set to true if a custom bucket is in use.

‡ These features depend on a server-side release expected to go out 4/2/25

0.76.0

06 Mar 18:23

Choose a tag to compare

Features

  • Upgraded noise cancellation library, Krisp, to latest version (v2.2.1)

Bugfixes

  • Fixed an issue introduced in 0.75.0 where switching from a custom track back to a daily managed track using setInputDevicesAsync() did not work.
  • Fixed iceTransportPolicy property being ignored in versions 0.73.0-0.75.0.

Other improvements

  • Added missing enable_dialout field to DailyRoomInfo in typescript definitions.