> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# February 28, 2023

> The latest updates to Daily's real-time audio and video APIs.

## February 28, 2023

In this release, we delivered a number of improvements and fixes across the platform. For `daily-js` and `react-native-daily-js` developers, please view the READMEs linked below to learn about upcoming changes to the APIs.

## daily-js

### 0.40.0

* Today, calls are by default configured to leave the camera indicator light on even after the camera has been turned off. We're in the process of changing that behavior such that the camera light turns off after the camera has been turned off. The first step in that process is adding a `keepCamIndicatorLightOn` flag. This flag currently causes no change to `daily-js` behavior. In the near future, that flag will become an opt-in flag when the default behavior changes. See the [README](https://github.com/daily-co/daily-js/blob/4324dd75b5eb5e0c04bf74d212a9af9c40fa694b/README.md#turning-off-the-camera-will-turn-off-the-indicator-light-by-default) for more information.
* Daily supports using only a single instance of a call object. Using multiple, simultaneous call objects causes various unexpected issues. To help detect these issues, we've added an opt-in flag called `strictMode` which throws an `Error` if more than one call object is detected in use. `strictMode` will become the default behavior beginning in 0.43.0. See the [README](https://github.com/daily-co/daily-js/blob/4324dd75b5eb5e0c04bf74d212a9af9c40fa694b/README.md#duplicate-call-instances-will-not-be-allowed) for more information.
* Added a `getCallInstance()` method, which can get a handle to your call instance from anywhere in case you lost track of it.
* Added a new `type` field to track events, which can be any of `"video"`, `"audio"`, `"screenVideo"`, `"screenAudio"`, `"rmpVideo"`, `"rmpAudio"`, or other values of type `string` for custom tracks.
* Live streams can now emit update events, including events for errors and interruptions.
* Fixed an issue where fullscreen mode wouldn't trigger on iframed calls.
* Fixed an issue with Safari \< 16 where, when `experimentalChromeVideoMuteLightOff` is set, turning the camera off and then on would result in your local camera track having a 4:3 aspect ratio.
* Fixed an issue where background setting and camera stream changes occurring at the same time could conflict and cause errors.
* Fixed an issue where background settings could not be applied if the camera had never been enabled.
* Fixed an issue where a `403 Forbidden` error could occur while downloading `daily-js` components, if those components are accessed during Daily production deployments.

## react-native-daily-js

### 0.38.0

* Daily supports using only a single instance of a call object. Using multiple, simultaneous call objects causes various unexpected issues. To help detect these issues, we've added an opt-in flag called `strictMode` which throws an `Error` if more than one call object is detected in use. `strictMode` will become the default behavior beginning in 0.43.0. See the [README](https://github.com/daily-co/daily-js/blob/4324dd75b5eb5e0c04bf74d212a9af9c40fa694b/README.md#duplicate-call-instances-will-not-be-allowed) for more information.
* Added a `getCallInstance()` method, which can get a handle to your call instance from anywhere in case you lost track of it.
* Added a new `type` field to track events, which can be any of `"video"`, `"audio"`, `"screenVideo"`, `"screenAudio"`, `"rmpVideo"`, `"rmpAudio"`, or other values of type `string` for custom tracks.
* Live streams can now emit update events, including events for errors and interruptions.
* Fixed an issue where background setting and camera stream changes occurring at the same time could conflict and cause errors.
* Fixed an issue where background settings could not be applied if the camera had never been enabled.
* Fixed an issue where a `403 Forbidden` error could occur while downloading `daily-js` components, if those components are accessed during Daily production deployments.

## Daily Prebuilt

* Prebuilt now supports calling `enumerateDevices()` before calling join. This allows developers to build their own prejoin experience before starting a Prebuilt call.
* Fixed an issue where the host would see the Allow/Deny prompt for a knocking visitor appear partially covered up by the sidebar.
* Fixed an issue on mobile browsers where long participant names would overflow the text container of the paging controller.
* Fixed a bug where, in a very large group call, the microphone mute state can become out of sync with the remote participant's microphone state.
* Fixed an issue in Safari 16 where Picture-in-Picture was not working correctly.
* Improved Safari 16 Picture-in-Picture to support displaying multiple participants and screen shares.
* Disabled Picture-in-Picture and the microphone for Safari 14 and below due to Safari not supporting the required APIs.

## REST API

* The `POST /rooms` endpoint for creating new rooms now has a rate limit of 50 requests per 30 seconds; this is the same rate limit as the `DELETE /rooms/:name` endpoint. See our [rate limits](/docs/rest-api#rate-limits) for more information.
* The `GET /meetings` endpoint now includes a `no_participants` optional parameter. If set to `true`, this endpoint won't return the participant list in each meeting. This is useful for meetings with large numbers of participants.

## Live streaming & recording

* Recordings stored in custom S3 buckets can now be saved with custom prefixes based on these predefined variables: `room_name`, `domain_name`, `mtg_session`, `date`, & `instanceId`. This setting can be applied as a room or domain configuration. See [`recordings_template`](/reference/rest-api/domain/get-domain-config#response-config-recordings-template) for more details.
* Recordings & RTMP streams have a new max video bitrate of 10 Mbps.
* RTMP streams now have a lower minimum video bitrate of 10 kbps for audio-only streams.
* The [`"live-streaming-updated"` event](/reference/react-native/events/live-streaming-events#live-streaming-updated) now returns a `state` on a successful reconnection (`"connected"`) or failure (`"interrupted"`).
* Fixed a bug where the last segment of an HLS recording wasn't being written to the S3 bucket.

## VCS

* Add support for direction handling for the `split` video setting: `videoSettings.split.direction`. It allows you to control whether the split is `"horizontal"` or `"vertical"`. The default is automatic given the viewport, `"auto-by-viewport"`.
* Add new active speaker highlight parameters:
  * `videoSettings.highlight.color`: the color of the active speaker highlight. The default is `rgb(255, 255, 255)`.
  * `videoSettings.highlight.stroke_gu`: the width of the highlight. The default is `0.2`.
* Improved screen share support in the VCS Simulator. Simulated screen shares are now consolidated with camera inputs where possible, so that each camera and screen share creates just one simulated room peer (as opposed to previous implementation that included screen shares as separate peers).
* The VCS Simulator now includes a dropdown menu that allows for faster access to each param group: `videoSettings`, `text`, `image`, `toast`, `webFrame`, `openingSlate`, `titleSlate`.
* Fixed a bug that allowed x/y coordinates to be negative, which made some compositors unhappy.

## Dashboard

* Fixed an issue where accounts with a large number of recordings would find the Recordings tab slow to load.

## Additional

* Fixed an issue where the aspect ratio would change to 4:3 when applying video processing to a video track (e.g., applying background blur or an image).
* Improved memory utilization when applying video processing to a video track (e.g., applying background blur or an image)
* Improved how background images with non-16:9 ratios are applied when adding a background image to a camera stream.
* Fixed an issue where an error was returned when applying background blur or a background image before a camera was turned on.
* Fixed a bug that occurred after we upgraded the Deepgram SDK used for our transcription feature. We are currently running Deepgram SDK v1.14.0.
* Updated server logging so that all transcribed content is redacted from logs.
* The oldest supported version of `daily-js` is now v0.30.0.
