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:
- Camera zoom control convenience method:
CallClient.setCameraZoom()
- Flashlight control convenience method:
CallClient.setCameraTorch()
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 givenparentEl
, it will now accept a React RefparentElRef
. This generally improves the DX when working with conditionally rendered call frame wrappers.
// Beforeconst ref = useRef(null);const callFrame = useCallFrame({parentEl: ref.current,});// Nowconst 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.