Features
-
A new permissions system allows you to specify a couple of different permissions for each participant:
canSend
, which specifies which kinds of media the participant is allowed to send ('video'
,'audio'
,'screenVideo'
,'screenAudio'
).hasPresence
, which specifies whether the participant appears as “present” (as opposed to “hidden”) in the meeting, i.e. whether they are listed in everyone’sparticipants()
.
Participant permissions can be specified in a couple of ways:
- Initial default permissions for new participants in your domain, room, or meeting token configurations
- A meeting owner can change other participants’ permissions at runtime with a call to
updateParticipant()
orupdateParticipants()
, e.g.updateParticipant('<participant-id>', { updatePermissions: { canSend: new Set(['video', 'audio']), hasPresence: true } })
-
The code that daily-js downloads before you join a call is now “pinned” to this version of daily-js. That means you will no longer get (in many cases, unwanted) updates to Daily client-side code without updating your daily-js dependency. Read more about this change in the last version’s release notes.
Bugfixes
- We fixed a bug where if you attempted to update your desired max spatial layer for some subscribed media (via
updateReceiveSettings({ '<participant-id>': { video: { layer: } } })
, say) while the subscription was still being established, the updated layer would never take effect. getNetworkTopology()
will now return the currently-chosen topology as soon as we know it, not after a delay.- We’ve stopped polluting your Sentry logs with our noisy breadcrumbs.
- If you
setUserData(null)
, other participants will see youruserData
change tonull
, notundefined
.
Other improvements
- Some optimizations to client-server signaling messages.