github daily-co/daily-js daily-js-2023-05-18-0.45.0
0.45.0

latest releases: daily-js-2024-09-26-0.72.0, daily-js-2024-09-12-0.71.2, daily-js-2024-08-07-0.70.0...
16 months ago

Features

  • Added an optional sendSettings field to the Daily iframe options, which takes a media send settings object (see updateSendSettings() for details). Specifies the send settings to use right away upon joining the call.

Bugfixes

  • Fixed an issue where dial-in users could attempt to guess at valid dial-in PINs for rooms that should not allow dial-in access at all.
  • Fixed a case where a client moved between SFUs could miss that an ongoing recording was stopped while they were in-process for the move.
  • Fixed an issue where transcription-started events could fail to be omitted for participants joining after a transcription had already begun.
  • Fixed an issue where calling join within 2 seconds of preAuth using a non-canonical url (i.e. the case in the url provided didn't match the case of the room's name in our database) would result in an "expired sigauthz token error".
  • Fixed a case where properties provided to startCamera after a preAuth or load could be ignored.
  • Fixed an issue where network quality reports could provide bogus quality data, due to real changes in the amount of data being sent between metrics reports, for instance when screenVideo tracks were started or stopped.
  • Fixed how we handle rtp encoding layers in Firefox, which keeps them in the opposite order from Chrome and Safari.
  • Fixed a bundle of audio+device issues, where:
    • unplugging a system-default device that is not currently in use could trigger a change of device in use to the new system-default
      • For example: when using laptop speakers while wired headphones are the default output device, unplugging the headphones could cause a new system default device to be chosen, which would trigger a change to use that device in Daily, despite the chosen device (laptop speakers) not being affected.
    • when unplugging a device which combines output and input, if either of its devices was the system default for that device type, the in-use device of the other type could change to the system default.
      • For example: using wired headphones while laptop speakers are the default output device and an iPhone Continuity Camera is plugged in, set as the default microphone, and in use, unplugging the Continuity Camera could lead to the output device switching to the laptop speakers, despite the chosen device (wired headphones) not being affected.
    • unplugging a selected non-default output device could result in no output device in use at all
    • disconnecting a non-default device that was in use could require a long time (~7ish seconds) before switching over to a new device.

Other improvements

  • Flipped the default value of strictMode. daily-js will now throw an error when multiple call objects are detected or state-altering calls are made on an instance that has already been destroy()ed.
  • Added a new send settings bandwidth preset bandwidth-and-quality-balanced, and set it as the default bandwidth setting. This preset gives a medium between the quality-optimized and bandwidth-optimized settings. The new default encoding values on desktop are:
desktop: {
  maxQuality: 'high',
  encodings: {
    low: {
      maxBitrate: 90000,
      scaleResolutionDownBy: 4,
      maxFramerate: 15
    },
    medium: {
      maxBitrate: 200000,
      scaleResolutionDownBy: 2,
      maxFramerate: 15,
    },
    high: {
      maxBitrate: 680000,
      scaleResolutionDownBy: 1,
      maxFramerate: 30,
    },
  },
}
  • Updated send settings bandwidth presets for mobile browsers. The new default encoding values on mobile browsers are:
mobileBrowser: {
  maxQuality: 'medium',
  encodings: {
    low: {
      maxBitrate: 110000,
      scaleResolutionDownBy: 4,
      maxFramerate: 15
    },
    medium: {
      maxBitrate: 520000,
      scaleResolutionDownBy: 2,
      maxFramerate: 30,
    },
  },
},
  • Improved validation for camSimulcastEncodings when passed in via dailyConfig, so that many common invalid encoding configurations can be identified immediately.
  • Added a new 'call-instance-destroyed' event which is emitted at the point the _destroy flag is set, to allow e.g. react components holding on to references of the call instance to be notified and update those references.
  • Added more information to the logs when updateParticipants is called on a single participant, to help in call quality debugging.
  • Improved how the sources of websocket connection errors are bubbled up to logs and error handlers.
  • Added a mechanism to fallback on websocket failures to a server using only one level of subdomain nesting (e.g. http://x-y.daily.co, to work around a potential issue with some regional DNS resolvers when encountering nested subdomains like http://x.y.daily.co. If you have users that receive an “Unable to join call” error when they try to join any Daily call, you can direct them to our Network Test page at https://network-test.daily.co/index.html. Have them save a screenshot (or at least copy the Test ID at the top of the page), and get in touch with us at help@daily.co.

Don't miss a new daily-js release

NewReleases is sending notifications on new releases.