# リリースノート

**CHANGE**
: 後方互換性のない変更

**UPDATE**
: 後方互換性がある変更

**ADD**
: 後方互換性がある追加

**FIX**
: バグ修正



## 2022.2.3

**リリース**: 2023-02-08

### 変更履歴

- [FIX] 依存している OpenSSL を 3.0.8 にアップデートしました
- [FIX] 2023 年 4 月 4 日リリース予定の Chrome M112 でシグナリング時に接続が必ず失敗してしまう問題を修正しました
- [FIX] ディスク障害が発生してログの書き込みに失敗した際に、障害が復旧した後でもログが書き込めなくなることがある問題を修正しました


## 2022.1.4

**リリース**: 2023-02-08

### 変更履歴

- [FIX] 2023 年 4 月 4 日リリース予定の Chrome M112 でシグナリング時に接続が必ず失敗してしまう問題を修正しました


## 2022.2.2

**リリース**: 2023-01-05

### 変更履歴

- [FIX] 音声ストリーミング機能で `sora.conf` の [default_audio_streaming_result_push](SORA_CONF.html#0b4a07) が `true` の際、プッシュ通知が行われない問題を修正しました
- [FIX] 音声ストリーミング機能でロールが `reconly` の場合にプッシュ通知が受信できない問題を修正しました
- [FIX] 音声ストリーミング機能で API を利用して音声ストリーミングを開始した際、通知が正常に行われない問題を修正しました


## 2022.2.1

**リリース**: 2022-12-21

### 変更履歴

- [FIX] 開発ツールが Safari / Mobile Safari / Firefox で動作しない問題を修正しました


## 2022.2.0

**リリース**: 2022-12-21

### ハイライト

- sora ログと internal ログを JSONL 形式で出力するようになりました
- Google が公開した超低ビットレートコーデック Lyra に対応しました
- 音声パケットを HTTP/2 経由で出力する音声ストリーミング機能を追加しました
- 録画開始ととアーカイブ開始のウェブフックを追加しました
- ウェブフックが mTLS と CA 証明書の指定に対応しました

### 互換なしの変更情報

- 実験的機能であるセッションウェブフックのログ出力を req/res 形式に変更しました
- 実験的機能であるセンシティブデータ向け設定 `redact_archive_metadata_sensitive_data` と `redact_api_sensitive_data` を廃止しました- 録画メタデータファイルと API はセンシティブなデータがあっても編集を行わないようにしました
- クラスター機能の仕組みを変更したため互換性がなくなりました、クラスターの再構築をお願いします

### 変更履歴

- [FIX] DTLS 処理終了時に起きていた問題を修正しました
- [FIX] 録画ウェブフックの `expired_at` が秒単位の UNIX Time ではなくマイクロ秒になっていたのを修正しました
- [FIX] 録画ウェブフックの `split-archive.available` と `split-archive-*.json` に offset が含まれていなかったのを修正しました
- [FIX] ULPFEC が有効でな状態でパケロス発生時に録画に失敗することがある問題を修正しました
- [FIX] 録画機能のウェブフックやファイルに含まれる統計値の名前 total_audio_discarded が間違っていたのを修正しました

### JSONL 形式でのログ出力

- [ADD] `sora.conf` にログフォーマットのレガシー形式を維持する `legacy_log_format` を追加しました- デフォルトは `true` です
  - これは移行用設定です
- [ADD] `sora.conf` に JSONL 形式で出力しているログのレガシー拡張子を `.log` に維持する `legacy_log_extension` を追加しました- デフォルトは `true` です
  - これは移行用設定です
- [ADD] `sora.conf` の `legacy_log_format` を `false` にすることで以下のログは JSONL 形式で出力されます- sora ログ
  - internal ログ
  - signaling ログ
  - api ログ
  - auth_webhook ログ
  - session_webhook ログ
  - session_webhook_error ログ
  - event_webhook ログ
  - event_webhook_error ログ
  - connection ログ
- [ADD] `sora.conf` の `legacy_log_extension` を `false` にすることでJSONL 形式で出力されているログファイルの拡張子が `.log` から `.jsonl` に変更されます- `sora.log` が `sora.jsonl` に変更されます
  - `internal.log` が `internal.jsonl` に変更されます
  - `signaling.log` が `signlaing.jsonl` に変更されます
  - `api.log` が `api.jsonl` に変更されます
  - `auth_webhook.log` が `auth_webhook.jsonl` に変更されます
  - `session_webhook.log` が `session_webhook.jsonl` に変更されます
  - `session_webhook_error.log` が `session_webhook_error.jsonl` に変更されます
  - `event_webhook.log` が `event_webhook.jsonl` に変更されます
  - `event_webhook_error.log` が `event_webhook_error.jsonl` に変更されます
  - `connection.log` が `connection.jsonl` に変更されます
- [CHANGE] サポート用ログファイルである `connection_created_wait_timeout_error/<timestamp>_<connection_id>.json`の拡張子を `.json` から `.jsonl` に変更しました

### クラスター機能

- [CHANGE] クラスターの仕組みを変更したため、2022.1 系までのクラスターの仕組みとは互換性がありません- クラスターの初期化が必要になります
- [ADD] クラスター初期化に利用する [InitCluster](EXPERIMENTAL_API.html#621990) API を追加しました
- [CHANGE] クラスター機能の [ListClusterNodes](EXPERIMENTAL_API.html#a70901) API の `member_since` を廃止しました
- [CHANGE] クラスター機能の [ListClusterChannels](EXPERIMENTAL_API.html#0a4459) API の戻り値を変更しました- `owners` を追加し、その下にリストで `node_name` `epoch` `epoch_latest` `connected` を持つようにしました
  - `node_in_charge` を `node_name` に変更しました
  - `node_in_charge_epoch` を `epoch` に変更しました
  - `node_in_charge_epoch_stale` を `epoch_latest` に変更しました
  - `node_in_charge_connected` を `connected` に変更しました

### Lyra コーデックへの対応

**これは実験的機能です**

- [ADD] `sora.conf` に Google が公開した音声圧縮用超低ビットレートコーデック[Lyra](https://github.com/google/lyra) を有効にする設定 [lyra](SORA_CONF.html#dd7dbd) を追加しました- デフォルトは `false` です
  - `lyra = true` のように設定してください






- [ADD] シグナリング接続時の音声コーデックタイプに Lyra を指定できるようになりました- 指定する際は大文字の `LYRA` で指定する必要があります
  - Lyra を利用する際は lyra_params を指定する必要があります- `lyra_params` には lyra のバージョンを指定する `version` とビットレートを指定する `bit_rate` が指定できます
    - `{"audio": "codec_type": "LYRA", "lyra_params": {"version": "1.3.0", "bit_rate": 9200}}`
- [ADD] 認証成功時に `{"audio": true, "audio_codec_type": "LYRA", "audio_lyra_params": {"version": "1.3.0", "bitrate": 9200}` のように指定できるようになりました- この指定を利用する場合は [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) を `false` にする必要があります

### 音声ストリーミング機能

**これは実験的機能です**

- [ADD] `sora.conf` に音声ストリーミングのリクエスト先の URL を指定する [audio_streaming_url](SORA_CONF.html#6b5dd6) を追加しました
- [ADD] `sora.conf` に音声ストリーミングで利用するデフォルトのランゲージコードを指定する [default_audio_streaming_language_code](SORA_CONF.html#856531) を追加しました
- [ADD] `sora.conf` に音声ストリーミングでデフォルトで結果をプッシュ通知で行うかどうかを指定する [default_audio_streaming_result_push](SORA_CONF.html#0b4a07) を追加しました
- [ADD] `sora.conf` に音声ストリーミングで mTLS を利用する秘密鍵を指定する [audio_streaming_tls_privkey_file](SORA_CONF.html#5f8e61) を追加しました
- [ADD] `sora.conf` に音声ストリーミングで mTLS を利用する証明書を指定する [audio_streaming_tls_fullchain_file](SORA_CONF.html#e5459b) を追加しました
- [ADD] `sora.conf` に音声ストリーミングで利用する CA ルート証明書を指定する [audio_streaming_tls_verify_cacert_file](SORA_CONF.html#feef99) を追加しました
- [ADD] 音声ストリーミングを開始する [StartAudioStreaming](EXPERIMENTAL_API.html#0f1087) API を追加しました
- [ADD] 音声ストリーミングを終了する [StopAudioStreaming](EXPERIMENTAL_API.html#bad1bb) API を追加しました
- [ADD] 音声ストリーミングの解析結果を購読する [SubscribeAudioStreamingResultPush](EXPERIMENTAL_API.html#d26262) API を追加しました
- [ADD] 音声ストリーミングの解析結果を購読解除する [UnsubscribeAudioStreamingResultPush](EXPERIMENTAL_API.html#b63656) API を追加しました

詳細は [音声ストリーミング機能](AUDIO_STREAMING.html) をご確認ください。

### 音声冗長化機能

- [CHANGE] `sora.conf` の `audio_red` のデフォルト値を `false` に変更しました

### センシティブデータ

- [ADD] `sora.conf` にセンシティブなデータが含まれる可能性がある項目を `"REDACTED"` という文字列への書き換えをスキップする [skip_redact_sensitive_data](SORA_CONF.html#00d209) を追加しました- デフォルトでは `false` です
- [CHANGE] `sora.conf` の `redact_archive_metadata_sensitive_data` を廃止しました- 録画メタデータファイルの `event_metadata` はセンシティブなデータの書き換え対象外としました
- [CHANGE] `sora.conf` の `redact_api_sensitive_data` を廃止しました- API の `event_metadata` はセンシティブなデータの書き換え対象外としました

詳細は [センシティブデータ](SENSITIVE_DATA.html) をご確認ください。

### ウェブフックの audio と video 項目の JSON 構造のフラット化

- [ADD] `sora.conf` にウェブフックの audio と video 項目のレガシーな JSON 構造する [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) を追加しました- デフォルトでは `true` です
  - これは移行用設定です

詳細は [ウェブフックの audio と video 項目の JSON 構造のフラット化](WEBHOOK_AUDIO_VIDEO_FLATTEN_JSON.html) をご確認ください

### セッションウェブフックログを req/res 形式に変更

- [CHANGE] `session_webhook.jsonl` の出力形式を req/res 形式に変更しました
- [CHANGE] `session_webhook_error.jsonl` の出力形式を req 形式に変更しました

### 録画とアーカイブ開始ウェブフックを追加

- [ADD] 録画開始ウェブフック [recording.started](EVENT_WEBHOOK.html#9b5c58) を追加しました
- [ADD] アーカイブ開始ウェブフック [archive.started](EVENT_WEBHOOK.html#462c97) を追加しました
- [ADD] `sora.conf` に [ignore_recording_started_webhook](SORA_CONF.html#d9e570) を追加しました- デフォルトでは `false` です
- [ADD] `sora.conf` に [ignore_archive_started_webhook](SORA_CONF.html#3fddc0) を追加しました- デフォルトでは `false` です

### ウェブフック mTLS / CA 証明書指定対応

- [ADD] `sora.conf` にウェブフックのリクエスト先との通信で mTLS を利用する際の証明書を指定する [webhook_tls_fullchain_file](SORA_CONF.html#93f2b9) を追加しました
- [ADD] `sora.conf` にウェブフックのリクエスト先との通信で mTLS を理世する際の秘密鍵を指定する [webhook_tls_privkey_file](SORA_CONF.html#7065d6) を追加しました
- [ADD] `sora.conf` にウェブフックのリクエスト先の証明書をベリファイするルート CA を指定する [webhook_tls_verify_cacert_file](SORA_CONF.html#7036dc) を追加しました

### ウェブフック統計情報

- [ADD] ウェブフック関連の統計情報を GetStatsReport API に追加しました- `total_auth_webhook_allowed`- 認証ウェブフックで許可された数
  - `total_auth_webhook_denied`- 認証ウェブフックで拒否された数
  - `total_successful_auth_webhook`- 認証ウェブフックが成功した数
  - `total_failed_auth_webhook`- 認証ウェブフックが失敗した数
  - `total_successful_session_webhook`- セッションウェブフックが成功した数
  - `total_failed_session_webhook`- セッションウェブフックが失敗した数
  - `total_successful_event_webhook`- イベントウェブフックが成功した数
  - `total_failed_event_webhook`- イベントウェブフックが失敗した数

### クラッシュログ出力 API

**これは実験的機能です**

- [ADD] 意図的に crash.log を出力させる [GenerateCrashLog](EXPERIMENTAL_API.html#26eea6) API を追加しました- **この API はログ出力の動作確認にのみ利用してください**
  - この API はかならずステータスコード 500 を返します


## 2022.1.3

**リリース**: 2022-11-02

### 変更履歴

- [FIX] 依存している OpenSSL を 3.0.7 にアップデートしました
- [FIX] データチャネルの性能ボトルネックを修正しました
- [FIX] データチャネル利用時に高負荷になった状態が継続する問題を修正しました
- [FIX] データチャネル利用時に意図しないメッセージを受信した際の問題を修正しました
- [FIX] データチャネル利用時に意図しないエラーが発生する問題を修正しました
- [FIX] データチャネル利用時に `compress` が `true` になっている Label のメッセージが壊れている場合の問題を修正しました


## 2022.1.1

**リリース**: 2022-07-12

### 変更履歴

- [FIX] 依存している OpenSSL を 3.0.5 にアップデートしました
- [FIX] 録画機能の `{"type": "split-archive-end"}` ウェブフックには解像度を含めないように修正しました
- [FIX] 録画機能の `split-archive-end-<connection_id>.json` ファイルには解像度を含めないように修正しました
- [FIX] `sora.log` にでるべきログの一部が `internal.log` に出力されていた問題を修正しました
- [FIX] クラスターのノードが異常な状態になったタイミングで `emergency` ログを出力して終了するように修正しました
- [FIX] sora.conf の `default_multistream` が true の時に、 `"type": "connect"` メッセージの `role` に `sendrecv` を指定し、かつ `multistream` を `指定しない` 場合に、エラーとなり接続できない問題を修正しました


## 2022.1.0

**リリース**: 2022-06-29

### ハイライト

- Ubuntu 22.04 に対応しました
- RHEL 9 に対応しました
- サイマルキャスト機能が正式版になりました
- スポットライト機能が正式版になりました
- スポットライト機能がサイマルキャスト無効でも利用できるようになりました
- サイマルキャスト機能やスポットライト機能利用時に、視聴されていないストリームは復号処理を行わない仕組みを追加しました
- 録画機能で、録画ファイル分割出力機能を有効にした場合にも recording.report ウェブフック通知とレポートファイルが作成されるようになりました
- クラスター利用時に、同一ライセンスを利用できる「最大ノード数ライセンス」の提供を開始しました
- クラスター機能で録画状態を共有する機能を追加しました
- クラスター機能でクラスター参加を自動で行う仕組みを追加しました
- クラスター機能でネットワーク障害発生時に自動で復旧を試みる仕組みを追加しました
- 特定の接続からのストリームを受信しないようにできる `bundle_id` を追加しました
- センシティブなデータが含まれる可能性がある `session_metadata` や `event_metadata` の値を `"REDACTED"` という文字列に書き換える仕組みを追加しました

### 廃止情報

- `sora.conf` の `demo` を廃止しました
- `sora.conf` の `remote_stats` を廃止しました
- `sora.conf` の `unuse_metadata_list` を廃止しました
- `sora.conf` の `use_re_offer` を廃止しました
- [GetAllRemoteStats](OBSOLETE_API.html#3a6504) API を廃止しました
- [GetChannelRemoteStats](OBSOLETE_API.html#bbd252) API を廃止しました
- [GetConnectionRemoteStats](OBSOLETE_API.html#2f926d) API を廃止しました
- [StopRecording](API.html#fd0de5) API の `redirect` を廃止しました

### 互換なしの変更情報

- マルチストリームをデフォルトで有効にしました- `sora.conf` の `default_multistream` を `false` にすることでマルチストリームがデフォルトではなくなります
  - この設定は 2023 年 6 月リリースの Sora にて廃止されます
  - 詳細は [sora.conf の default_multistream の廃止](DEPRECATED.html#615559) をご確認ください
- `type: archive.end` を `type: split-archive.end` に変更しました- `sora.conf` の `split_archive_legacy_prefix` を `true` にすることで `type: archive.end` がそのまま利用できます
  - この設定は 2023 年 6 月リリースの Sora にて廃止されます
  - 詳細は [sora.conf の split_archive_legacy_prefix の廃止](DEPRECATED.html#050276) をご確認ください
- `type: archive.split` を `type: split-archive.available` に変更しました- `sora.conf` の `split_archive_legacy_prefix` を `true` にすることで `type: archive.split` がそのまま利用できます
  - この設定は 2023 年 6 月リリースの Sora にて廃止されます
  - 詳細は [sora.conf の split_archive_legacy_prefix の廃止](DEPRECATED.html#050276) をご確認ください
- `archive-<connection-id>_<index>.webm` を `split-archive-<connection-id>_<index>.webm` に変更しました- `sora.conf` の `split_archive_legacy_prefix` を `true` にすることで `archive-<connection-id>_<index>.webm` がそのまま利用できます
  - この設定は 2023 年 6 月リリースの Sora にて廃止されます
  - 詳細は [sora.conf の split_archive_legacy_prefix の廃止](DEPRECATED.html#050276) をご確認ください
- `archive-<connection-id>_<index>.json` を `split-archive-<connection-id>_<index>.json` に変更しました- `sora.conf` の `split_archive_legacy_prefix` を `true` にすることで `archive-<connection-id>_<index>.json` がそのまま利用できます
  - この設定は 2023 年 6 月リリースの Sora にて廃止されます
  - 詳細は [sora.conf の split_archive_legacy_prefix の廃止](DEPRECATED.html#050276) をご確認ください
- セッションウェブフックでセッションの接続数が 0 のタイミングで `multistream` と `spotlight` がセッションと異なる新規接続が来た場合は既存のセッションを破棄し `session.destroyed` ウェブフックリクエストを送信した後に、新規でセッションを作成し `session.created` を送信するように変更しました
- セッションウェブフックでセッションの接続数が 0 ではないタイミングで `multistream` と `spotlight` がセッションと異なる新規接続が来た場合は `INVALID-SIGNALING-PARAMS` エラーを返し切断するように変更しました
- セッションウェブフック `session.created` と `session.destroyed` の `created_time` と `destroyed_time` を UNIX 時間に変更しました
- `sora.log` と `internal.log` の時刻を RFC3339 準拠に変更しました
- `cluster` 関連設定名を変更しました- `cluster_node_name` を `node_name` へ変更しました
  - `cluster_api_url` を `external_api_url` へ変更しました
  - `cluster_signaling_url` を `external_signaling_url` へ変更しました
  - `sora_version` を `version` に変更しました
- `cluster` 関連 API の引数や戻り値を変更しました
- クラスター機能を有効にしたときのモードを `initial` へ変更しました
- クラスターに参加したときに自動でモードが `initial` から `normal` へ切り替わるよう変更しました

### 変更履歴

- [CHANGE] セッションウェブフック `session.created` の `created_time` を UNIX 時間に変更しました
- [CHANGE] セッションウェブフック `session.destroyed` の `created_time` を UNIX 時間に変更しました
- [CHANGE] セッションウェブフック `session.destroyed` の `destroyed_time` を UNIX 時間に変更しました
- [UPDATE] 組み込みの開発ツールを `2022.1.0` にアップデートしました
- [ADD] RHEL 9 x86_64 に対応しました
- [ADD] Ubuntu 22.04 x86_64 に対応しました
- [ADD] イベントウェブフック `connection.created` に RFC3339 形式で出力する `created_timestamp` を追加しました
- [ADD] イベントウェブフック `connection.updated` に RFC3339 形式で出力する `created_timestamp` を追加しました
- [ADD] イベントウェブフック `connection.destroyed` に RFC3339 形式で出力する `created_timestamp` を追加しました
- [ADD] イベントウェブフック `connection.destroyed` に RFC3339 形式で出力する `destroyed_timestamp` を追加しました
- [ADD] イベントウェブフック `connection.destroyed` に UNIX 時間で出力する `destroyed_time` を追加しました
- [ADD] [GetStatsReport](EXPERIMENTAL_API.html#bbbfca) API に Sora のバージョンを取得できる `version` を追加しました
- [ADD] 認証成功時の H.265 の払い出しを追加しました
- [ADD] 認証ウェブフックに `simulcast_rid` を追加しました
- [ADD] Sora 内部で利用するファイルを書き出す `data` ディレクトリを追加しました
- [ADD] `sora.conf` に Sora 内部で利用するファイルを書き出す `data` ディレクトリを指定する `data_dir` を追加しました
- [FIX] Opus の RED の仕様変更ともない動作しなくなっていた問題を修正しました
- [FIX] 0 番ポートでパケットが送られてきた場合の問題を修正しました
- [FIX] DTLS で異常なパケットが送られてきた場合でも可能な限り丁寧に終了処理を行うように修正しました
- [FIX] 異常な STUN パケットが送られてきた場合の問題を修正しました
- [FIX] 録画した WebM ファイルの `Cluster Timecode` が負の値になると発生する問題を修正しました

#### マルチストリームをデフォルトで有効化

マルチストリームをデフォルトで有効にしました。

いままでマルチストリームを利用する場合は、シグナリング接続時に `"multistream": true` を指定して有効にする必要がありました。これをデフォルトで有効に変更しました。

今後は、マルチストリームを利用しない場合は明示的に `"multistream": false` を指定する必要があります。

- [CHANGE] マルチストリームをデフォルトで有効に変更しました
- [ADD] `sora.conf` にマルチストリームのデフォルト値を指定する `default_multistream` を追加しました- デフォルトでは `true` が設定されています
  - この設定は 2023 年 6 月リリース予定の Sora にて廃止します
  - 詳細は [sora.conf の default_multistream の廃止](DEPRECATED.html#615559) をご確認ください

例外的にスポットライト機能を利用するときは `"multistream": true` を明示する必要があります。

#### bundle_id の追加

複数のコネクションを同じ端末から接続する際、それぞれのコネクションで同一の `bundle_id` を指定すると、
同一の `bundle_id` を指定した接続からの音声や映像、メッセージングを受信しなくなります。

画面共有の映像を受信したくない場合などにお使いください。

- [ADD] `sora.conf` に `"type": "connect"` 時に `bundle_id` を指定できるかどうかを設定する [signaling_bundle_id](SORA_CONF.html#279311) を追加しました- デフォルトでは `false` が設定されています
- [ADD] `sora.conf` に [signaling_notify_bundle_id](SORA_CONF.html#f2a58f) を追加しました- デフォルトでは `true` が設定されています
- [ADD] `"type": "connect"` で `bundle_id` が指定可能になりました- 詳細は [bundle_id の指定](SIGNALING.html#196326) をご確認ください
- [ADD] 認証成功時の払い出しで `bundle_id` を指定可能になりました- 詳細は [bundle_id の払い出し](AUTH_WEBHOOK_RETURN.html#d2b87b) をご確認ください

#### sora.log と internal.log の出力

- [CHANGE] タイムスタンプの出力を RFC3339 準拠に変更しました- Sora 2021.2.7 まで- `2022-03-07 02:54:26.847 UTC [info] [-/-/-] <0.1218.0> SORA | node_name=sora@192.0.2.1, version=2021.2.7`
  - Sora 2022.1.0 から- `2022-03-07T02:54:26.847130Z [info] [-/-/-] <0.1218.0> SORA | node_name=sora@192.0.2.1, version=2022.1.0`

#### 録画機能

- [CHANGE] 分割録画ファイルとメタデータファイルの出力名を `archive-<connection_id>_<index>.(json|webm)` から `split-archive-<connection_id>_<index>.(json|webm)` に変更しました- `sora.conf` の `split_archive_legacy_prefix` を `true` にすることで `archive-<connection_id>_<index>.(json|webm)` を維持できます
- [CHANGE] 録画分割時のウェブフックのタイプ `"type": "archive.split"` を `"type": "split-archive.available"` に変更しました
- [CHANGE] 録画分割時のウェブフックのタイプ `"type": "split.end"` を `"type": "split-archive.end"` に変更しました
- [CHANGE] 録画一時ファイルディレクトリ `archive_tmp_dir` に保存される録画一時ファイルは、録画が失敗した場合には削除されなくなりました
- [ADD] `report-<connection_id>.json` に `node_name` と `label` 項目を追加しました
- [ADD] `sora.conf` に分割録画ファイル名を `archive-<connection_id>_<index>.(json|webm)` にする `split_archive_legacy_prefix` を追加しました- デフォルトは `false` です
  - この設定は 2023 年 6 月リリース予定の Sora にて廃止します
  - 詳細は [sora.conf の split_archive_legacy_prefix の廃止](DEPRECATED.html#050276) をご確認ください
- [ADD] 録画の状態をクラスターで共有する仕組みを追加しました
- [ADD] `split_only` に `true` を指定した場合に、 `archive.end` ウェブフックと対になる `split-archive-end-<connection_id>.json` ファイルを作成するようになりました
- [ADD] `split_only` に `true` を指定した場合でも `recording.report` ウェブフックリクエストを飛ばすようになりました
- [ADD] `split_only` に `true` を指定した場合でも `report-<recording_id>.json` ファイルを作成するようになりました
- [ADD] 録画メタデータファイルとレポートファイルに `label` と `node_name` を追加するようにしました
- [UPDATE] 録画で生成された WebM ファイルが Windows の `Windows標準アプリケーションの"映画＆テレビ"` で正常に再生できない問題へ対応しました- Sora 側の問題ではなく `Windows標準アプリケーションの"映画＆テレビ"` が WebM の仕様を守っていないことによる問題です

#### サイマルキャストやスポットライト機能利用時の負荷削減

- [ADD] サイマルキャストやスポットライト利用時に誰も視聴していない音声や映像ストリームの復号を行わない処理を追加しました
- [ADD] 統計 API の rtp 項目に `tocal_decrypt_skipped_audio_srtp` を追加しました
- [ADD] 統計 API の rtp 項目に `tocal_decrypt_skipped_video_srtp` を追加しました
- [ADD] 統計 API の simulcast.rtp.(r0|r1|r2) 項目に `total_decrypt_skipped_srtp` を追加しました

#### サイマルキャスト無効でのスポットライト機能利用

- [ADD] スポットライト機能を `"simulcast": false` でも利用可能になりました

#### クラスター機能

- [CHANGE] クラスター有効時に起動した際のモードを `initial` モードに変更しました
- [CHANGE] クラスターに参加したタイミングで自動で `initial` モードから `normal` モードに切り替わるように変更しました
- [CHANGE] `sora.conf` の `cluster_node_name` を `node_name` に変更しました
- [CHANGE] `sora.conf` の `cluster_signaling_url` を `external_signaling_url` に変更しました
- [CHANGE] `sora.conf` の `cluster_api_url` を `external_api_url` に変更しました
- [CHANGE] クラスター有効時に sora.log / internal.log にクラスターノード名を出力するように変更しました
- [CHANGE] [JoinCluster](EXPERIMENTAL_API.html#17f3f5) API の `cluster_node_name` を `contact_node_name` に変更しました
- [CHANGE] [ListClusterNodes](EXPERIMENTAL_API.html#a70901) API の `cluster_node_name` を `node_name` に変更しました
- [ADD] クラスターから特定のノードの情報を完全消去する [PurgeClusterNode](EXPERIMENTAL_API.html#13b35a) API を追加しました
- [ADD] `sora.conf` に Sora 起動時に自動でクラスター参加を試みる `contact_node_name_list` を追加しました- 詳細は [contact_node_name_list](CLUSTER.html#a3d0fd) をご確認ください
- [ADD] `sora.conf` にネットワーク障害等発生時に自動で再接続を試みる `cluster_auto_reconnect` を追加しました- デフォルトは有効です
  - 詳細は [cluster_auto_reconnect](CLUSTER.html#42cbc5) をご確認ください
- [ADD] ネットワーク障害等発生時に自動で復旧を試みる仕組みを追加しました- 詳細は以下をご確認ください
  - [通信できるノードが過半数未満となった場合の挙動](CLUSTER.html#2ccf66)
  - [通信できるノードが過半数以上となった場合の挙動](CLUSTER.html#1d8f01)
  - [全ノードが過半数未満に所属した場合の挙動](CLUSTER.html#f87161)

#### 最大ノード数対応ライセンス

クラスター利用時に複数のノードに同一ライセンスを利用可能にする最大ノードライセンスの提供を開始しました。

詳細は [最大ノード数ライセンス](LICENSE.html#aee259) をご確認ください。

- [CHANGE] 最大ノード数ライセンスに対応していない同一ライセンスを複数のノードに適用し、クラスターを構築しようとすると `DUPLICATE-LICENSE` が出力されるように変更されました- 無制限ライセンスをご利用のお客様でクラスターを利用されている場合はサポートまでご連絡ください
- [ADD] クラスター利用時に同一ライセンスを利用可能な最大ノード数ライセンスに対応しました- **新規でライセンスを発行し直す必要がありますのでサポートまでご連絡ください**
  - 新しくライセンスに `max_nodes` という項目を追加し、この最大ノード数までは複数の Sora で同一ライセンスを利用可能になります

#### 統計機能

- [ADD] 統計 API の rtp 項目に `total_received_srtp_invalid` を追加しました
- [ADD] 統計 API の turn 項目に `total_received_unknown_packet` を追加しました
- [ADD] 統計 API の turn 項目に `total_received_stun_unknown` を追加しました
- [ADD] 統計 API の turn 項目に `total_received_stun_invalid` を追加しました
- [ADD] 統計 API の turn 項目に `total_received_turn_invalid_stun` を追加しました
- [ADD] データチャネルの破棄やリトライの回数をラベルごとに取得できるようになりました- データチャネルの破棄メッセージ数 `total_data_channel_abandon_message` を追加しました
  - データチャネルの再送メッセージ数 `total_data_channel_retransmit_message` を追加しました
  - データチャネルの `DATA_CHANNEL_OPEN` メッセージ数 `total_data_channel_ack_message` を追加しました
  - データチャネルの `DATA_CHANNEL_ACK` メッセージ数 `total_data_channel_open_message` を追加しました
- [UPDATE] `total_sent_data_channel_message` から `DATA_CHANNEL_OPEN` メッセージを除外しました
- [UPDATE] `total_received_data_channel_message` から `DATA_CHANNEL_ACK` メッセージを除外しました

#### センシティブデータ編集済出力機能

詳細は [センシティブデータ](SENSITIVE_DATA.html) をご確認ください。

- [CHANGE] `auth_webhook.log` に含まれる `event_metadata` の中身を編集済みを表す `"REDACTED"` という文字列に書き換える変更を行いました
- [CHANGE] `session_webhook.log` に含まれる `session_metadata` と `event_metadata` の中身を編集済みを表す `"REDACTED"` という文字列にに書き換える変更を行いました
- [CHANGE] `event_webhook.log` に含まれる `event_metadata` の中身を編集済みを表す `"REDACTED"` という文字列にに書き換える変更を行いました- `event_webhook_error.log` の `event_metadata` は書き換えを行いません
- [ADD] `sora.conf` にAPI 戻り値に含まれるセンシティブな可能性があるデータを編集済みを表す `"REDACTED"` という文字列に書き換える `redact_api_sensitive_data` を追加しました- デフォルトでは `true`
  - `event_metadata` の中身を `"REDACTED"` という文字列に書き換えます
- [ADD] `sora.conf` に録画メタデータファイルに含まれるセンシティブな可能性があるデータを `"REDACTED"` という文字列に書き換える `redact_archive_metadata_sensitive_data` を追加しました- デフォルトでは `true`
  - `event_metadata` の中身を `"REDACTED"` という文字列に書き換えます
