Settings

Configuration options

The Stream API provides multiple configuration options on the call type level.

Audio

Setting NameTypeDescription
access_request_enabledBooleanWhen true users that do not have permission to this feature can request access for it
opus_dtx_enabledBooleanWhen true OPUS DTX is enabled
redundant_coding_enabledBooleanWhen true redundant audio transmission is enabled
mic_default_onBooleanWhen true the user will join with the microphone enabled by default
speaker_default_onBooleanWhen true the user will join with the audio turned on by default
default_deviceString speaker or earpieceThe default audio device to use

Backstage

Setting NameTypeDescription
enabledBooleanWhen backstage is enabled, calls will be in backstage mode when created and can be joined by users only after goLive is called

Video

Setting NameTypeDescription
enabledBooleanDefines whether video is enabled for the call
access_request_enabledBooleanWhen true users that do not have permission to this feature can request access for it
camera_default_onBooleanWhen true, the camera will be turned on when joining the call
camera_facingString front, back or externalWhen applicable, the camera that should be used by default
target_resolutionTarget Resolution ObjectThe ideal resolution that video publishers should send

The target resolution object is an advanced resolution. Changing this from the default values can lead to poor performance. This is how you define it:

Setting NameTypeDescription
widthNumberThe width in pixels
heightNumberThe height in pixels
bitrateNumberThe bitrate

Screensharing

Setting NameTypeDescription
enabledBooleanDefines whether screensharing is enabled
access_request_enabledBooleanWhen true users that do not have permission to this feature can request access for it

Recording

Setting NameTypeDescription
modeString available, disabled or auto-onavailable → recording can be requested
disabled → recording is disabled
auto-on → recording starts and stops automatically when one or multiple users join the call
qualityString audio-only, 360p, 480p, 720p, 1080p, 1440pDefines the resolution of the recording
audio_onlybooleanIf true the recordings will only contain audio
layoutobject, for more information see the API docsConfiguration options for the recording application

Broadcasting

Setting NameTypeDescription
enabledBooleanDefines whether broadcasting is enabled
hlsHLS Settings (object)Settings for HLS broadcasting

HLS Settings

Setting NameTypeDescription
enabledBooleanDefines whether HLS is enabled or not
auto_onBooleanWhen true HLS streaming will start as soon as users join the call
quality_tracksString audio-only, 360p, 480p, 720p, 1080p, 1440pThe tracks to publish for the HLS stream (up to three tracks)

Geofencing

Setting NameTypeDescription
namesList of one or more of these strings european_union, iran_north_korea_syria_exclusion, china_exclusion, russia_exclusion, belarus_exclusion, india, united_states, canadaThe list of geofences that are used for the calls of these type

More information can be found in the API docs.

Transcription

Setting NameTypeDescription
modeString available, disabled or auto-onNot implemented yet
closed_caption_modeStringNot implemented yet

Ringing

Setting NameTypeDescription
incoming_call_timeout_msNumberDefines how long the SDK should display the incoming call screen before discarding the call (in ms)
auto_cancel_timeout_msNumberDefines how long the caller should wait for others to accept the call before canceling (in ms)

Push Notifications Settings

Setting NameTypeDescription
enabledBoolean
call_live_startedEvent Notification Settings ObjectThe notification settings used for call_live_started events
session_startedEvent Notification Settings ObjectThe notification settings used for session_started events
call_notificationEvent Notification Settings ObjectThe notification settings used for call_notification events
call_ringEvent Notification Settings ObjectThe notification settings used for call_ring events

In order to define the event notification settings object, here is the structure of how it should look:

Setting NameTypeDescription
enabledBooleanWhether this object is enabled
apnsAPNS Settings ObjectThe settings for APN notifications

APNS Settings Object

Remote notifications can only be customized if your application implements a Notification Service Extension. For simple customizations, you can change the title and body fields at the call type level. Both title and body fields are handlebars templates with call and user objects available in their scope.

Setting NameTypeDescription
titleTemplateThe string template for the title field of the notification
bodyTemplateThe string template for the body field of the notification

  • You can provide the settings when creating or updating a call type
  • For maximum flexibility, you can override the settings on the call level when creating or updating a call

Code examples

Settings

client.video.createCallType({
  name: "<call type name>",
  settings: {
    screensharing: {
      access_request_enabled: false,
      enabled: true,
    },
  },
});

// override settings on call level
call.create({
  data: {
    created_by_id: "john",
    settings_override: {
      screensharing: {
        enabled: false,
      },
    },
  },
});

Notification settings

client.video.createCallType({
  name: "<call type name>",
  notification_settings: {
    enabled: true,
    call_notification: {
      apns: {
        title: "{{ user.display_name }} invites you to a call",
      },
      enabled: true,
    },
    session_started: {
      enabled: false,
    },
  },
});
© Getstream.io, Inc. All Rights Reserved.