June 5, 2024

Overview

In May, we were busy extending support for SIP, dial-in, and dial-out use cases. Additionally, we've continued to round out our client SDKs with the top feature requests from Q1 of this year, including:

  • Adding zoom and flashlight controls to daily-ios
  • Adding the ability to cycle cameras with daily-js
  • Dynamically control screen share audio and video tracks with daily-js

...and more! Check out the changelog below for details.

daily-js

0.65.0

Cycle cameras on mobile browsers

To help users more easily cycle through front and back cameras on their mobile devices, we've added a new method called cycleCamera(). For example, to cycle, you can simply call cycleCamera({ preferDifferentFacingMode: true }).

SIP: Dial-in ready event

If you're building a SIP-enabled workflow, your daily-js clients now have the ability to determine when a SIP room is ready by listening to the dialin-ready event.

Release notes

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

0.64.0

Control screen share audio and video

Screen sharing now supports the ability to control the screenAudio and screenVideo track states. For example, this functionality allows you to mute a screen share's audio while allowing the video to continue playing. Check out the updateScreenShare() to learn more.

Prevent meeting token abuse

We've introduced a new domain and room property called enforce_unique_user_ids. Setting this to true along with usage of setting user_id’s on tokens will enforce that only one participant with a given user_id can be in a call at once, securing against token sharing. Note: If someone joins with an id already in use, they will be allowed in and the existing participant will be ejected, receiving an error event of a type 'ejected'.

Release notes

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

react-native-daily-js

0.63.0

Receive settings for custom tracks

If you're using custom tracks in your react-native-daily-js, you can now control the receive settings with the updateReceiveSettings() method.

SIP: Dial-in ready event

If you're building a SIP-enabled workflow, your daily-js clients now have the ability to determine when a SIP room is ready by listening to the dialin-ready event.

Release notes

For more information, check out the release notes.

0.62.0

Control screen share audio and video

Screen sharing now supports the ability to control the screenAudio and screenVideo track states. For example, this functionality allows you to mute a screen share's audio while allowing the video to continue playing. Check out the updateScreenShare() to learn more.

Release notes

For more information, check out the release notes.

daily-android

0.20.0

Release notes

This release contains a number of bugfixes. For more information, check out the release notes.

daily-ios

0.20.0

Zoom and flashlight controls

daily-ios now provides native controls to turn on the flashlight and control the camera zoom. You can control both using the updateInputs() method. We've also provided convenience methods making it easier to control the camera and flashlight:

Release notes

For more information, check out the release notes.

daily-python

0.9.0, 0.9.1

Release notes

These releases contains a number of bugfixes. For more information, check out the release notes.

0.8.0

Dial-in events

daily-python added support for a number of dial-in events:

  • dialin-ready
  • dialout-connected
  • dialout-stopped
  • dialout-error
  • dialout-warning

Release notes

For more information, check out the release notes.

daily-react

0.19.0

useCallFrame updated

  • ⚠️ Breaking change: useCallFrame: Instead of accepting the resolved value for a given parentEl, it will now accept a React Ref parentElRef. This generally improves the DX when working with conditionally rendered call frame wrappers.
// Before
const ref = useRef(null);
const callFrame = useCallFrame({
parentEl: ref.current,
});
// Now
const ref = useRef(null);
const callFrame = useCallFrame({
parentElRef: ref,
});
  • Removed unnecessary playsInline attributes from rendered <audio> elements
  • Updated devDependencies

Daily Prebuilt

Disable PiP support in Safari

Daily Prebuilt is disabling Picture-in-Picture support for Safari users. Safari does not sufficiently support Picture-in-Picture functionality, which results in Safari crashing for users when a video stream ends. We will investigate reintroducing this feature for Safari in later versions.

Improvements and fixes

  • Fixed an issue where the Prebuilt client could stop subscribing to remove videos.
  • Fixed an issue where background effects were not working for browsers with WebGL disabled.
  • Fixed an issue where some users were not able to download the call object bundle, which prevented them from joining a Prebuilt call.

Media Services

Dial-in & Dial-out

  • Added support for pinless dial-in.

VCS

  • In the VCS baseline composition, long participant labels are now truncated with ellipsis when space is tight.
  • Fixed an issue with VCS dominant mode preferScreenshare.
  • New VCS param 'videoSettings.dominant.includeWebFrame' allows WebFrame content to be automatically included in the dominant layout mode.

Webhooks

  • Added support to enable multiple webhooks for a domain. Contact us to learn more.

Dashboard

  • Fixed a bug where session logs would appear to overlap one another.

Additional

  • Added REST API for ejecting and banning users by user_id. See /rooms/:name/eject for more information.
  • The oldest supported version of daily-js is now 0.55.0.