> ## 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.

# March 9, 2021

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

<img src="https://mintcdn.com/daily-co/k5NXwOZS3v6Jul7S/assets/changelog/changelog-11.png?fit=max&auto=format&n=k5NXwOZS3v6Jul7S&q=85&s=26aa9b6ff2bfea531f86df0d695ecfb6" alt="Photo of Wesley Faulkner and title of video AMA" width="2560" height="1440" data-path="assets/changelog/changelog-11.png" />

*Watch our [first-ever video AMA](https://www.youtube.com/watch?v=erMBerV6CZ4\&t=1s) with Wesley.*

Read on for details about our first release under a new versioning scheme (we got tired of all those 9's).

## daily-js 0.10.0

### 🔏  (**BETA**) Room access control methods and events

If you're using the [Daily call object](/reference/daily-js/daily-call-client) along with WebSocket signaling (`signaling_impl = 'ws'` in your [room config](/reference/rest-api/rooms/get-room#response-config)), then you can try out a new set of room access control APIs geared towards implementing a "lobby". Users can request "full" access to a meeting and wait for a meeting owner to let them in.

These new methods and events let you:

* Determine the local participant's access level, even before attempting to join a meeting: [`preAuth()`](/reference/daily-js/instance-methods/pre-auth), [`accessState()`](/reference/daily-js/instance-methods/access-state), [`'access-state-updated'`](/reference/daily-js/events/lifecycle-events#access-state-updated)
* Request elevated access to a meeting: [`requestAccess()`](/reference/daily-js/instance-methods/request-access)
* Manage pending access requests (if you're a meeting owner): [`waitingParticipants()`](/reference/daily-js/instance-methods/waiting-participants), [`updateWaitingParticipant()`](/reference/daily-js/instance-methods/update-waiting-participant), [`updateWaitingParticipants()`](/reference/daily-js/instance-methods/update-waiting-participants), [`'waiting-participant-added'`](/reference/daily-js/events/participant-events#waiting-participant-added), [`'waiting-participant-updated'`](/reference/daily-js/events/participant-events#waiting-participant-updated), [`'waiting-participant-removed'`](/reference/daily-js/events/participant-events#waiting-participant-removed)

### 🐛  Bugfixes

* [`setInputDevicesAsync()`](/reference/daily-js/instance-methods/set-input-devices-async) and [`getInputDevices()`](/reference/daily-js/instance-methods/get-input-devices) can now more reliably be used any time before invoking [`join()`](/reference/daily-js/instance-methods/join).
* The ['fullscreen'](/reference/daily-js/events/iframe-ui-events#fullscreen) and ['exited-fullscreen'](/reference/daily-js/events/iframe-ui-events#exited-fullscreen) events now have the expected payloads: `{ action: 'fullscreen' }` and `{ action: 'exited-fullscreen' }`, respectively.

## New blog posts and podcasts

<div className="contentRow">
  <ContentCard title="Introducing Daily's webinar series: Building an open source webinar app with Daily's prebuilt UI" date="4 Mar 2021" readTime={3} href="https://www.daily.co/blog/webinartc-building-a-webinar-app-with-react-and-daily-prebuilt-ui/" />

  <ContentCard title="Video AMA: What is a video API and what is its use?" date="19 Feb 2021" readTime={13} href="https://www.youtube.com/watch?v=erMBerV6CZ4&t=1s" />

  <ContentCard title="Podcast: This Week in Tech (TWiT) 810" date="14 Feb 2021" readTime={143} href="https://twit.tv/shows/this-week-in-tech/episodes/810" />

  <style jsx>
    {`
          .contentRow {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            grid-auto-rows: 1fr;
            grid-gap: 20px;
          }
        `}
  </style>
</div>
