# sora.conf リファレンス

Sora の設定ファイルは `key = value` 形式です。
文字列であっても `""` で囲わないでください。

## 単位指定

`sora.conf` では一部の設定に単位の指定が必須です。

- 利用可能な単位- ミリ秒 `ms`
  - 秒 `s`
  - 分 `min`
  - 時 `h`
- 数値と単位の間にはスペースを入れて下さい

```ini
webhook_response_timeout = 30 s
```

## license_file

**デフォルト**: "etc/license.json"

ライセンスファイルのパスを指定してください、可能な限り **絶対パス** を指定してください。

```ini
license_file = etc/license.json
```

## label

**デフォルト**: "WebRTC SFU Sora"

認証やイベントウェブフックリクエスト送信時に送られる、サーバー固有の値を指定することができます。

```ini
label = sora-node-001.example.com
```

## ipv4_address

**デフォルト**: 設定無し

この値を有効にしなくても自動で IPv4 アドレスを収集しますが、
固定された IPv4 アドレスがサーバーに割り当てられている場合は指定することを推奨しています。

IPv4 アドレスを指定してください。 `192.0.2.10` のように指定してください。

```ini
ipv4_address = 192.0.2.10
```

## ipv6

**デフォルト**: false

IPv6 機能を有効にするかどうか指定してください。デフォルトでは無効になっています。

この機能を有効にすると以下の機能が有効になります

- ipv6_address が指定されていない場合は自動で IPv6 アドレスが収集される
- ipv6_address で指定された値が使用される
- IPv6 アドレスが使用可能だった場合、 TURN サーバーの URL が IPv6 でも払い出される

この機能はシグナリングや API を IPv6 有効にする機能ではありません。シグナリングや API は IPv6 非対応です。

```ini
ipv6 = false
```

## ipv6_address

**デフォルト**: 設定無し

この値を有効にしなくても ipv6 が true の場合は、自動で IPv6 アドレスを収集しますが、
固定された IPv6 アドレスがサーバーに割り当てられている場合は指定することを推奨しています。

IPv6 アドレスを指定してください。 `2001:0DB8::10` のように指定してください。

```ini
ipv6_address = 2001:0DB8::10
```


## devtools

**デフォルト**: false

Sora には機能をすぐに試してもらえるように開発ツールが含まれています。

開発ツールを有効にする場合は、 true を指定し、有効にしてください。

詳細は [開発者ツール](DEVTOOLS.html) をご確認ください。

```ini
devtools = true
```

## auth_webhook_url

**デフォルト**: 指定なし

認証機能を有効にしたときに、問い合わせに行く HTTP URL を指定してください。その戻り値に含まれる値によって認証の可否を判定します。

```ini
auth_webhook_url = https://example.com/sora/webhook/auth
```

## auth_webhook_log

**デフォルト**: true

認証のログをすべてファイルに出力します。詳細は [認証ウェブフックログ](AUTH_WEBHOOK.html#d4693f) をご確認ください。

```ini
auth_webhook_log = true
```

## session_webhook_url

**デフォルト**: 指定なし

セッションに関連するウェブフックリクエスト送信先の HTTP URL を指定してください。

```ini
session_webhook_url = https://example.com/sora/webhook/session
```


## session_webhook_worker_number

**デフォルト**: 5
**範囲**: 5-5000

セッションウェブフックのワーカー数を指定します。

```ini
session_webhook_worker_number = 5
```

## session_created_timeout

**デフォルト**: 5 s
**範囲**: 0 - 300 s

セッションの同時接続数が 0 から 1 になった場合にセッション作成にかけられる時間を指定します。

```ini
session_created_timeout = 5 s
```

## session_destroyed_timeout

**デフォルト**: 15 s
**範囲**: 0 - 300 s

セッションに同時接続数が 0 になった場合、セッション破棄する時間を指定します。

```ini
session_destroyed_timeout = 15 s
```

## event_webhook_url

**デフォルト**: 指定なし

クライアントの接続や切断、録画ファイル生成の終了などのイベントを通知する HTTP URL を指定してください。

```ini
event_webhook_url = https://example.com/sora/webhook/event
```


## event_webhook_worker_number

**デフォルト**: 5
**範囲**: 5-5000

イベントウェブフックのワーカー数を指定します。
イベントウェブフックのワーカー割り当てに利用する値は `channel_id` です。

```ini
event_webhook_worker_number = 5
```


## webhook_response_timeout

**デフォルト**: 5 s
**範囲**: 1-600 s

ウェブフックのレスポンスタイムアウト時間を指定してください。

```ini
webhook_response_timeout = 5 s
```

## webhook_insecure

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

ウェブフックで HTTPS を利用する際に証明書のチェックを行わない場合はこの設定を有効にして下さい。

```ini
webhook_insecure = true
```


## webhook_basic_authn

**デフォルト**: false

ウェブフックで HTTP ベーシック認証を利用するかどうかを指定してください。

```ini
webhook_basic_authn = true
```

## webhook_basic_authn_user_id

**デフォルト**: 指定なし

ウェブフックで HTTP ベーシック認証を利用する際のユーザー ID を指定して下さい。 `basic-authn-user-id` の用に文字列で指定して下さい。

```ini
webhook_basic_authn_user_id = basic-authn-user-id
```

## webhook_basic_authn_password

**デフォルト**: 指定なし

ウェブフックで HTTP ベーシック認証を利用する際のパスワードを指定して下さい。 `basic-authn-password` の用に文字列で指定して下さい。

```ini
webhook_basic_authn_password = basic-authn-password
```

## webhook_proxy_url

**指定しない場合はコメントアウトしたままにしてください**

**デフォルト**: 指定なし

ウェブフックで利用する HTTP Proxy の URL を指定して下さい。 `http://proxy.example.com:8080` の用に URL を指定して下さい。

```ini
webhook_proxy_url = http://proxy.example.com:8080
```

## webhook_proxy_auth_user

**指定しない場合はコメントアウトしたままにしてください**

**デフォルト**: 指定なし

ウェブフックで利用する HTTP Proxy の認証ユーザーを指定して下さい。 `proxy-auth-user` の用に文字列で指定して下さい。

```ini
webhook_proxy_auth_user = proxy-auth-user
```

## webhook_proxy_auth_password

**指定しない場合はコメントアウトしたままにしてください**

**デフォルト**: 指定なし

ウェブフックで利用する HTTP Proxy の認証パスワードを指定して下さい。 `proxy-auth-password` の用に文字列で指定して下さい。

```ini
webhook_proxy_auth_password = proxy-auth-password
```


## webhook_tls_fullchain_file

**指定しない場合はコメントアウトしたままにしてください**

**デフォルト**: 指定なし

ウェブフックリクエスト送信先との通信に HTTPS で mTLS を利用するための設定で、
中間証明書を含むクライアント証明書を PEM 形式で設定して下さい。

```ini
webhook_tls_fullchain_file = /path/to/fullchain.pem
```


## webhook_tls_privkey_file

**指定しない場合はコメントアウトしたままにしてください**

**デフォルト**: 指定なし

ウェブフックリクエスト送信先との通信に HTTPS で mTLS を利用するための設定で、
クライアント証明書の秘密鍵を PEM 形式で設定して下さい。

> **重要**
>
> 秘密鍵にはパスフレーズが設定されている場合エラーとなります

```ini
webhook_tls_privkey_file = /path/to/privkey.pem
```


## webhook_tls_verify_cacert_file

**指定しない場合はコメントアウトしたままにしてください**

**デフォルト**: 指定なし

ウェブフックリクエスト送信先との通信に HTTPS を利用した際、サーバー証明書のチェックを行う CA ファイルを PEM 形式で設定して下さい。

```ini
webhook_tls_verify_cacert_file = /path/to/server_cacert.pem
```

> **重要**
>
> この設定をしないと Sora に内蔵している CA 証明書を利用してサーバー証明書をチェックします。
> Sora に内蔵している CA 証明書一覧は [こちら](https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport) で確認可能です


## ignore_connection_updated_webhook

**デフォルト**: false

イベントウェブフックの接続の更新時に `event_webhook_url` に指定された URL へ `connection.updated` を送るかどうかを指定してください。
デフォルトではリクエストの送信を行います。

```ini
ignore_connection_updated_webhook = false
```

## ignore_connection_failed_webhook

**デフォルト**: true

接続が失敗時に `event_webhook_url` に指定された URL へ `connection.failed` リクエストを送るかどうかを指定してください。
デフォルトではリクエストの送信を行いません。

```ini
ignore_connection_failed_webhook = true
```

## ignore_session_vanished_webhook

**デフォルト**: true

モードが `block_new_session` または `block_new_connection` の際に、
`session_webhook_url` に指定された URL に `session.vanished` リクエストを送るかどうか指定してください。

デフォルトではリクエストの送信を行いません。

```ini
ignore_session_vanished_webhook = true
```

## ignore_spotlight_changed_webhook

**デフォルト**: true

スポットライト機能で発言者が切り替わった場合に、
`event_webhook_url` に登録された URL に `spotlight.focused` と `spotlight.unfocused` リクエストを送るかどうかを指定してください。
デフォルトではリクエストの送信を行いません。

```ini
ignore_spotlight_changed_webhook = true
```


## ignore_recording_started_webhook

**デフォルト**: false

録画機能で、録画を開始した場合に、
`event_webhook_url` に登録された URL に `recording.started` リクエストを送るかどうかを指定してください。
デフォルトではリクエストの送信を行います。

```ini
ignore_recording_started_webhook = true
```


## ignore_archive_started_webhook

**デフォルト**: false

録画機能で、コネクションのアーカイブを開始した場合に、
`event_webhook_url` に登録された URL に `archive.started` リクエストを送信するかどうかを指定してください。
デフォルトではリクエストの送信を行います。

```ini
ignore_archive_started_webhook = true
```

## archive_dir

**デフォルト**: archive

録画ファイルが保存されるディレクトリを指定してください。可能な限り **絶対パス** で指定してください。

```ini
archive_dir = /path/to/archive
```

> **注意**
>
> `archive_dir` と `archive_tmp_dir` は違うディレクトリを指定して下さい

## archive_tmp_dir

**デフォルト**: tmp/archive

録画に使用する一時ファイルを保存するディレクトリを指定してください。可能な限り **絶対パス** で指定してください。

> **重要**
>
> 録画が失敗した場合には、このディレクトリに保存されたファイルは自動的に削除されません。
> そのため録画失敗時には一時ファイルが残り続けます。

```ini
archive_tmp_dir = /path/to/tmp/archive
```

> **注意**
>
> `archive_dir` と `archive_tmp_dir` は違うディレクトリを指定して下さい

## split_archive_legacy_prefix

> **警告**
>
> この設定は 2023 年 6 月リリース予定の Sora にて廃止されます

**デフォルト**: false

レガシーな分割録画の設定を有効にするかどうかを指定してください。

この設定を有効にすると以下のように変更されます。

- 分割録画ファイルが利用できるようになった際のイベントウェブフックタイプが `"type": "archive.split"` に変更されます
- 分割録画ファイルが終了した際のイベントウェブフックタイプが `"type": "archive.end"` に変更されます
- 分割録画ファイルメタデータのファイル名が `"type": "archive-<connection-id>_<idnex>.json"` に変更されます

```ini
split_archive_legacy_prefix = false
```

## signaling_port

**デフォルト**: 5000

シグナリングに使用するポート番号を指定してください。

```ini
signaling_port = 5000
```

## signaling_loopback_address_only

**デフォルト**: false

シグナリングへのアクセスをループバックアドレスからのみに制限します。可能な限り有効にしてください。

```ini
signaling_loopback_address_only = true
```


## signaling_notify

**デフォルト**: true

シグナリング経由で接続や切断、更新の通知を受け取るかどうか指定してください。この設定はすべての設定に影響します。
個別の設定の場合は認証ウェブフックのレスポンス時で指定してください。

シグナリング経由での通知機能の詳細は ["type": "notify"](SIGNALING.html#c4828f) をご確認ください

認証の戻り値に関しては [認証ウェブフックの戻り値での指定](SIGNALING_NOTIFY_METADATA.html#28d39f) を確認してください。

```ini
signaling_notify = true
```

## signaling_notify_session_id

**デフォルト**: true

シグナリング通知機能が有効な際、通知にセッション ID を含むかどうかを指定してください。

```ini
signaling_notify_session_id = true
```

## signaling_notify_client_id

**デフォルト**: true

シグナリング通知機能が有効な際、通知にクライアント ID を含むかどうかを指定してください。

```ini
signaling_notify_client_id = true
```

## signaling_notify_bundle_id

**デフォルト**: true

シグナリング通知機能が有効な際、通知にバンドル ID を含むかどうかを指定してください。

```ini
signaling_notify_bundle_id = true
```

## signaling_notify_connection_id

**デフォルト**: true

シグナリング通知機能が有効な際、通知にコネクション ID を含むかどうかを指定してください。

```ini
signaling_notify_connection_id = true
```

## signaling_notify_media

**デフォルト**: true

シグナリング通知機能が有効な際、通知に音声や映像が有効かどうかを含むかどうかを指定してください。

```ini
signaling_notify_media = true
```

## signaling_notify_metadata

**デフォルト**: true

シグナリング通知機能が有効な際、 `"type": "connect"` の `signaling_notify_metadata` で指定した値、
または認証ウェブフックの戻り値の `signaling_notify_metadata` で指定した値を通知するかどうかを指定してください。

```ini
signaling_notify_metadata = true
```

## signaling_notify_metadata_ext

**デフォルト**: false

シグナリング通知メタデータ拡張機能を有効にするかどうかを指定して下さい。
シグナリング通知機能が無効でも通知されないだけで API は利用可能です。

詳細は [シグナリング通知メタデータ拡張機能](SIGNALING_NOTIFY_METADATA_EXT.html) をご確認下さい。

```ini
signaling_notify_metadata_ext = true
```

## signaling_notify_authn_metadata_max_size

**デフォルト**: 64512

シグナリング通知認証メタデータの最大サイズをバイト単位で指定してください。
0 ~ 1048576 の範囲で指定可能です。

```ini
signaling_notify_authn_metadata_max_size = 64512
```

## signaling_notify_network

**デフォルト**: true

シグナリング通知機能が有効な際、ネットワークの状態を通知するかどうかを指定してください。

```ini
signaling_notify_network = true
```

## signaling_notify_rtp_stream

**デフォルト**: true

シグナリング通知機能が有効な際、 RTP ストリームの停止と再開の状態を通知するかどうかを指定してください。

```ini
signaling_notify_rtp_stream = true
```

## signaling_notify_recording

**デフォルト**: true

シグナリング通知機能が有効な際、 録画の開始と停止の状態を通知するかどうかを指定してください。

```ini
signaling_notify_recording = true
```

## signaling_bundle_id

**デフォルト**: false

シグナリングでバンドル ID を指定可能にするかどうかを指定してください。

```ini
signaling_bundle_id = true
```

## default_data_channel_signaling

> **注意**
>
> この機能を本番環境で利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

シグナリング経路を WebSocket から DataChannel に切り替えるかどうかを指定してください。

```ini
default_data_channel_signaling = false
```

## default_ignore_disconnect_websocket

> **注意**
>
> この機能を本番環境で利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

シグナリング経路を DataChannel に切り替えた際に WebSocket が切断されても接続の切断と判断しないかどうかを指定してください。

```ini
default_ignore_disconnect_websocket = false
```


## data_channel_messaging

> **注意**
>
> この機能を本番環境で利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

DataChannel を使用したメッセージング機能を利用するかどうかを指定してください。

```ini
data_channel_messaging = false
```

## data_channel_messaging_only

> **注意**
>
> この機能を本番環境で利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

DataChannel メッセージング利用時に、音声と映像を `false` にした場合でも接続可能にするかどうかを指定してください。

```ini
data_channel_messaging_only = false
```

## data_channel_stats_timer_interval

**単位指定必須**

**デフォルト**: 5 s
**範囲**: 5-300 秒

シグナリング経路を DataChannel に切り替えた際にクライアントへの統計情報を要求する間隔を指定してください。

```ini
data_channel_stats_timer_interval = 5 s
```

## dcsctp_heartbeat_interval

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**単位指定必須**

**デフォルト**: 30 s
**範囲**: 0-120 秒

シグナリング経路を DataChannel に切り替えた際の SCTP プロトコルのハートビート間隔を指定してください。

```ini
dcsctp_heartbeat_interval = 30 s
```

## dcsctp_slow_start_tcp_style

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

シグナリング経路を DataChannel に切り替えた際の SCTP プロトコルの TCP スタイルスロースタートを指定してください。

```ini
dcsctp_slow_start_tcp_style = false
```

## api_port

**デフォルト**: 3000

API に使用するポート番号を指定してください。

```ini
api_port = 3000
```

## api_loopback_address_only

**デフォルト**: false

API へのアクセスをループバックアドレスからのみに制限します。可能な限り有効にしてください。

```ini
api_loopback_address_only = true
```

## api_cors_origin

**デフォルト**: 指定なし

API の戻りのヘッダーに CORS (Cross-Origin Resource Sharing) を含める際のドメインを指定してください。
http から始めて、パスの / は含まないでください。

```ini
api_cors_origin = http://127.0.0.1:5000
```

## turn

**デフォルト**: true

> **注意**
>
> この機能を false にする場合は事前にサポートまでご連絡ください

### 使用しない場合の設定

```ini
turn = false
```

## turn_realm

**デフォルト**: "sora-turn.example.com"

TURN 機能で使用するレルムを指定します。
文字列であれば何でも良いのですが、会社のドメインなどを指定することをおすすめします。

```ini
turn_realm = sora-turn.example.com
```

## turn_fqdn

**デフォルト**: なし

TURN 機能の URL で使用する FQDN (最後の . なし) を指定してください。

指定した場合は TURN-UDP, TURN-TCP, TURN-TLS に共通で採用されます。
TURN-TLS の FQDN は `turn_tls_fqdn` 設定で上書きできます。

### TURN 利用ドメイン名が sora-turn.example.com の場合

```ini
turn_fqdn = sora-turn.example.com
```

## turn_tls_fqdn

TURN 機能で TURN-TLS の URL で使用する FQDN (最後の . なし) を指定してください。

指定しない場合は `turn_fqdn` の値が採用されます。
どちらも設定されていない場合 TURN-TLS を利用することはできません。

### ドメイン名が sora.example.com の場合

```ini
turn_tls_fqdn = sora-turn.example.com
```

## turn_tcp

**デフォルト**: true

TURN 機能で TURN-TCP を使用するかどうかを指定します。使用しない場合は false を指定してください。

### 使用しない場合の設定

```ini
turn_tcp = false
```

## turn_tcp_allocate_success_delay_time

**デフォルト**: 100 ms
**範囲**: 0-1 s

TURN 機能で TURN-TCP 時の Allocate-Success を返す時間を遅らせます。

```ini
turn_tcp_allocate_success_delay_time = 100 ms
```

## turn_tcp_listen_port

**デフォルト**: 3478

TURN 機能で TURN-TCP を有効にした際に使用するポート番号を指定してください。デフォルトでは 3478 番ポートが使用されます。

```ini
turn_tcp_listen_port = 3478
```

## turn_tcp_port

**デフォルト**: turn_tcp_listen_port の値を利用

TURN 機能で TURN-TCP URL 払い出し時のポート番号を指定してください。デフォルトでは turn_tcp_listen_port の値が利用されます。

```ini
turn_tcp_port = 3478
```

## turn_tcp_only

**デフォルト**: false

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

TURN-TCP を強制的に利用するようになります。この機能を有効にした場合 warning ログが出力されます。

### 検証する場合

```ini
turn_tcp_only = true
```

## turn_tls

**デフォルト**: false

TURN 機能で TURN-TLS の URL 払い出し機能を使用するかどうかを指定します。使用しない場合は false を指定してください。

```ini
turn_tls = true
```

## turn_tls_port

**デフォルト**: 5349

TURN 機能で TURN-TLS の URL 払い出し機能を有効にした際に使用するポート番号を指定してください。デフォルトでは 5349 番ポートが使用されます。

```ini
turn_tls_port = 443
```

## turn_tls_only

**デフォルト**: false

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

TURN-TLS を強制的に利用するようになります。この機能を有効にした場合 warning ログが出力されます。

### 検証する場合

```ini
turn_tls_only = true
```

## rtx

> **注意**
>
> この設定を無効にする場合は事前にサポートまでご連絡ください

**デフォルト**: true

RTX を有効にするかどうかを指定します。デフォルトでは true で有効になっています。

現時点では Chrome / Safari / Edge / Firefox が使用可能です。 iOS / Android / Unity は libwebrtc の最新版を利用している場合は対応しています。

```ini
rtx = false
```

## ulpfec

> **注意**
>
> この設定を有効にする場合は事前にサポートまでご連絡ください

**デフォルト**: false

ULPFEC を有効にするかどうかを指定します。デフォルトでは無効になっています。

現時点では Chrome と Safari が使用可能で、 Firefox は対応しておりません。
iOS/Android は libwebrtc を使用した場合は対応しています。

```ini
ulpfec = false
```

## audio_red

> **注意**
>
> この設定を有効にする場合は事前にサポートまでご連絡ください

**デフォルト**: false

音声冗長化を有効にするかどうかを指定します。デフォルトでは無効になっています。

現時点では Chrome M95 以降で使用可能です。非対応ブラウザが混在していても利用可能です。

```ini
audio_red = true
```

## generic_nack

> **注意**
>
> この設定を無効にする場合は事前にサポートまでご連絡ください

**デフォルト**: true

Generic NACK  を有効にするかどうかを指定します。一つのチャネルに対して、
視聴者がかなり多い場合などはこの設定を無効にすることで、サーバー側の負荷を抑えることができるようになります。

```ini
generic_nack = true
```

## default_audio_bit_rate

**設定しないことをおすすめします**

**単位**: k(キロ)bps
**範囲**: 6-510
**デフォルト**: 指定なし

音声が使用できるビットレートを指定します。デフォルトの場合はブラウザ側の判断に依存します。

```ini
default_audio_bit_rate = 32
```

## default_video_bit_rate

**デフォルト**: 500
**単位**: k(キロ)bps
**範囲**: 1-50000

映像が使用できるビットレートを指定します。デフォルトでは 500kbps です。この値を少なく指定すると解像度が不安定になります。

基本は 500 で余裕があるのであれば 800 などに設定することをお勧めします。

15000 より大きい値はまだ十分に検証ができていないため、現時点ではサポート外となります。ご了承ください。

```ini
default_video_bit_rate = 500
```

## default_simulcast_rid

**デフォルト**: r0

サイマルキャスト利用時に視聴する rid を指定しない場合に採用される rid を指定してください。

指定可能な値は `r0` または `r1` または `r2` のどれかになります。

```ini
default_simulcast_rid = r0
```

## default_forwarding_pli_interval

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**単位指定必須**

**デフォルト**: 10 s
**範囲**: 1-90 秒

RTP 転送 API 利用時にクライアントに対して PLI を送る間隔を指定します。

```ini
default_forwarding_pli_interval = 10 s
```

## forwarding_simulcast

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**単位指定必須**

**デフォルト**: single

サイマルキャスト転送時のストリームを指定します。

- `single` は最も優先度の低いストリームのみを転送します
- `all` はすべてのストリームを転送します

```ini
forwarding_simulcast = all
```


## audio_streaming_url

**デフォルト**: 指定なし

音声ストリーミングゲートウェイの URL を指定してください。
音声ストリーミングゲートウェイは HTTP/2 over HTTPS に対応している必要があります。

```ini
audio_streaming_url = https://example.com/speech
```


## default_audio_streaming_result_push

**デフォルト**: true

音声ストリーミングゲートウェイからのレスポンスをシグナリングプッシュ通知で送ることをデフォルトで行うかを指定してください。

```ini
default_audio_streaming_result_push = true
```


## default_audio_streaming_language_code

**デフォルト**: 指定なし

音声ストリーミングゲートウェイ接続時に HTTP ヘッダー `sora-audio-steraming-language-code` にデフォルトで含める文字列を指定してください。

この設定がない場合、接続時に `audio_streaming_language_code` で文字列が指定されていない場合、
音声ストリーミングが有効になっても Sora は接続の音声ストリーミングを開始しません。

```ini
default_audio_streaming_language_code = ja-JP
```


## audio_streaming_tls_fullchain_file

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

音声ストリーミングゲートウェイとの通信に HTTPS で mTLS を利用するための設定で、
中間証明書を含むクライアント証明書を PEM 形式で設定して下さい。

```ini
audio_streaming_tls_fullchain_file = /path/to/fullchain.pem
```


## audio_streaming_tls_privkey_file

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

音声ストリーミングゲートウェイとの通信に HTTPS で mTLS を利用するための設定で、
クライアント証明書の秘密鍵を PEM 形式で設定して下さい。

> **重要**
>
> 秘密鍵にはパスフレーズが設定されている場合エラーとなります

```ini
audio_streaming_tls_privkey_file = /path/to/privkey.pem
```


## audio_streaming_tls_verify_cacert_file

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

音声ストリーミングゲートウェイとの通信に HTTPS を利用した際、サーバー証明書のチェックを行う CA ファイルを PEM 形式で設定して下さい。

```ini
audio_streaming_tls_verify_cacert_file = /path/to/server_cacert.pem
```

> **重要**
>
> この設定をしないと Sora はサーバー証明書チェックを行いません。

## hide_origin_username

**デフォルト**: false

有効にした場合は SDP の Offer 時に送られる o=<username> の username の部分を `shiguredo...SORA-<version>` から `_` に変更します。

```ini
hide_origin_username = false
```

## connection_created_wait_timeout

**単位指定必須**

**デフォルト**: 30 s
**範囲**: 1-600 秒

WebRTC SFU と WebRTC の接続が確立するまでの許容時間を指定してください。
基本的に WebRTC SFU との接続確立は数百ミリ秒で終わります。

ただし iOS などでカメラの使用などを許可するといった設定が入る場合を考慮しデフォルトは 30 秒としています。

```ini
connection_created_wait_timeout = 30 s
```

## default_spotlight_focus_rid

**デフォルト**: r1
**指定可能 rid**: none / r0 / r1 / r2

スポットライト機能利用時に、フォーカスした際に利用する rid を指定してください。

none は映像自体を配信しません。

```ini
default_spotlight_focus_rid = r1
```

## default_spotlight_unfocus_rid

**デフォルト**: r0
**範囲**: none, r0, r1, r2

スポットライト機能利用時に、フォーカスなしで利用する rid を指定してください。

none は映像自体を配信しません。

```ini
default_spotlight_unfocus_rid = none
```

## default_spotlight_unfocus_audio

**デフォルト**: true

スポットライト機能利用時に、フォーカスなしでの音声配信を指定してください。

```ini
default_spotlight_unfocus_audio = false
```

## default_spotlight_unfocus_audio_rate_limit

**デフォルト**: 2
**範囲**: 0-5

スポットライト機能利用時に、フォーカスなしの音声転送の上限レートを指定してください。

単位は 1 音声ストリーム = 50 packets / s となります。

```ini
default_spotlight_unfocus_audio_rate_limit = 2
```

## default_spotlight_delayed_focus

**デフォルト**: true

スポットライト利用時に、遅延フォーカスの有無を指定してください。

遅延フォーカスは音声が有効になってもすぐにフォーカスせず、一定時間音声が有効な際に初めてフォーカスする仕組みです。

```ini
default_spotlight_delayed_focus = true
```

## default_spotlight_delayed_focus_interval

**デフォルト**: 2000 ms
**範囲**: 1-60000 ms

スポットライト利用時に、遅延フォーカスが有効な際に、どの程度遅延をさせるか指定してください。

```ini
default_spotlight_delayed_focus_interval = 2000 ms
```

## default_spotlight_auto_unfocus

**デフォルト**: true

スポットライト利用時の自動アンフォーカスの有無を指定します。

```ini
default_spotlight_auto_unfocus = true
```

## default_spotlight_auto_unfocus_interval

**デフォルト**: 10 s
**範囲**: 1 ms 以上 30 s 以下

スポットライト機能の自動アンフォーカスの時間間隔を指定します。

```ini
default_spotlight_auto_unfocus_interval = 10 s
```

## default_spotlight_focus_min_interval

**デフォルト**: 2000 ms
**範囲**: 0 ms 以上 60 s 以下

スポットライト機能でフォーカスしてからアンフォーカスされるまでの最低時間間隔を指定します。

```ini
default_spotlight_focus_min_interval = 2000 ms
```

## default_spotlight_number

**デフォルト**: 1
**範囲**: 1-8

スポットライトで同時にフォーカスされるデフォルトの数を指定します。

```ini
default_spotlight_number = 2
```

## simulcast_encodings_file

**デフォルト**: なし

サイマルキャスで利用するエンコーディングパラメータのカスタマイズを JSON 形式のファイルにて指定します。

詳細は [映像のエンコーディングパラメータのカスタマイズ](SIMULCAST.html#03a03b) をご確認ください。

```ini
simulcast_encodings_file = etc/simulcast_encodings.json
```

## spotlight_encodings_file

**デフォルト**: なし

スポットライトで利用するエンコーディングパラメータのカスタマイズを JSON 形式のファイルにて指定します。

詳細は [スポットライト利用時の映像のエンコーディングパラメータのカスタマイズ](SPOTLIGHT.html#65404b) をご確認ください。

```ini
spotlight_encodings_file = etc/spotlight_encodings.json
```

## multistream_auto_sharing_video_bit_rate

**デフォルト**: true

マルチストリームで配信者が利用する映像ビットレートを自動で共有する機能です。

映像のビットレートに 1000kbps を指定した場合 4 人の配信者がいる場合はそれぞれの配信者のビットレートは 250kbps になります。

```ini
multistream_auto_sharing_video_bit_rate  = true
```


## user_agent_stats

**デフォルト**: true

SDK やクライアント側の統計情報を取得しサーバー側で最新の情報を保持します。
SDK やクライアント側が type: stats に対応している必要があります。

```ini
user_agent_stats = true
```


## ice_connection_state_disconnected_timeout

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 5 s

ICE コネクションステートが `connecting` から `disconnected` の状態に移行するまでの時間を指定します。

```ini
ice_connection_state_disconnected_timeout = 5 s
```


## ice_connection_state_failed_timeout

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 10 s

ICE コネクションステートが `disconnected` から `failed` の状態に移行するまでの時間を指定します。

```ini
ice_connection_state_failed_timeout = 10 s
```


## skip_redact_sensitive_data

**デフォルト**: false

ログファイル中のセンシティブなデータを **&quot;REDACTED&quot;** という文字列に書き換えて出力する処理をスキップします。

```ini
skip_redact_sensitive_data = true
```

センシティブなデータを書き換える対象は以下のとおりです。

- `auth_webhook.log` の `event_metadata` を **&quot;REDACTED&quot;** に書き換えます
- `session_webhook.log` の `session_metadata` と `event_metadata` を **&quot;REDACTED&quot;** に書き換えます
- `event_webhook.log` の `event_metadata` を **&quot;REDACTED&quot;** に書き換えます

## default_h264_profile_level_id

**デフォルト**: 42e01f

H.264 で利用するプロファイルレベル ID を文字列で指定します。

```ini
default_h264_profile_level_id = 42e01f
```


## e2ee

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

クライアントによる E2EE の利用を許可します。

```ini
e2ee = true
```


## stats_collector_url

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

統計コレクターの URL を指定します。
http を指定した場合は HTTP/2 (h2c) で送られます。 https の場合は HTTP/2 (h2) で送られます。

統計コレクターは HTTP/2 に対応している必要があります。

```ini
stats_exporter_url = http://192.0.2.10/collector
```


## stats_exporter_number

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 5

統計エクスポーターの数を指定します。同時接続数が多くなった場合増やすことを検討してください。

```ini
stats_exporter_number = 10
```


## stats_exporter_tls_fullchain_file

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

統計コレクターサーバーとの通信に HTTPS で mTLS を利用するための設定で、
中間証明書を含むクライアント証明書を PEM 形式で設定して下さい。

```ini
stats_exporter_tls_fullchain_file = /path/to/fullchain.pem
```


## stats_exporter_tls_privkey_file

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

統計コレクターサーバーとの通信に HTTPS で mTLS を利用するための設定で、
クライアント証明書の秘密鍵を PEM 形式で設定して下さい。

> **重要**
>
> 秘密鍵にはパスフレーズが設定されている場合エラーとなります

```ini
stats_exporter_tls_privkey_file = /path/to/privkey.pem
```


## stats_exporter_tls_verify_cacert_file

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 指定なし

統計コレクターサーバーとの通信に HTTPS を利用した際、サーバー証明書のチェックを行う CA ファイルを PEM 形式で設定して下さい。

```ini
stats_exporter_tls_verify_cacert_file = /path/to/server_cacert.pem
```

> **重要**
>
> この設定をしないと Sora はサーバー証明書チェックを行いません。


## node_name

**デフォルト**: 指定なし

クラスター機能で利用するノード名を指定します。

ノード名の @ の前には、正規表現 `[0-9A-Za-z_\\-]+` にマッチする文字列を指定してください。
また @ の後ろには、サーバーのドメイン名（FQDN）や、IP アドレスを指定してください。

```ini
node_name = sora@192.0.2.10
```


## cluster

**デフォルト**: true

クラスター機能を利用するかどうかを指定します。

```ini
cluster = true
```

## external_signaling_url

**デフォルト**: 指定なし

ノードに対するシグナリング URL を指定します。クラスター機能のリダイレクト時に用います。

```ini
external_signaling_url = ws://127.0.0.1:5000/signaling
```

## external_api_url

**デフォルト**: 指定なし

ノードに対する Sora API の URL を指定します。クラスター機能のリダイレクト時に用います。

```ini
external_api_url = http://127.0.0.1:3000/
```


## contact_node_name_list

**デフォルト**: 指定なし

クラスターが有効な時、起動時に自動で JoinCluster を試行するノード名のリストを指定します。

カンマ区切りで指定してください。

> **注釈**
>
> 自分自身のノード名を含めても問題ありません。

```ini
node_name = sora@192.0.2.10
contact_node_name_list = sora@192.0.2.10, sora11@192.0.2.11, sora12@192.0.2.12
```


## cluster_auto_reconnect

**デフォルト**: true

クラスターが有効な際、ネットワーク障害やノード障害の発生時に自動で再接続を試みるかどうかを指定します。

```ini
cluster_auto_reconnect = true
```

## cluster_listen_min_port

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 49010

`sora.conf` にクラスター利用時のノード間通信に使用するポート番号範囲の最小値を指定します。

```ini
cluster_listen_min_port = 49010
```

## cluster_listen_max_port

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 49020

`sora.conf` にクラスター利用時のノード間通信に使用するポート番号範囲の最大値を指定します。

```ini
cluster_listen_max_port = 49020
```


## data_dir

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: data

Sora 内部で利用する情報を書き出すディレクトリを指定してください。可能な限り **絶対パス** で指定してください。

```ini
data_dir = /path/to/data
```

## av1

**デフォルト**: true

AV1 が利用可能になります。

```ini
av1 = true
```

## h265

**デフォルト**: false

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

H.265 が利用可能になります。

```ini
h265 = true
```

## lyra

**デフォルト**: false

一部の SDK にて [Lyra](https://github.com/google/lyra) が利用可能になります。

```ini
lyra = true
```


## legacy_log_format

**デフォルト**: true

> **危険**
>
> この設定は 2023 年 6 月リリースの Sora にてデフォルトが false に変更されます

> **危険**
>
> この設定は 2023 年 12 月リリースの Sora にて廃止されます

sora ログや internal ログの出力をレガシーフォーマットで出力するかどうかを指定してください。

`false` にすることで JSONL フォーマットで出力されます。

```ini
legacy_log_format = false
```


## legacy_log_extension

**デフォルト**: true

> **危険**
>
> この設定は 2023 年 6 月リリースの Sora にてデフォルトが false に変更されます

> **危険**
>
> この設定は 2023 年 12 月リリースの Sora にて廃止されます

JSONL 形式のログの拡張子を `.log` で出力するかどうかを指定してください。

`false` にすることで `.jsonl` 拡張子で出力されます。

対象は以下のとおりです。

- sora ログ
- internal ログ
- session_webhook ログ
- session_webhook_error ログ
- event_webhook ログ
- event_webhook_error ログ
- connection ログ
- signaling ログ
- api ログ
- auth_webhook ログ

```ini
legacy_log_extension = false
```


## default_multistream

**デフォルト**: true

> **危険**
>
> この設定は 2023 年 6 月リリースの Sora にて廃止されます

マルチストリームをデフォルトにするかどうかを指定してください。

```ini
default_multistream = true
```


## legacy_webhook_audio_video_json_structure

**デフォルト**: true

> **危険**
>
> この設定は 2023 年 6 月リリースの Sora にてデフォルトが false に変更されます

> **危険**
>
> この設定は 2023 年 12 月リリースの Sora にて廃止されます

ウェブフックや録画メタデータファイルの `audio` と `video` 項目にレガシーな入れ子構造を利用するかどうかを指定してください。

```ini
legacy_webhook_audio_video_json_structure = false
```


## rtp_hdrext_video_orientation

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

RTP ヘッダー拡張 `urn:3gpp:video-orientation` を利用するかどうかを指定します。

## rtp_hdrext_video_content_type

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

RTP ヘッダー拡張 `http://www.webrtc.org/experiments/rtp-hdrext/video-content-type` を利用するかどうかを指定します。

## rtp_hdrext_video_timing

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

RTP ヘッダー拡張 `http://www.webrtc.org/experiments/rtp-hdrext/video-timing` を利用するかどうかを指定します。

## rtp_hdrext_playout_delay

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

RTP ヘッダー拡張 `http://www.webrtc.org/experiments/rtp-hdrext/playout-delay` を利用するかどうかを指定します。

## rtp_hdrext_color_space

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

RTP ヘッダー拡張 `http://www.webrtc.org/experiments/rtp-hdrext/color-space` を利用するかどうかを指定します。

## rtp_hdrext_sdes_mid

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

RTP ヘッダー拡張 `urn:ietf:params:rtp-hdrext:sdes:mid` を利用するかどうかを指定します。

## rtp_packet_loss_simulator_incoming

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

**デフォルト**: 0
**範囲**: 0-100

Sora が受信する RTP パケットを指定したパーセント分ドロップさせます。

値を 0 より大きくした場合、クライアントが接続するたびに warning が発生します。

### Sora が受信する RTP パケットを 10 % パケロスさせる場合

```ini
rtp_packet_loss_simulator_incoming = 10
```

## rtp_packet_loss_simulator_outgoing

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

**デフォルト**: 0
**範囲**: 0-100

Sora が送信する RTP パケットを指定したパーセント分ドロップさせます。

値を 0 より大きくした場合、クライアントが接続するたびに warning が発生します。

### Sora が送信する RTP パケットを 10 % パケロスさせる場合

```ini
rtp_packet_loss_simulator_outgoing = 10
```

## data_channel_packet_loss_simulator_incoming

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

**デフォルト**: 0
**範囲**: 0-100

Sora が受信する DataChannel パケットを指定したパーセント分ドロップさせます。

値を 0 より大きくした場合、クライアントが接続するたびに warning が発生します。

### Sora が受信する DataChannel パケットを 10 % パケロスさせる場合

```ini
data_channel_packet_loss_simulator_incoming = 10
```

## data_channel_packet_loss_simulator_outgoing

> **危険**
>
> この機能はあくまで検証時のみ有効にしてください

**デフォルト**: 0
**範囲**: 0-100

Sora が送信する DataChannel パケットを指定したパーセント分ドロップさせます。

値を 0 より大きくした場合、クライアントが接続するたびに warning が発生します。

### Sora が送信する DataChannel パケットを 10 % パケロスさせる場合

```ini
data_channel_packet_loss_simulator_outgoing = 10
```

## opus_param_channels

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 2
**範囲**: 1-8

## opus_param_maxplaybackrate

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 48000
**範囲**: 8000-48000

## opus_param_stereo

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: true

## opus_param_sprop_stereo

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: true

## opus_param_ptime

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 20
**範囲**: 3-120

## opus_param_minptime

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: 10
**範囲**: 3-120

## opus_param_useinbandfec

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: true

## opus_param_usedtx

> **注意**
>
> この設定を利用する場合は事前にサポートまでご連絡ください

**デフォルト**: false

