# リリースノート

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

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

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

**FIX**
: バグ修正



## 2023.1.6

**ホットフィックスアップデート**

**リリース**: 2024-03-08

### 変更履歴

- [FIX] 録画機能で録画中、出力済の分割録画ファイルのファイルディスクリプタを掴み続ける問題を修正しました


## 2023.1.3

**バグフィックスアップデート**

**リリース**: 2023-10-17

### 変更履歴

- [FIX] 録画機能利用時、分割録画に失敗かつ分割録画ファイルが一つ以上生成されている場合に、終了処理に失敗する問題を修正しました- 終了中の失敗のため、録画処理自体には影響はありません
- [FIX] サイマルキャスト機能の `simulcast_encodings` と `spotlight_encodings` の `scalabilityMode` のデフォルト値を `L1T1` に修正しました- AV1 サイマルキャスト利用時に `L1T1` 以外の `scalabilityMode` を利用すると録画ができない問題があります
- [FIX] データチャネルを利用したメッセージング機能利用時に、パケロスが発生すると一定期間パケットを破棄してしまうことがある問題を修正しました- この問題は `ordered` が `true` で `max_retransmits` や `max_packet_life_time` が設定されている場合に発生します
- [FIX] クラスター機能利用時に、ノードの起動・停止と新規チャネルへの接続が重なると接続に失敗することがある問題を修正しました
- [FIX] `sora.conf` の `default_simulcast_rid` の設定値が設定に反映されない問題を修正しました
- [FIX] 依存している OpenSSL を 3.1.3 にアップデートしました


## 2023.1.2

**バグフィックスアップデート**

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

### 変更履歴

- [FIX] Safari 側の問題により Safari 14 系および Safari 15 系の一部で Sora に接続できない問題を修正しました- Safari 15.6 以降では問題が修正されていることを確認しています


## 2023.1.1

**バグフィックスアップデート**

**リリース**: 2023-07-14

### 変更履歴

- [ADD] connection ログに `ice_connection_state` という ICE コネクション機能の統計情報を追加しました- サポートにて問題をより素早く解決しやすくするための追加です
- [ADD] connection ログに `network_status` に不安定レベル毎の統計情報を追加しました- サポートにて問題をより素早く解決しやすくするための追加です
- [ADD] [GetStatsConnection](API_STATS.html#e79b61) API に `ice_connection_state` の統計情報を追加しました
- [ADD] [GetStatsConnection](API_STATS.html#e79b61) API に `network_status` にレベル毎の統計情報を追加しました
- [FIX] CentOS 7 x86_64 利用時にセグメンテーション違反で Sora が落ちてしまう問題を修正しました
- [FIX] DTLS 再ネゴシエーションの挙動を修正しました
- [FIX] スポットライト機能利用時に OBS での WHIP が利用できない問題を修正しました- 新しく WHIP エンドポイント URL 指定時に `spotlight=true` を指定することで利用できるようにしました
  - ただし、音声がそのままでは配信されないため [FocusSpotlightFixed](API_SPOTLIGHT.html#beaf88) API を利用して音声を配信する必要があります
- [FIX] ICE コネクションステート機能で `disconnected` 時のクライアント状態確認の挙動を修正しました
- [FIX] [PutSignalingNotifyMetadata](EXPERIMENTAL_API_SIGNALING_NOTIFY_METADATA_EXT.html#a20c95) API の結果の誤字を修正しました
- [FIX] [JoinCluster](EXPERIMENTAL_API_CLUSTER.html#17f3f5) API のエラー応答の誤字を修正しました


## 2023.1.0

**メジャーアップデート**

**リリース**: 2023-06-28

### サポート期間変更

- Sora 2023.1.0 より、サポート提供期間をメジャーアップデートがリリースされた日から **12 ヶ月後の月末最終日まで** に変更しました
- 2023年 6 月リリースの Sora 2023.1.0 およびその後リリースされる可能性のある Sora 2023.1.x は、2024 年 6 月 30 日までサポート対象となります

詳細は [サポートライフサイクル](SUPPORT_LIFECYCLE.html) をご確認ください。

### ハイライト

- OBS で WebRTC を利用した配信を実現する WHIP に対応しました- 詳細は [OBS (WHIP) 機能](WHIP.html) をご確認ください
- VP9 / AV1 でのサイマルキャストに対応しました- 詳細は [VP9 と AV1 でのサイマルキャスト](SIMULCAST.html#860410) をご確認ください
- メディアストリームを柔軟に制御するための [転送フィルター機能](FORWARDING_FILTER.html) を追加しました
- 音声ストリーミング機能に自動開始/停止機能を追加しました- 詳細は [自動開始/停止機能](AUDIO_STREAMING.html#1492a6) をご確認ください
- IPv6 のみの環境での動作に対応しました- 詳細は [ipv6_only](SORA_CONF.html#5e9e68) をご確認ください

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

- 移行用の設定である [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) の設定のデフォルトを `false` に変更しました- 詳細は [sora.conf の legacy_webhook_audio_video_json_structure の廃止](DEPRECATED.html#a7613b) をご確認ください
- 移行用の設定である [legacy_log_format](SORA_CONF.html#3e05c7) の設定のデフォルトを `false` に変更しました- 詳細は [sora.conf の legacy_log_format の廃止](DEPRECATED.html#daeabd) をご確認ください
- 移行用の設定である [legacy_log_extension](SORA_CONF.html#847a26) の設定のデフォルトを `false` に変更しました- 詳細は [sora.conf の legacy_log_extension の廃止](DEPRECATED.html#c35c81) をご確認ください

### 廃止情報

- Ubuntu 18.04 向けパッケージのサポートを終了しました- 詳細は [Ubuntu 18.04 サポートの終了](OBSOLETE.html#afde12) をご確認ください
- `sora.conf` の `split_archive_legacy_prefix` を廃止しました- 詳細は [sora.conf の split_archive_legacy_prefix の廃止](OBSOLETE.html#050276) をご確認ください
- `sora.conf` の `default_multistream` を廃止しました- 詳細は [sora.conf の default_multistream の廃止](OBSOLETE.html#615559) をご確認ください
- `sora.conf` の `dcsctp_heartbeat_interval` を廃止しました- 詳細は [DataChannel で利用している SCTP 関連の実験的な設定の廃止](OBSOLETE.html#0af146) をご確認ください
- `sora.conf` の `dcsctp_slow_start_tcp_style` を廃止しました- 詳細は [DataChannel で利用している SCTP 関連の実験的な設定の廃止](OBSOLETE.html#0af146) をご確認ください

### 変更履歴

- [CHANGE] データチャネル関連の設定である `dcsctp_heartbeat_interval` を廃止しました
- [CHANGE] データチャネル関連の設定である `dcsctp_slow_start_tcp_style` を廃止しました
- [CHANGE] サイマルキャスト利用時に `"active": false` を指定したストリームは、 `~r0` といった SDP が生成されます- r1 と r2 が false の場合は `a=simulcast:recv r0;~r1;~r2` のような SDP が生成されます
  - これは [RFC 8853: Using Simulcast in SDP and RTP Sessions](https://www.rfc-editor.org/rfc/rfc8853.html) に準拠しています
- [CHANGE] `sora.conf` のウェブフックの audio と video 項目のレガシーな入れ子構造を利用する [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) のデフォルト値を `false` に変更しました- これは移行用設定です
- [CHANGE] `sora.conf` のログフォーマットのレガシー形式を維持する [legacy_log_format](SORA_CONF.html#3e05c7) のデフォルト値を `false` に変更しました- これは移行用設定です
- [CHANGE] `sora.conf` の JSONL 形式で出力しているログのレガシー拡張子を `.log` に維持する [legacy_log_extension](SORA_CONF.html#847a26) のデフォルト値を `false` に変更しました- これは移行用設定です
- [UPDATE] RHEL 9.2 に対応しました
- [UPDATE] RHEL 8.8 に対応しました
- [ADD] 録画イベントウェブフック `recording.started` に `data.start_timestamp` を追加しました
- [ADD] 録画イベントウェブフック `recording.started` に `data.split_duration` を追加しました
- [ADD] `sora.conf` に IPv6 アドレスのみを利用する [ipv6_only](SORA_CONF.html#5e9e68) の設定を追加しました
- [ADD] クラスター機能が有効な際、セッションウェブフックに `external_signaling_url` 項目を追加しました- `sora.conf` の [external_signaling_url](SORA_CONF.html#d6bf68) に指定されている値がそのまま入ります
- [ADD] モードが `block_new_connection` の場合は、接続に失敗する仕組みを追加しました
- [ADD] イベントウェブフックにログの書き込みが成功したかどうかを示す `log_written` フラグを追加しました- イベントウェブフックログの書き込みが成功した場合は `"log_written": true` が含まれます
  - イベントウェブフックログの書き込みが失敗した場合は `"log_written": false` が含まれます
  - イベントウェブフックログには常に `log_written` が含まれます
- [ADD] 録画機能で録画ファイル生成に失敗したファイル情報を `recording.report` ウェブフックやファイルに `failed_archives` という項目で追加しました
- [ADD] 録画機能の `recording.report` イベントウェブフックに `"file_written"` フラグを追加しました- `report-*.json` ファイルの書き込みに成功した場合 `"file_written": true` が含まれます
  - `report-*.json` ファイルの書き込みに失敗した場合 `"file_written": false` が含まれます
  - `report-*.json` ファイルには常に `file_written` が含まれます
- [FIX] IPv6 のみの環境で Firefox が正常に動作しない問題を修正しました
- [FIX] Sora 終了中に HTTP API が呼ばれるとクラッシュログが出力される問題を修正しました
- [FIX] 認証ウェブフックで `simulcast` が `false` の場合でも `simulcast_rid` が含まれていた問題を修正しました- `simulcast` が `false` の場合は `simulcast_rid` は含まれなくなります
- [FIX] 録画機能で H.264 でまれに録画が失敗してしまう問題を修正しました
- [FIX] スポットライト機能でフォーカスが当たっていない場合でも、無音の音声パケットが配信されてしまう問題を修正しました

#### パッケージファイル名の変更

OS 名とバージョンの間に `-` を入れるようにし、x86_64 もアーキテクチャを追加しました。
展開後のディレクトリにアーキテクチャは含まれません。

- [CHANGE] `sora-2023.1.0-ubuntu22.04-arm64v8.tar.gz` から `sora-2023.1.0-ubuntu-22.04-arm64v8.tar.gz` に変更しました- `ubuntu22.04` を `ubuntu-22.04` に変更しました
- [CHANGE] `sora-2023.1.0-ubuntu20.04-arm64v8.tar.gz` から `sora-2023.1.0-ubuntu-20.04-arm64v8.tar.gz` に変更しました- `ubuntu20.04` を `ubuntu-20.04` に変更しました
- [CHANGE] `sora-2023.1.0-ubuntu22.04.tar.gz` から `sora-2023.1.0-ubuntu-22.04-x86_64.tar.gz` に変更しました- `ubuntu22.04` を `ubuntu-22.04` に変更しました
  - ファイル名に `-x86_64` を追加しました
- [CHANGE] `sora-2023.1.0-ubuntu20.04.tar.gz` から `sora-2023.1.0-ubuntu-20.04-x86_64.tar.gz` に変更しました- `ubuntu20.04` を `ubuntu-20.04` に変更しました
  - ファイル名に `-x86_64` を追加しました
- [CHANGE] `sora-2023.1.0-ubuntu20.04.tar.gz` から `sora-2023.1.0-ubuntu-20.04-x86_64.tar.gz` に変更しました- `ubuntu20.04` を `ubuntu-20.04` に変更しました
  - ファイル名に `-x86_64` を追加しました
- [CHANGE] `sora-2023.1.0-rhel9.2.tar.gz` から `sora-2023.1.0-rhel-9.2-x86_64.tar.gz` に変更しました- `rhel9.2` を `rhel-9.2` に変更しました
  - ファイル名に `-x86_64` を追加しました
- [CHANGE] `sora-2023.1.0-rhel8.8.tar.gz` から `sora-2023.1.0-rhel-8.8-x86_64.tar.gz` に変更しました- `rhel8.8` を `rhel-8.8` に変更しました
  - ファイル名に `-x86_64` を追加しました
- [CHANGE] `sora-2023.1.0-centos7.9.tar.gz` から `sora-2023.1.0-centos-7.9-x86_64.tar.gz` に変更しました- `centos7.9` を `centos-7.9` に変更しました
  - ファイル名に `-x86_64` を追加しました

#### セッション終了 API

- [ADD] 指定したセッションを終了させる [TerminateSession](EXPERIMENTAL_API_SESSION.html#ba022b) API を追加しました- `channel_id` の指定は必須で、 `session_id` がオプションで指定できます

#### ヘルスチェック

- [ADD] `http://<IP アドレス>:5000/.ok` で Sora のヘルスチェックが可能になりました- 単体利用時には問題が無ければ常に 200 OK を返します
  - クラスター利用時には `initial` と `block_new_connection` モード時には `503 Service Unavailable` を返します

詳細は [ヘルスチェック機能](OK.html) をご確認ください。

#### シグナリング通知

- [ADD] シグナリング通知の `"event_type": "connection.created"` に `timestamp` を追加しました- data にも `"data": [{"timestamp": "2023-06-28T10:00:00.999999", ...}, .. ]` のように `timestamp` が含まれるようになります
- [ADD] シグナリング通知の `"event_type": "connection.created"` に `timestamp` を含める設定 [signaling_notify_connection_created_timestamp](SORA_CONF.html#7fe7b3) を `sora.conf` に追加しました- デフォルトは `true` です

#### 映像コーデックパラメーター指定機能

- [ADD] ウェブフックに映像コーデックパラメーター `"video_vp9_params": {"profile_id": 0}` を追加しました- この設定を利用する場合 [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) が `false` である必要があります
- [ADD] ウェブフックに映像コーデックパラメーター `"video_av1_params": {"profile": 0}` を追加しました- この設定を利用する場合 [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) が `false` である必要があります
- [ADD] ウェブフックに映像コーデックパラメーター `"video_h264_params": {"profile_level_id": ""}` を追加しました- この設定を利用する場合 [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) が `false` である必要があります
- [ADD] シグナリング接続時に H.264 のプロファイルレベル ID を `"video": {"codec_type": "H264", "h264_params": {"profile_level_id": "42e01f"}` のように指定できるようになりました- この指定を利用する場合は [signaling_h264_params](SORA_CONF.html#b32e49) が `true` である必要があります
  - `h264_params` を指定する場合は、 `codec_type` は `H264` である必要があります
- [ADD] シグナリング接続時に VP9 のプロファイル ID を `"video": {"codec_type": "VP9", "vp9_params": {"profile_id": 0}}` のように指定できるようになりました- この指定を利用する場合は [signaling_vp9_params](SORA_CONF.html#3261ea) が `true` である必要があります
  - `vp9_params` を指定する場合は、 `codec_type` は `VP9` である必要があります
  - profile_id には 0 から 3 までの値を指定できます
- [ADD] シグナリング接続時に AV1 のプロファイルを `"video": {"codec_type": "AV1", "av1_params": {"profile": 0}}` のように指定できるようになりました- この指定を利用する場合は [signaling_av1_params](SORA_CONF.html#91f3b8) が `true` である必要があります
  - `av1_params` を指定する場合は、 `codec_type` は `AV1` である必要があります
  - profile には 0 から 2 までの値を指定できます
- [ADD] 認証成功時払い出しに VP9 のプロファイル ID を指定できる `"video_vp9_params": {"profile_id": 0}` を追加しました- この設定を利用する場合 [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) が `false` である必要があります
  - profile_id には 0 から 3 までの値を指定できます
- [ADD] 認証成功時払い出しに AV1 のプロファイルを指定できる `"video_av1_params": {"profile": 0}` を追加しました- この設定を利用する場合 [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) が `false` である必要があります
  - profile には 0 から 2 までの値を指定できます
- [ADD] 認証成功時払い出しに H.264 のプロファイルを指定できる `"video_h264_params": {"profile_level_id": "42e01f"}` を追加しました- この設定を利用する場合 [legacy_webhook_audio_video_json_structure](SORA_CONF.html#3be597) が `false` である必要があります
  - `h264_profile_level_id` は 2024 年 6 月リリース予定の Sora にて廃止します
- [ADD] `sora.conf` に VP9 のプロファイル ID のデフォルト値を指定する [default_vp9_param_profile_id](SORA_CONF.html#ab0de9) を追加しました- デフォルトは 0 が設定されています
  - 0 から 3 までの値を指定できます
- [ADD] `sora.conf` に AV1 のプロファイルのデフォルト値を指定する [default_av1_param_profile](SORA_CONF.html#319e30) を追加しました- デフォルトは 0 が設定されています
  - 0 から 2 までの値を指定できます
- [ADD] `sora.conf` に H.264 のプロファイルレベル ID のデフォルト値を指定する [default_h264_param_profile_level_id](SORA_CONF.html#1581db) を追加しました- 既存の [default_h264_profile_level_id](SORA_CONF.html#8a25f5) は 2024 年 6 月リリース予定の Sora にて廃止します

#### OBS (WHIP) 対応

OBS が対応予定の WebRTC (WHIP) で配信ができるようになりました。

- [ADD] `sora.conf` に OBS (WHIP) を有効にする  [whip](SORA_CONF.html#615414) を追加しました- デフォルトは `false` です
- [ADD] `sora.conf` に OBS (WHIP) の Bearer トークンを認証ウェブフックの `metadata` に対応させるキーを指定する [whip_bearer_token_metadata_key](SORA_CONF.html#699f57) を追加しました- OBS (WHIP) からの接続についても Bearer トークンを利用した認証機能が利用できます
  - デフォルトは未指定です
- [ADD] WHIP 向けエンドポイント URL `https://example.com/whip/<channel-id>` を追加しました- クエリー文字列で `client_id` と `bundle_id` を指定できるようになりました
- [ADD] WHIP 向けリソース URL `https://example.com/whip-resource/<channel-id>/<secret>` を追加しました- PATCH と DELETE メソッドに対応しています
- [ADD] WHIP を利用した際、認証ウェブフックに `whip: true` を追加しました- WHIP を利用していない接続の場合はこの項目は含まれません

詳細は [OBS (WHIP) 対応機能](WHIP.html) をご確認ください。

#### VP9 / AV1 サイマルキャスト対応

- [UPDATE] VP9 と AV1 でのサイマルキャスト機能に対応しました- Chrome 113 以降でスポットライト機能にて VP9 と AV1 が利用できるようになりました
  - Edge 113 以降でスポットライト機能にて VP9 が利用できるようになりました
- [UPDATE] 認証成功時の払い出し `simulcast_encodings` と `spotlight_encodings` で `scalabilityMode` を指定できるようになりました- デフォルトでは `scalabilityMode` に `L1T3` が設定されています
- [UPDATE] [simulcast_encodings_file](SORA_CONF.html#dead73) と  [spotlight_encodings_file](SORA_CONF.html#6115fb) で `scalabilityMode` を指定できるようになりました

詳細は [scalabilityMode](SIMULCAST.html#918c4d) をご確認ください。

#### Lyra 録音機能

- [ADD] 録画機能に Lyra コーデックを利用した際に WebM ファイルで録音する仕組みを追加しました

詳細は [Lyra コーデックの録画ファイル](RECORDING.html#b9f8bb) をご確認ください。

#### 転送フィルター機能

今まで [PauseRtpStream](EXPERIMENTAL_API_RTP_STREAM_PAUSE_RESUME.html#de7a52) / [ResumeRtpStream](EXPERIMENTAL_API_RTP_STREAM_PAUSE_RESUME.html#43002a) API で実現していたメディアストリームの停止/再開をより細かく、柔軟に設定をできるようにした、
転送フィルター機能を追加しました。

- [ADD] セッション作成時 `forwarding_filter` を指定することでチャネル単位の転送フィルターを追加できるようになりました
- [ADD] シグナリング接続時に `forwarding_filter` を指定することで接続単位の転送フィルターを追加できるようになりました
- [ADD] 認証成功時に `forwarding_filter` を指定することで接続単位の転送フィルターを追加できるようになりました
- [ADD] チャネル単位でチャネルとコネクションの転送フィルターを確認できる [ListForwardingFilters](EXPERIMENTAL_API_FORWARDING_FILTER.html#a1dd75) API を追加しました
- [ADD] チャネル単位の転送フィルターを作成する [CreateChannelForwardingFilter](EXPERIMENTAL_API_FORWARDING_FILTER.html#fe98d1) API を追加しました
- [ADD] チャネル単位の転送フィルターを更新する [UpdateChannelForwardingFilter](EXPERIMENTAL_API_FORWARDING_FILTER.html#36fc45) API を追加しました
- [ADD] チャネル単位の転送フィルターを削除する [DeleteChannelForwardingFilter](EXPERIMENTAL_API_FORWARDING_FILTER.html#9410fd) API を追加しました
- [ADD] コネクション単位の転送フィルターを作成する [CreateConnectionForwardingFilter](EXPERIMENTAL_API_FORWARDING_FILTER.html#d80a51) API を追加しました
- [ADD] コネクション単位の転送フィルターを更新する [UpdateConnectionForwardingFilter](EXPERIMENTAL_API_FORWARDING_FILTER.html#23ed63) API を追加しました
- [ADD] コネクション単位の転送フィルターを削除する [DeleteConnectionForwardingFilter](EXPERIMENTAL_API_FORWARDING_FILTER.html#0d65da) API を追加しました
- [ADD] 転送フィルターで転送がブロックされたタイミングでシグナリング通知する機能を追加しました
- [ADD] 転送フィルターで転送がブロックが解除されたタイミングでシグナリング通知する機能を追加しました
- [ADD] `sora.conf` に転送フィルターをシグナリング経由で指定できるかどうかを設定する [signaling_forwarding_filter](SORA_CONF.html#d15a40) を追加しました- デフォルト は `false` です
- [ADD] `sora.conf` に転送フィルターのブロックの状態が変わったタイミングでシグナリング通知を飛ばすかどうかを設定する [signaling_notify_forwarding_filter](SORA_CONF.html#338e96) を追加しました- デフォルト は `true` です

詳細は [転送フィルター機能](FORWARDING_FILTER.html) をご確認ください。

#### SDP 再利用機能

今までマルチストリーム利用した際に、クライアント切断してもその SDP が残ってしまう問題がありました。
今回のリリースで、SDP を再利用する仕組みにより SDP が残る問題を解決しました。

- [CHANGE] `recycle_media_section` が `true` の際に、SDP を再利用する仕組みを追加しました
- [ADD] `sora.conf` に SDP の再利用を行う [recycle_media_section](SORA_CONF.html#d3e2b5) 設定を追加しました- デフォルトは `true` です

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

- [ADD] 音声ストリーミングの結果通知の状態を確認する [ListAudioStreamingResultPushState](EXPERIMENTAL_API_AUDIO_STREAMING.html#70450f) API を追加しました
- [ADD] 音声ストリーミング機能にサブスクライブが 0 になると音声ストリーミングを停止し、サブスクライブが 1 以上になると音声ストリーミングを開始する機能を追加しました- この機能はセッション開始時に指定可能です
  - この機能が有効になっている場合は音声ストリーミング開始/終了 API は利用できません
- [ADD] セッションウェブフックの払い出しに音声ストリーミングの自動開始と停止を有効にする `audio_streaming_auto` を追加しました- この設定を利用する場合は必ず `audio_streaming` を `true` で払い出す必要があります
- [ADD] `sora.conf` に音声ストリーミングのウェブフックを送信するかどうかを設定する [ignore_audio_streaming_webhook](SORA_CONF.html#8f086b) を追加しました- デフォルトは `true` で、送信しません
- [ADD] 音声ストリーミング機能の開始のウェブフック `audio-streaming.started` を追加しました- `sora.conf` にて [ignore_audio_streaming_webhook](SORA_CONF.html#8f086b) を `false` にすることで送信します
- [ADD] 音声ストリーミング機能の終了のウェブフック `audio-streaming.stopped` を追加しました- `sora.conf` にて [ignore_audio_streaming_webhook](SORA_CONF.html#8f086b) を `false` にすることで送信します

#### WebSocket 経由シグナリングでの ping / pong / stats のインターバルやタイムアウトの設定

WebSocket 経由でのシグナリングにおいて、 `"type": "ping"` や `"type": "pong"` のインターバルやタイムアウトを設定できるようになりました。
また `"type": "ping"` 送信時の `"stats": true` にする間隔を指定できるようになりました。

- [CHANGE] `"type": "ping"` 時におくる `"stats": true` の間隔を 5 秒から 30 秒に変更しました
- [ADD] `sora.conf` に ping を送信する間隔を指定する [websocket_signaling_ping_interval](SORA_CONF.html#27aae2) 設定を追加しました- デフォルトは `5 s` です
  - 最小は `5 s` です
  - 最大は `300 s` です
- [ADD] `sora.conf` に pong のタイムアウト時間を指定する [websocket_signaling_pong_timeout](SORA_CONF.html#140464) 設定を追加しました- デフォルトは `60 s` です
  - 最小は `60 s` です
  - 最大は `600 s` です
- [ADD] `sora.conf` に ping 送信時に `"stats": true` にする間隔を指定する [websocket_stats_timer_interval](SORA_CONF.html#67a631) 設定を追加しました- デフォルトは `30 s` です
  - 最小は `30 s` です
  - 最大は `600 s` です

#### クラスター機能利用時のディスク障害時の対応を追加

- [CHANGE] クラスター利用時に `block_new_connection` モードへ遷移した場合には新規接続のリダイレクトを行わないように変更しました
- [ADD] クラスター利用時にディスク障害が発生した際に、 `block_new_connection` モードへ遷移する機能を追加しました


## 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] 音声ストリーミング機能でロールが `recvonly` の場合にプッシュ通知が受信できない問題を修正しました
- [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` が `signaling.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_CLUSTER.html#621990) API を追加しました
- [CHANGE] クラスター機能の [ListClusterNodes](EXPERIMENTAL_API_CLUSTER.html#a70901) API の `member_since` を廃止しました
- [CHANGE] クラスター機能の [ListClusterChannels](EXPERIMENTAL_API_CLUSTER.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_AUDIO_STREAMING.html#0f1087) API を追加しました
- [ADD] 音声ストリーミングを終了する [StopAudioStreaming](EXPERIMENTAL_API_AUDIO_STREAMING.html#bad1bb) API を追加しました
- [ADD] 音声ストリーミングの解析結果を購読する [SubscribeAudioStreamingResultPush](EXPERIMENTAL_API_AUDIO_STREAMING.html#d26262) API を追加しました
- [ADD] 音声ストリーミングの解析結果を購読解除する [UnsubscribeAudioStreamingResultPush](EXPERIMENTAL_API_AUDIO_STREAMING.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_RECORDING.html#fd0de5) API の `redirect` を廃止しました

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

- マルチストリームをデフォルトで有効にしました- `sora.conf` の `default_multistream` を `false` にすることでマルチストリームがデフォルトではなくなります
  - この設定は 2023 年 6 月リリースの Sora にて廃止されます
  - 詳細は [sora.conf の default_multistream の廃止](OBSOLETE.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 の廃止](OBSOLETE.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 の廃止](OBSOLETE.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 の廃止](OBSOLETE.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 の廃止](OBSOLETE.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_STATS.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 の廃止](OBSOLETE.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 の廃止](OBSOLETE.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_CLUSTER.html#17f3f5) API の `cluster_node_name` を `contact_node_name` に変更しました
- [CHANGE] [ListClusterNodes](EXPERIMENTAL_API_CLUSTER.html#a70901) API の `cluster_node_name` を `node_name` に変更しました
- [ADD] クラスターから特定のノードの情報を完全消去する [PurgeClusterNode](EXPERIMENTAL_API_CLUSTER.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"` という文字列に書き換えます
