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 consistency
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 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