Releases: daily-co/daily-js
0.87.0
0.86.0
Features
-
Introduced a new option to
startRecording()calleddataOutputsto enable recording of events that occur during the meeting in addition to the actual recording media. This configuration option takes an array of auxiliary output types. For each type specified, an extra file will be provided with the recording download link (accessible via the REST API). When using a custom S3 bucket, the data output files are written to the same bucket as the AV media recording. These data outputs are timecode-aligned with the recording media, so they can be used in post-processing workflows.Currently three types are supported:
event-json,transcript-webvtt,chat-webvttevent-json— produces a JSON that describes all relevant events during the recording session, e.g. when a recording media file started, track updates, etc.transcript-webvtt— produces a WebVTT file with all transcription events. The timecode of this file is aligned with the recording media (the mp4 or m4a file).- A live transcription needs to be active for the meeting to get these events.
chat-webvtt— produces a WebVTT file with all chat events. The timecode of this file is aligned with the recording media (the mp4 or m4a file).
The user can pass any combination of options to to capture all events, live transcription, and/or chat messages in separate files during a cloud recording.
Note that these outputs are capturing events, not starting services. If there's no active transcription in the room, there won't be any transcription written to the file. (In other words, passing
dataOutputs: ['transcript-webvtt']doesn't start the transcription, it just configures the recording session to also capture transcription events.) -
Added support for new
cloud-audio-onlyrecording type.- This produces m4a files with the
audio/mp4MIME content type on S3. - Can be configured together with other existing recording types.
- Doesn’t share an instance id with RTMP/HLS streaming like regular cloud recording does (because streaming plain audio isn’t typically useful, as many streaming platforms require a video track even if it’s black).
- This produces m4a files with the
Bugfixes
- Fixed issue where sessions will reconnect and try, often successfully, to resume after long periods of idleness when the laptop lid is closed. Now, after 5 minutes of inactivity is detected (on lid open), the session will automatically disconnect.
- Fixed uncaught errors surrounding
join()andstartCamera()when no room url is provided, or the url is invalid. These will now throw and error andjoin()will leave themeetingState()in"left-meeting"to allow trying again.
Other improvements
- Improved the cpu-load-change event by requiring multiple consecutive high CPU readings before reporting a high load and by refining the global decode time calculation to exclude videos with empty frame metrics.
- Added compute pressure state to the CpuLoadStats API (when supported by the browser).
- Prebuilt Only: Added support for new
enable_cpu_warning_notificationdomain and room property, hiding CPU warnings when disabled (The flag is enabled by default). Check out docs here. - Added
max_app_message_sizetoDailyRoomInfotypes
0.85.0
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 specifiedavoidEval: truewhen instantiating your Daily client).
0.84.0
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-startedandpip-stoppedevents.
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 suppressedif the browser will not support a call.
0.83.1
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-jswill obtain an audio track, even when audio is muted, so this only occurs in the following scenarios:- A user denies permissions ONLY for microphones
- A user does not have a microphone device
- One of the following
daily-jsAPIs are used:- A call is initiated with
alwaysIncludeMicInPermissionPrompt: falseas part of the advanceddailyConfigoptions. - Call
setLocalAudio()with the flagforceDiscardTrack:setLocalAudio(false, { forceDiscardTrack: true }) - Call
setInputDevicesAsync()withaudioSourceset tofalse:setInputDevicesAsync({ audioSource: false })
- A call is initiated with
For more detailed information, here's a link to the original mediasoup issue report
-
‼️ FIREFOX 142 REPORTS BAD NETWORK FALSELYThis release also contains a work-around for an issue introduced with Firefox 142, where
daily-jswill incorrectly tag all calls as having a bad network due toroundTripTime.
Bugfixes
- Fixed a regression in 0.82.0 where calling
startScreenShare()withcaptureOptionswould ignore thecaptureOptions
Other improvements
- Removed deprecated and unused support for
rtp-tracksrecording
0.82.0
Features
- Added support for
startScreenSharing()prior tojoin(). Note: A call topreAuth()orstartCamera()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-errorwith anerrorMsgof"Krisp error: system overload", turn off the processor, and mute the microphone.
0.81.0
Features
- Added
ignoreAudioLevelparameter tostartCustomTrack. When enabled, the SFU will exclude the track from participant audio level calculations. - Added a new
dialin-errortype:start-failed.
Other improvements
- Updated
enumerateDevices()to report errors only when significant, and added improved logging to trackenumerateDevicestiming.
0.80.0
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
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
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 settingeject_after_elapsedto a negative value, participants will no longer be allowed to join. - Starting in 0.72.0, on Chrome, providing an invalid
deviceIdforaudioresults inOverconstrainedErrors. This is continued fall out for handling Chrome's change in their handling ofdeviceId - 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-errortype:video-processor-warningfor 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
instanceIdto 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
networkStatecalculations, removingrecvPacketLossfrom the calculations for now as it is typically misleading.