Features
- Added a new
canAdmin
key to theparticipant.permissions
object, which expresses which types of administrative tasks a participant is able to perform. This feature allows specification of which participants are allowed to take which administrative actions in specific areas, like streaming, transcription, and participant moderation. For more information, see our docs (link coming soon). - Related to the above canAdmin feature, participants with a suitable administrative role can now also modify their own permissions, for instance to remove their own presence in a call. There are some caveats, for instance: a meeting owner cannot revoke their own participant administration privileges. For more detailed information, please see the documentation (link coming soon).
- New advanced firewall control add-on features:
- These provide advanced mechanisms allowing end-users to join Daily-powered calls when they cannot connect directly to Daily servers and Daily TURN servers. For example, when restrictive firewall policies are in use. These mechanisms are enabled via the new frame properties
proxyUrl
andiceConfig
and the corresponding methodssetProxyUrl
andsetIceConfig
. - This is currently a beta release; please reach out to support to enable these features. Additional charges apply.
- Full documentation links are coming soon. In summary:
proxyUrl
, if defined, will cause connections that would normally be made to Daily’s https and websocket endpoints to instead be sent to the proxy server, with the Daily endpoint appended to theproxyUrl
. For example, ifproxyUrl = "https://my-proxy:8080/proxyDaily"
, then a call tohttps://gs.daily.co/something
would becomehttps://my-proxy:8080/proxyDaily/gs.daily.co/something
.- Note:
proxyUrl
must be a valid URI, with no query or fragment components.
- Note:
iceConfig
, if defined, will allow customers to specify their own TURN servers rather than only using ours.iceConfig
is an object containing the following keys:iceServers
, an array of objects specifying urls and credentials.placement
, a string controlling how the providediceServers
are used relative to the Daily-provided servers, allowing values"front"
,"back"
, or"replace"
, defaulting to"front"
, meaning “use the custom servers first”.iceTransportPolicy
, a string with possible values"all"
or"relay"
, controlling whether to use all or only relay candidates. Defaults to"all"
.
- These provide advanced mechanisms allowing end-users to join Daily-powered calls when they cannot connect directly to Daily servers and Daily TURN servers. For example, when restrictive firewall policies are in use. These mechanisms are enabled via the new frame properties
- Allowed specifying recording parameters in a new
start_cloud_recording_opts
key in the join token. These will take effect when automatically starting recordings using the relatedstart_cloud_recording
key. See the documentation for more information. - Added
testWebsocketConnectivity()
andabortTestWebsocketConnectivity()
methods, which respectively begin and abort a connectivity test to various regions Daily operates in. Each returns an object with a keyresult
, corresponding to a string with a value of"passed"
,"failed"
, or"aborted"
, and with keysabortedRegions
,failedRegions
, andpassedRegions
, each of which is an array of string region names. Calling abort before the test completes will return the same object.
Bugfixes
- Fixed an issue where
sendSettings
would not apply when supplied as a property toDailyIframe.createFrame()
. - Fixed an issue where certain ICE candidate information could be missing from logs.
- Fixed an issue where on Chrome we were erroneously categorizing screen video tracks as 'interrupted' when their content was not changing.
- Prevented an unwanted websocket warning after leave when we've manually closed the websocket channel.
- Make the encodings other than 'low' in DailyVideoSendSettings optional.
v2CamAndMic
fixes (these only apply if you havev2CamAndMic
enabled in your app):- Fix an issue where muting the cam wouldn't pause the producer on the server, which would result (probably among other things) in pause states not showing up properly in recordings.
- Fixed a bug where enabling noise cancellation via inputSettings could lead to processed audio always coming through silent if there wasn't a user gesture on the page by a certain time.
- Fixed an issue where, on certain browser and platform combinations, the SDK could attempt to unmute and send a null track from blocked devices, which caused errors to be logged despite nothing actually being broken.
Other improvements
- For users on Safari 16+ (the vast majority of Daily's Safari users) we now do a better job of avoiding attempting to obtain permission for a single-device if we can tell that the user has already explicitly hit "Deny" on a prompt for both cam and mic.
- Added logic to improve our ability to bill for media processor use.
- Bumped warnings for oldest supported versions of daily-js to 0.40.0.