Skip to main content
These events fire when the camera starts or encounters an error, when input or output devices change, and when media send/receive settings are updated.

started-camera

Fires when the local participant’s camera starts. This happens as part of the standard join flow, or when explicitly calling startCamera().
// Example event object
{
  "action": "started-camera",
  "callClientId": "17225364729060.9442072768918943"
}

camera-error

Fires when a camera or microphone error occurs. The error.type field categorizes the problem; error.msg is a human-readable description.
For more on handling device errors, see the device permissions guide.
action
string
Always "camera-error".
callClientId
string
The ID of the call client instance that emitted this event.
error
object
Always contains type and msg. Some types include additional fields.
errorMsg
string | object
deprecated
Retained for backwards compatibility.
call.on('camera-error', ({ error }) => {
  if (error?.type === 'permissions') {
    showPermissionsPrompt(error.blockedBy);
  } else if (error?.type === 'not-found') {
    showNoDeviceMessage(error.missingMedia);
  } else {
    showGenericDeviceError(error?.msg);
  }
});

available-devices-updated

Fires when a device becomes available or is removed — for example when a headset is connected or disconnected. See enumerateDevices() for details on the device properties returned.
action
string
Always "available-devices-updated".
callClientId
string
The ID of the call client instance that emitted this event.
availableDevices
MediaDeviceInfo[]
An array of MediaDeviceInfo objects representing all devices currently available to the browser.
// Example event object
{
  "action": "available-devices-updated",
  "callClientId": "17225364729060.9442072768918943",
  "availableDevices": [
    { "deviceId": "abc123", "groupId": "", "kind": "videoinput", "label": "Front Camera" },
    { "deviceId": "def456", "groupId": "", "kind": "audioinput", "label": "Built-in Microphone" },
    { "deviceId": "ghi789", "groupId": "", "kind": "audiooutput", "label": "Built-in Speakers" }
  ]
}

selected-devices-updated

Fires when the participant selects a new input or output device. Unlike available-devices-updated, which fires whenever the system device list changes, this event only fires when the participant has actively chosen a different device.
action
string
Always "selected-devices-updated".
callClientId
string
The ID of the call client instance that emitted this event.
devices
object
Contains camera, mic, and speaker keys with MediaDeviceInfo-shaped objects for the newly selected devices.
// Example event object
{
  "action": "selected-devices-updated",
  "callClientId": "17225364729060.9442072768918943",
  "devices": {
    "camera": {},
    "mic": {},
    "speaker": { "deviceId": "deviceId", "kind": "audiooutput", "label": "label", "groupId": "groupId" }
  }
}

input-settings-updated

Fires every time the input settings object changes. Includes all current input settings, even those that did not change. See updateInputSettings() for details on the settings shape.
action
string
Always "input-settings-updated".
callClientId
string
The ID of the call client instance that emitted this event.
inputSettings
object
The full current input settings object, including video and audio keys with their settings and processor sub-objects.
// Example event object
{
  "action": "input-settings-updated",
  "callClientId": "17225364729060.9442072768918943",
  "inputSettings": {
    "video": {
      "settings": { "frameRate": 15 },
      "processor": { "type": "background-blur", "config": { "strength": 0.2 } }
    },
    "audio": {
      "settings": { "deviceId": "default", "echoCancellation": false },
      "processor": { "type": "noise-cancellation" }
    }
  }
}

send-settings-updated

Fires when the call’s send settings change. Includes the full current send settings object.
action
string
Always "send-settings-updated".
callClientId
string
The ID of the call client instance that emitted this event.
sendSettings
DailySendSettings
The full current send settings object. See updateSendSettings() for the shape.
// Example event object
{
  "action": "send-settings-updated",
  "callClientId": "17225364729060.9442072768918943",
  "sendSettings": {
    "video": "default"
  }
}

receive-settings-updated

Fires when the call’s receive settings change. Includes the full current receive settings object.
action
string
Always "receive-settings-updated".
callClientId
string
The ID of the call client instance that emitted this event.
receiveSettings
DailyReceiveSettings
The full current receive settings object. See updateReceiveSettings() for the shape.
// Example event object
{
  "action": "receive-settings-updated",
  "callClientId": "17225364729060.9442072768918943",
  "receiveSettings": {
    "base": { "video": { "layer": 2 } }
  }
}

See also