Chrome 140 and Firefox 142 compatibility fixes, pre-join screen sharing, Krisp CPU overload handling, telephony improvements, and Prebuilt accessibility updates.
Overview
August brings browser compatibility fixes for Chrome 140 and Firefox 142, new screen sharing capabilities before joining a call, and telephony improvements including dial-out extensions and cross-domain SIP transfers. We’ve also shipped Daily Prebuilt accessibility improvements, a high CPU usage notification, and stability fixes across our media services.Complete release history for our client SDKs is available in our Github release notes:daily-js
View full release notes →0.83.1
- Updated mediasoup-client for compatibility with Chrome 140. Without this fix, joining or reconnecting to a call without an audio track would fail on Chrome 140.
- Added a workaround for a Firefox 142 bug that caused
daily-jsto incorrectly report bad network conditions due toroundTripTime. - Fixed a regression in 0.82.0 where
captureOptionspassed tostartScreenShare()were ignored. - Removed deprecated and unused
rtp-tracksrecording support.
0.82.0
- Added support for calling
startScreenShare()prior tojoin(). A call topreAuth()orstartCamera()is still required first to initialize state. - Fixed and improved error handling for
setOutputDevicesAsync(). The method now throws an error if the call fails. - Updated dependencies to resolve security vulnerabilities.
- Bumped Krisp to the latest version with updated models. Added handling for CPU overload which can cause choppy voice output. This will temporarily and silently pause audio processing while the CPU recovers. If overload continues,
daily-jswill emit anaudio-processor-errorwitherrorMsgof"Krisp error: system overload", turn off the processor, and mute the microphone.
react-native-daily-js
View full release notes →0.80.0
- Updated mediasoup-client dependency to latest.
- Removed deprecated and unused
rtp-tracksrecording support.
0.79.0
- Updated dependencies to resolve security vulnerabilities.
Daily Prebuilt
- Fixed unblock instructions in embedded Prebuilt on Chrome on iOS.
- Added a high CPU usage notification snackbar.
- Improved accessibility throughout the Prebuilt interface.
Media Services
Telephony
- Added support for providing a phone extension in
startDialout(). - Enabled SIP call transfer to non-Daily domains.
- Improved handling of dial-in properties when creating rooms with dial-in configured.
- Added
roomNameto transcription webhook events.
Recording
- Fixed a bug where audio tracks were not being added to recordings.
New network status callbacks, improved telephony error handling, and platform-wide stability fixes.
Overview
This month’s updates bring new network status callbacks to our native mobile SDKs, giving you more insight into connection health. We’ve shipped a newdialin-error type (start-failed) that triggers when SIP registration fails, a critical audio playback fix for Safari in Daily React, and numerous stability improvements across our backend services.Complete release history for our client SDKs is available in our Github release notes:daily-js
View full release notes →0.81.0
- Added
ignoreAudioLevelparameter tostartCustomTrack()to exclude a track from audio level calculations. - Improved
enumerateDevices()logging and reduced noisy error reporting.
react-native-daily-js
View full release notes →0.78.0
- Added a new
dialin-errortype tostart-failed. - Fixed a potential null pointer exception during module initialization.
- Improved
enumerateDevices()logging and reduced noisy error reporting.
daily-react
View full release notes →0.23.1
- Fixed an issue that could prevent audio playback in Safari after a participant leaves.
- Added an optional
intervalparameter to theuseAudioLevelObserver()hook. - Updated the
useNetwork()hook to return the newnetworkStateandnetworkStateReasonsproperties. - Added
user_nameandrawResponseto theTranscriptiontype definition.
daily-android
View full release notes →0.32.0
- Added a new
onNetworkConnectionStatusUpdated()callback to monitor call-critical network connections. - Added support for handling mid-call session ID changes.
- Fixed a potential null pointer exception during device list changes.
daily-ios
View full release notes →0.32.0
- Added a new delegate function (
networkConnectionStatusUpdated) to monitor call-critical network connections. - Added support for handling mid-call session ID changes.
- Fixed a bug where
userIDcould benilin the call configuration, even when present in the token.
daily-python
View full release notes →0.19.4
- Added
set_log_level()and alog_levelinit argument for controlling log verbosity.
Media Services
Telephony and Recording/Livestreaming
- Added a new
start-failederror type to thedialin-errorevent. This fires when the SIP address on a room fails SIP registration with the SIP network. - Improved handling of non-unique ‘from’ numbers in PSTN dial-in, allowing multiple participants to join from the same caller ID.
- Shipped numerous stability improvements for SIP registration, raw tracks recording, and connection reliability.
SIP/PSTN join-time permissions, React Native New Architecture support, recording and telephony improvements.
Overview
This month, we’ve shipped join-time permissions for SIP/PSTN users across our client SDKs. React Native developers can now build with the New Architecture enabled. We’ve also fixed some recording and telephony bugs.Complete release history for our client SDKs is available in our Github release notes:daily-js
View full release notes →0.80.0
- Added support for setting permissions for SIP/PSTN users at join time.
- Removed the use of STUN from Xirsys.
- Updated dependencies to resolve security vulnerabilities.
react-native-daily-js
View full release notes →0.77.0
- Added support for setting permissions for SIP/PSTN users at join time.
- Fixed a build issue when using React Native’s New Architecture.
- Removed the use of STUN from Xirsys.
- Updated dependencies to resolve security vulnerabilities.
daily-python
View full release notes →0.19.3
- Added an option to ignore audio level when creating a custom audio track.
0.19.2
- Fixed a segmentation fault that could occur on exit when a custom audio source was still writing data.
Media Services
Recording
- Fixed a bug where a failed session asset image URL could cause a recording composition to crash.
Telephony
- Fixed a bug to correctly extract the
displayNamefrom custom SIP headers for dial-in participants.
Meeting move aware recording and streaming, new call transfer webhooks, improved telephony features, and platform-wide bug fixes.
Overview
Mobile SDKs now support canReceive permissions and improved connection reliability. The Python SDK gets powerful custom audio track capabilities. Meeting move aware recording is enabled by default, we’ve added call transfer webhooks, and transcription saves are now more resilient.Complete release history for our client SDKs is available in our Github release notes:daily-js
View full release notes →0.79.0
- Improved Krisp error handling.
- Removed a client-side limit on
max_live_streams. - Disabled Redux DevTools in production builds.
react-native-daily-js
View full release notes →0.76.0
- Removed a client-side limit on
max_live_streams. - Disabled Redux DevTools in production builds.
daily-android
View full release notes →0.31.0
- Added support for the
canReceivepermission to manage which media tracks remote participants can receive. - Improved connection reliability by retrying signaling channel connections and using an alternate WebSocket URI format.
- Fixed a bug where custom ICE server configurations were not being applied.
daily-ios
View full release notes →0.31.0
- Added support for the
canReceivepermission to manage which media tracks remote participants can receive. - Improved connection reliability by retrying signaling channel connections and using an alternate WebSocket URI format.
daily-python
View full release notes →0.19.1
- Fixed an audio renderer issue that caused garbled audio with remote stereo tracks.
- Added handling for meeting session ID changes that occur mid-call.
0.19.0
- Introduced
CustomAudioTrackfor use as an additional custom track or as the main microphone input. - Added support for
displayName,userId,video,codecs, andpermissionsinstart_dialout(). - Added
sample_rateandcallback_interval_msarguments toset_audio_renderer()for more control over audio data. - Updated
add_custom_audio_track()andupdate_custom_audio_track()to accept aCustomAudioTrackinstance. - Switched to using system-level root certificates on all platforms.
- Fixed a bug where blocking virtual microphones could fail to send audio.
0.18.2
- Fixed an installation issue on macOS versions older than 15.0.
- Corrected type hints for
remove_custom_track().
0.18.1
- Improved connection reliability by retrying signaling channel connections and using an alternate WebSocket URI format.
- Fixed a bug with virtual microphone completion callbacks.
Media Services
Recording
- Meeting move aware recording and streaming is now enabled by default. This feature (previously in pre-beta) automatically resumes recordings and live streams when meetings are transferred between servers during maintenance or failovers, eliminating gaps in recorded content.
Telephony
- Introduced new webhooks to track call transfer status:
calltransfer.triggered,calltransfer.initiated,calltransfer.answered, andcalltransfer.complete. - Added support for passing custom SIP headers during pinless dial-in, which are now available in the
sipHeadersobject in the webhook payload. - Added
canReceivepermission controls for dial-in and dial-out participants via thestartDialOut()API and room properties. - On-demand SIP dial-out endpoints are now the default behavior, improving resource efficiency.
Transcription
- Transcripts are now saved to storage every two minutes by default, improving data resilience.
- The
/transcriptand/transcriptsAPI endpoints now includeroomName,participantMinutes, andisVttAvailablefor more detailed information. - Fixed a race condition that could cause duplicate transcription messages when participant settings were updated rapidly.
Stability fixes for ejection logic and network states, Python custom audio tracks, enhanced recording webhooks, improved telephony features, and performance diagnostics for slow joins.
Overview
We’ve shipped stability improvements across the board this month. Key fixes include meeting ejection logic, network state calculations, and slow join diagnostics. The Python SDK now supports custom audio tracks, and raw tracks recordings now include instance IDs in webhooks.Complete release history for our client SDKs is available in our Github release notes:daily-js
View full release notes →0.78.0
- Fixed ejection logic to prevent incorrect ejections or joins when a user’s local clock is out of sync. ⚠️ Note: Participants can no longer join if
eject_after_elapsedis set to a negative value. - Fixed an
OverconstrainedErroron Chrome that occurred when providing an invalid audiodeviceId. - Fixed an issue where unhandled errors during Krisp initialization could cause problems when joining a call.
- Reverted a change that disabled background effects on Windows when software WebGL is in use. Instead, a
video-processor-warningis now logged, as this scenario can significantly reduce video frame rates. - Improved
networkStatecalculations by removingrecvPacketLoss, which could be misleading. - Added
instanceIdto webhooks for raw tracks recordings. - Added performance logging for
enumerateDevices()to help identify slow join times, especially on Firefox when the tab is not in focus. - Removed the beta feature warning from
testCallQuality().
react-native-daily-js
View full release notes →0.75.0
- Fixed ejection logic to prevent issues caused by mismatched local clock times. ⚠️ Note: Participants can no longer join if
eject_after_elapsedis set to a negative value. - Improved
networkStatecalculation by removingrecvPacketLossfrom the formula. - Added
instanceIdto webhooks for raw tracks recordings. - Added performance logging for
enumerateDevices()to help diagnose slow join times.
daily-python
View full release notes →0.18.0
- Introduced support for creating, updating, and removing custom audio tracks. You can now use
CallClient.add_custom_audio_track(),CallClient.update_custom_audio_track(), andCallClient.remove_custom_audio_track()for advanced audio manipulation. - Improved
canReceivepermission support to ensure track states ("off",offReasons) update correctly when permissions are granted or revoked. - Audio and video renderer callbacks (
set_audio_renderer(),set_video_renderer()) now receive the audio or video source as the last argument. - Reduced “no subscription for consumer” and “Failed to close consumer” log messages from error to debug, as these often occur during normal participant disconnections.
Media Services
Recording
- Instance ID in Webhooks: The
recording.ready-to-downloadandraw-tracks-recording-errorwebhooks now include aninstance_idto uniquely identify raw tracks recording sessions. - Fixed an issue to ensure the
instanceIdis correctly propagated for raw tracks recordings from the initial API call through to the final webhook event.
Telephony
-
dialin.readyWebhook: Introduced thedialin.readywebhook event, which notifies you when a room’s SIP endpoint is ready to receive an inbound call. -
originField in Dial-Out Webhooks: Dial-out webhook events now include anoriginfield, specifying the PSTN number or SIP URI that initiated the call. - Default SIP Codec: Added a domain-level property to set default codecs for SIP/PSTN calls. Opus is now the default codec for all dial-in calls.
-
On-Demand SIP Endpoints: SIP endpoints for dial-out are now created on-demand when
startDialOut()is called, improving resource efficiency and room creation reliability. - Error Messaging: Enhanced error messages for dial-in/out configurations during room creation.
New canReceive permission, dynamic track constraints, revamped network stats, enhanced telephony features (caller ID, SIP fixes), improved platform stability and compatibility (reconnection, ICE, and more), and security updates.
Introduced
We extended the available permissions to include
Introduced
Added support for the new
Update
Added support for modifying remote participant’s
Overview
As we close out the first quarter, recent updates across the Daily ecosystem deliver major new features and bug fixes. We’ve introduced thecanReceive permission for fine-grained media control, revamped network statistics (networkState, networkStateReasons) while deprecating older metrics, enhanced telephony capabilities (caller ID, SIP stability, API improvements), refined recording composition, and fixed bugs across the platform.Complete release history for our client SDKs is available in our Github release notes:daily-js
View full release notes →0.77.0
Introduced canReceive Permission
We extended the available permissions to include canReceive, which allows meeting owners to control the media tracks of others in the session. This feature enables use cases like “warm transfers” (e.g., ensuring a customer doesn’t hear an agent before the handoff is complete) and other scenarios requiring selective visibility or audibility within a call. See the participant permissions documentation for details.Improved Network Quality Statistics
We introduced two new fields in the object returned bygetNetworkStats() to provide more accurate network quality data: networkState and networkStateReasons. These replace the deprecated threshold and quality fields, offering a more reliable assessment based on send/receive packet loss, round-trip time, and available outgoing bitrate.Bug fixes and improvements
- Fixed
proxyUrlsupport indailyConfig. - Optimized background effects on Windows by disabling them when hardware acceleration is unavailable.
- Updated internal dependencies to resolve security vulnerabilities.
- Simplified
recordings_bucketresponse inroom()method for enhanced security.
0.76.0
Bug fixes and performance improvements
- Updated Krisp noise cancellation library to v2.2.1.
- Fixed switching back from custom video track to device track via
setInputDevicesAsync(). - Fixed
iceTransportPolicyconfiguration to correctly override domain defaults. - Added
enable_dialoutto TypeScript definitions forDailyRoomInfo.
0.75.2
Bug fixes
- Fixed unnecessary video track re-acquisition during input settings updates.
0.75.1
Bug fixes
- Fixed video constraint preservation when changing devices.
- Removed console error for null
deviceIdinsetInputDevicesAsync.
0.75.0
Enhanced Participant Type for Dial-in/out
Theparticipant object now includes specific participantType values to identify telephony participants: sip-dial-in, sip-dial-out, pstn-dial-in, and pstn-dial-out. This allows for clearer identification of how participants joined via SIP or PSTN dial-in/out.Dynamic Input Track Constraints
Introduced support for dynamically customizing media track constraints during a call usingupdateInputSettings(). This allows changing camera resolution, frame rate, or switching between front and rear cameras without rejoining. The previous constraint-setting methods (userMediaAudioConstraints, userMediaVideoConstraints, and setBandwidth trackConstraints) are now deprecated.Bug fixes and improvements
- Fixed track event reliability for rapid muting/unmuting and custom tracks.
- Fixed track event participant info on leave.
- Improved Krisp initialization error handling.
- Fixed
ondevicechangeundefined error on certain systems. - Updated Banuba SDK to eliminate need for
'unsafe-eval'CSP directive withavoidEval: true. - Updated minimum supported version to 0.64.0.
react-native-daily-js
View full release notes →0.74.0
Introduced canReceive Permission
Added support for the new canReceive permission for granular control over which media tracks participants receive. See the participant permissions documentation for details.Improved Network Quality Statistics
IntroducednetworkState and networkStateReasons fields in getNetworkStats(), replacing deprecated threshold and quality metrics.Bug fixes and improvements
- Added caller ID support for SIP PSTN transfers in
sipCallTransfer(). - Fixed
proxyUrlsupport. - Updated dependencies for security fixes.
- Simplified
recordings_bucketresponse inroom()method.
0.73.0
Bug fixes
- Fixed switching from custom video track back to device track.
- Fixed
iceTransportPolicyconfiguration override. - Added
enable_dialoutto TypeScript definitions.
0.72.1
Reverted Erroneous API Changes
Reverted unintended deprecation notices forupdateInputSettings() and dynamic track constraints to maintain React Native’s existing device handling APIs.0.72.0
Enhanced Participant Type for Dial-in/out
Added specificparticipantType values for telephony participants: sip-dial-in, sip-dial-out, pstn-dial-in, and pstn-dial-out.Added Audio-Only Raw Tracks Recording
Addedraw-tracks-audio-only streaming config for audio-only recording support.Bug fixes
- Fixed track event reliability for muting and custom tracks.
- Updated internal REST APIs to use native utilities.
- Added participant info to
track-stoppedevents on leave.
0.71.0
Bug fixes and improvements
- Added
sessionIdto dial-in events.
daily-android
View full release notes →0.30.0
Ignore Network Devices API
IntroducedCallClient.GlobalConfig.setIgnoredNetworkDevices() to exclude specific network interfaces (VPNs, virtual adapters) during ICE candidate gathering for improved connection reliability.Bug fixes
- Fixed ICE server configuration application via
CallClient.setIceConfig().
0.29.0
Automatic Cloud Recording Start
Added support for automatically starting cloud recording on join whenstart_cloud_recording: true is set in the meeting token.Bug fixes and improvements
- Fixed reconnection with expired meeting tokens.
- Updated dependencies (ffmpeg, libav, libvpx) for security patches.
daily-ios
View full release notes →0.30.0
Bug fixes
- Fixed ICE server configuration application via
setIceConfig().
0.29.0
Automatic Cloud Recording Start
Added support for automatically starting cloud recording on join whenstart_cloud_recording: true is set in the meeting token.Bug fixes
- Fixed reconnection with expired meeting tokens.
daily-python
View full release notes →0.17.0
Improved Linux Compatibility
Recompiled against glibc 2.28 for broader Linux distribution support.0.16.1
Bug fixes
- Fixed virtual speaker device selection.
0.16.0
Update canReceive Permissions Support
Added support for modifying remote participant’s canReceive permission via update_remote_participants().Bug fixes
- Fixed ICE server configuration application.
0.15.0
Automatic Cloud Recording Start
Added support for automatically starting cloud recording on join whenstart_cloud_recording: true is set in the meeting token.Bug fixes
- Fixed reconnection with expired meeting tokens.
Daily Prebuilt
Transcription Language Defaults
Transcription now defaults to the room/domainlang configuration when started via Closed Captions, falling back to English if not configured.Media Services
Recording and Live Streaming
New Features
- Scale Mode Overrides: Added
videoSettings.split.scaleModeOverridesfor individual participant scaling in split layout compositions. - Background Color Support: VCS render pipeline now supports custom background colors via
backgroundColorparameter.
Bug fixes
- Fixed audio-only participant filtering in baseline compositions.
- Fixed instance ID handling for raw tracks recording.
Telephony
Enhanced Caller ID Control
AddedcallerId support in sipCallTransfer() for PSTN transfers with improved default caller ID selection logic.API Improvements
- Domain dial-in configs endpoint now supports filtering by multiple phone numbers.
- Purchased phone numbers endpoint now includes pagination support.
- Room creation API provides more specific telephony provisioning error messages.
Bug fixes and improvements
- Improved SIP INVITE handling to prevent signaling state errors.
- Enhanced error messages for invalid call transfers.
- Fixed layout updates for disconnected SIP participants.
- Added comprehensive transfer guide documentation.
Transcription
Bug fixes
- Fixed race condition when stopping or updating transcription immediately after starting.
New transcription webhooks, better multi-instance recording support, improved telephony features, platform-wide bug fixes, and strengthened SDK reliability.
Fixed crash when creating and deleting
Fixed an issue where
Added
Added
Overview
Rounding out 2024 and kicking off 2025 with major improvements across Daily’s platform components: bug fixes (Safari audio processing detection, call quality test error handling), expanded feature set (improved PSTN/SIP support, expanded multi-instance recording, new transcription webhooks), and strengthened infrastructure (SDK and media service reliability).Complete release history for our client SDKs is available in our Github release notes:daily-js
0.74.0
Updated Krisp CSP Requirements
Added missingblob: source to the CSP guide:Follow-up fix for Safari Audio Processing Detection
Fixed a logical error in Safari version comparison for audio processing support. We resolved an edge case where Safari versions above 18 were incorrectly flagged as unsupported. This completes the Safari 17.4+ audio processing detection fix from our previous release.This change ensures accurate audio processing support detection across all Safari versions.Fixed Call Quality Test Error Handling
Fixed error handling intestCallQuality() when rate limits are hit and improved promise rejection handling to avoid uncaught errors. Test failures now properly resolve with a FAILED result instead of throwing.Added Session ID to Dial-in Events
Added sessionId field to all dial-in events:dialin-connected, dialin-error, dialin-stopped, and dialin-warning.For example:Version Support Update
- The oldest supported version of
daily-jsis now 0.63.0.
react-native-daily-js
0.71.0
This release also includes several core improvements shared with daily-js 0.74.0:- Added sessionId to dial-in events
daily-android
0.28.0
Added support for Cloudflare TURN/STUN servers
Added support for using Cloudflare TURN/STUN servers for ICE connections. If you’re interested in using this for your Daily domain, please contact help@daily.coFixed Android Proguard Build Configuration
Fixed an issue where apps using R8/Proguard would fail to build due to missing Banuba video processor classes:- Added proper Proguard configuration for optional Banuba SDK dependencies
- Ensured R8 optimization doesn’t fail on missing video processor classes
- Maintained backwards compatibility with existing video processor integrations
0.27.0
Fixed crash when creating and deleting VideoTextureView/VideoTrackCapturerToSurface without also creating a CallClient.
Fixed an issue where daily-android would crash when cleaning up video views without an active CallClient:- Moved native library initialization to shared context to prevent premature loading
- Added safety checks to prevent cleanup of uninitialized native contexts
- Improved synchronization of client tracking in shared context
Enhanced Call Reliability during Meeting Moves
Improved call reliability during meeting moves by implementing increased retry attempts for meeting moves to handle longer backend processing times.daily-ios
0.28.0
Added support for Cloudflare TURN/STUN servers
Added support for using Cloudflare TURN/STUN servers for ICE connections. If you’re interested in using this for your Daily domain, please contact help@daily.co0.27.0
Enhanced Call Reliability during Meeting Moves
Improved call reliability during meeting moves by implementing increased retry attempts for meeting moves to handle longer backend processing times.daily-python
0.14.2
Fixed type hints for CallClient.send_app_message()
Fixed type hints forCallClient.send_app_message() to match the expected payload structure.0.14.1
Enhanced App Message Serialization
Addedserialize_none option to CallClient.send_app_message() to control whether None values are serialized to JSON null or ignored. This enables more flexible data handling in application messages.0.14.0
Added DTMF Support for Dial-out Calls
Added the ability to send DTMF tones in dial-out sessions usingCallClient.send_dtmf()docs:- Send numeric tones (0-9), symbols (#, *) and letters (A-D) to control interactive voice systems
- Control automated phone menus and voicemail systems during dial-out calls
- Specify session ID and tone sequences via simple settings object
Added SIP REFER Support
Added support for transferring SIP calls to external endpoints viaCallClient.sip_refer() (docs):- Transfer ongoing SIP dial-in calls to external SIP endpoints
- Control transfers using session ID and destination endpoint
- Support for standard SIP REFER mechanism
Added Daily-to-Daily SIP Call Transfer Support
Added support for transferring SIP/PSTN calls between Daily rooms viaCallClient.sip_call_transfer() (docs):- Transfer SIP dial-in calls between Daily rooms
- Transfer dial-out calls to other SIP/PSTN endpoints
- Control transfers using session ID and destination endpoint
Changed field name in Dial Events
RenamedparticipantId to sessionId in DialoutEvent and DialinEvent objects for consistencyEnhanced Call Reliability during Meeting Moves
Improved call reliability during meeting moves by implementing increased retry attempts for meeting moves to handle longer backend processing times.Daily Prebuilt
- Enhanced accessibility across Prebuilt with ARIA attributes, improved keyboard navigation, semantic HTML, updated labels and roles, and better screen reader support to meet WCAG standards.
- Fixed issue where GIFs with empty titles were not rendered in chat.
- Fixed a case where flickering in chat input height occurred while typing.
Media Services
Recording and Live Streaming
Support Multiple Recording Types with Multi-Instance Recording
Added support for running different recording types simultaneously using instance IDs:- New
typeparameter instartRecording()(docs) API accepts'cloud','raw-tracks', or'local' - Recording types must be enabled via
enable_recordingproperty on room/domain - Each recording instance requires a unique UUID via
instanceIdparameter
Added Audio-Only Support for Raw Tracks Recording
Added support for audio-only recording in raw-tracks recordings:- New
raw-tracks-audio-onlypreset captures only audio tracks, reducing storage requirements and simplifying post-processing workflows - Preset must be specified at recording start - cannot be changed via
updateRecording() - Compatible with existing
raw-tracksprocessing tools for audio extraction and analysis
Added Raw Tracks Processing Tools
Released an open-source suite of tools for processing raw-tracks recordings:- New
raw-tracks-toolsCLI provides tools for analyzing, converting and compositing WebM files from raw-tracks recordings - Supports track alignment, synchronization, and layout composition using Daily’s VCS engine
- Complements existing GUI tools like CloudConvert and Handbrake with more precise control over WebM processing
Added Audio Recording Loss Detection
Added automatic detection of audio quality issues in recordings and streams. This fixes issues where audio quality issues where audio or video tracks were visible during the live call but not in the final recording/stream.Improved Recording Reliability with Network Optimizations
Enhanced network reliability for all recording types (cloud, raw-tracks, live streaming) and phone integration:- Increased UDP buffer sizes to prevent packet loss between servers
- Added server-to-server retransmission between SFU and media workers
- Reduces recording freezes and dropped tracks in environments with network congestion
Fixed Missing Tracks in Recordings
Fixed an issue where tracks could be missing from recordings when added during WebSocket reconnections between SFU and recording services. New tracks are now properly subscribed even during connection re-establishment.Telephony
Renamed Dialout Timeout Configuration Field
Renamed dialout configuration parameter frommax_alone_duration_sec to max_idle_timeout_sec to better describe its purpose of controlling how long dialout participants remain in an idle room.Added Participant Type Support in participants() for Phone Participants
Added distinct participant types for phone participants in participants() to enable better handling of SIP and PSTN users:- New participant types:
sip-dial-in,sip-dial-out,pstn-dial-in,pstn-dial-out - Automatically set for all phone-based participants, including umbrella participants
Fixed Dialout ICE Connection Reliability
Fixed an issue where SIP dialout calls could hang during ICE connection negotiation, improving the reliability of phone system integration.Added dialout_config to Room Configuration
Added dialout_config (docs) as a room-level configuration option to control dialout behavior:dialout_config.allow_room_start: Allow dialouts to start an empty roomdialout_config.max_idle_timeout_sec: Control how long a dialout participant can remain in a room alonedialout_config.dialout_geo: Specify region for dialout sessions
Transcription
Unified Transcription Configuration Across Live and Batch Processing
Aligned transcription configuration options between live transcription and batch processing for consistent API usage:- All configuration options from live transcription (language, model, punctuate, etc.) now supported in batch processing
- Previous undocumented
paramsfield maintained for backward compatibility - Added new
extrafield for additional Deepgram parameters in both APIs
Added Room Name in Transcription API
Enhanced transcription list and info endpoints with room name support:Webhooks
New transcription webhook events
Added three new webhook events to track the full lifecycle of transcriptions:transcript.startedindicates transcription has begun, including metadata like room ID, instance ID and initial statustranscript.ready-to-downloadfires when transcription completes, providing S3 location details for downloading the transcripttranscript.errorprovides detailed error information and context if transcription fails during any stage