October 17, 2024

Overview

Over the past quarter, we've rolled out several updates to our SDKs. To explore the full scope of these improvements, check out our GitHub repositories:

Follow the individual release notes on GitHub:

Check out the notes below for the highlights.

daily-js

0.72.1 and 0.72.0

  • Fixed issue in Chrome 129 that could prevent some users from changing microphone and camera devices.
  • Fixed the camera zoom issue that occurred in Portrait mode specifically when using Chrome or within a webview on iOS 16.

To learn more about the release, check out the release notes.

0.71.2

  • Now you can transcribe a subset of participants along with the ability to initiate multiple simultaneous transcription on the same call. For more information, check out our updated guide.
  • startDialOut() now supports setting a userId that gets associated with all dial out events
  • Added a new test-completed event that gets emitted whenever a pre-join test has completed, providing a way for accessing the results asynchronously. This also provides a way for Daily Prebuilt customers to access the results of the call quality test that gets run as part of its prejoin UI. Check out the docs for more info.
  • Fixed issue with background processing where the raw background would appear for a brief moment when switching between backgrounds.

To learn more about the release, check out the release notes.

0.70.0

  • Support for multiple simultaneous call client instances is now in beta. For more information, check out our new guide.
  • Improved noise cancellation (specified via updateInputSettings() or the inputSettings call property) and made it available on desktop and mobile Safari.
  • Added a networkThreshold property to call.participants() objects and related events (e.g. participant-updated, etc.), showing their network quality.

To learn more about the release, check out the release notes.

0.69.0

  • Fixed an issue in Chrome 127 where the video was freezing when applying background effects.

To learn more about the release, check out the release notes.

0.68.0

  • New getter methods isLocalAudioLevelObserverRunning() and isRemoteAudioLevelObserverRunning()
  • Exposing custom SIP headers received during the connection within the dialin connected event.
  • Updated console deprecation warning for testConnectionQuality() to point to daily's preferred alternative of testCallQuality().
  • Updated cookies to follow the new CHIPS (Cookies Having Independent Partitioned State) guidelines and 3rd party restrictions. More details here.
  • Improved internals of testCallQuality() so that the test's server connections better match what is expected to be in use during the actual call.

To learn more about the release, check out the release notes.

react-native-daily-js

0.69.0

Now you can transcribe a subset of participants along with the ability to initiate multiple simultaneous transcription on the same call.

0.68.0

  • Support for multiple simultaneous call client instances is now in beta. For more information, check out our new guide.
  • Added a networkThreshold property to call.participants() objects and related events (e.g. participant-updated, etc.), showing their network quality.

0.67.0

Added alpha support for multiple call client instances. Beta support starts in react-native-daily-js 0.68.0.

0.66.0

  • New getter methods isLocalAudioLevelObserverRunning() and isRemoteAudioLevelObserverRunning().
  • Exposing custom SIP headers received during the connection within the dialin connected event.

daily-android

0.24.0

  • Added the CallClientListener.onAppMessageFromRestApi() callback for receiving app messages sent through the REST API.
  • TranscriptionStatus.transcriptId is now nullable, fixing an error where null values from the server would prevent the onTranscriptionStarted() callback from being invoked.
  • Transcription property tier has been deprecated. Use model instead. See https://developers.deepgram.com/docs/model.
  • Fixed a logging-related crash (stack overflow) that could occur when rapidly starting and stopping the SDK.

0.23.0

  • Added callConfig field to CallJoinData.
  • The VideoView class is now marked as open.

0.22.0

  • Added new metrics that will allow us to better understand the meeting quality.
  • Fixed a crash when stopping screen share
  • Fixed an issue to show the correct state when the mic is muted remotely.

daily-ios

0.24.0

New delegate function for receiving app messages sent through the REST API.

func callClient(_ callClient: CallClient, appMessageFromRestApiAsJson jsonData: Data) { }

  • Transcription property tier has been deprecated. Use model instead. See https://developers.deepgram.com/docs/model.
  • Fixed a logging-related crash (stack overflow) that could occur when rapidly starting and stopping the SDK.

0.23.0

Added callConfig field to CallJoinData

0.22.0

  • Added new metrics that will allow us to better understand the meeting quality.
  • Fixed an issue to show the correct state when the mic is muted remotely.
  • Fixed network stats to use Float64 and Int64 data types to improve precision.

daily-python

0.11.0

Added

  • Added callerId field to DialoutSettings.
  • Added CallClient.start_live_stream(), CallClient.stop_live_stream(), CallClient.update_live_stream(), CallClient.add_live_streaming_endpoints() and CallClient.remove_live_streaming_endpoints().
  • Added EventHandler.on_live_stream_updated().
  • Added support for specifying custom TURN servers via CallClient.set_ice_config().
  • Added support for specifying a proxy URL via CallClient.set_proxy_url().
  • Added missing dialin/dialout handlers in daily.pyi.
  • EventHandler.on_dialin_answered should be EventHandler.on_dialout_answered.

Changed

Fixed

  • Fixed an issue that caused app messages sent from the REST API to not be received correctly.
  • Fixed daily.pyi type completions.
  • Fixed a crash caused by passing non-serializable data to CallClient.send_app_message.

Release notes

These releases contain a few small features and bugfixes. For more information, check out the release notes.

daily-react

0.21.0

2 Breaking changes

  • Removed recoilRootProps from DailyProvider as we've internally migrated from Recoil to Jotai.
    • Improved Jotai state atoms for reduced CPU and memory usage.
    • Added jotai as peer dependency
  • Added jotaiStore prop to DailyProvider, which, when passed with a Jotai store, is equivalent to passing recoilRootProps={{ override: false }} in previous versions.

0.20.0

The 0.20.0 requires @daily-co/daily-js@>=0.68.0.

  • useAudioLevelObserver(): new hook to handle participant mic volume levels. This hook is based on audio level observers in daily-js. useAudioLevel() is now deprecated. Use useAudioLevelObserver() instead.
  • useParticipantIds(): the fix to avoid potential stale state introduced in 0.19.1 was reverted, due to negative performance impact. Instead stale state is now avoided by prioritizing internal event handlers in Daily React over application level event handlers.

Daily Prebuilt

Improvements and fixes

  • Allow custom buttons to have active states
  • Allow changing hover color in Prebuilt UI
  • Fixed text overlapping with chat in breakout rooms
  • Prebuilt chat resizes as per content
  • Cam and Mic icons are now hidden when canSend is set to false
  • Added support for new enable_shared_chat_history domain and room properties, which controls whether newly-joined participants can see chat history from before they joined.
  • Added Danish language support to Prebuilt.
  • Allow users to override userMediaAudioConstraints when using Prebuilt.

Media Services

Dial-in & Dial-out

  • Added support for SIP Dial-in to automatically start a room when no user is present in Daily room
  • Add webhooks for dialout and dialin events
  • Added support for creating room when initiating PSTN or SIP dialout via REST API.
  • Reduced the room creation time when SIP/PSTN properties are set in the domain or room properties
  • Participant joined event fires for dial-out
  • Allow setting user_id in startDialOut
  • Send dialin-ready as soon as participant join
  • Add ability to configure dialin IVR message
  • Exposed custom SIP headers in dialin-connected
  • Added support for SIP REFER after the call is connected

Recording and Live streaming

  • Close the recording on meeting move
  • Fixed a bug in recordings API: totalParticipant should include all the participants

VCS

  • Prevent transcription messages from being printed twice in VCS recordings/streams
  • VCSRender rounded corners for video layers
  • Released in beta a new VCS pipeline that performs 4x-5x better. Will eventually replace the current pipeline. No customer action is needed.
  • VCS WebFrame renders at correct aspect ratio when embedded in the dominant layout mode using the param videoSettings.dominant.includeWebFrame
  • Ensure WebFrame is immediately loaded when params are passed in startLiveStreaming / startRecording

Batch processor

  • Fix the default path for soap-note/summarize
  • Custom prompts have a length limit
  • Added setting a transcription_template
  • Tag each live transcription request with transcriptId
  • Add updateTranscription API across all SDKs and APIs
  • Fix formatting of speaker identification tags in WebVTT output of transcriptions