##################### 古いリリースノート ##################### UPDATE 後方互換性がある変更 ADD 後方互換性がある追加 CHANGE 後方互換性のない変更 FIX バグ修正 .. important:: 変更、廃止された一部機能のリンクは無効になっています。 .. _v2024.2.3: 2024.2.3 =================== **バグフィックスアップデート** :リリース: 2025 年 5 月 19 日 変更履歴 -------- - [ADD] 録画機能利用時に Safari 18.4 から Safari 18.5 で H.264/H.265 を利用している場合に発生するタイムスタンプの不具合に対するワークアラウンド機能を追加しました - デフォルトでは未指定です - 指定する場合は ``sora.conf`` に ``workaround_20250515 = 18.4,18.4.1,18.5`` のように、ワークアラウンドに対応させる Safari のバージョンを ``,`` で区切って指定してください - iOS 版 Chrome でもワークアラウンドが有効になります - 詳細は :ref:`workaround_20250515` をご確認ください。 - [FIX] 録画機能で Chrome 136 で特定のハードウェアエンコーダーと組み合わせた際、 H.265 の録画が正常に行えない問題を修正しました .. _v2024.2.2: 2024.2.2 =================== **バグフィックスアップデート** :リリース: 2025 年 4 月 9 日 変更履歴 -------- - [FIX] 依存している OpenSSL を 3.4.1 にアップデートしました - [FIX] ウェブフック機能、音声ストリーミング機能、統計エクスポーター機能で HTTPS を利用する際、証明書の鍵の使用法と拡張された鍵の使用法の互換性チェックが間違っていたため、サポートされていないサーバー証明書と判断して接続に失敗する場合がある問題を修正しました - これは Sora が利用している PKI ライブラリのバグにより発生していた問題で、ライブラリをアップデートすることで解消しました .. _v2024.2.1: 2024.2.1 =================== **バグフィックスアップデート** :リリース: 2025 年 1 月 8 日 変更履歴 -------- - [FIX] AV1 コーデック利用時、主にハードウェアエンコーダーなど、 ``libwebrtc`` が採用している ``libaom`` 以外のエンコーダーを利用するとキーフレーム判定が失敗する場合がある問題を修正しました - [FIX] クラスター構成で Sora 2024.1.x からのローリングアップデート中、録画が開始できない場合がある問題を修正しました - [FIX] クラスター構成で Sora 2024.1.x からのローリングアップデート中、録画を開始すると ``recording.report`` ウェブフックが送信されない場合がある問題を修正しました .. _v2024.2.0: 2024.2.0 =================== **メジャーアップデート** :リリース: 2024 年 12 月 18 日 ハイライト ------------------ - 録画アーカイブファイルの MP4 形式による出力に対応しました - 録画アーカイブファイルの H.265 コーデックによる出力に対応しました - リアルタイムメッセージング機能で、メッセージのヘッダーに送信元の connection_id を付与する機能を追加しました - 実験的機能として、転送フィルター機能で複数のフィルターを設定できる「マルチ転送フィルター機能」を追加しました - 実験的機能として、 :ref:`session-webhook-session.created` の払い出しに、セッションの同時接続数を制限する ``trial_max_connections`` を追加しました - 指定したコネクションにキーフレームを要求する :ref:`20241218.RequestKeyFrame` API を追加しました 正式版 -------- 今回のリリースで以下の機能が実験的機能から正式版になりました。 - :doc:`クラスター機能 ` - :doc:`センシティブデータ ` - :doc:`OBS (WHIP) 対応 ` - ``メディア配信ワーカー機能`` - :ref:`セッションライフタイム機能 ` - :ref:`コネクションライフタイム機能 ` - :ref:`20230628.TerminateSession` API 破壊的変更 --------------- - 既存のセッションの同時接続数が ``0`` の際に、このセッションと異なる ``multistream`` または ``spotlight`` 設定の新規接続が来た場合、エラーになるように変更しました - クライアントに通知されるエラーメッセージを改善しました - 転送フィルターの認証成功時の払い出しエラーが発生した場合、接続が失敗するようになりました - 転送フィルターのセッション生成時の払い出しエラーが発生した場合、セッションが破棄されるようになりました - :ref:`sora_conf-session_created_response_validate_warning_as_error` が ``false`` の場合でもエラーとなりセッションを破棄します - 統計情報に含まれる ``total_received_intra_frame`` を ``total_received_key_frame`` に変更しました 廃止情報 -------- - :ref:`obsolete-20211215.JoinCluster` API を廃止しました - 今後は同じ機能を持つ :ref:`20211215.RegisterClusterNode` API をご利用ください - E2EE 機能を廃止しました - 将来的に Message Layer Security (MLS) を利用した E2EE 機能を提供予定です - ウェブフックに含まれる ``e2ee`` 項目は予約項目として常に ``false`` が含まれます - ``sora.conf`` から ``e2ee`` 項目を廃止しました - ``sora.conf`` の移行用の設定 ``legacy_auth_webhook_log`` 設定を廃止しました - ``sora.conf`` の移行用の設定 ``legacy_event_webhook_connection_destroyed_reason`` 設定を廃止しました 非推奨情報 ---------------- - 転送フィルターを認証成功時やセッション生成時の払い出しで指定できる ``forwarding_filter`` を非推奨にしました - ``forwarding_filter`` は 2025 年 12 月リリース予定の Sora で廃止します - 代わりに複数の転送フィルターを指定できる ``forwarding_filters`` をご利用ください - シグナリング接続時に転送フィルターを指定できる :ref:`sora_conf-signaling_forwarding_filter` を非推奨にしました - :ref:`sora_conf-signaling_forwarding_filter` は 2025 年 12 月リリース予定の Sora で廃止します - 代わりに複数の転送フィルターを指定できる :ref:`sora_conf-signaling_forwarding_filters` をご利用ください - ``mode_session_vanished`` を非推奨にしました - ``mode_session_vanished`` は 2025 年 6 月リリース予定の Sora にて廃止します - 代わりに :ref:`20171010.GetStatsReport` API の ``total_ongoing_connections`` をご利用ください。 - 値の監視については :doc:`Sora Exporter ` の利用をお勧めします - :doc:`RTP ストリーム停止/再開 API ` を非推奨にしました - :doc:`RTP ストリーム停止/再開 API ` は 2025 年 12 月リリース予定の Sora にて廃止します - 代わりに :doc:`転送フィルター ` をご利用ください 変更履歴 -------- - [CHANGE] 統計情報に含まれる ``total_received_intra_frame`` を ``total_received_key_frame`` に変更しました - :ref:`20241218.RequestKeyFrame` API に合わせた変更になります - [CHANGE] ``spotlight.focused`` と ``spotlight.unfocused`` イベントウェブフックの送信を行わない場合はログを書き込まないよう変更しました - [CHANGE] ウェブフックを送信を行わない (ignore) の設定した場合でも以下のウェブフックはログを出力するように変更しました - ``recording.started`` セッションウェブフック - ``session.updated`` セッションウェブフック - ``session.vanished`` セッションウェブフック - ``connection.failed`` イベントウェブフック - ``legacy_signaling_error`` が ``true`` かつ ``ignore_connection_failed_webhook`` が ``true`` の場合、 ログを出力しません - ``archive.started`` イベントウェブフック - ``recording.started`` イベントウェブフック - [CHANGE] ``E2EE`` 機能を廃止しました - ``sora.conf`` の ``e2ee`` を廃止しました - ウェブフックに含まれる ``e2ee`` は常に ``false`` が含まれます - [ADD] :ref:`sora_conf-copy_websocket_signaling_header_names` で指定した WebSocket シグナリングの HTTP ヘッダーを ``rtc_stats.jsonl`` と ``connection.jsonl`` に ``copy_headers`` 項目で出力するようにしました - [ADD] 特定環境向けに TURN 利用時に 5-TUPLE を無視する設定を追加しました - **この機能を利用する場合は事前にサポートまでご連絡ください** - ``sora.conf`` の :ref:`sora_conf-ignore_turn_five_tuple` を ``true`` に設定することで、送られてくるパケットの 5-TUPLE を無視するようになります - [ADD] ``"type": "offer"`` メッセージに ``audio`` と ``video`` 関連項目を追加しました - ``audio`` は必ず含まれます - ``audio_codec_type`` はオプションで、 ``audio`` が ``true`` かつ ``role`` が ``sendrecv`` または ``sendonly`` の場合に含まれます - ``audio_bit_rate`` はオプションで、 ``audio`` が ``true`` かつ ``role`` が ``sendrecv`` または ``sendonly`` で ``audio_bit_rate`` が指定された場合に含まれます - ``video`` は必ず含まれます - ``video_codec_type`` はオプションで、 ``video`` が ``true`` かつ ``role`` が ``sendrecv`` または ``sendonly`` の場合に含まれます - ``video_bit_rate`` はオプションで、 ``video`` が ``true`` かつ ``role`` が ``sendrecv`` または ``sendonly`` の場合に含まれます - [ADD] サイマルキャスト機能の設定項目に ``scaleResolutionDownTo`` を追加しました - ``{"maxHeight": 1080, "maxWidth": 1920}`` のように解像度を指定することができるようになります - この機能は Chrome/Edge 131 以降で利用できます - https://w3c.github.io/webrtc-extensions/#dom-rtcrtpencodingparameters-scaleresolutiondownto - [ADD] ``connection.jsonl`` に ``simulcast_encodings`` と ``simulcast_codecs`` 項目を追加しました - ``simulcast`` のみ ``true`` の場合は ``simulcast_encodings`` を出力します - ``simulcast`` と ``simulcast_multicodec`` が ``true`` の場合は ``simulcast_codecs`` も出力します - [FIX] Safari や Chrome Canary で H.265 の配信ができない問題を修正しました - [FIX] コネクションの切断が発生しない録画失敗のログレベルを ``error`` から ``warning`` に修正しました - [FIX] 録画ファイル書き込みに失敗するとクラッシュログが出力されることがある問題を修正しました - [FIX] サイマルキャスト機能利用時に ``simulcast_encodings`` に ``active`` を未指定だと接続が失敗する問題を修正しました - [FIX] H.264 の RTP ペイロードヘッダーが不正な場合、サイレントディスカードするように修正しました sora.conf ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] ``sora.conf`` の :ref:`sora_conf-legacy_recording` のデフォルトを ``true`` から ``false`` に変更しました - [CHANGE] ``sora.conf`` の移行用の設定 ``legacy_auth_webhook_log`` 設定を廃止しました - [CHANGE] ``sora.conf`` の移行用の設定 ``legacy_event_webhook_connection_destroyed_reason`` 設定を廃止しました - [CHANGE] ``sora.conf`` の :ref:`sora_conf-default_h264_param_profile_level_id` のデフォルト値を ``42e01f`` から ``42e02a`` へ変更しました - Chrome / Edge がデフォルト値を変更した事への追従です - [UPDATE] ``sora.conf`` の :ref:`sora_conf-connection_created_wait_timeout` の最小値を ``1 s`` から ``0 s`` へ変更しました - 挙動確認などで意図的にエラーを発生させられるように変更しました - [FIX] ウェブフック送信時にボディを待つ時間に :ref:`sora_conf-webhook_response_timeout` が反映されていない問題を修正しました - [FIX] ウェブフック送信時に TCP コネクションの確立を待つ時間に :ref:`sora_conf-webhook_connect_timeout` が反映されていない問題を修正しました API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [UPDATE] :ref:`20201013.ListConnections` API の戻り値に ``node_name`` を追加しました - [UPDATE] :ref:`20201013.ListChannelConnections` API の戻り値に ``node_name`` を追加しました - [UPDATE] :ref:`20171101.GetStatsAllConnections` API の戻り値に ``session_id`` を追加しました - [UPDATE] :ref:`20170529.GetStatsConnection` API の戻り値に ``session_id`` を追加しました - [UPDATE] :ref:`20170529.GetStatsClient` API の戻り値に ``session_id`` を追加しました - [ADD] 指定したクライアントにキーフレームを要求する :ref:`20241218.RequestKeyFrame` API を追加しました - :doc:`レガシーストリーム ` では利用できません - [FIX] :ref:`20171010.GetStatsReport` API のウェブフック統計情報はウェブフックを送信したときのみカウントされるように修正しました - [FIX] :ref:`20171010.GetStatsReport` API のウェブフック統計情報が正しくカウントされない問題を修正しました - ``total_ignored_session_webhook`` が実際よりも少なくカウントされていた問題を修正しました - :ref:`session-webhook-audio-streaming.started` と :ref:`session-webhook-audio-streaming.stopped` のウェブフック統計情報が ``total_ignored_XXX_webhook`` と ``total_successful_XXX_webhook`` の両方がカウントされていた問題を修正しました セッション単位での同時接続数制限機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** 認証ウェブフックでの接続制限はウェブフックが並列で送信されるため、厳密な同時接続制限ができませんでした。 この機能ではセッション単位での同時接続数を制限することで、厳密に同時接続制限ができるようになります。 この機能を利用することで認証に成功した場合でも、セッションに接続できない場合があります。 その場合は、クライアントには ``SERVICE-UNAVAILABLE`` が通知されます。 この機能は実験的機能のトライアル中です。 将来的にロール単位やクライアント ID 単位での接続制限機能などを加えていく予定です。 正式版と明確に区別するため ``trial_`` を prefix として付与しています。 - [ADD] :ref:`session-webhook-session.created` の払い出しにセッションの同時接続数を制限する ``trial_max_connections`` を追加しました - デフォルトは未指定で制限がない状態です - 指定できる範囲は 0..10000 です - ``trial_max_connections`` が ``0`` の場合は誰も接続することができなくなります - セッションが同時接続数制限に達した場合はクライアントに ``SERVICE-UNAVAILABLE`` を通知します 統計情報の追加 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] :ref:`20171010.GetStatsReport` API に SRTP パケットの統計情報を追加しました - ``total_received_srtp`` - 受信した SRTP パケットの合計数 - ``total_received_srtp_byte_size`` - 受信した SRTP パケットの合計バイト数 - ``total_sent_srtp`` - 送信した SRTP パケットの合計数 - ``total_sent_srtp_byte_size`` - 送信した SRTP パケットの合計バイト数 - ``total_decrypted_srtp`` - 復号した SRTP パケットの合計数 - ``total_decrypted_srtp_byte_size`` - 復号した SRTP パケットの合計バイト数 - [ADD] :ref:`20171010.GetStatsReport` API に DataChannel で利用している SCTP パケットの統計情報を追加しました - ``total_received_sctp`` - DataChannel で受信した SCTP パケットの合計数 - ``total_received_sctp_byte_size`` - DataChannel で受信した SCTP パケットの合計バイト数 - ``total_sent_sctp`` - DataChannel で送信した SCTP パケットの合計数 - ``total_sent_sctp_byte_size`` - DataChannel で送信した SCTP パケットの合計バイト数 - [ADD] :ref:`20171010.GetStatsReport` API に無視されたウェブフックの統計情報を追加しました - ``total_ignored_session_webhook`` - 無視されたセッションウェブフックの合計数 - ``total_ignored_event_webhook`` - 無視されたイベントウェブフックの合計数 - ``total_ignored_stats_webhook`` - 無視された統計ウェブフックの合計数 Sora 側からのシグナリング切断時のクライアントへの通知改善 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] WebSocket シグナリング利用時にメッセージサイズが大きすぎる場合の ``code`` を ``4490`` から ``1009`` に変更しました - メッセージサイズの最大は 5 MiB です - WebSocket の仕様に合わせました - [CHANGE] WebSocket シグナリング利用時に Sora 側からのクライアントへの通知を改善しました - 正常切断 - ``code`` は ``1000`` です - ``reason`` には切断理由が含まれます - ``TYPE-DISCONNECT`` - ``DISCONNECTED-API`` - ``LIFETIME-EXPIRED`` - ``SESSION-DESTROYED`` - 異常切断 - 異常が発生して Sora 側から切断した場合は ``code`` に ``4490`` が含まれます - ``reason`` には切断理由が含まれます - [ADD] ``sora.conf`` に :ref:`sora_conf-data_channel_signaling_close_message` を追加しました - デフォルトは ``false`` です - ``true`` の場合は Sora からコネクションを切断する際、 DataChannel シグナリングが有効かつ、 ``ignore_disconnect_websocket`` が ``true`` な場合 ``signaling`` ラベルに ``"type": "close"`` メッセージを送信します - ``false`` の場合は今まで通り、 DataChannel を閉じます - ``"type": "close"`` メッセージには ``code`` と ``reason`` が含まれます - 正常切断 - 切断 API や期限切れで Sora 側から切断した場合は ``code`` に ``1000`` が含まれます - ``reason`` には切断理由が含まれます - ``LIFETIME-EXPIRED`` - ``SESSION-DESTROYED`` - ``DISCONNECTED-API`` - 異常切断 - 異常が発生して Sora 側から切断した場合は ``code`` に ``4490`` が含まれます - ``reason`` には切断理由が含まれます - [ADD] ``sora.conf`` に :ref:`sora_conf-signaling_normal_close_reason` を追加しました - デフォルトは ``true`` です - ``false`` を指定した場合、正常切断時の ``reason`` が空文字になります - ``false`` を指定した場合でも異常切断時は ``reason`` は含まれます シグナリングエラーの改善 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ``sora.conf`` にレガシーシグナリングエラーを有効にする設定を追加しました ``legacy_signaling_error`` を追加しました - デフォルトは ``false`` です - **この設定は移行用で 2025 年 6 月に廃止します** - この設定は 2024.1.x までの Sora との後方互換性を維持するための機能です - ``false`` の場合は ``log/connection_created_wait_timeout`` にログが出力されなくなりました - ``false`` の場合は ``log/signaling_error.jsonl`` にシグナリングエラーログが出力されるようになりました - ``false`` の場合は ``connection.failed`` ウェブフックは **認証成功時** かつ **connection.created** が送信されていない場合のみ送信されるようになりました - ``false`` の場合は ``sora.jsonl`` に認証失敗ログが出力されなくなりました - ``false`` の場合は ``sora.jsonl`` にシグナリング失敗ログが出力されなくなりました - ``true`` の場合は今まで通り ``ignore_connection_failed_webhook`` が ``true`` の場合、 ``event_webhook.jsonl`` にシグナリングログが出力されません - [CHANGE] クライアントに通知するエラーメッセージを変更しました - クライアントへ通知するエラーがあまりにもサーバーよりのメッセージが多く、混乱を招くため整理しました - Sora の内部的なエラーは ``INTERNAL-ERROR`` を通知するよう変更しました - 以下のメッセージはクライアントへは通知されなくなりました - ``SIGNALING-INTERNAL-ERROR`` - ``AUTH-WEBHOOK-RESPONSE-EMPTY-BODY`` - ``AUTH-WEBHOOK-RESPONSE-UNEXPECTED-STATUS-CODE`` - ``INVALID-AUTHZ-MEDIA`` - ``WHEP-INCOMPATIBLE-UPSTREAM-TRACK`` - ``DUPLICATED-CONNECTION-ID-ERROR`` - ``INVALID-SPOTLIGHT-NUMBER`` - ``DUPLICATED-CHANNEL-ID`` - ``UNMATCH-CODEC-TYPE-ERROR`` - Sora が一時的に利用できない場合は ``SERVICE-UNAVAILABLE`` を通知するように変更しました - 以下のメッセージはクライアントへは通知されなくなりました - ``EXCEED-MAX-CONNECTIONS`` - ``BLOCK-NEW-CONNECTION`` - ``BLOCK-NEW-SESSION`` - ``INVALID-MODE`` - Sora でタイムアウトが発生した場合は ``TIMEOUT`` を通知するように変更しました - 以下のメッセージはクライアントへは通知されなくなりました - ``CONNECTION-CREATED-WAIT-TIMEOUT-ERROR`` - ``CONNECT-WAIT-TIMEOUT-ERROR`` - ``ANSWER-TIMEOUT-ERROR`` - ``PONG-TIMEOUT-ERROR`` - シグナリングメッセージが不正な場合は ``INVALID-MESSAGE`` を通知するように変更しました - 以下のメッセージはクライアントへは通知されなくなりました - ``INVALID-JSON`` - ``INVALID-SIGNALING-TYPE`` - ``INVALID-SIGNALING-PARAMS`` - ``MISSING-TYPE`` - ``BAD-FINGERPRINT`` - ``TOO-LARGE-JSON`` - ``TOO-MANY-CANDIDATE`` - ``INVALID-VIDEO-FORMAT`` - ``FAILURE-SDP-PARSE`` - ``MISSING-ICE-SDP`` - ``INVALID-VIDEO-FORMAT`` - ``INVALID-AUDIO-FORMAT`` - ``FAILURE-JSON-DECODE`` - ``UNEXPECTED-SIGNALING-TYPE`` - ``UNKNOWN-AUDIO-CODEC-TYPE`` - ``INVALID-AUDIO-BIT-RATE`` - ``UNKNOWN-VIDEO-CODEC-TYPE`` - ``INVALID-VIDEO-BIT-RATE`` 録画機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] 録画ファイル処理の開始に失敗した場合のログレベルを ``ERROR`` から ``WARNING`` に変更しました - [ADD] イベントウェブフック ``archive.*`` と ``split-archive.*`` に項目を追加しました - ``split_only`` - 指定していない場合、値は ``false`` になります - ``format`` - ``mp4`` または ``webm`` が含まれます - ``expire_time`` - 指定していない場合は項目が含まれません - ``expired_at`` - 指定していない場合は項目が含まれません - ``split_duration`` - 指定していない場合は項目が含まれません - [FIX] AV1 サイマルキャスト使用時に録画が正常に行われない問題を修正しました MP4 録画機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** MP4 形式での録画ファイル出力に対応しました。 - [ADD] MP4 形式での録画に対応しました - **MP4 録画機能はレガシー録画機能では利用できません** - OBS が提唱する Hybrid MP4 形式に対応しています - https://obsproject.com/kb/hybrid-mp4 - https://obsproject.com/blog/obs-studio-hybrid-mp4 - [ADD] ``sora.conf`` に :ref:`sora_conf-default_recording_format` を追加しました - デフォルトは ``webm`` です - ``webm`` と ``mp4`` が指定できます - MP4 録画機能はレガシー録画機能では利用できません - [ADD] :ref:`20231220.StartRecording` API に ``format`` (オプション) を追加しました - ``format`` には ``webm`` と ``mp4`` が指定できます - ``format`` が未指定の場合は :ref:`sora_conf-default_recording_format` の値が利用されます - 映像コーデックが H.265 の場合 ``format`` に ``mp4`` を指定しない場合、録画が行われません - [ADD] :ref:`session-webhook-session.created` の払い出しに ``recording_format`` を追加しました - ``recording_format`` には ``webm`` と ``mp4`` が指定できます - ``recording_format`` が未指定の場合は :ref:`sora_conf-default_recording_format` の値が利用されます - 映像コーデックが H.265 の場合 ``format`` に ``mp4`` を指定しない場合、録画が行われません - [ADD] :ref:`session-webhook-session.updated` の ``recording`` に ``format`` を追加しました - ``"format": "webm"`` または ``"format": "mp4"`` が含まれるようになりました - [ADD] セッションウェブフック ``recording.*`` に ``data.format`` を追加しました - ``"format": "webm"`` または ``"format": "mp4"`` が含まれるようになりました - [ADD] イベントウェブフック ``archive.*`` と ``split-archive.*`` に ``data.format`` を追加しました - ``"format": "webm"`` または ``"format": "mp4"`` が含まれるようになりました - [ADD] ``sora.conf`` に録画機能(セッション単位) 利用時に MP4 形式を利用した場合、クライアントへ送るキーフレーム要求 (PLI) の間隔を指定できる :ref:`sora_conf-default_recording_mp4_pli_interval` を追加しました - デフォルトは ``20 s`` です - 最小は ``1 s`` で、最大は ``240 s`` です - WebM 形式ではキーフレームの間隔が最大でも 31 秒までという制約がありましたが、 MP4 形式ではこの制約がなくなりました H.265 録画機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** H.265 コーデックでの録画機能に対応しました。 - [ADD] H.265 録画機能に対応しました - H.265 は ``format`` に ``mp4`` が設定されている場合のみ録画ができます - WebM 形式を設定した場合 H.265 の録画は行われません - H.265 録画機能はレガシー録画では利用できません ICE コネクションステート変更のシグナリング通知 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** ICE コネクションステートが変更した際、 同一チャネルに接続している自分を含むクライアント全員へ通知する仕組みを追加しました。 この機能を利用することで、 自分の ICE コネクションステートの変更を **同じセッションに参加している自分を含むクライアント全員** へシグナリング通知が送信されます。 また、接続時に **既にチャネルに参加しているクライアント全員の ICE コネクションステート** を取得できるようになります。 他のシグナリング通知機能とは異なり、この設定は有効にした場合、 自分を含むチャネル参加者全員へ通知を行いますので注意してください。 用途としては 4 人で双方向のビデオ通話をしている際、 特定のクライアントが不安定だという事を知ったり、 1:50 の片方配信の際に配信者の通信状態を視聴者側が知ったりすることができるようになります。 通知されるタイミングは 4 種類あります。 #. connected から checking になった時 #. checking から connected になった時 #. checking から disconnected になった時 #. disconnected から checking になった時 - [ADD] ``sora_conf`` に :ref:`sora_conf-signaling_notify_ice_connection_state` を追加しました - デフォルトは ``false`` です - ``true`` に設定すると ICE コネクションステートが変更された際に、同一チャネルに接続しているクライアントへシグナリング通知 ``ice-connection-state.changes`` を送信します - ``true`` にするとチャネル参加時のシグナリング通知 ``connection.created`` の既存参加者の ``data`` に ``ice_connection_state`` が含まれるようになります - [ADD] 認証成功時の払い出しに ``signaling_notify_ice_connection_state`` を追加しました - デフォルトは :ref:`sora_conf-signaling_notify_ice_connection_state` の値が採用されます - ``false`` を払い出すことで自身の ICE コネクションステートの状態を他のチャネルに参加しているクライアントへシグナリング通知が送信されなくなります - [ADD] ICE コネクションステートを強制的に変更し維持する :ref:`20380119.LockIceConnectionState` テスト API を追加しました 転送フィルター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] 認証成功時の転送フィルターの払い出しがエラーになった場合、接続が失敗するように変更しました - ``INTERNAL-ERROR`` エラーとなります - [CHANGE] セッション生成時の転送フィルターの払い出しがエラーになった場合、セッションを破棄するように変更しました - ``INTERNAL-ERROR`` エラーとなります - :ref:`sora_conf-session_created_response_validate_warning_as_error` が ``false`` の場合でもエラーとなりセッションを破棄します マルチ転送フィルター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** マルチ転送フィルター機能は 1 チャネルや 1 コネクションに対して 1 つしか指定できなかった転送フィルターを 名前と優先度を設定し、複数の転送フィルターを指定できるようにする機能です。 - [ADD] 認証成功時の払い出しに複数の転送フィルターを設定できる ``forwarding_filters`` を追加しました - 既存の ``forwarding_filter`` は 2025 年 12 月リリース予定の Sora にて廃止します - [ADD] セッション生成時の払い出しに複数の転送フィルターを設定できる ``forwarding_filters`` を追加しました - ``forwarding_filter`` は 2025 年 12 月リリース予定の Sora にて廃止します - [ADD] ``sora.conf`` にシグナリング時に複数の転送フィルターを設定できる ``forwarding_filters`` を設定できるようになる :ref:`sora_conf-signaling_forwarding_filters` を追加しました - :ref:`sora_conf-signaling_forwarding_filter` は 2025 年 12 月リリースの Sora にて廃止します - [ADD] 転送フィルター設定時に ``name`` と ``priority`` を指定できるようになりました - [ADD] 転送フィルター API :ref:`20230628.ListForwardingFilters` にチャネルの転送フィルターをリストで表示する ``channel_forwarding_filters`` を追加しました - 既存の ``channel_forwarding_filter`` は 2025 年 12 月リリース予定の Sora にて廃止します - [ADD] 転送フィルター API :ref:`20230628.CreateChannelForwardingFilter` と :ref:`20230628.CreateConnectionForwardingFilter` に ``name`` と ``priority`` を追加しました - [ADD] 転送フィルター API :ref:`20230628.UpdateChannelForwardingFilter` と :ref:`20230628.UpdateConnectionForwardingFilter` に ``name`` と ``priority`` を追加しました - [ADD] 転送フィルター API :ref:`20230628.DeleteChannelForwardingFilter` と :ref:`20230628.DeleteConnectionForwardingFilter` に ``name`` を追加しました 詳細は :doc:`マルチ転送フィルター機能 ` をご確認ください。 OBS WHIP ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [FIX] OBS WHIP で H.264 で一部のエンコーダーを利用した際、録画ファイルの映像が正常に記録されない問題を修正しました - [FIX] OBS WHIP で AV1 で録画できない問題を修正しました メッセージングヘッダー機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ リアルタイムメッセージング機能において、 メッセージに Sora 側でヘッダーを追加する機能です。 ``sender_connection_id`` を追加できます。 - [ADD] ``data_channels`` にメッセージングにヘッダーを追加する ``header`` 項目を新しく追加しました - **ヘッダーを付与するかどうかはメッセージを受信する側が指定します** - ``{"label": "#spam", "direction": "recvonly", "header": [{"type": "sender_connection_id"}]`` - この設定を行ったクライアントは ``#spam`` ラベルのメッセージは常に先頭 26 バイトに ``sender_connection_id`` が含まれるようになります - ヘッダーは Sora 側で付与します - ``header`` はオプションです - ``header`` には ``[{"type": "sender_connection_id"}]`` のように指定します - ``type`` は ``sender_connection_id`` のみ指定できます - ``sender_connection_id`` はメッセージングの送信元の connection_id です - 先頭 26 バイトが ``sender_connection_id`` になります - 将来的に指定できる ``type`` を増やして行く予定です - ``"type": "offer"`` 時の ``data_channels`` に ``header`` が含まれる場合、 ``length`` 項目を追加します - ``length`` は ``sender_connection_id`` の長さです - ``length`` の単位はバイトです - ``sender_connection_id`` の場合 ``length`` は 26 固定です 音声ストリーミングヘッダー機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 音声ストリーミング機能において、HTTP/2 経由で送信する音声パケットに Sora 側でヘッダーを追加する機能です。 - [ADD] 音声ストリーミング機能利用時に ``sora.conf`` に :ref:`sora_conf-audio_streaming_header` を追加しました - デフォルトは ``false`` です - ``true`` に設定すると音声パケットに Sora がヘッダーを追加します - ヘッダーのフォーマットは ``[Timestamp:64 bit, SequenceNumber:64 bit, Length:32 bit]`` です - ``timestamp`` は音声パケット送信時の UTC 時間マイクロ秒の整数です - RTP のタイムスタンプとは異なります - ``seq_num`` は音声パケットのシーケンス番号で、 1 から始まります - RTP のシーケンス番号とは異なります - ``length`` はヘッダーを除いた音声パケットの長さです .. mermaid:: --- title: "音声ストリーミングヘッダーフォーマット" --- packet-beta 0-63: "Timestamp" 64-127: "SeqNum" 128-159: "Length" プレイアウト遅延機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** プレイアウト遅延機能の仕様を変更しました。 今までは配信側に影響する設定でしたが、今回のリリースから視聴側に影響する設定に変更しました。 この変更により視聴側毎にプレイアウト遅延を指定できるようになりました。 - [ADD] sendrecv と recvonly のロールに影響するよう設定を変更しました - sendonly には影響しません - [CHANGE] ``sora.conf`` の :ref:`sora_conf-default_playout_delay_min_delay` は視聴側のプレイアウト遅延の最小値のデフォルトを指定するように変更しました - デフォルトは未指定です - [CHANGE] ``sora.conf`` の :ref:`sora_conf-default_playout_delay_max_delay` は視聴側のプレイアウト遅延の最大値のデフォルトを指定するように変更しました - デフォルトは未指定です - [CHANGE] 認証成功時の払い出し ``playout_delay_min_delay`` は視聴側の最小値を指定するように変更しました - ``playout_delay_max_delay`` も一緒に指定する必要があります - [CHANGE] 認証成功時の払い出し ``playout_delay_max_delay`` は視聴側の最大値を指定するように変更しました - ``playout_delay_min_delay`` も一緒に指定する必要があります 詳細は :doc:`プレイアウト遅延機能 ` をご確認ください。 テスト API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [UPDATE] テスト API がクラスターで利用できるようになりました - [UPDATE] テスト向け API の録画失敗を意図的に起こす :ref:`20380119.FailArchive` API をクラスターに対応しました - [UPDATE] テスト向け API のシグナリング通知を送信する :ref:`20380119.SendSignalingNotify` API をクラスターに対応しました .. _v2024.1.3: 2024.1.3 =================== **バグフィックスアップデート** :リリース: 2024 年 8 月 9 日 変更履歴 -------- - [FIX] 証明書の署名アルゴリズムに SHA1 が利用されている場合でも、許容するように変更しました - [FIX] クラスター機能利用時に、アフィニティが有効な場合でもまれにリレーが発生する場合がある問題を修正しました - [FIX] 転送フィルター機能利用時に、シグナリング通知の送信がまれに失敗する場合がある問題を修正しました - [FIX] イベントウェブフックやシグナリング通知の ``connection.created`` のチャネル接続数の値が、まれに実際の値よりも小さくなる場合がある問題を修正しました - [FIX] 録画機能利用時に、RTP のシーケンス番号が等しいが RTP ヘッダー拡張 ``abs-capture-time`` の値が異なるパケットが短期間に複数送られて来た場合に録画が失敗してしまう問題を修正しました - [FIX] 録画機能利用時に、一部の端末で RTP ヘッダー拡張 ``abs-capture-time`` に意図しない値が含まれると録画が失敗してしまう事があるため、 :ref:`sora_conf-rtp_hdrext_abs_capture_time` のデフォルトを ``false`` に変更しました - 詳細については :ref:`chrome_edge_bug_recording_audio_sync_issues` をご確認ください .. _v2024.1.1: 2024.1.1 =================== **バグフィックスアップデート** :リリース: 2024 年 7 月 1 日 変更履歴 -------- - [FIX] 録画機能利用時、パケットのタイムスタンプに異常がある場合に発生する問題を修正しました .. _v2024.1.0: 2024.1.0 =================== **メジャーアップデート** :リリース: 2024 年 6 月 26 日 ハイライト ------------------ - クラスターリレー機能を追加しました - いずれのノードからでも同一のチャネルに接続できるようになりました - クラスターアフィニティ機能を追加しました - リレー機能利用時に、特定のノードに同一セッションの接続を集約する仕組みを追加しました - この機能によりノード間通信を極力発生させないようにすることができます - ライセンスの同時接続数の合計を維持する機能を追加しました - ノードに障害が発生したとしても、クラスター全体の同時接続数を維持できるようになりました - テンポラリーノード機能を追加しました - クラスターの維持に影響しないノードを手軽に削除できるようになりました - OBS WHEP に対応しました - OBS の WHEP ソース機能を利用し Sora から映像を取得できるようになりました - |date| 現在、OBS 安定版では WHEP に対応していません - OBS WHIP/WHEP の TURN に対応しました - |date| 現在、OBS 安定版では TURN に対応していません - OBS WHIP/WHEP の H.265 (HEVC) に対応しました - |date| 現在、OBS 安定版では H.265 に対応していません - セッションとコネクションが破棄される時間を指定できるライフタイム機能を追加しました - セッションやコネクションで指定した時間が経過すると自動的に破棄されるようになりました - 複数のコーデックで、複数の画質が同時に配信できるサイマルキャストマルチコーデック機能を追加しました - |date| 現在、ブラウザでは利用できません - 音声トラックを削除した後に、再度音声トラックを追加した際に正常に録音されない問題に対応しました - Chrome/Edge の不具合により、今まで音声がずれて録画されてしまっていた問題を解決しました - Safari でも同様の不具合を確認していますが、本対応では解決できていません 正式版 -------- 今回のリリースで以下の機能は実験的機能から正式版になりました。 - :doc:`モード機能 ` - :doc:`転送フィルター機能 ` - :doc:`音声ストリーミング機能 ` - :ref:`authz_recording_block` - SDP 再利用機能 - :ref:`sora_conf-recycle_media_section` 廃止情報 -------- - CentOS 7 向けパッケージの提供を終了しました - モード機能のイニシャルモードを廃止しました - 認証成功時に払い出す ``h264_profile_level_id`` を廃止しました - 代わりに ``"video_h264_params": {"profile_level_id": ""}`` を使用してください - ``sora.conf`` から ``default_h264_profile_level_id`` を廃止しました - 代わりに :ref:`sora_conf-default_h264_param_profile_level_id` を使用してください - 実験的機能として提供していた ``sora.conf`` の ``rtp_publish_worker_number`` を廃止しました - 代わりに ``media_publish_worker_number`` を使用してください - 実験的機能として提供していた Lyra を廃止しました - Opus 1.5 で Lyra 同様の低ビットレートが利用可能になったこと、Lyra が 2 年間更新がないことが廃止の理由です - ``sora.conf`` の ``contact_node_name_list`` を廃止しました - 今後は :ref:`20211215.RegisterClusterNode` API を利用してください - ``sora.conf`` の ``cluster_auto_connect`` を廃止しました - クラスター機能の自動での再接続は常に有効になります 非推奨情報 ----------- - Ubuntu 20.04 の提供を Sora 2024.1.x 系をもって終了します - Ubuntu 20.04 は 2025 年 4 月にサポートが終了します - ``multistream: false`` で利用するレガシーストリームを非推奨にしました - ``multistream: false`` は 2025 年 6 月リリース予定の Sora で廃止します - マルチストリームを利用してください - :doc:`レガシーストリーム(非マルチストリーム)機能からマルチストリーム機能への移行 ` - ``JoinCluster`` API を非推奨にしました - ``JoinCluster`` API は 2024 年 12 月リリース予定の Sora で廃止します - :ref:`20211215.RegisterClusterNode` API を利用してください - :ref:`20211215.ListClusterNodes` API の ``include_all_known_nodes`` 指定を非推奨にしました - ``include_all_known_nodes`` は 2024 年 12 月リリース予定の Sora で廃止します - 廃止後は ``include_all_known_nodes`` が常に ``true`` として動作するようになります - 統計エクスポーター機能を非推奨にしました - 統計エクスポーター機能は 2025 年 6 月リリース予定の Sora で廃止します - :doc:`統計ウェブフック ` を利用してください - ユーザエージェント統計を非推奨にしました - ユーザエージェント統計は 2025 年 6 月リリース予定の Sora で廃止します - RTC 統計情報を利用してください - ユーザエージェント統計 API を非推奨にしました - ユーザエージェント統計 API は 2025 年 6 月リリース予定の Sora で廃止します - :doc:`RTC 統計情報 ` API を利用してください 破壊的変更 --------------- - クラッシュを意図的に発生させるテスト用 ``Sora_20221221.GenerateCrashLog`` API を :ref:`Sora_20380119.GenerateCrashLog<20380119.GenerateCrashLog>` に変更しました - イベントウェブフック :ref:`event-webhook-connection.destroyed` の ``reason`` に含まれる値を変更しました - 2023.2.x までは ``disconnect_api_reason`` と同じ、または ``disconnect_api_reason`` が無ければ ``null`` が含まれていました - 2024.1.x からは ``normal`` / ``disconnected_api`` / ``session_destroyed`` / ``lifetime_expired`` が含まれるようになります - 2023.2.x までの設定を維持する移行用の設定 ``legacy_event_webhook_connection_destroyed_reason`` を追加しています - この移行用の設定 ``legacy_event_webhook_connection_destroyed_reason`` は 2024 年 12 月リリース予定の Sora にて廃止します - 統計 API の RTP ヘッダー拡張の項目名のプレフィックスを ``rtp_hdr_ext`` から ``rtp_hdrext`` へ変更しました - :ref:`20230628.TerminateSession` API を非同期に変更しました - セッション破棄の確認は :ref:`session-webhook-session.destroyed` ウェブフックを利用してください - ライセンスチェックのタイミングを変更しました - 今までは WebSocket 接続時にライセンスチェックを行っていましたが、 ``"type": "connect"`` 時にチェックを行うように変更しました - ``WHIP`` と ``WHEP`` については変更はありません - 詳細についてはサポートまでお問い合わせください 変更履歴 -------- - [CHANGE] シグナリング :ref:`signaling-type-disconnect` 時に指定できる ``reason`` の最大値を 128 バイトに制限しました - [CHANGE] :ref:`20230628.TerminateSession` API を非同期に変更しました - セッション破棄の確認は :ref:`session-webhook-session.destroyed` ウェブフックを利用してください - [CHANGE] 統計 API の RTP ヘッダー拡張の項目名のプレフィックスを ``rtp_hdr_ext`` から ``rtp_hdrext`` へ変更しました - [CHANGE] モード機能のイニシャルモードを廃止しました - [CHANGE] 最大帯域幅指定で利用する SDP を ``b=TIAS`` と ``b=AS`` から ``b=TIAS`` のみに変更しました - [CHANGE] 帯域推定で利用する ``REMB`` で送信するビットレートを ``b=TIAS`` のみに変更したのに合わせて音声ビットレートを含めないようにしました - [CHANGE] 音声コーデック Lyra への対応を廃止しました - [CHANGE] SDP の ``msid`` の ``appdata`` を UUIDv4 を BASE32 でエンコードした値から、 ``connection_id`` に メディアの種類を追加した値に変更しました - `RFC 8830 WebRTC MediaStream Identification in the Session Description Protocol `_ - この変更により MediaStreamTrack の id から ``connection_id`` を取得できるようになりました - この変更により WebRTC 統計情報の ``inbound-rtp`` の ``trackIdentifier`` から ``connection_id`` を取得できるようになりました - **Firefox では利用できません** - [UPDATE] :doc:`開発ツール ` を最新版に更新しました - [ADD] Ubuntu 24.04 x86_64 と arm64 版のパッケージ提供を開始しました - [ADD] ``connection.jsonl`` にコネクションを破棄した理由 ``destroyed_reason`` を追加しました - ``destroyed_reason`` には ``normal`` / ``disconnected_api`` / ``session_destroyed`` / ``lifetime_expired`` が含まれます - [ADD] ``sora.conf`` に VP9 利用時に RTP ヘッダー拡張 ``dependency_descriptor`` を払い出す :ref:`sora_conf-rtp_hdrext_dependency_descriptor_vp9` を追加しました - デフォルトは ``false`` です - この設定を ``true`` した場合 **Firefox で VP9 が利用できなくなります** - [ADD] :ref:`20201013.ListConnections` API と :ref:`20201013.ListChannelConnections` API の戻り値に ``recording_block`` 項目を追加しました - [FIX] メッセージングオンリー機能利用時に ``multistream: true`` の指定を不要にしました テスト機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] クラッシュを意図的に発生させるテスト用 ``Sora_20221221.GenerateCrashLog`` API のバージョンを変更し :ref:`Sora_20380119.GenerateCrashLog<20380119.GenerateCrashLog>` API に変更しました - 今後、テスト API はバージョンが全て ``20380119`` に固定されます - [ADD] シグナリング通知を送信するテスト用 :ref:`20380119.SendSignalingNotify` API を追加しました スポットライト機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] スポットライト機能利用時に、セッションウェブフック :ref:`session-webhook-session.updated` と :ref:`session-webhook-session.destroyed` に ``spotlight_number`` 項目が含まれるようにしました - [ADD] セッションウェブフック :ref:`session-webhook-session.created` 時に ``spotlight_number`` を払い出せるようにしました - ``spotlight_number`` には ``1`` から ``8`` までの値を指定できます - セッションウェブフックで ``spotlight_number`` を払い出した場合、シグナリング接続時や認証成功時の払い出しの ``spotlight_number`` と異なる場合はエラーとなります。 - シグナリング時と認証成功時の ``spotlight_number`` 指定は非推奨になりました - [FIX] スポットライト機能利用時に同一セッションで ``spotlight_number`` が同時接続数 ``0`` の場合にシグナリング接続時、または認証成功時払い出しで変更できてしまう問題を修正しました - セッション破棄までは :ref:`20200807.ChangeSpotlightNumber` API 以外ではスポットライト数を変更できないように修正しました - [FIX] スポットライト機能利用時に ``multistream: true`` の指定を不要にしました レガシーストリームを非推奨化 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 今まで ``multistream: false`` で利用していた、レガシーストリーム(非マルチストリーム)を非推奨にしました。 レガシーストリームは 2025 年 6 月リリースの Sora 2025.1.0 にて廃止します。 - [CHANGE] ``sora.conf`` にレガシーストリームを有効にする ``legacy_stream`` を追加しました - デフォルトは ``false`` です - レガシーストリームを利用する場合は ``true`` に設定してください 詳細は :doc:`レガシーストリーム(非マルチストリーム)機能からマルチストリーム機能への移行 ` をご確認ください。 ウェブフック機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ``sora.conf`` に認証ウェブフック失敗時に ``auth_webhook.jsonl`` にのみログを出力する ``legacy_auth_webhook_log`` を追加しました - 2023.2.x までの挙動を維持する設定です - この設定は 2024 年 12 月リリース予定の Sora にて廃止します - デフォルトは ``false`` です - この設定を ``false`` にした場合、認証ウェブフックが失敗した際には ``auth_webhook_error.jsonl`` にログを出力します - ``auth_webhook.jsonl`` にはログを出力しません - この設定を ``true`` にした場合、認証ウェブフックが失敗した際には 2023.2.x までと同様に ``auth_webhook.jsonl`` にログを出力します - ``auth_webhook_error.jsonl`` にはログを出力しません - [ADD] ``sora.conf`` にウェブフックの接続確立タイムアウト時間を指定する :ref:`sora_conf-webhook_connect_timeout` を追加しました - 今までは固定の ``600 s`` としていましたが、設定を追加するにあたりデフォルトを ``30 s`` と変更しました - 範囲は ``1 s`` から ``600 s`` です - [ADD] 認証ウェブフックリクエストに ``Accept`` ヘッダーを追加しました - ``Accept`` ヘッダーに ``application/json`` が含まれます - [ADD] セッションウェブフックリクエストに ``Accept`` ヘッダーを追加しました - ``Accept`` ヘッダーに ``application/json`` が含まれます - [FIX] 認証ウェブフックでステータスコード 2XX で空ボディを受け取った際の不具合を修正しました - [FIX] 認証ウェブフックにシグナリング接続時の転送フィルターが含まれていない問題を修正しました セッションウェブフック機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] セッションウェブフック :ref:`session-webhook-session.created` の戻り値が正常では無い場合、エラーとしてセッションを破棄して、セッションウェブフック :ref:`session-webhook-session.destroyed` を送信する設定の :ref:`sora_conf-session_created_response_validate_warning_as_error` を ``sora.conf`` に追加しました - デフォルトは ``false`` です - ``false`` の場合はバリデーションに失敗した場合、デフォルト値が採用されそのまま処理は継続します - ``true`` の場合はバリデーションに失敗した場合、エラーとしてセッションを破棄します - セッションウェブフック :ref:`session-webhook-session.destroyed` の ``reason`` には ``validate_error`` が含まれます - [ADD] セッションウェブフック :ref:`session-webhook-session.created` のウェブフック処理中に問題が発生した際に :ref:`session-webhook-session.destroyed` の ``reason`` に ``webhook_error`` が含まれるようになりました - [ADD] セッションウェブフックがエラーになった理由を、 ``session_webhook_error.jsonl`` ログに ``reason`` として出力するようにしました - [FIX] セッションウェブフックの戻り値の JSON が不正な場合に、センシティブデータの処理をしていた問題を修正しました - [FIX] セッションウェブフックの戻り値が JSON オブジェクトではない場合に処理が失敗していた問題を修正しました 録画アーカイブイベントウェブフック機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] 録画アーカイブ失敗時のウェブフック :ref:`event-webhook-archive.failed` に ``split`` と ``split_only`` と ``split_index`` を含むようにしました - [FIX] 分割録画にもかかわらず、録画アーカイブ失敗時のウェブフック :ref:`event-webhook-archive.failed` に分割録画ファイルが含まれない問題を修正しました - 一括と分割録画の両方が有効な場合、 ``filename`` と ``file_path`` と ``split_filename`` と ``split_file_path`` が含まれるようになります - 分割録画が有効な場合、 ``split_filename`` と ``split_file_path`` が含まれるようになります - 分割録画のみの場合、 ``filename`` と ``file_path`` は含まれなくなります - [ADD] テスト向け API として録画失敗を意図的に起こす :ref:`20380119.FailArchive` API を追加しました - 録画が実行されている指定した ``client_id`` の録画を失敗させます - イベントウェブフックの録画失敗ウェブフック :ref:`event-webhook-archive.failed` を意図的に発生させることができます イベントウェブフック connection.destroyed の reason の破壊的変更 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] イベントウェブフック ``connection.destroyed`` に含まれる reason の変更を行いました - 今までは ``disconnect_api_reason`` と同様、コネクション切断系 API で指定した ``reason`` 値、または未指定の場合は ``null`` が含まれていましたが、 今回の変更で ``normal`` / ``disconnected_api`` / ``session_destroyed`` / ``lifetime_expired`` のいずれかが含まれるようになりました - ``normal`` は通常のコネクション破棄 - ``disconnected_api`` はコネクション切断系 API でコネクション破棄 - ``session_destroyed`` はセッションライフタイムによりセッションの期限が切れた、または :ref:`20230628.TerminateSession` API によってセッション強制破棄されたことでのコネクション破棄 - ``lifetime_expired`` はコネクションライフタイムによりコネクションの期限が切れたことによるコネクション破棄 - [ADD] ``sora.conf`` にイベントウェブフック ``connection.destroyed`` に含まれる ``reason`` の値を、 ``disconnect_api_reason`` に含まれる値と同じにする移行用の設定 ``legacy_event_webhook_connection_destroyed_reason`` を追加しました - デフォルトは ``false`` です - 設定を ``true`` にした場合、 ``disconnect_api_reason`` の項目が無い場合は ``null`` が含まれます - また、コネクションライフタイム機能で切断したか際の判断ができなくなります - この設定は 2024 年 12 月リリース予定の Sora にて廃止します 録画機能音ズレ問題の改善 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ この問題の改善はレガシー録画、セッション録画の両方で行っています。 Chrome / Edge 側のバグにより、録画機能利用時に ``replaceTrack`` などを利用して ``MediaStreamTrack`` を削除し、 一定時間経過後に新しく ``MediaStreamTrack`` を追加した際に、音声パケットに関連するタイムスタンプと NTP タイムスタンプが正しく出力されない問題あります。 この問題により Chrome / Edge では録音/録画したファイルにて音ズレが発生してしまう場合がありました。 今回、新しく利用できるようになった RTP ヘッダー拡張 ``abs-capture-timestamp`` を利用する事で、 音声タイムスタンプを実際の値に推測する機能を導入することでこの問題に対応しました。 この問題は Safari / Safari Technology Preview では RTP ヘッダー拡張 ``abs-capture-timestamp`` が音声パケットに含まれてこないため、 改善することができません。 - [CHANGE] :ref:`sora_conf-rtp_hdrext_abs_capture_time` のデフォルトを ``true`` に変更しました - [FIX] RTP ヘッダー拡張録画機能の音声タイムスタンプの推測機能を利用し、Chromium ベースのブラウザで録音/録画を行った際、音ズレが発生する問題を修正しました - ``abs-capture-time`` が利用できない場合は今まで通り音ズレが発生する場合があります OBS WHIP対応 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** - [CHANGE] ウェブフックの ``sora_client`` に含まれる ``type`` を ``OBS-Studio`` から ``OBS-Studio-WHIP`` に変更しました .. code-block:: javascript "sora_client": { "raw": "Mozilla/5.0 (OBS-Studio/30.1.0; Mac OS X; ja-JP)", "type": "OBS-Studio-WHIP", "version": "30.1.0", "environment": "environment":"Mozilla/5.0 (OBS-Studio/30.1.0; Mac OS X; ja-JP)" }, - [ADD] ``sora.conf`` に OBS WHIP で TURN を利用する :ref:`sora_conf-whip_turn` を追加しました - この設定は OBS が正式に TURN へ対応したタイミングで廃止します - [ADD] OBS WHIP/WHEP で将来的に必須になる ``rtcp-mux-only`` に対応しました - https://datatracker.ietf.org/doc/html/draft-ietf-wish-whip#name-sdp-bundle - https://datatracker.ietf.org/doc/html/rfc9143 - https://datatracker.ietf.org/doc/html/rfc8858 - [ADD] OBS WHIP で H.265 (HEVC) に対応しました - OBS 30.1 ではまだ WHIP での H.265 はサポートされていません OBS WHEP 対応 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** OBS での WebRTC/WHEP に対応しました。WebRTC で送られてくる音声と映像を WHEP ソースとして利用する事ができます。 - [ADD] OBS WHEP に対応しました - Opus と H.264 の組み合わせのみ利用できます - WHEP での接続は複数の配信が発生したタイミングで切断されます - WHEP での接続は複数の配信が存在するチャネルには接続できません - OBS 30.1 ではまだ WHEP に対応していません - [ADD] ``sora.conf`` に OBS (WHEP) を有効にする :ref:`sora_conf-whep` を追加しました - デフォルトは ``false`` です - https://datatracker.ietf.org/doc/html/draft-ietf-wish-whep - [ADD] ``sora.conf`` に OBS WHEP の Bearer トークンを認証ウェブフックの ``metadata`` に対応させるキーを指定する :ref:`sora_conf-whep_bearer_token_metadata_key` を追加しました - OBS WHEP からの接続についても Bearer トークンを利用した認証機能が利用できます - デフォルトは未指定です - [ADD] WHEP 向けエンドポイント URL ``https://example.com/whep/`` を追加しました - [ADD] WHEP 向けリソース URL ``https://example.com/whep-resource//`` を追加しました - PATCH と DELETE メソッドに対応しています - [ADD] WHEP を利用した際、認証ウェブフックに ``whep: true`` を追加しました - WHEP を利用していない接続の場合はこの項目は含まれません - [ADD] OBS WHEP で User-Agent として送られてくる情報を sora_client としてウェブフックで送信するようにしました - ``"raw": "Mozilla/5.0 (OBS-Studio/31.0.0; Mac OS X; ja-JP)"`` - ``"type": "OBS-Studio-WHEP"`` - ``"environment": "environment":"Mozilla/5.0 (OBS-Studio/31.0.0; Mac OS X; ja-JP)"`` - ``"version": "31.0.0"`` - [ADD] ``sora.conf`` に OBS WHEP で TURN を利用する :ref:`sora_conf-whep_turn` を追加しました - この設定は OBS が正式に TURN へ対応したタイミングで廃止します 詳細は :doc:`OBS (WHEP) 対応機能 ` をご確認ください。 クラスター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** - [UPDATE] :ref:`20211215.ListClusterNodes` API にライセンス情報を追加しました - ``license_type`` - ``license_serial_code`` - ``license_max_connections`` - [UPDATE] :ref:`20211215.ListClusterNodes` API にエラー情報を追加しました - ノードに接続ができなかった場合、そのノード情報に ``error`` を含めるようにしました - [CHANGE] 最大ノード数ライセンスと通常ライセンスが同一クラスターで混在できなくなりました - [CHANGE] ``sora.conf`` の ``contact_node_name_list`` を廃止しました - 今後は :ref:`20211215.RegisterClusterNode` API を利用してください - [CHANGE] ``sora.conf`` の ``cluster_auto_reconnect`` を廃止しました - クラスター機能の自動での再接続は常に有効になります - [CHANGE] ``JoinCluster`` API の名前だけを変更した :ref:`20211215.RegisterClusterNode` API を追加しました - :ref:`20211215.RegisterClusterNode` API は ``JoinCluster`` API とまったく同じ動作をします - ``JoinCluster`` API は 2024 年 12 月にリリース予定の Sora で廃止します - [ADD] クラスター利用時に以下の API でクラスター全体の結果を返せる仕組みを追加しました - API に ``local`` を追加し ``false`` を指定した場合はクラスター全体の結果を返します - ``local`` のデフォルトは ``true`` です - :ref:`20201013.ListConnections` API - :ref:`20201013.ListChannels` API - :ref:`20171101.GetStatsAllConnections` API - :ref:`20211215.ListRtcStats` API - :ref:`20211215.ListUserAgentStats` API - クラスターのローリングアップデート中に ``local=false`` は利用できません - [FIX] :ref:`20221221.InitCluster` API で指定するノードが全て同一バージョンでは無い場合、エラーを返すように修正しました クラスターテンポラリーノード機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** クラスターの維持に影響しない一時的なノードを追加できるようになりました。 テンポラリーノードを利用する事でスケールアウト/スケールインが容易になります。 - [ADD] ``sora.conf`` にテンポラリーノードとして利用する :ref:`sora_conf-cluster_temporary_node` を追加しました - デフォルトは ``false`` です - この設定は :ref:`sora_conf-cluster` が ``true`` の時のみ有効です - この機能は :ref:`max-nodes-license` のみ有効です - :ref:`max-nodes-license` を利用していない場合は :ref:`sora_conf-cluster_temporary_node` が ``true`` の場合、起動できません - テンポラリーノードはクラスター構成を維持するためのノードとしては認識されません - テンポラリーノードに障害が発生してもライセンスで決められた最大同時接続数の合計を維持する機能による接続数の維持は行われません - テンポラリーノードはクラスターへの登録には :ref:`20211215.RegisterClusterNode` API を利用してください - テンポラリーノードは停止時にクラスターから消去されます - テンポラリーノードを再起動した場合、クラスターには自動で参加しません。再度 :ref:`20211215.RegisterClusterNode` API を利用して登録してください - テンポラリーノードだけでクラスターを構築する事はできません - テンポラリーノードは :ref:`20220629.PurgeClusterNode` API でノードを消去することはできません - テンポラリーノードは :ref:`20221221.InitCluster` API で初期化することはできません - テンポラリーノードはクラスターの全てのノードが ``2024.1.0`` 以降である必要があります - [UPDATE] :ref:`20211215.ListClusterNodes` API に ``temporary_node: `` 項目を追加しました 詳細は :ref:`cluster-temporary-node` をご確認ください。 ライセンスで決められた最大同時接続数の合計を維持する機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** クラスターのノードが離脱した際に、合計接続数を残りのノードで維持する機能を追加しました。 - [ADD] クラスターでライセンスの同時接続数の合計を維持する機能を追加しました - この機能は ``cluster`` が ``true`` の場合にのみ有効です - この機能は :ref:`max-nodes-license` のみ有効です - 同時接続数が 100 の 3 ノードのクラスターで動作させた場合に、 1 ノードが離脱した際、残りの 2 ノードが最大同時接続数が 150 に一時的に引き上げられ、合計での接続数を維持します その後、障害が発生していたノードが復旧した歳には、最大同時接続数は 100 に戻ります 100 を超えている接続は切断されたりはしません 詳細は :ref:`cluster-total-connection-maintain` をご確認ください。 クラスターリレー機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** クラスター利用時に、複数のノードから同一チャネルに参加できる仕組みを追加しました。 - [ADD] ``sora.conf`` にクラスター利用時に複数ノードから同一チャネルに接続できる機能を実現する ``cluster_relay`` の設定を追加しました - この機能は ``cluster`` が ``true`` の場合にのみ利用できます - デフォルトで ``true`` が設定されています - クラスターリレー機能は :ref:`max-nodes-license` のみで利用できます - :ref:`max-nodes-license` を利用していない場合は ``cluster_relay`` が ``true`` になっていても、リレー機能は利用できません - クラスターリレー機能は ``"multistream": false`` では利用できません - リレー機能はクラスターの全てのノードが ``2024.1.0`` 以降である必要があります - 詳細は :ref:`cluster-relay` をご確認ください - [ADD] :ref:`20171010.GetStatsReport` API にクラスターリレー機能の統計情報を追加しました - **この統計データは厳密なデータではないため、参考程度にご利用ください** - ノードが削除された場合でも再起動するまでは統計情報は残り続けます - ``cluster_relay`` - ``[{"node_name": "sora-01@192.0.2.100", "total_sent_byte_size": 5000, "total_received_byte_size": 5000, ...]`` - ``node_name`` - 対象ノード名 - ``total_sent_byte_size`` - 対象ノードへリレー機能で送信したバイト数の合計 - ``total_received_byte_size`` - 対象ノードからリレー機能で受信したバイト数の合計 - ``total_sent`` - 対象ノードからリレー機能で送信したパケット数の合計 - ``total_received`` - 対象ノードからリレー機能で受信したパケット数の合計 - [CHANGE] リレー機能利用時には認証が 2 回発生する場合があります - 詳細は :ref:`auth-webhook-cluster-relay` をご確認ください - [CHANGE] リレー機能利用時には :ref:`session-spotlight` の挙動が変わり、接続数が ``0`` の場合に ``multistream`` と ``spotlight`` の指定が既存セッションと異なる場合でもセッションが破棄されなくなります - この挙動は 2024 年 12 月リリースの Sora にてリレー機能を利用しない場合でも反映される予定です 詳細は :ref:`cluster-relay` をご確認ください。 クラスターリレー機能利用時のアフィニティ機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** クラスターリレー機能利用時に一定の同時接続数まで特定のノードに同一セッションの接続を集約する機能を追加しました。 - [ADD] ``sora.conf`` にリレー機能を利用する際に、アフィニティ機能(同一セッションへの接続を同一ノードに寄せる) かどうかを指定する :ref:`sora_conf-default_cluster_affinity` の設定を追加しました - デフォルトで ``true`` が設定されています - この機能は ``sora.conf`` の :ref:`sora_conf-cluster` が ``true`` の場合にのみ利用できます - この機能は ``sora.conf`` の :ref:`sora_conf-cluster_relay` が ``true`` の場合にのみ利用できます - :ref:`max-nodes-license` を利用していない場合は ``sora.conf`` の :ref:`sora_conf-cluster_relay` が ``true`` になっていても、リレー機能やアフィニティ機能は利用できません - ``true`` の場合は一定数の接続までは特定のノードに接続を集約します - 同時接続数がライセンス最大値の場合はリダイレクトが発生します - ``false`` を指定すると、可能な限りリダイレクトをせずにそのノードでリレーが行われます - 同時接続数がライセンス最大値の場合はリダイレクトが発生します - [ADD] ``sora.conf`` にアフィニティを行う 1 ノード、1 セッションあたりの最大同時接続数を指定する :ref:`sora_conf-cluster_affinity_threshold` を追加しました - デフォルトは 10 です - 1 ノード、1 セッションあたりの同時接続数が ``cluster_affinity_threshold`` 未満のノードがあれば、同じノードに新規接続が割り振られます - [ADD] 認証成功時の払い出しで :ref:`authz_cluster_affinity` を払い出すことでコネクション単位でのアフィニティ機能を利用するかどうかを指定できる機能を追加しました - 払い出しをしない場合は ``sora.conf`` の :ref:`sora_conf-default_cluster_affinity` の値が利用されます 音声ストリーミング ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 音声ストリーミング機能のエラー処理を充実させました。 - [ADD] :ref:`sora_conf-audio_streaming_url` に接続ができない場合、再接続を試みる機能を追加しました - [ADD] :ref:`sora_conf-audio_streaming_url` への接続を諦める機能を追加しました - 接続を諦めた場合、再接続を試みるには一度クライアントを切断する必要があります - [ADD] :ref:`sora_conf-audio_streaming_url` に接続ができない場合、再接続を試みる回数を指定する :ref:`sora_conf-audio_streaming_max_retries` を追加しました - **最大リトライ回数まで再接続を試みても接続ができない場合は接続を諦めます** - デフォルトは ``0`` です - ``0`` にした場合は常に再接続を試みます - ``0..10`` の間で指定できます - [ADD] :ref:`sora_conf-audio_streaming_url` に接続ができない場合、再接続を試みる間隔を指定する :ref:`sora_conf-audio_streaming_retry_interval` を追加しました - デフォルトは ``5 s`` です - ``0`` にした場合は音声パケットが送られてきたタイミングで再接続を試みます - ``0..60 s`` の間で指定できます - [ADD] :ref:`sora_conf-audio_streaming_url` からステータスコード 5xx が返ってきた場合、再接続を試みる機能を追加しました - **最大リトライ回数まで再接続を試みても接続ができない場合は接続を諦めます** - 再接続の回数は :ref:`sora_conf-audio_streaming_max_retries` を利用します - 再接続の間隔は :ref:`sora_conf-audio_streaming_retry_interval` を利用します - [ADD] :ref:`sora_conf-audio_streaming_url` への接続を諦めた際、イベントウェブフック ``audio-streaming.failed`` を送信する機能を追加しました - 諦めるのはコネクション単位のため、イベントウェブフックを送信します - このウェブフックは :ref:`sora_conf-ignore_audio_streaming_webhook` の影響は受けません - [ADD] イベントウェブフック ``audio-streaming.failed`` を送信しない設定 :ref:`sora_conf-ignore_audio_streaming_failed_webhook` を追加しました - デフォルトは ``true`` です - ``true`` にした場合は ``audio-streaming.failed`` イベントウェブフックを送信しません - [ADD] :ref:`sora_conf-audio_streaming_url` から ``"type": "error"`` が含まれる JSON が送られてきた際、音声ストリーミングサーバーへの接続を諦める機能を追加しました - [ADD] :ref:`sora_conf-audio_streaming_url` への接続を諦めた際、セッションに参加している全てのコネクションにシグナリング通知 ``audio-streaming.failed`` を送信する機能を追加しました - デフォルトは ``false`` です - :ref:`sora_conf-signaling_notify_audio_streaming_failed` を ``true`` にすることで有効になります - [FIX] 音声ストリーミング :ref:`session-webhook-audio-streaming.started` のウェブフック処理中にエラーになった場合、セッションが破棄されてしまう問題を修正しました 統計ウェブフック機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** :doc:`統計エクスポーター ` に変わる、 :doc:`統計ウェブフック機能 ` を追加しました。 - [ADD] ``sora.conf`` に統計ウェブフックの送信先を指定する :ref:`sora_conf-stats_webhook_url` を追加しました - [ADD] ``sora.conf`` に統計ウェブフックログを出力するかどうかを指定する :ref:`sora_conf-stats_webhook_log` を追加しました - デフォルト ``false`` です - デフォルトではログを出力しません。ログを出力したい場合は ``true`` に設定してください - [ADD] ``sora.conf`` に統計ウェブフック :ref:`stats-webhook-connection.rtc` を無視するかどうかを指定する :ref:`sora_conf-ignore_connection_rtc_webhook` を追加しました - デフォルト ``false`` です - [ADD] ``sora.conf`` に :ref:`sora_conf-stats_webhook_worker_number` を追加しました - [ADD] 統計ウェブフックにクライアントの RTC 統計情報を送信する :ref:`stats-webhook-connection.rtc` を追加しました - これは統計エクスポーターの ``"type": "connection.user-agent"`` と同じデータをウェブフックとしてリクエストを送信します - 統計エクスポーターでは HTTP/2 を利用して送信していましたが、統計ウェブフックは HTTP/1.1 で送信します - [ADD] :ref:`20171010.GetStatsReport` API に統計ウェブフックの成功数の項目 ``total_successful_stats_webhook`` を追加しました - [ADD] :ref:`20171010.GetStatsReport` API に統計ウェブフックの失敗数の項目 ``total_failed_stats_webhook`` を追加しました 詳細は :doc:`統計ウェブフック機能 ` をご確認ください。 RTC 統計 (ユーザエージェント機能) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 統計ウェブフック機能追加に伴い、ユーザーエージェント統計から RTC 統計へ名前を変更します。 ユーザエージェント機能は 2025 年 6 月リリース予定の Sora で廃止します。 - [ADD] ``sora.conf`` に RTC 統計機能をデフォルトを指定する :ref:`sora_conf-default_rtc_stats` を追加しました - デフォルトは ``true`` です - ``true`` の場合、 Sora はクライアントへ RTC 統計の送信を要求します - [ADD] 認証成功時の払い出しに :ref:`authz_rtc_stats` を追加しました - 未指定の場合は :ref:`sora_conf-default_rtc_stats` の値が利用されます - [ADD] :ref:`20211215.ListRtcStats` API を追加しました - [ADD] :ref:`20211215.ListChannelRtcStats` API を追加しました - [ADD] :ref:`20211215.GetRtcStats` API を追加しました - [ADD] 実験的機能として ``sora.conf`` に :ref:`sora_conf-rtc_stats_log` を追加しました - デフォルトで ``false`` です - ``rtc_stats`` 項目個別に ``rtc_stats.jsonl`` にログを出力します - [FIX] ユーザーエージェント統計情報の認証成功時払い出し指定が無視されていた問題を修正しました - [FIX] ユーザーエージェント統計情報の :ref:`20211215.GetUserAgentStats` の戻り値の ``stats`` を ``user_agent_stats`` に修正しました セッションライフタイム機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** セッションに対してライフタイム (破棄されるまでの時間) を設定する機能を追加しました。 - [ADD] セッションのライフタイムをセッションウェブフック :ref:`session-webhook-session.created` の戻り値で :ref:`session-webhook-session_lifetime` を指定できるようになりました - **秒** で指定してください - 最大 2,592,000 秒 (30 日) まで指定できます - セッション生成後に変更することはできません - ``session_lifetime`` が未指定の場合は **無制限** です - ``session.destroyed`` の ``reason`` に ``lifetime_expired`` が入ります - ``connection.destroyed`` の ``reason`` に ``session_destroyed`` が入ります - セッションのライフタイムが終了すると、セッションが破棄され切断します - セッションのライフタイムが終了すると、セッションウェブフック ``session.destroyed`` が送信されます コネクションライフタイム機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** コネクションに対してライフタイム (破棄されるまでの時間) を設定する機能を追加しました。 - [ADD] コネクションのライフタイムを認証ウェブフックの払い出しで :ref:`authz_connection_lifetime` を指定できるようになりました - **秒** で指定してください - 最大 2,592,000 秒 (30 日) まで指定できます - コネクション生成後に変更することはできません - ``connection_lifetime`` が未指定の場合は **無制限** です - ``connection.destroyed`` の ``reason`` に ``lifetime_expired`` が入ります - コネクションのライフタイムが終了すると、コネクションが破棄され切断します - コネクションのライフタイムが終了すると、コネクションウェブフック ``connection.destroyed`` が送信されます - コネクションのライフタイムよりセッションのライフタイムが優先されます サイマルキャストマルチコーデック機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** 一つのサイマルキャストで複数のコーデックを利用する事ができる、サイマルキャストマルチコーデックを追加しました。 - [ADD] 複数の映像コーデックを同時に配信するサイマルキャストマルチコーデック機能に対応しました - サイマルキャストマルチコーデックの配信に対応した SDK のみで利用できます - |date| 時点で以下の SDK が実験的に対応しています - Sora C SDK - Sora C++ SDK - ブラウザを利用した場合、サイマルキャストマルチコーデック機能を利用して配信することはできません、視聴側は利用できます - [ADD] ``sora.conf`` にてサイマルキャストコーデック機能を有効にするするかどうかを指定する :ref:`sora_conf-simulcast_multicodec` を追加しました - デフォルトは ``false`` です - :ref:`sora_conf-simulcast_multicodec` を ``true`` に設定するとサイマルキャストマルチコーデック機能が利用可能になります - [ADD] シグナリング接続時に ``"simulcast_multicodec"`` 項目を追加しました - ``"simulcast_multicodec": true`` を指定する際には ``"simulcast": true`` を指定する必要があります - [ADD] 認証ウェブフックに ``"simulcast_multicodec"`` 項目を追加しました - ``simulcast`` が ``true`` かつ ``simulcast_multicodec`` が ``true`` の時のみ含まれます - [ADD] 認証成功時の払い出しで ``simulcast_multicodec`` を払い出した場合、サイマルキャストマルチコーデックを利用できるようになりました - ``sora.conf`` にて :ref:`sora_conf-simulcast_multicodec` が ``true`` に指定されている必要があります - ``"simulcast": true`` が指定されている必要があります - [ADD] 認証成功時の払い出しで ``simulcast_codecs`` を指定できるようになりました - [ADD] ``sora.conf`` にてサイマルキャストのデフォルトコーデックを設定する :ref:`sora_conf-simulcast_codecs_file` を指定できるようになりました - [ADD] イベントウェブフック ``connection.{created, updated, destroyed}`` に simulcast_multicodec 項目を追加しました - ``simulcast`` が ``true`` かつ ``simulcast_multicodec`` が ``true`` の時のみ含まれます - [ADD] コネクションログに ``simulcast_multicodec`` 項目を追加しました - 項目は必ず含まれます - [ADD] ``"type": "offer"`` 時に ``simulcast_multicodec`` 項目を追加しました - 項目は必ず含まれます 詳細は :doc:`サイマルキャストマルチコーデック ` をご確認ください。 H.264/H.265 B-frame 対応 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** 実験的機能として H.264 と H.265 の `B-frame 向けの RTP ヘッダー拡張 `_ に対応しました。 B-frame 向けの RTP ヘッダー拡張に対応している場合、 H.264/H.265 で B-frame を利用した配信/視聴が行えるようになります。 B フレームの録画には対応していません。 - [ADD] H.264 と H.264 で B-frame を利用する RTP ヘッダー拡張に対応しました - [ADD] ``sora.conf`` に H.264 で B-frame を利用するかどうかを指定する :ref:`sora_conf-h264_b_frame` を追加しました - デフォルトは ``false`` です - [ADD] ``sora.conf`` に H.265 で B-frame を利用するかどうかを指定する :ref:`sora_conf-h265_b_frame` を追加しました - デフォルトは ``false`` です - [ADD] シグナリング ``type: connect`` 時に H.264 で B-frame を利用するかどうかを指定する ``h264_params: {"b_frame": true}`` を追加しました - デフォルトは ``false`` です - ``sora.conf`` にて :ref:`sora_conf-h264_b_frame` が ``true`` に指定されている必要があります - ``sora.conf`` にて :ref:`sora_conf-signaling_h264_params` が ``true`` に指定されている必要があります - [ADD] シグナリング ``type: connect`` 時に H.265 で B-frame を利用するかどうかを指定する ``h265_params: {"b_frame": true}`` を追加しました - デフォルトは ``false`` です - ``sora.conf`` にて :ref:`sora_conf-h265_b_frame` が ``true`` に指定されている必要があります - ``sora.conf`` にて :ref:`sora_conf-signaling_h265_params` が ``true`` に指定されている必要があります - [ADD] ウェブフックの ``video_h264_params`` に ``b_frame`` を追加しました - ``sora.conf`` の :ref:`sora_conf-h264_b_frame` が ``true`` に指定されていない場合は ``b_frame`` は含まれません - [ADD] ウェブフックの ``video_h265_params`` に ``b_frame`` を追加しました - ``sora.conf`` の :ref:`sora_conf-h264_b_frame` が ``true`` に指定されていない場合は ``b_frame`` は含まれません - [ADD] 認証成功時の払い出しで ``video_h264_params`` に ``b_frame`` を追加しました - デフォルトは ``false`` です - 接続時や払い出し時に未指定の場合はデフォルトの ``false`` が利用されます - [ADD] 認証成功時の払い出しで ``video_h265_params`` に ``b_frame`` を追加しました - デフォルトは ``false`` です - 接続時や払い出し時に未指定の場合はデフォルトの ``false`` が利用されます プレイアウト遅延機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** プレイアウト遅延機能を追加しました。 プレイアウト遅延機能を利用することでフレームをどれくらい速くレンダリングする必要があるかを配信毎に指定できます。 - [CHANGE] ``sora.conf`` の RTP ヘッダー拡張 playout-delay を利用するかどうかを指定する :ref:`sora_conf-rtp_hdrext_playout_delay` のデフォルトを ``true`` に変更しました - [ADD] ``sora.conf`` にプレイアウト遅延の最小値のデフォルトを指定する :ref:`sora_conf-default_playout_delay_min_delay` を追加しました - [ADD] ``sora.conf`` にプレイアウト遅延の最大値のデフォルトを指定する :ref:`sora_conf-default_playout_delay_max_delay` を追加しました - [ADD] 認証成功時の払い出しでプレイアウト遅延の最小値を指定する ``playout_delay_min_delay`` を追加しました - ``playout_delay_max_delay`` も一緒に指定する必要があります - [ADD] 認証成功時の払い出しでプレイアウト遅延の最大値を指定する ``playout_delay_max_delay`` を追加しました - ``playout_delay_min_delay`` も一緒に指定する必要があります 詳細は :doc:`プレイアウト遅延機能 ` をご確認ください。 メディア配信ワーカー ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** 配信ワーカー機能をメディア配信ワーカー機能に変更しました。 - [UPDATE] スポットライト機能をメディア配信ワーカーで利用できるようになりました - [CHANGE] ``sora.conf`` の ``rtp_publish_worker_number`` を ``media_publish_worker_number`` に変更しました WebSocket シグナリング時の HTTP ヘッダーを認証ウェブフックにコピーする機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能です** - [ADD] ``sora.conf`` に WebSocket シグナリング接続時の HTTP ヘッダーを認証ウェブフックのヘッダーにコピーする :ref:`sora_conf-copy_websocket_signaling_header_names` を追加しました - デフォルトは未指定です - 大文字小文字は区別されません - ``copy_websocket_signaling_header_names = X-Forwarded-For, X-Real-IP, Tracestate`` のように指定してください - [ADD] 認証ウェブフックログ ``auth_webhook.jsonl`` に ``copy_headers`` 項目を追加しました - 認証ウェブフックにコピーされたヘッダーを出力します .. _v2023.2.7: 2023.2.7 ======================== **バグフィックスアップデート** :リリース: 2024-04-24 - [FIX] レガシー録画機能または録画機能(セッション単位)利用時の録画停止処理中に、新規コネクションが参加した際に、そのコネクションが切断されるまで、録画停止処理が完了しない問題を修正しました - [FIX] レガシー録画機能にて録画停止処理中に録画の開始および :ref:`20161101.StopRecording` API 実行した際 ``RECORDING-INTERNAL-ERROR`` が返されていたのを ``STOPPING-RECORDING`` を返すように修正しました - [FIX] クラスター有効時に、ごく稀にノード起動に失敗することがある問題を修正しました .. _v2023.2.5: 2023.2.5 ======================== **ホットフィックスアップデート** :リリース: 2024-03-08 - [FIX] 録画機能で録画中、出力済の分割録画ファイルのファイルディスクリプタを掴み続ける問題を修正しました .. _v2023.2.4: 2023.2.4 ======================== **ホットフィックスアップデート** .. important:: このリリースはクラスターをご利用いただいているお客様にのみ提供しております。 :リリース: 2024-02-27 - [FIX] クラスター利用時にでリーダーノードがダウンした場合に、他のノードのセッションも終了してしまう問題を修正しました .. _v2023.2.3: 2023.2.3 ======================== **バグフィックスアップデート** :リリース: 2024-02-07 - [FIX] ``"multistream": false`` を指定して接続した場合に、配信/視聴ができない問題を修正しました - [FIX] セッションウェブフックが一部の HTTP サーバーで正常に処理できず、エラーになる問題を修正しました - [FIX] データチャネルの終了時にクライアント側で警告が出力される問題を修正しました .. _v2023.2.2: 2023.2.2 =================== **バグフィックスアップデート** :リリース: 2024-01-04 変更履歴 -------- - [FIX] ``sora.conf`` の :ref:`sora_conf-event_webhook_url` が未指定の状態で録画を開始した場合、セッションが破棄されない問題を修正しました - [FIX] ウェブフックで mTLS 利用時に、特定の条件下でクライアント証明書を送らなくなる問題を修正しました - ウェブフックで HTTPS を利用する場合は TLS 1.2 のみを利用するように変更しました - [FIX] ウェブフックで mTLS 利用時に、 CA 証明書が指定されていない場合に OS 組み込みの証明書を利用できない問題を修正しました - [FIX] 統計エクスポーターで mTLS 利用時に、 CA 証明書が指定されていない場合に OS 組み込みの証明書を利用できない問題を修正しました - [FIX] 音声ストリーミングで mTLS 利用時に、 CA 証明書が指定されていない場合に OS 組み込みの証明書を利用できない問題を修正しました - [FIX] API ログの書き込みに失敗した場合でも、 API の処理を中断しないように修正しました - [FIX] :ref:`20220629.PurgeClusterNode` API の API ログ操作名が ``LeaveCluster`` となっていたのを ``PurgeClusterNode`` に修正しました - [FIX] クラスターに参加済のノードが、別クラスターに対する :ref:`obsolete-20211215.JoinCluster` API を受け入れてしまう問題を修正しました - [FIX] 録画機能で大幅にパケットの到着が遅れている場合、分割録画に失敗することがある問題を修正しました .. _v2023.2.0: 2023.2.0 =================== **メジャーアップデート** :リリース: 2023-12-20 ハイライト ------------------ - セッション単位で録画する新しい録画機能を追加しました - 今までの録画機能は :doc:`レガシー録画機能 ` と名前を変更しました - レガシー録画機能と新しい録画機能は別チャネルであれば同時に利用することができます - レガシー録画機能は 2025 年 12 月リリース予定の Sora にて廃止します - 詳細は :doc:`録画機能 (セッション単位) ` をご確認ください - 接続単位で録画をブロックできる機能を追加しました - 今まではチャネルに参加している全ての接続が録画されていましたが、新しい録画機能では接続単位で録画をブロックできるようになりました - 新しい録画機能でのみ利用できます - より大規模な配信を可能にする配信ワーカー機能を追加しました - 今まで音声や映像をクライアントに配信するワーカーは 1 つでしたが、配信するワーカーを複数にすることで、より多くのユーザーに配信することができるようになりました - データチャネルの負荷を下げるために SCTP パケットのチェックサム計算を省略する機能を追加しました - 利用するにはクライアント側もチェックサム計算を省略する機能に対応している必要があります - ウェブフックで IPv6 アドレスが利用できるようになりました - ウェブフックなどでルート CA 証明書に OS 組み込みのものを利用するようにしました 正式版 -------- - :doc:`セッションウェブフック ` が正式版になりました - :doc:`DataChannel 経由のシグナリング ` が正式版になりました - :doc:`リアルタイムメッセージング機能 ` が正式版になりました 廃止情報 -------- - ``sora.conf`` の ``legacy_log_format`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-legacy_log_format` をご確認ください - ``sora.conf`` の ``legacy_log_extension`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-legacy_log_extension` をご確認ください - ``sora.conf`` の ``legacy_webhook_audio_video_json_structure`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-legacy_webhook_audio_video_json_structure` をご確認ください 破壊的変更 --------------- - ``sora.conf`` の :ref:`sora_conf-signaling_notify_metadata` を ``false`` にした場合でもシグナリング通知の ``data`` が含まれるようになりました - ``sora.conf`` の以下の設定を全て ``false`` にした場合、シグナリング通知の ``data`` が含まれなくなりました - :ref:`sora_conf-signaling_notify_metadata` - :ref:`sora_conf-signaling_notify_client_id` - :ref:`sora_conf-signaling_notify_bundle_id` - :ref:`sora_conf-signaling_notify_connection_id` - :ref:`sora_conf-signaling_notify_connection_created_timestamp` - 実験的機能のクラスター機能利用時のセッションウェブフック :ref:`session-webhook-session.destroyed` に ``connections`` が含まれなくなりました - 実験的機能のクラスター機能のログを ``cluster.jsonl`` に出力するよう変更しました - 実験的機能のセッションウェブフック :ref:`session-webhook-audio-streaming.started` に ``max_connections`` と ``total_connections`` が含まれなくなりました - 実験的機能のセッションウェブフック :ref:`session-webhook-audio-streaming.started` に ``max_connections`` と ``total_connections`` が含まれなくなりました 変更履歴 -------- - [CHANGE] ウェブフックなどで利用するルート CA 証明書に OS 組み込みのものを利用するように変更しました - Ubuntu の場合は ``apt install ca-certificates`` でインストールされる証明書を利用します - RHEL の場合は ``dnf install ca-certificates`` でインストールされる証明書を利用します - 詳細は :ref:`webhook_os_cacerts` をご確認ください - [UPDATE] DataChannel を利用したメッセージングのみで接続する場合に ``role`` が ``sendrecv`` 以外でも接続ができるようになりました - [ADD] シグナリング ``"type": "offer"`` に ``channel_id`` と ``session_id`` を追加しました - [ADD] ``connection.jsonl`` の ``ice_connection_state`` に ICE コネクションステート ``checking`` と ``disconnected`` だった時間を追加しました - [ADD] Sora が利用している Erlang VM の設定を追加できる環境変数 ``SORA_ADDITIONAL_ERL_ARGS`` を追加しました - [ADD] 認証成功時の払い出しに検証用の RTP パケットロスシミュレーターの設定値、 ``rtp_packet_loss_simulator_incoming`` と ``rtp_packet_loss_simulator_outgoing`` が指定できるようになりました - [ADD] ``sora.jsonl`` と ``internal.jsonl`` に UUIDv4 を Base32 でエンコードしたユニークな ID を含めるようにしました - ``"id": "base32(uuidv4)"`` - [FIX] データチャネルで利用する SCTP のストリーム ID 採番を RFC 8832 に準拠させました - https://www.rfc-editor.org/rfc/rfc8832.html - [FIX] 録画機能で H.264 利用時に送られてくる分割ペイロードが壊れている場合は処理をスキップするように修正しました OBS WHIP ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** .. sora_client の統計情報は非公開なので、リリースノートに含めない - [ADD] OBS WHIP で User-Agent として送られてくる情報を sora_client としてウェブフックで送信するようにしました .. code-block:: javascript "sora_client": { "raw": "Mozilla/5.0 (OBS-Studio/30.0.0; Mac OS X; ja-JP)", "type": "OBS-Studio", "version": "30.0.0", "environment": "environment":"Mozilla/5.0 (OBS-Studio/30.0.0; Mac OS X; ja-JP)" }, - [ADD] OBS WHIP で AV1 が動作するようにしました - OBS WHIP で AV1 を配信する仕組みは |date| 現在、 OBS には組み込まれていません - [FIX] WHIP 利用時に認証ウェブフックの項目に ``ignore_disconnect_websocket`` が含まれない問題を修正しました - 常に ``false`` が含まれます 転送フィルター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** 転送フィルターに ``version`` や ``metadata`` が指定できるようになりました。 ``version`` を指定することで、転送フィルターの更新 API が並列で実行されても期待した値に変更することができるようになりました。 - [ADD] 転送フィルターに ``version`` を設定できるようになりました - [ADD] 転送フィルターに ``metadata`` を設定できるようになりました - [ADD] 転送フィルター API :ref:`20230628.CreateChannelForwardingFilter` と :ref:`20230628.CreateConnectionForwardingFilter` に ``version`` を指定できるようになりました - [ADD] 転送フィルター API :ref:`20230628.CreateChannelForwardingFilter` と :ref:`20230628.UpdateChannelForwardingFilter` に ``metadata`` を指定できるようになりました - [ADD] 転送フィルター API :ref:`20230628.CreateConnectionForwardingFilter` と :ref:`20230628.UpdateConnectionForwardingFilter` に ``metadata`` を指定できるようになりました - [ADD] 転送フィルター API :ref:`20230628.UpdateChannelForwardingFilter` と :ref:`20230628.UpdateConnectionForwardingFilter` API に指定した ``expected_version`` が既存の ``version`` と一致していない場合は更新エラーになるようになりました - ``expected_version`` が既存のバージョンと一致した場合のみ ``desired_version`` で指定した値で ``version`` の値を更新します - [ADD] セッションウェブフックの戻り値に ``version`` と ``metadata`` を指定できるようになりました - [ADD] 認証成功の払い出し時に ``version`` と ``metadata`` を指定できるようになりました - [ADD] シグナリング時に ``version`` と ``metadata`` を指定できるようになりました セッション API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] 指定したセッションを取得する :ref:`20231220.GetSession` API を追加しました - ``channel_id`` を指定してセッションを取得します - [ADD] セッション一覧を取得する :ref:`20231220.ListSessions` API を追加しました - 全てのセッション一覧を取得します 録画機能 ^^^^^^^^ - [ADD] ``sora.conf`` に単一録画ファイルと分割録画ファイルの両方を出力する機能を有効にするかどうかを指定する :ref:`sora_conf-recording_dual_output` を追加しました - デフォルトは ``true`` です - ``false`` に指定した場合は ``単一録画ファイルと分割録画ファイルの両方が出力`` のパターンを指定できなくなります - [ADD] ``sora.conf`` に録画期限の最大値を指定する :ref:`sora_conf-recording_max_expire_time` を追加しました - デフォルトは ``86400 s`` です - 設定できる最大値は ``86400 s`` です - レガシー録画機能では一括録画と一括&分割録画で ``expire_time`` が指定できます - 新しい録画機能(セッション単位)では一括録画、分割録画、一括&分割録画で ``expire_time`` が指定できます - [ADD] ``sora.conf`` に分割録画時の分割時間の最大値を指定する :ref:`sora_conf-recording_max_split_duration` を追加しました - デフォルトは ``86400 s`` です - 設定できる最大値は ``86400 s`` です - [ADD] ``sora.conf`` に一括録画を含む場合に録画期限の設定を要求する :ref:`sora_conf-recording_expire_time_required` を追加しました - **この設定は一括録画時に録画ファイルが大きくなりすぎるのを防ぐための設定です** - デフォルトは ``false`` です - この設定を ``true`` にした場合、一括録画を含む場合に ``expire_time`` が必須になります - この設定を ``true`` にした場合、レガシー録画機能では ``expire_time`` に ``0`` 以外の値を指定する必要があります - この設定を ``true`` にした場合、新しい録画機能(セッション単位)では ``expire_time`` の値を指定する必要があります - この設定を ``true`` にした場合でも分割録画のみの場合は ``expire_time`` は必須になりません 新しい録画機能 (セッション単位) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 今までの録画機能は :doc:`レガシー録画機能 ` と名前を変更しました。 レガシー録画機能と新しい録画機能は別チャネルであれば同時に利用することができます。 - [ADD] ``sora.conf`` にレガシー録画を有効にするかどうか指定する :ref:`sora_conf-legacy_recording` を追加しました - デフォルトは ``true`` です - ``false`` にした場合、レガシー録画機能が利用できなくなります - この設定は移行用の設定で、 2025 年 12 月リリース予定の Sora にて廃止します。 - [ADD] セッションウェブフック ``session.created`` 時に ``"recording": true`` を指定することで録画を開始します - [ADD] セッションウェブフック ``session.created`` 時に ``"recording_expire_time"`` を指定することができるようになりました - セッション破棄時に録画は自動で終了します - セッション破棄前に期限が来た場合はそこで録画は終了します - [ADD] セッションウェブフック ``session.created`` 時に ``"recording_split_duration"`` を指定することができるようになりました - [ADD] セッションウェブフック ``session.created`` 時に ``"recording_split_only"`` を指定することができるようになりました - [ADD] セッションウェブフック ``session.created`` 時に ``"recording_metadata"`` を指定することができるようになりました - [ADD] セッションウェブフック ``recording.started`` を追加しました - [ADD] セッションウェブフック ``recording.report`` を追加しました - [ADD] 新しい録画用の :ref:`20231220.StartRecording` API を追加しました - セッション破棄時に自動で録画は終了します - ``expire_time`` がオプションになっています - ``expire_time`` デフォルトは未定義です - [ADD] 新しい録画用の :ref:`20231220.StopRecording` API を追加しました 詳細については :doc:`録画機能 (セッション単位) ` をご確認ください。 移行については :doc:`レガシー録画機能から新しい録画機能 (セッション単位) への移行 ` をご確認ください。 新しい録画機能 (セッション単位) における接続単位の録画ブロック機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** **この機能は新しい録画機能 (セッション単位) でのみ利用できます。レガシー録画機能では利用できません** - [ADD] 認証成功時に ``"recording_block": true`` を払い出すことで、その接続の録画をブロックし、録画ファイルの出力を拒否できるようになりました - これは録画が有効になっていない場合に払い出しても問題ありません - この値を途中で変更することはできません - [ADD] イベントウェブフック ``connection.{created, updated, destroyed}`` の ``data`` に ``"recording_block"`` の項目を追加しました - 認証成功時に ``"recording_block": true`` を払い出していれば ``true`` に、それ以外は ``false`` になります シグナリング通知メタデータ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``sora.conf`` で ``signaling_notify_metadata`` を ``false`` にした際の挙動を変更しました。 - [CHANGE] ``sora.conf`` の ``signaling_notify_metadata`` を ``false`` にした際でも ``data`` 項目が含まれるようになりました - ``data`` の ``metadata`` と ``authn_metadata`` と ``authz_metadata`` は含まれません - [CHANGE] ``sora.conf`` で以下の設定を全て ``false`` にした場合、シグナリング通知の ``data`` が含まれなくなりました - :ref:`sora_conf-signaling_notify_metadata` - :ref:`sora_conf-signaling_notify_client_id` - :ref:`sora_conf-signaling_notify_bundle_id` - :ref:`sora_conf-signaling_notify_connection_id` - :ref:`sora_conf-signaling_notify_connection_created_timestamp` - [FIX] ``sora.conf`` で ``signaling_notify_metadata`` を ``false`` にした際にも、シグナリング通知の ``data`` 項目の ``authn_metadata`` と ``authz_metadata`` が含まれてしまう問題を修正しました 外部への HTTP リクエストに HTTP ヘッダーを追加 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ウェブフックや統計エクスポーター、音声ストリーミングを利用した際の外部への HTTP リクエストに、 ``x-sora-`` prefix とは別に ``sora-`` prefix の HTTP ヘッダーを追加しました。 これは `RFC 6648 `_ による ``x-`` prefix の非推奨化に準拠するためです。 今後 ``x-sora-`` prefix は非推奨になります。 現時点で具体的な時期は決まっていませんが、将来的に 1 年以上の移行期間を設けて廃止する予定です。 - [ADD] セッションウェブフックに ``sora-session-webhook-type`` ヘッダーを追加しました - すでにある ``x-sora-session-webhook-type`` ヘッダーは将来的に廃止予定です - [ADD] イベントウェブフックに ``sora-event-webhook-type`` ヘッダーを追加しました - すでにある ``x-sora-event-webhook-type`` ヘッダーは将来的に廃止予定です - [ADD] 統計エクスポーターに ``sora-stats-exporter-type`` ヘッダーを追加しました - すでにある ``x-sora-stats-exporter-type`` ヘッダーは将来的に廃止予定です - [ADD] セッションウェブフックに ``sora-session-id`` ヘッダーを追加しました - [ADD] イベントウェブフックに ``sora-connection-id`` ヘッダーを追加しました - [ADD] イベントウェブフックに ``sora-session-id`` ヘッダーを追加しました ウェブフック ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] セッションウェブフック ``audio-streaming.started`` に ``max_connections`` と ``total_connections`` が含まれなくなりました - [CHANGE] セッションウェブフック ``audio-streaming.stopped`` に ``max_connections`` と ``total_connections`` が含まれなくなりました - [CHANGE] クラスター機能利用時のセッションウェブフック ``session.destroyed`` に ``connections`` が含まれなくなりました - [ADD] ``sora.conf`` にウェブフックで IPv6 利用する :ref:`sora_conf-webhook_ipv6` を追加しました - デフォルトは ``false`` です - この設定を有効にしない限りウェブフックで IPv6 は利用できません - [ADD] ``sora.conf`` にイベントウェブフック ``connection.updated`` の送信間隔を変更する :ref:`sora_conf-connection_updated_webhook_interval` を追加しました - デフォルトは ``1 min`` です - 最小は ``1 min`` です - 最大は ``10 min`` です - 時間単位は ``min`` のみが指定できます - [ADD] ``sora.conf`` に 録画イベントウェブフック ``split-archive.available`` を送信しないようにする :ref:`sora_conf-ignore_split_archive_available_webhook` を追加しました - デフォルトは ``false`` です - [ADD] 接続イベントウェブフック ``connection.{created, updated, destroyed}`` に ICE コネクションステートが ``checking`` と ``disconnected`` だった時間の項目を追加しました - ``data.ice_connection_state.total_checking_duration_ms`` に ``checking`` だった合計時間(ミリ秒)が入ります - ``data.ice_connection_state.total_disconnected_duration_ms`` に ``disconnected`` だった合計時間(ミリ秒)が入ります - [ADD] 認証ウェブフックに ``spotlight_focus_rid`` と ``spotlight_unfocus_rid`` を追加しました - ``spotlight`` が ``true`` の時だけ追加されます - [ADD] 接続イベントウェブフック ``connection.{created, updated, destroyed}`` に ICE コネクションステートの ``checking`` と ``disconnected`` の時間を通知する項目を追加しました - ``ice_connection_state`` 項目を追加しました - ``ice_connection_state`` に ``total_checking_duration_ms`` に ``checking`` だった合計時間(ミリ秒)が入ります - ``ice_connection_state`` に ``total_disconnected_duration_ms`` に ``disconnected`` だった合計時間(ミリ秒)が入ります .. code-block:: javascript "data": { "ice_connection_state": { "total_checking_duration_ms": 0, "total-disconnected_duration_ms": 0 } } - [ADD] セッションウェブフック :ref:`session-webhook-session.updated` を追加しました - クラスターが有効時には ``connections`` は含まれません - 録画機能 (セッション単位) 有効時に ``recording`` 項目が含まれます - [ADD] セッションウェブフック ``session.destroyed`` に ``reason`` が含まれるようになりました - ``reason`` には以下が含まれます - ``normal`` - 正常終了 - ``terminated_api`` - :ref:`20230628.TerminateSession` API を利用した終了 - ``abort`` - 異常終了 - [ADD] ``sora.conf`` にセッションウェブフック :ref:`session-webhook-session.updated` を送信しないようにする :ref:`sora_conf-ignore_session_updated_webhook` を追加しました - デフォルトは ``false`` です - [ADD] ``sora.conf`` にセッションウェブフック :ref:`session-webhook-session.updated` の送信間隔を変更する :ref:`sora_conf-session_updated_webhook_interval` を追加しました - デフォルトは ``1 min`` です - 最小は ``1 min`` です - 最大は ``10 min`` です - 時間単位は ``min`` のみが指定できます - [FIX] 認証ウェブフックで ``simulcast_rid`` は ``spotlight`` が ``true`` の場合は追加しないようにしました - ``simulcast`` が ``true`` かつ ``spotlight`` が ``false`` の時だけ追加されます データチャネル ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] データチャネルの SCTP のパケットのチェックサム計算を省略する仕組みを追加しました - データチャネルは DTLS レイヤーでデータ保護が行われているため、 SCTP のチェックサムは追加の整合性を得ることができないため省略することができます - クライアント側もチェックサム計算を省略する機能に対応している必要があります - データチャネル利用時の CPU リソースがクライアント、SFU ともに節約されます - https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-sctp-zero-checksum - [ADD] SCTP のチェックサムを省略した回数の統計情報を追加しました - ``total_received_sctp_zero_checksum`` - ``total_sent_sctp_zero_checksum`` クラスター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** ``Sora 2023.1.x`` で構築されているクラスターは ``Sora 2023.2.x`` へローリングアップデートで移行できます。 .. warning:: 2023.2.x から 2023.1.x へのローリングアップデートは行えません。クラスターを再構築する必要があります。 - [CHANGE] クラスター関連のログは ``cluster.jsonl`` に出力するよう変更しました - [ADD] 最新のバージョンと 1 世代前のバージョンの Sora ノードが混在する状態でのクラスター運用ができるようになりました - 全てのクラスターに参加するノードが同じバージョンになるまでは 1 世代前のバージョンと混在できる仕組みを追加しました - ``Sora 2023.2.x`` と ``2023.1.x`` で、特定のノードのアップデートが難しい場合でも、先に他のノードをアップデートすることができるようになります - クラスターに 1 世代前のバージョンのノードが混在している場合、新しい接続は全て古いバージョンのクラスターの仕組みを利用します - 全てのノードが新しいバージョンのクラスターになったタイミングで、新しいバージョンのクラスターの仕組みを利用しはじめます 詳細については :doc:`クラスター機能 ` をご確認ください。 .. note:: :ref:`20221221.InitCluster` API でクラスターを初期化する際には、新旧バージョンは混在させないでください。また ``Sora 2023.2.x`` で構成されたクラスターに :ref:`obsolete-20211215.JoinCluster` API で ``Sora 2023.1.x`` のノードを参加させることはできません。 メディア配信ワーカー機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** メディア配信ワーカー機能は音声や映像を配信するワーカーを複数用意することで、 1 チャネルで高ビットレートの映像をより多くのクライアントに配信することができるようになります。 - [ADD] ``sora.conf`` に音声や映像の 1 配信に利用するメディア配信ワーカー数を指定する ``sora_conf-media_publish_worker_number`` を追加しました - デフォルトのメディア配信ワーカー数は 1 です - 同時に 100 クライアント以上へ配信する場合はまず 10 を設定することを推奨します - ワーカー数が 10 であれば 1 チャネル 1000 クライアント以上の配信ができるようになります - 最小は 1 で、最大は 500 です ワーカー数の設定を 10 以上で検討している場合はまずサポートにご相談ください。 詳細については ``メディア配信ワーカー機能`` をご確認ください。 シグナリング通知メタデータ拡張機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** - [ADD] 認証成功時に、シグナリング通知メタデータ拡張の初期値を払い出す ``signaling_notify_metadata_ext`` を追加しました。 - sora.conf にて :ref:`sora_conf-signaling_notify_metadata_ext` を有効にしている必要があります - デフォルトは ``{}`` です 統計エクスポーター ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** - [ADD] ``sora.conf`` に統計エクスポーターをデフォルトで有効にするかどうかの ``default_stats_exporter`` を追加しました - デフォルトは ``true`` です - [ADD] 認証成功時の払い出しで接続単位で統計エクスポーターを有効にするかどうかを指定する ``stats_exporter`` を追加しました - ``false`` を設定した場合は ``stats_collector_url`` が指定されていたとしても統計情報がエクスポートされません H.265 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** |date| 現在、WebRTC H.265 のプロファイルに対応している WebRTC ライブラリはありません。 現在 `仕様策定中 `_ です。 - [ADD] H.265 サイマルキャストに対応しました - [ADD] ``sora.conf`` に H.265 のデフォルトレベル ID を指定する :ref:`sora_conf-default_h265_param_level_id` を追加しました - デフォルトは ``93`` (3.1) です - [ADD] 認証払い出し時に H.265 のデフォルトレベル ID を指定する ``video_h265_params`` を追加しました - ``"video_h265_params": {"level_id": 93}`` のように指定できます - level_id の値は 0 から 255 の間である必要があります - [ADD] シグナリング時に H.265 のデフォルトレベル ID を指定する ``h265_params`` を追加しました - ``"video": {"codec_type": "H265", "h265_params": {"level_id": 93}}`` のように指定できます - level_id の値は 0 から 255 の間である必要があります - [ADD] ``sora.conf`` に、シグナリング時に H.265 のパラメータ指定を許可するかどうか設定する :ref:`sora_conf-signaling_h265_params` を追加しました - デフォルトは ``false`` です .. _v2023.1.3: 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 にアップデートしました .. _v2023.1.2: 2023.1.2 =================== **バグフィックスアップデート** :リリース: 2023-08-10 変更履歴 -------- - [FIX] Safari 側の問題により Safari 14 系および Safari 15 系の一部で Sora に接続できない問題を修正しました - Safari 15.6 以降では問題が修正されていることを確認しています .. _v2023.1.1: 2023.1.1 =================== **バグフィックスアップデート** :リリース: 2023-07-14 変更履歴 -------- - [ADD] connection ログに ``ice_connection_state`` という ICE コネクション機能の統計情報を追加しました - サポートにて問題をより素早く解決しやすくするための追加です - [ADD] connection ログに ``network_status`` に不安定レベル毎の統計情報を追加しました - サポートにて問題をより素早く解決しやすくするための追加です - [ADD] :ref:`20170529.GetStatsConnection` API に ``ice_connection_state`` の統計情報を追加しました - [ADD] :ref:`20170529.GetStatsConnection` API に ``network_status`` にレベル毎の統計情報を追加しました - [FIX] CentOS 7 x86_64 利用時にセグメンテーション違反で Sora が落ちてしまう問題を修正しました - [FIX] DTLS 再ネゴシエーションの挙動を修正しました - [FIX] スポットライト機能利用時に OBS での WHIP が利用できない問題を修正しました - 新しく WHIP エンドポイント URL 指定時に ``spotlight=true`` を指定することで利用できるようにしました - ただし、音声がそのままでは配信されないため :ref:`20200807.FocusSpotlightFixed` API を利用して音声を配信する必要があります - [FIX] ICE コネクションステート機能で ``disconnected`` 時のクライアント状態確認の挙動を修正しました - [FIX] :ref:`20201124.PutSignalingNotifyMetadata` API の結果の誤字を修正しました - [FIX] :ref:`obsolete-20211215.JoinCluster` API のエラー応答の誤字を修正しました .. _v2023.1.0: 2023.1.0 =================== **メジャーアップデート** :リリース: 2023-06-28 サポート期間変更 ---------------- - Sora 2023.1.0 より、サポート提供期間をメジャーアップデートがリリースされた日から **12 ヶ月後の月末最終日まで** に変更しました - 2023年 6 月リリースの Sora 2023.1.0 およびその後リリースされる可能性のある Sora 2023.1.x は、2024 年 6 月 30 日までサポート対象となります 詳細は :doc:`サポートライフサイクル ` をご確認ください。 ハイライト ------------------ - OBS で WebRTC を利用した配信を実現する WHIP に対応しました - 詳細は :doc:`OBS (WHIP) 機能 ` をご確認ください - VP9 / AV1 でのサイマルキャストに対応しました - 詳細は :ref:`vp9_av1_simulcast` をご確認ください - メディアストリームを柔軟に制御するための :doc:`転送フィルター機能 ` を追加しました - 音声ストリーミング機能に自動開始/停止機能を追加しました - 詳細は :ref:`audio-streaming-auto-start-stop` をご確認ください - IPv6 のみの環境での動作に対応しました - 詳細は :ref:`ipv6_only` をご確認ください 互換なしの変更情報 ------------------ - 移行用の設定である ``sora_conf-legacy_webhook_audio_video_json_structure`` の設定のデフォルトを ``false`` に変更しました - 詳細は :ref:`obsolete-sora-conf-legacy_webhook_audio_video_json_structure` をご確認ください - 移行用の設定である ``legacy_log_format`` の設定のデフォルトを ``false`` に変更しました - 詳細は :ref:`obsolete-sora-conf-legacy_log_format` をご確認ください - 移行用の設定である ``legacy_log_extension`` の設定のデフォルトを ``false`` に変更しました - 詳細は :ref:`obsolete-sora-conf-legacy_log_extension` をご確認ください 廃止情報 -------- - Ubuntu 18.04 向けパッケージのサポートを終了しました - 詳細は :ref:`obsolete-ubuntu-18.04` をご確認ください - ``sora.conf`` の ``split_archive_legacy_prefix`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-split_archive_legacy_prefix` をご確認ください - ``sora.conf`` の ``default_multistream`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-default_multistream` をご確認ください - ``sora.conf`` の ``dcsctp_heartbeat_interval`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-datachannel-sctp` をご確認ください - ``sora.conf`` の ``dcsctp_slow_start_tcp_style`` を廃止しました - 詳細は :ref:`obsolete-sora-conf-datachannel-sctp` をご確認ください 変更履歴 -------- - [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 `_ に準拠しています - [CHANGE] ``sora.conf`` のウェブフックの audio と video 項目のレガシーな入れ子構造を利用する ``sora_conf-legacy_webhook_audio_video_json_structure`` のデフォルト値を ``false`` に変更しました - これは移行用設定です - [CHANGE] ``sora.conf`` のログフォーマットのレガシー形式を維持する ``legacy_log_format`` のデフォルト値を ``false`` に変更しました - これは移行用設定です - [CHANGE] ``sora.conf`` の JSONL 形式で出力しているログのレガシー拡張子を ``.log`` に維持する ``legacy_log_extension`` のデフォルト値を ``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 アドレスのみを利用する :ref:`sora_conf-ipv6_only` の設定を追加しました - [ADD] クラスター機能が有効な際、セッションウェブフックに ``external_signaling_url`` 項目を追加しました - ``sora.conf`` の :ref:`sora_conf-external_signaling_url` に指定されている値がそのまま入ります - [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`` が含まれます - [ADD] 認証ウェブフックに ``id`` を追加しました - [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] 指定したセッションを終了させる :ref:`20230628.TerminateSession` API を追加しました - ``channel_id`` の指定は必須で、 ``session_id`` がオプションで指定できます ヘルスチェック ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ``http://:5000/.ok`` で Sora のヘルスチェックができるようになりました - 単体利用時には問題が無ければ常に 200 OK を返します - クラスター利用時には ``block_new_connection`` モード時には ``503 Service Unavailable`` を返します 詳細は :doc:`ヘルスチェック機能 ` をご確認ください。 シグナリング通知 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] シグナリング通知の ``"event_type": "connection.created"`` に ``timestamp`` を追加しました - data にも ``"data": [{"timestamp": "2023-06-28T10:00:00.999999", ...}, .. ]`` のように ``timestamp`` が含まれるようになります - [ADD] シグナリング通知の ``"event_type": "connection.created"`` に ``timestamp`` を含める設定 :ref:`sora_conf-signaling_notify_connection_created_timestamp` を ``sora.conf`` に追加しました - デフォルトは ``true`` です 映像コーデックパラメーター指定機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ウェブフックに映像コーデックパラメーター ``"video_vp9_params": {"profile_id": 0}`` を追加しました - この設定を利用する場合 ``legacy_webhook_audio_video_json_structure`` が ``false`` である必要があります - [ADD] ウェブフックに映像コーデックパラメーター ``"video_av1_params": {"profile": 0}`` を追加しました - この設定を利用する場合 ``sora_conf-legacy_webhook_audio_video_json_structure`` が ``false`` である必要があります - [ADD] ウェブフックに映像コーデックパラメーター ``"video_h264_params": {"profile_level_id": ""}`` を追加しました - この設定を利用する場合 ``sora_conf-legacy_webhook_audio_video_json_structure`` が ``false`` である必要があります - [ADD] シグナリング接続時に H.264 のプロファイルレベル ID を ``"video": {"codec_type": "H264", "h264_params": {"profile_level_id": "42e01f"}`` のように指定できるようになりました - この指定を利用する場合は :ref:`sora_conf-signaling_h264_params` が ``true`` である必要があります - ``h264_params`` を指定する場合は、 ``codec_type`` は ``H264`` である必要があります - [ADD] シグナリング接続時に VP9 のプロファイル ID を ``"video": {"codec_type": "VP9", "vp9_params": {"profile_id": 0}}`` のように指定できるようになりました - この指定を利用する場合は :ref:`sora_conf-signaling_vp9_params` が ``true`` である必要があります - ``vp9_params`` を指定する場合は、 ``codec_type`` は ``VP9`` である必要があります - profile_id には 0 から 3 までの値を指定できます - [ADD] シグナリング接続時に AV1 のプロファイルを ``"video": {"codec_type": "AV1", "av1_params": {"profile": 0}}`` のように指定できるようになりました - この指定を利用する場合は :ref:`sora_conf-signaling_av1_params` が ``true`` である必要があります - ``av1_params`` を指定する場合は、 ``codec_type`` は ``AV1`` である必要があります - profile には 0 から 2 までの値を指定できます - [ADD] 認証成功時払い出しに VP9 のプロファイル ID を指定できる ``"video_vp9_params": {"profile_id": 0}`` を追加しました - この設定を利用する場合 ``sora_conf-legacy_webhook_audio_video_json_structure`` が ``false`` である必要があります - profile_id には 0 から 3 までの値を指定できます - [ADD] 認証成功時払い出しに AV1 のプロファイルを指定できる ``"video_av1_params": {"profile": 0}`` を追加しました - この設定を利用する場合 ``sora_conf-legacy_webhook_audio_video_json_structure`` が ``false`` である必要があります - profile には 0 から 2 までの値を指定できます - [ADD] 認証成功時払い出しに H.264 のプロファイルを指定できる ``"video_h264_params": {"profile_level_id": "42e01f"}`` を追加しました - この設定を利用する場合 ``sora_conf-legacy_webhook_audio_video_json_structure`` が ``false`` である必要があります - ``h264_profile_level_id`` は 2024 年 6 月リリース予定の Sora にて廃止します - [ADD] ``sora.conf`` に VP9 のプロファイル ID のデフォルト値を指定する :ref:`sora_conf-default_vp9_param_profile_id` を追加しました - デフォルトは 0 が設定されています - 0 から 3 までの値を指定できます - [ADD] ``sora.conf`` に AV1 のプロファイルのデフォルト値を指定する :ref:`sora_conf-default_av1_param_profile` を追加しました - デフォルトは 0 が設定されています - 0 から 2 までの値を指定できます - [ADD] ``sora.conf`` に H.264 のプロファイルレベル ID のデフォルト値を指定する :ref:`sora_conf-default_h264_param_profile_level_id` を追加しました - 既存の `default_h264_profile_level_id` は 2024 年 6 月リリース予定の Sora にて廃止します OBS (WHIP) 対応 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OBS が対応予定の WebRTC (WHIP) で配信ができるようになりました。 - [ADD] ``sora.conf`` に OBS (WHIP) を有効にする :ref:`sora_conf-whip` を追加しました - デフォルトは ``false`` です - [ADD] ``sora.conf`` に OBS (WHIP) の Bearer トークンを認証ウェブフックの ``metadata`` に対応させるキーを指定する :ref:`sora_conf-whip_bearer_token_metadata_key` を追加しました - OBS (WHIP) からの接続についても Bearer トークンを利用した認証機能が利用できます - デフォルトは未指定です - [ADD] WHIP 向けエンドポイント URL ``https://example.com/whip/`` を追加しました - クエリー文字列で ``client_id`` と ``bundle_id`` を指定できるようになりました - [ADD] WHIP 向けリソース URL ``https://example.com/whip-resource//`` を追加しました - PATCH と DELETE メソッドに対応しています - [ADD] WHIP を利用した際、認証ウェブフックに ``whip: true`` を追加しました - WHIP を利用していない接続の場合はこの項目は含まれません 詳細は :doc:`OBS (WHIP) 対応機能 ` をご確認ください。 VP9 / AV1 サイマルキャスト対応 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [UPDATE] VP9 と AV1 でのサイマルキャスト機能に対応しました - Chrome 113 以降でスポットライト機能にて VP9 と AV1 が利用できるようになりました - Edge 113 以降でスポットライト機能にて VP9 が利用できるようになりました - [UPDATE] 認証成功時の払い出し ``simulcast_encodings`` と ``spotlight_encodings`` で ``scalabilityMode`` を指定できるようになりました - デフォルトでは ``scalabilityMode`` に ``L1T3`` が設定されています - [UPDATE] :ref:`sora_conf-simulcast_encodings_file` と :ref:`sora_conf-spotlight_encodings_file` で ``scalabilityMode`` を指定できるようになりました 詳細は :ref:`simulcast-scalability-mode` をご確認ください。 Lyra 録音機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] 録画機能に Lyra コーデックを利用した際に WebM ファイルで録音する仕組みを追加しました 詳細は `recording-lyra` をご確認ください。 転送フィルター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 今まで :ref:`20200401.PauseRtpStream` / :ref:`20200401.ResumeRtpStream` API で実現していたメディアストリームの停止/再開をより細かく、柔軟に設定をできるようにした、 転送フィルター機能を追加しました。 - [ADD] セッション生成時 ``forwarding_filter`` を指定することでチャネル単位の転送フィルターを追加できるようになりました - [ADD] シグナリング接続時に ``forwarding_filter`` を指定することで接続単位の転送フィルターを追加できるようになりました - [ADD] 認証成功時に ``forwarding_filter`` を指定することで接続単位の転送フィルターを追加できるようになりました - [ADD] チャネル単位でチャネルとコネクションの転送フィルターを確認できる :ref:`20230628.ListForwardingFilters` API を追加しました - [ADD] チャネル単位の転送フィルターを作成する :ref:`20230628.CreateChannelForwardingFilter` API を追加しました - [ADD] チャネル単位の転送フィルターを更新する :ref:`20230628.UpdateChannelForwardingFilter` API を追加しました - [ADD] チャネル単位の転送フィルターを削除する :ref:`20230628.DeleteChannelForwardingFilter` API を追加しました - [ADD] コネクション単位の転送フィルターを作成する :ref:`20230628.CreateConnectionForwardingFilter` API を追加しました - [ADD] コネクション単位の転送フィルターを更新する :ref:`20230628.UpdateConnectionForwardingFilter` API を追加しました - [ADD] コネクション単位の転送フィルターを削除する :ref:`20230628.DeleteConnectionForwardingFilter` API を追加しました - [ADD] 転送フィルターで転送がブロックされたタイミングでシグナリング通知する機能を追加しました - [ADD] 転送フィルターで転送がブロックが解除されたタイミングでシグナリング通知する機能を追加しました - [ADD] ``sora.conf`` に転送フィルターをシグナリング経由で指定できるかどうかを設定する :ref:`sora_conf-signaling_forwarding_filter` を追加しました - デフォルト は ``false`` です - [ADD] ``sora.conf`` に転送フィルターのブロックの状態が変わったタイミングでシグナリング通知を飛ばすかどうかを設定する :ref:`sora_conf-signaling_notify_forwarding_filter` を追加しました - デフォルト は ``true`` です 詳細は :doc:`転送フィルター機能 ` をご確認ください。 SDP 再利用機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 今までマルチストリーム利用した際に、クライアント切断してもその SDP が残ってしまう問題がありました。 今回のリリースで、SDP を再利用する仕組みにより SDP が残る問題を解決しました。 - [CHANGE] ``recycle_media_section`` が ``true`` の際に、SDP を再利用する仕組みを追加しました - [ADD] ``sora.conf`` に SDP の再利用を行う :ref:`sora_conf-recycle_media_section` 設定を追加しました - デフォルトは ``true`` です 音声ストリーミング機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] 音声ストリーミングの結果通知の状態を確認する :ref:`20230628.ListAudioStreamingResultPushState` API を追加しました - [ADD] 音声ストリーミング機能にサブスクライブが 0 になると音声ストリーミングを停止し、サブスクライブが 1 以上になると音声ストリーミングを開始する機能を追加しました - この機能はセッション生成時に指定できます - この機能が有効になっている場合は音声ストリーミング開始/終了 API は利用できません - [ADD] セッションウェブフックの払い出しに音声ストリーミングの自動開始と停止を有効にする ``audio_streaming_auto`` を追加しました - この設定を利用する場合は必ず ``audio_streaming`` を ``true`` で払い出す必要があります - [ADD] ``sora.conf`` に音声ストリーミングのウェブフックを送信するかどうかを設定する :ref:`sora_conf-ignore_audio_streaming_webhook` を追加しました - デフォルトは ``true`` で、送信しません - [ADD] 音声ストリーミング機能の開始のウェブフック ``audio-streaming.started`` を追加しました - ``sora.conf`` にて :ref:`sora_conf-ignore_audio_streaming_webhook` を ``false`` にすることで送信します - [ADD] 音声ストリーミング機能の終了のウェブフック ``audio-streaming.stopped`` を追加しました - ``sora.conf`` にて :ref:`sora_conf-ignore_audio_streaming_webhook` を ``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 を送信する間隔を指定する :ref:`sora_conf-websocket_signaling_ping_interval` 設定を追加しました - デフォルトは ``5 s`` です - 最小は ``5 s`` です - 最大は ``300 s`` です - [ADD] ``sora.conf`` に pong のタイムアウト時間を指定する :ref:`sora_conf-websocket_signaling_pong_timeout` 設定を追加しました - デフォルトは ``60 s`` です - 最小は ``60 s`` です - 最大は ``600 s`` です - [ADD] ``sora.conf`` に ping 送信時に ``"stats": true`` にする間隔を指定する :ref:`sora_conf-websocket_stats_timer_interval` 設定を追加しました - デフォルトは ``30 s`` です - 最小は ``30 s`` です - 最大は ``600 s`` です クラスター機能利用時のディスク障害時の対応を追加 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] クラスター利用時に ``block_new_connection`` モードへ遷移した場合には新規接続のリダイレクトを行わないように変更しました - [ADD] クラスター利用時にディスク障害が発生した際に、 ``block_new_connection`` モードへ遷移する機能を追加しました .. _v2022.2.3: 2022.2.3 =================== :リリース: 2023-02-08 変更履歴 -------- - [FIX] 依存している OpenSSL を 3.0.8 にアップデートしました - [FIX] 2023 年 4 月 4 日リリース予定の Chrome 112 でシグナリング時に接続が必ず失敗してしまう問題を修正しました - [FIX] ディスク障害が発生してログの書き込みに失敗した際に、障害が復旧した後でもログが書き込めなくなることがある問題を修正しました .. _v2022.1.4: 2022.1.4 =================== :リリース: 2023-02-08 変更履歴 -------- - [FIX] 2023 年 4 月 4 日リリース予定の Chrome 112 でシグナリング時に接続が必ず失敗してしまう問題を修正しました .. _v2022.2.2: 2022.2.2 =================== :リリース: 2023-01-05 変更履歴 -------- - [FIX] 音声ストリーミング機能で ``sora.conf`` の :ref:`sora_conf-default_audio_streaming_result_push` が ``true`` の際、プッシュ通知が行われない問題を修正しました - [FIX] 音声ストリーミング機能でロールが ``recvonly`` の場合にプッシュ通知が受信できない問題を修正しました - [FIX] 音声ストリーミング機能で API を利用して音声ストリーミングを開始した際、通知が正常に行われない問題を修正しました .. _v2022.2.1: 2022.2.1 =================== :リリース: 2022-12-21 変更履歴 -------- - [FIX] 開発ツールが Safari / Mobile Safari / Firefox で動作しない問題を修正しました .. _v2022.2.0: 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/_.json`` の拡張子を ``.json`` から ``.jsonl`` に変更しました クラスター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] クラスターの仕組みを変更したため、2022.1 系までのクラスターの仕組みとは互換性がありません - クラスターの初期化が必要になります - [ADD] クラスター初期化に利用する :ref:`20221221.InitCluster` API を追加しました - [CHANGE] クラスター機能の :ref:`20211215.ListClusterNodes` API の ``member_since`` を廃止しました - [CHANGE] クラスター機能の :ref:`20211215.ListClusterChannels` 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 `_ を有効にする設定 ``lyra`` を追加しました - デフォルトは ``false`` です - ``lyra = true`` のように設定してください .. .. - [ADD] ``sora.conf`` に Lyra 向けコーデックのビットレートを指定する :ref:`lyra_param_bitrate` を追加しました .. .. - デフォルトは ``6000`` です .. - ``3200`` または ``6000`` または ``9200`` を指定できます - [ADD] シグナリング接続時の音声コーデックタイプに Lyra を指定できるようになりました - 指定する際は大文字の ``LYRA`` で指定する必要があります - Lyra を利用する際は lyra_params を指定する必要があります - ``lyra_params`` には lyra のバージョンを指定する ``version`` とビットレートを指定する ``bit_rate`` が指定できます - :json:`{"audio": "codec_type": "LYRA", "lyra_params": {"version": "1.3.0", "bit_rate": 9200}}` - [ADD] 認証成功時に :json:`{"audio": true, "audio_codec_type": "LYRA", "audio_lyra_params": {"version": "1.3.0", "bitrate": 9200}` のように指定できるようになりました - この指定を利用する場合は ``sora_conf-legacy_webhook_audio_video_json_structure`` を ``false`` にする必要があります 音声ストリーミング機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **これは実験的機能です** - [ADD] ``sora.conf`` に音声ストリーミングのリクエスト先の URL を指定する :ref:`sora_conf-audio_streaming_url` を追加しました - [ADD] ``sora.conf`` に音声ストリーミングで利用するデフォルトのランゲージコードを指定する :ref:`sora_conf-default_audio_streaming_language_code` を追加しました - [ADD] ``sora.conf`` に音声ストリーミングでデフォルトで結果をプッシュ通知で行うかどうかを指定する :ref:`sora_conf-default_audio_streaming_result_push` を追加しました - [ADD] ``sora.conf`` に音声ストリーミングで mTLS を利用する秘密鍵を指定する :ref:`sora_conf-audio_streaming_tls_privkey_file` を追加しました - [ADD] ``sora.conf`` に音声ストリーミングで mTLS を利用する証明書を指定する :ref:`sora_conf-audio_streaming_tls_fullchain_file` を追加しました - [ADD] ``sora.conf`` に音声ストリーミングで利用する CA ルート証明書を指定する :ref:`sora_conf-audio_streaming_tls_verify_cacert_file` を追加しました - [ADD] 音声ストリーミングを開始する :ref:`20221221.StartAudioStreaming` API を追加しました - [ADD] 音声ストリーミングを終了する :ref:`20221221.StopAudioStreaming` API を追加しました - [ADD] 音声ストリーミングの解析結果を購読する :ref:`20221221.SubscribeAudioStreamingResultPush` API を追加しました - [ADD] 音声ストリーミングの解析結果を購読解除する :ref:`20221221.UnsubscribeAudioStreamingResultPush` API を追加しました 詳細は :doc:`音声ストリーミング機能 ` をご確認ください。 音声冗長化機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] ``sora.conf`` の ``audio_red`` のデフォルト値を ``false`` に変更しました センシティブデータ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ``sora.conf`` にセンシティブなデータが含まれる可能性がある項目を ``"REDACTED"`` という文字列への書き換えをスキップする :ref:`sora_conf-skip_redact_sensitive_data` を追加しました - デフォルトでは ``false`` です - [CHANGE] ``sora.conf`` の ``redact_archive_metadata_sensitive_data`` を廃止しました - 録画メタデータファイルの ``event_metadata`` はセンシティブなデータの書き換え対象外としました - [CHANGE] ``sora.conf`` の ``redact_api_sensitive_data`` を廃止しました - API の ``event_metadata`` はセンシティブなデータの書き換え対象外としました 詳細は :doc:`センシティブデータ ` をご確認ください。 ウェブフックの audio と video 項目の JSON 構造のフラット化 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ``sora.conf`` にウェブフックの audio と video 項目のレガシーな JSON 構造する ``sora_conf-legacy_webhook_audio_video_json_structure`` を追加しました - デフォルトでは ``true`` です - これは移行用設定です 詳細は ``ウェブフックの audio と video 項目の JSON 構造のフラット化`` をご確認ください セッションウェブフックログを req/res 形式に変更 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] ``session_webhook.jsonl`` の出力形式を req/res 形式に変更しました - [CHANGE] ``session_webhook_error.jsonl`` の出力形式を req 形式に変更しました 録画とアーカイブ開始ウェブフックを追加 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] 録画開始ウェブフック :ref:`event-webhook-recording.started` を追加しました - [ADD] アーカイブ開始ウェブフック :ref:`event-webhook-archive.started` を追加しました - [ADD] ``sora.conf`` に :ref:`sora_conf-ignore_recording_started_webhook` を追加しました - デフォルトでは ``false`` です - [ADD] ``sora.conf`` に :ref:`sora_conf-ignore_archive_started_webhook` を追加しました - デフォルトでは ``false`` です ウェブフック mTLS / CA 証明書指定対応 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] ``sora.conf`` にウェブフックのリクエスト先との通信で mTLS を利用する際の証明書を指定する :ref:`sora_conf-webhook_tls_fullchain_file` を追加しました - [ADD] ``sora.conf`` にウェブフックのリクエスト先との通信で mTLS を理世する際の秘密鍵を指定する :ref:`sora_conf-webhook_tls_privkey_file` を追加しました - [ADD] ``sora.conf`` にウェブフックのリクエスト先の証明書をベリファイするルート CA を指定する :ref:`sora_conf-webhook_tls_verify_cacert_file` を追加しました ウェブフック統計情報 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [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 を出力させる ``20221221.GenerateCrashLog`` API を追加しました - **この API はログ出力の動作確認にのみ利用してください** - この API はかならずステータスコード 500 を返します .. _v2022.1.3: 2022.1.3 =================== :リリース: 2022-11-02 変更履歴 -------- - [FIX] 依存している OpenSSL を 3.0.7 にアップデートしました - [FIX] データチャネルの性能ボトルネックを修正しました - [FIX] データチャネル利用時に高負荷になった状態が継続する問題を修正しました - [FIX] データチャネル利用時に意図しないメッセージを受信した際の問題を修正しました - [FIX] データチャネル利用時に意図しないエラーが発生する問題を修正しました - [FIX] データチャネル利用時に ``compress`` が ``true`` になっている Label のメッセージが壊れている場合の問題を修正しました .. _v2022.1.1: 2022.1.1 =================== :リリース: 2022-07-12 変更履歴 -------- - [FIX] 依存している OpenSSL を 3.0.5 にアップデートしました - [FIX] 録画機能の :json:`{"type": "split-archive-end"}` ウェブフックには解像度を含めないように修正しました - [FIX] 録画機能の ``split-archive-end-.json`` ファイルには解像度を含めないように修正しました - [FIX] ``sora.log`` にでるべきログの一部が ``internal.log`` に出力されていた問題を修正しました - [FIX] クラスターのノードが異常な状態になったタイミングで ``emergency`` ログを出力して終了するように修正しました - [FIX] sora.conf の ``default_multistream`` が true の時に、 ``"type": "connect"`` メッセージの ``role`` に ``sendrecv`` を指定し、かつ ``multistream`` を ``指定しない`` 場合に、エラーとなり接続できない問題を修正しました .. _v2022.1.0: 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`` API を廃止しました - ``GetChannelRemoteStats`` API を廃止しました - ``GetConnectionRemoteStats`` API を廃止しました - ``StopRecording`` API の ``redirect`` を廃止しました 互換なしの変更情報 ------------------ - マルチストリームをデフォルトで有効にしました - ``sora.conf`` の ``default_multistream`` を ``false`` にすることでマルチストリームがデフォルトではなくなります - この設定は 2023 年 6 月リリースの Sora にて廃止します - 詳細は :ref:`obsolete-sora-conf-default_multistream` をご確認ください - ``type: archive.end`` を ``type: split-archive.end`` に変更しました - ``sora.conf`` の ``split_archive_legacy_prefix`` を ``true`` にすることで ``type: archive.end`` がそのまま利用できます - この設定は 2023 年 6 月リリースの Sora にて廃止します - 詳細は :ref:`obsolete-sora-conf-split_archive_legacy_prefix` をご確認ください - ``type: archive.split`` を ``type: split-archive.available`` に変更しました - ``sora.conf`` の ``split_archive_legacy_prefix`` を ``true`` にすることで ``type: archive.split`` がそのまま利用できます - この設定は 2023 年 6 月リリースの Sora にて廃止します - 詳細は :ref:`obsolete-sora-conf-split_archive_legacy_prefix` をご確認ください - ``archive-_.webm`` を ``split-archive-_.webm`` に変更しました - ``sora.conf`` の ``split_archive_legacy_prefix`` を ``true`` にすることで ``archive-_.webm`` がそのまま利用できます - この設定は 2023 年 6 月リリースの Sora にて廃止します - 詳細は :ref:`obsolete-sora-conf-split_archive_legacy_prefix` をご確認ください - ``archive-_.json`` を ``split-archive-_.json`` に変更しました - ``sora.conf`` の ``split_archive_legacy_prefix`` を ``true`` にすることで ``archive-_.json`` がそのまま利用できます - この設定は 2023 年 6 月リリースの Sora にて廃止します - 詳細は :ref:`obsolete-sora-conf-split_archive_legacy_prefix` をご確認ください - セッションウェブフックでセッションの接続数が 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] :ref:`20171010.GetStatsReport` 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 にて廃止します - 詳細は :ref:`obsolete-sora-conf-default_multistream` をご確認ください 例外的にスポットライト機能を利用するときは ``"multistream": true`` を明示する必要があります。 bundle_id の追加 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 複数のコネクションを同じ端末から接続する際、それぞれのコネクションで同一の ``bundle_id`` を指定すると、 同一の ``bundle_id`` を指定した接続からの音声や映像、メッセージングを受信しなくなります。 画面共有の映像を受信したくない場合などにお使いください。 - [ADD] ``sora.conf`` に ``"type": "connect"`` 時に ``bundle_id`` を指定できるかどうかを設定する :ref:`sora_conf-signaling_bundle_id` を追加しました - デフォルトでは ``false`` が設定されています - [ADD] ``sora.conf`` に :ref:`sora_conf-signaling_notify_bundle_id` を追加しました - デフォルトでは ``true`` が設定されています - [ADD] ``"type": "connect"`` で ``bundle_id`` が指定できるようになりました - 詳細は :ref:`signaling-bundle-id` をご確認ください - [ADD] 認証成功時の払い出しで ``bundle_id`` を指定できるようになりました - 詳細は :ref:`authz_bundle_id` をご確認ください 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-_.(json|webm)`` から ``split-archive-_.(json|webm)`` に変更しました - ``sora.conf`` の ``split_archive_legacy_prefix`` を ``true`` にすることで ``archive-_.(json|webm)`` を維持できます - [CHANGE] 録画分割時のウェブフックのタイプ ``"type": "archive.split"`` を ``"type": "split-archive.available"`` に変更しました - [CHANGE] 録画分割時のウェブフックのタイプ ``"type": "split.end"`` を ``"type": "split-archive.end"`` に変更しました - [CHANGE] 録画一時ファイルディレクトリ ``archive_tmp_dir`` に保存される録画一時ファイルは、録画が失敗した場合には削除されなくなりました - [ADD] ``report-.json`` に ``node_name`` と ``label`` 項目を追加しました - [ADD] ``sora.conf`` に分割録画ファイル名を ``archive-_.(json|webm)`` にする ``split_archive_legacy_prefix`` を追加しました - デフォルトは ``false`` です - この設定は 2023 年 6 月リリース予定の Sora にて廃止します - 詳細は :ref:`obsolete-sora-conf-split_archive_legacy_prefix` をご確認ください - [ADD] 録画の状態をクラスターで共有する仕組みを追加しました - [ADD] ``split_only`` に ``true`` を指定した場合に、 ``archive.end`` ウェブフックと対になる ``split-archive-end-.json`` ファイルを作成するようになりました - [ADD] ``split_only`` に ``true`` を指定した場合でも ``recording.report`` ウェブフックリクエストを飛ばすようになりました - [ADD] ``split_only`` に ``true`` を指定した場合でも ``report-.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] :ref:`obsolete-20211215.JoinCluster` API の ``cluster_node_name`` を ``contact_node_name`` に変更しました - [CHANGE] :ref:`20211215.ListClusterNodes` API の ``cluster_node_name`` を ``node_name`` に変更しました - [ADD] クラスターから特定のノードの情報を完全消去する :ref:`20220629.PurgeClusterNode` API を追加しました - [ADD] ``sora.conf`` に Sora 起動時に自動でクラスター参加を試みる ``contact_node_name_list`` を追加しました - 詳細は ``contact_node_name_list`` をご確認ください - [ADD] ``sora.conf`` にネットワーク障害等発生時に自動で再接続を試みる ``cluster_auto_reconnect`` を追加しました - デフォルトは有効です - [ADD] ネットワーク障害等発生時に自動で復旧を試みる仕組みを追加しました 最大ノード数対応ライセンス ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ クラスター利用時に、複数のノードに同一のライセンスが利用できる最大ノードライセンスの提供を開始しました。 詳細は :ref:`max-nodes-license` をご確認ください。 - [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`` メッセージを除外しました センシティブデータ編集済出力機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 詳細は :doc:`センシティブデータ ` をご確認ください。 - [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"`` という文字列に書き換えます .. _v2021.2.8: 2021.2.8 ======== :リリース: 2022-04-11 :対応 Chrome: M98 以降 :対応 Firefox: 97 以降 :対応 Safari: 15.3 以降 :対応 Edge: 98 以降 変更履歴 -------- - [FIX] 依存ライブラリ OpenSSL を 1.1.1n にアップデートしました .. _v2021.2.7: 2021.2.7 ======== :リリース: 2022-02-24 :対応 Chrome: M98 以降 :対応 Firefox: 97 以降 :対応 Safari: 15.3 以降 :対応 Edge: 98 以降 変更履歴 -------- - [CHANGE] 録画失敗時でも一時ファイルを削除しないようにしました - [FIX] PauseRtpStream API がイベントウェブフック connection.created を受け取ったタイミングで実行しても正常に動作しない問題を修正しました - [FIX] 録画ファイル分割出力のみの場合でも、一時ファイルが録画終了時まで削除されずに残っていた問題を修正しました .. _v2021.2.1: 2021.2.1 ======== :リリース: 2021-12-20 :対応 Chrome: M97 以降 :対応 Firefox: 95 以降 :対応 Safari: 15.1 以降 :対応 Edge: 97 以降 - [FIX] 録画機能利用時に ``sora.conf`` の :ref:`sora_conf-archive_tmp_dir` と :ref:`sora_conf-archive_dir` で指定される 2 つのディレクトリが異なるファイルシステムにある場合に、録画ファイルの生成に失敗する問題を修正しました .. _v2021.2.0: 2021.2.0 ======== :リリース: 2021-12-15 :対応 Chrome: M97 以降 :対応 Firefox: 95 以降 :対応 Safari: 15.1 以降 :対応 Edge: 97 以降 ハイライト --------------- - クラスター機能を追加しました - DataChannel を利用したメッセージング機能を追加しました - 統計エクスポーター機能を追加しました - スポットライト機能のフォーカス/アンフォーカスを変更する API を追加しました - ICE コネクションステート機能を追加しました - シグナリング通知に録画開始/終了の通知を追加しました - セッションウェブフックを追加しました - 音声冗長化機能に対応しました - AV1 コーデック利用時の録画に対応しました 廃止情報 -------- - CentOS 8 への対応を終了しました - 詳細は :ref:`obsolete-centos-8` をご確認ください - スポットライトレガシー機能を廃止しました - 詳細は :ref:`obsolete-spotlight-legacy` をご確認ください - 統計機能の ``rtp`` にある ``rtcp`` を廃止しました - 詳細は :ref:`obsolete-stats-rtcp` をご確認ください - ``sora.conf`` の ``extmap_allow_mixed`` 設定を廃止しました - 詳細は :ref:`obsolete-extmap-allow-mixed` をご確認ください - ``sora.conf`` の ``dcsctp_association_max_retrans`` 設定を廃止しました - 詳細は :ref:`obsolete-dcsctp_association_max_retrans` をご確認ください - 実験的機能である ``sora.conf`` の ``opus_param_clock_rate`` 設定を廃止しました - :ref:`obsolete-list-all-connections` API を廃止しました - 今後は :ref:`20201013.ListConnections` API をご利用ください。 - :ref:`obsolete-list-channel-clients` API を廃止しました - 今後は :ref:`20201013.ListChannelConnections` API をご利用ください 互換性なしの変更情報 --------------------- **変更点の不明点についてはサポートまでお問い合わせください** **猶予期間を儲けない変更となっておりますのでご注意ください** - :ref:`20201013.ListConnections` API の戻り値に含まれる ``connection_created_timestamp_sec`` の項目名を ``created_time`` に変更、単位を秒からマイクロ秒に変更しております - :ref:`20201013.ListChannelConnections` API の戻り値に含まれる ``connection_created_timestamp_sec`` の項目名を ``created_time`` に変更しており、単位を秒からマイクロ秒に変更しております 変更履歴 -------- - [CHANGE] ``connection.log`` のタイムスタンプを秒からマイクロ秒に変更しました - [CHANGE] Chrome 側の破壊的変更により Chrome M95 以前の AV1 への対応を廃止しました - AV1 を利用する場合は Chrome M96 以降をご利用ください - [ADD] ``sora.conf`` に TURN-TCP で Allocate-Success を遅延させる :ref:`sora_conf-turn_tcp_allocate_success_delay_time` を追加しました - デフォルトは ``100 ms`` です - 0-1000 ms の範囲で指定できます - [ADD] Sora 起動時に Sora のバージョンが INFO レベルで ``sora.log`` に出力されるようになりました - ``2021-12-15 12:34:56.789 UTC [info] [-/-/-] <0.235.0> SORA | node_name=sora@127.0.0.1, version=2021.2.0`` 移行 ^^^^^ - [CHANGE] ``sora.conf`` の ``use_re_offer`` が ``true`` の場合 ``type: update`` を Sora に送るとエラーになるよう変更しました - [CHANGE] ``sora.conf`` の ``use_re_offer`` のデフォルト値を ``true`` に変更しました - この設定は 2022 年 6 月リリース予定の Sora にて廃止します - [CHANGE] ``sora.conf`` の ``unuse_metadata_list`` のデフォルト値を ``true`` に変更しました - この設定は 2022 年 6 月リリース予定の Sora にて廃止します 開発ツール ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] デモ機能を **開発ツール** と名前を変更しました - [CHANGE] ``sora.conf`` の ``demo`` を ``true`` にした場合 :ref:`sora_conf-devtools` が有効になるように変更しました - ``sora.conf`` の ``demo`` は 2022 年 6 月のリリースにて廃止します - 詳細は :ref:`obsolete-sora-conf-demo` をご確認ください - [ADD] ``sora.conf`` に :ref:`sora_conf-devtools` を追加しました - デフォルトは ``false`` です ウェブフック ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] 認証ウェブフックに ``node_name`` を追加しました - [ADD] イベントウェブフックに ``node_name`` を追加しました - [ADD] イベントウェブフックの ``recording.report`` に ``filename`` と ``file_path`` を追加しました - ``metadata_filename`` と ``metadata_file_path`` は 2022 年 12 月リリース予定の Sora で廃止します - 廃止対象は JSON 内の ``"data"`` 直下のフィールドのみで、 ``"archives"`` 以下にある ``metadata_filename`` と ``metadata_file_path`` は変更ありません セッションウェブフック ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 詳細は :doc:`セッションウェブフック ` をご確認ください。 - [ADD] ``sora.conf`` にセッションウェブフックの URL を指定する :ref:`sora_conf-session_webhook_url` を追加しました - [ADD] ``sora.conf`` にセッション生成時のタイムアウトを指定する :ref:`sora_conf-session_created_timeout` を追加しました - デフォルトは ``5 s`` です - [ADD] ``sora.conf`` に セッション破棄時のタイムアウトを指定する :ref:`sora_conf-session_destroyed_timeout` を追加しました - デフォルトは ``15 s`` です - [ADD] ``session.created`` セッションウェブフックを追加しました - セッションが作成されたタイミングで送信します - [ADD] ``session.destroyed`` セッションウェブフックを追加しました - セッションが破棄されたタイミングで送信します - [ADD] ``session.vanished`` セッションウェブフックを追加しました - ``block_new_connection`` または ``block_new_session`` モード時にすべてのセッションが破棄されたタイミングで送信します - [ADD] ``sora.conf`` に ``session.vanished`` をウェブフックリクエストとして送信しない ``ignore_session_vanished_webhook`` を追加しました - デフォルトは ``true`` です - [ADD] セッションウェブフックリクエスト送信時の HTTP ヘッダーに ``x-sora-session-webhook-type`` を追加しました - ヘッダーの値は ``type`` の値が入ります - [ADD] セッションウェブフックのログを出力する ``log/session_webhook.log`` を追加しました - [ADD] セッションウェブフックの失敗ログを出力する ``log/session_webhook_failed.log`` を追加しました - [ADD] :ref:`20171010.GetStatsReport` API に合計セッション生成回数 ``total_session_created`` を追加しました - [ADD] :ref:`20171010.GetStatsReport` API に合計セッション破棄回数 ``total_session_destroyed`` を追加しました モード機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 詳細は :doc:`モード機能 ` をご確認ください。 - [ADD] 新規セッションやコネクションを受け付けなくするモードの仕組みを追加しました - 初期値は ``normal`` です - ``sora.conf`` にて ``cluster`` を有効にしたときの初期値は ``block_new_connection`` です - [ADD] モードを切り替える ``ChangeMode API`` を追加しました - ``"mode": "normal"`` を指定するとすべての新規コネクションを受け付けます - ``"mode": "block_new_session"`` を指定することで新規セッションをブロックすることができます - ``"mode": "block_new_connection"`` を指定することで新規コネクションをブロックすることができます - [ADD] 現在のモードを取得する ``GetMode API`` を追加しました クラスター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 詳細は :doc:`クラスター機能 ` をご確認ください。 - [ADD] クラスター機能利用時にどのノードへも接続ができない場合 ``NO-ACCEPTABLE-NODE`` を出力するようにしました - [ADD] 複数 Sora でクラスターを構築し、冗長化する機能を追加しました - [ADD] クラスター機能利用時に新規のチャネルへの接続する際、同時接続に余裕のある Sora ノードに割り当てる機能を追加しました - [ADD] クラスター機能利用時に既存のチャネルへの接続する際、そのチャネルへの接続が存在する Sora ノードに割り当てる機能を追加しました - [ADD] シグナリング接続時に別の Sora ノードにリダイレクトする ``"type": "redirect"`` を追加しました - リダイレクト先のシグナリング URL が ``"location": "wss://node01.example.com/signaling"`` に含まれます - [ADD] リダイレクト先のシグナリング URL を利用する際に ``"redirect": true`` を ``"type": "connect"`` に追加できるようにしました - [ADD] sora.conf にクラスター利用時にリダイレクトに利用する ``cluster_signaling_url`` の設定を追加しました - ``cluster_signaling_url = wss://node01.example.com/signaling`` - [ADD] sora.conf にクラスター利用時の Sora ノード名を指定する ``cluster_node_name`` の設定を追加しました - ``cluster_node_name = node01@192.0.2.10`` - [ADD] sora.conf にクラスター利用時に API URL を指定する ``cluster_api_url`` の設定を追加しました - ``cluster_api_url = https://node01.example.com/`` - [ADD] sora.conf にクラスター利用時のノード間通信に使用するポート番号を指定する :ref:`sora_conf-cluster_listen_min_port` と :ref:`sora_conf-cluster_listen_max_port` の設定を追加しました - デフォルトは :ref:`sora_conf-cluster_listen_min_port` が ``49010`` で、 :ref:`sora_conf-cluster_listen_max_port` が ``49020`` です - [ADD] クラスターに参加するための :ref:`obsolete-20211215.JoinCluster` API を追加しました - クラスターからの離脱は ``bin/sora stop`` を実行します - [ADD] クラスターに参加しているノード一覧を取得するための :ref:`20211215.ListClusterNodes` API を追加しました - [ADD] クラスターに割り当てられているチャネル ID 一覧を取得するための :ref:`20211215.ListClusterChannels` API を追加しました 音声冗長化機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **この機能は Chrome 96 以降で利用できます** - [ADD] ``sora.conf`` に 音声冗長化機能を有効にする ``audio_red`` を追加しました。 - デフォルトは ``false`` です - 音声冗長化についての詳細は `PSA: opus+red enabled by default in M96 `_ を参照ください - [ADD] 1 チャネルへの接続が ``audio_red`` への対応が混在していてもやりとりできるようにしました。 録画機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] AV1 の録画に対応しました - この機能は Chrome 96 以降で利用できます - [ADD] :ref:`20161101.StartRecording` API にて ``metadata`` を指定可能にしました - ``metadata`` は JSON オブジェクトである必要があります - ``metadata`` はオプションです - [ADD] ``recording.report`` や録画メタデータファイルに :ref:`20161101.StartRecording` API で指定した ``metadata`` を出力するようにしました - 指定しなければ ``metadata`` が出力されません - [ADD] シグナリング通知を利用している場合、録画開始時に :ref:`signaling-notify-recording.started` が通知されるようになりました - [ADD] シグナリング通知を利用している場合、録画終了時に :ref:`signaling-notify-recording.stopped` が通知されるようになりました - [ADD] ``sora.conf`` に録画関連をシグナリング通知で送信するかどうかを指定する :ref:`sora_conf-signaling_notify_recording` を追加しました 統計エクスポーター機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ クライアントから送られてきた統計情報を HTTP/2 経由で外部へ出力する機能です。 詳細は :doc:`統計エクスポーター機能 ` をご確認ください。 - [ADD] ``sora.conf`` に統計エクスポーターの接続先を指定する ``stats_collector_url`` を追加しました - ``stats_collector_url = http://h2c.example.com:5890/collector`` - ``stats_collector_url = https://h2.example.com/collector`` - [ADD] 統計コレクターへ送信時の HTTP ヘッダーに ``x-sora-stats-exporter-type`` を追加しました - ヘッダーの値は ``type`` の値が入ります - [ADD] ``sora.conf`` に統計エクスポーターの数を指定する ``stats_exporter_number`` を追加しました - デフォルトは ``5`` です - [ADD] ``sora.conf`` に ``stats_exporter_tls_fullchain_file`` を追加しました - [ADD] ``sora.conf`` に ``stats_exporter_tls_privkey_file`` を追加しました - [ADD] ``sora.conf`` に ``stats_exporter_tls_verify_cacert_file`` を追加しました - [ADD] 頻繁に送らない項目を定義しました - 1 h に 1 回送ります - codec / local-candidate / remote-candidate / certificate / peer-connection / track-stream スポットライト機能 ^^^^^^^^^^^^^^^^^^ フォーカス/アンフォーカス挙動変更 API を追加しました。 - [ADD] スポットライトのフォーカス/アンフォーカス挙動を変更する :ref:`20211215.RequestSpotlightRid` API` を追加しました - [ADD] スポットライトのフォーカス/アンフォーカス挙動をリセットする :ref:`20211215.ResetSpotlightRid` API を追加しました - [ADD] スポットライトのフォーカス/アンフォーカス挙動を一括で変更する :ref:`20211215.BatchRequestSpotlightRid` API を追加しました ICE コネクションステート機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 詳細は :doc:`ICE コネクションステート機能 ` をご確認ください。 - [ADD] ``sora.conf`` に :ref:`sora_conf-ice_connection_state_disconnected_timeout` を追加しました - デフォルトは ``5 s`` です - [ADD] ``sora.conf`` に :ref:`sora_conf-ice_connection_state_failed_timeout` を追加しました - デフォルトは ``10 s`` です - [ADD] ``sora.log`` に warning で ``ICE-CONNECTION-DISCONNECTED`` が出力されるようになりました - ``1000 ms`` 間隔で 5 秒間 ``STUN Binding-Request`` を送っても 1 度も ``STUN Binding-Success`` が返ってこない場合に出力されます - ``1000 ms`` は ``sora.conf`` の :ref:`sora_conf-ice_connection_state_disconnected_timeout` にて変更できます - [ADD] ``sora.log`` に ``error`` で ``ICE-CONNECTION-FAILED`` が出力されるようになりました - この場合 Sora は接続を切断します - ``50 ms`` 間隔で 10 秒間 ``STUN Binding-Request`` を送っても 1 度も ``STUN Binding-Success`` が返ってこない場合に出力されます - ``50 ms`` は ``sora.conf`` の :ref:`sora_conf-ice_connection_state_failed_timeout` にて変更できます DataChannel 機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [CHANGE] 利用しない DataChannel を作成しない仕組みを追加しました - ``sora.conf`` の :ref:`sora_conf-signaling_notify` が無効の場合は ``label: notify`` の DataChannel は作成しません - ``sora.conf`` の ``sora_conf-e2ee`` が無効の場合は ``label: e2ee`` の DataChannel は作成しません - ``sora.conf`` の ``user_agent_stats`` が無効の場合は ``label: stats`` の DataChannel は作成しません - [CHANGE] ``dcsctp_association_max_retrans`` を廃止しました - 切断判定には ICE コネクションステート機能が利用されます メッセージング機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 詳細は :doc:`リアルタイムメッセージング機能 ` をご確認ください。 DataChannel を利用したメッセージをユーザーが提起して自由に送ることができる機能です。ラベルは ``#`` から始まる必要があります。 - [ADD] ``type: connect`` に ``data_channels`` を追加しました - メッセージ機能は ``[{"label": "#abc", "direction": "sendrecv"}, ...]`` で指定できます - メッセージのラベルを指定する ``label`` を追加しました - ``^#[a-zA-Z0-9][a-zA-Z0-9-]{1,30}$`` - メッセージのメッセージの方向を指定する ``direction`` を追加しました - ``sendrecv`` / ``sendonly`` / ``recvonly`` のどれかを指定して下さい - 方向はクライアントから見た視点で ``role`` と同様です - メッセージの順番を指定する :ref:`messaging-ordered` を追加しました - デフォルトは ``true`` です - メッセージのリトライ時間を指定する :ref:`messaging-max_packet_life_time` を追加しました - デフォルト指定無しです - 単位はミリ秒です - メッセージのリトライ回数を指定する :ref:`messaging-max_retransmits` を追加しました - デフォルト指定無しです - メッセージの圧縮を指定する :ref:`messaging-compress` を追加しました - デフォルトは ``false`` です - [ADD] ``sora.conf`` に :ref:`sora_conf-data_channel_messaging` を追加しました - デフォルトは ``false`` です - [ADD] 認証成功時の払い出しで ``data_channels`` を指定できるようにしました - ``"type": "connect"`` 時に、指定された ``data_channels`` を上書きできます - [ADD] ``sora.conf`` に :ref:`sora_conf-data_channel_messaging_only` を追加しました - デフォルトは ``false`` です ユーザーエージェント統計 API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ リモート統計情報 API の名前を変更し整理した API です。 リモート統計情報 API は 2022 年 6 月リリースの Sora にて廃止しますので、 ユーザーエージェント統計情報 API に切り替えをお願いします。 - [CHANGE] ``remote_stats`` をデフォルト ``false`` にしました - [ADD] ``sora.conf`` に ``user_agent_stats`` を追加しました - デフォルトは ``true`` です - ``remote_stats`` は 2022 年 6 月にて廃止します - [ADD] :ref:`20211215.ListUserAgentStats` API を追加しました - :ref:`20200225.GetAllRemoteStats` の代替 API です - [ADD] :ref:`20211215.ListChannelUserAgentStats` API を追加しました - :ref:`20200225.GetChannelRemoteStats` の代替 API です - [ADD] :ref:`20211215.GetUserAgentStats` API を追加しました - :ref:`20200225.GetConnectionRemoteStats` の代替 API です .. _v2021.1.4: 2021.1.4 ========= :リリース: 2021-10-29 :対応 Chrome: M95 以降 :対応 Firefox: 93 以降 :対応 Safari: 15.1 以降 :対応 Edge: 95 以降 変更履歴 -------- - [FIX] ネットワークが不安定な場合に録画が失敗する問題を修正しました - [FIX] Safari を利用した場合に特定条件で復号が失敗する問題を修正しました .. _v2021.1.2: 2021.1.2 ========= :リリース: 2021-09-17 :対応 Chrome: M93 以降 :対応 Firefox: 92 以降 :対応 Safari: 14.1 以降 :対応 Edge: 93 以降 変更履歴 -------- - [UPDATE] デモ機能で利用している sora-demo を 2021.1.6 にアップデートしました - [ADD] 切断 API の ``reason`` を指定した場合に、指定した ``reason`` が、イベントウェブフック ``connection.destroyed`` に ``disconnect_api_reason`` として含まれるようになりました - 今まで ``reason`` として入ってきていたのと同じ値が入ります - [ADD] ``"type": "disconnect"`` に ``reason`` を指定した場合に、指定した ``reason`` が、イベントウェブフック ``connection.destroyed`` に ``type_disconnect_reason`` として含まれるようになりました - [ADD] イベントウェブフック ``connection.*`` の ``data`` に ``"created_time": "connection.created 時の UNIX 時刻"`` を追加しました - [ADD] ``sora.conf`` にスポットライトでフォーカスされた後、一定時間追い出されなくなる :ref:`sora_conf-default_spotlight_focus_min_interval` を追加しました - デフォルトは ``2000 ms`` です - [FIX] スポットライト機能で複数人が音を出し続けていると頻繁にフォーカスが入れ替わる問題を修正しました - アンフォーカス後のフォーカスは、最低でも :ref:`sora_conf-default_spotlight_delayed_focus_interval` だけ待つようになりました - [FIX] スポットライト機能でアンフォーカスからフォーカスに変わるタイミングで音声や映像が配信されなくなる場合がある問題を修正しました - [FIX] スポットライト機能で自動アンフォーカスが指定した時間よりも速く行われる問題を修正しました - [FIX] IPv6 のみで正常に接続できない場合がある問題を修正しました - [FIX] クライアントから ``"type": "candidate"`` を送ることができる回数を 20 から 50 に変更しました - [FIX] DataChannel におけるエンドポイント障害検出カウンターのリセットタイミングを修正しました - [FIX] 一部の HTTP API のバリデーションが正常に動作していない問題を修正しました - [FIX] シグナリングが DataChannel に切り替わったタイミングで WebSocket のアイドルタイムアウトが無制限になるように修正しました - [FIX] SRTP/SRTCP の暗号が AES-GCM の場合に、長時間配信すると正常に復号できなくなる問題を修正しました - [FIX] sora.conf の不要なコメントを削除しました .. _v2021.1: 2021.1 ====== :リリース: 2021-06-23 :対応 Chrome: M91 以降 :対応 Firefox: 89 以降 :対応 Safari: 14.1 以降 :対応 Edge: 91 以降 廃止情報 -------- role の upstream と downstream を廃止 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``role`` の ``upstream`` と ``downstream`` を廃止しました。 詳細は :ref:`obsolete-role-upstream-downstream` をご確認ください。 allow_client_id_assignment 設定を廃止 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 接続時や認証成功時に、常に client_id を指定できるようになり、 ``sora.conf`` の ``allow_client_id_assignment`` を廃止しました。 詳細は :ref:`obsolete-allow-client-id-assignment-conf` をご確認ください。 旧サイマルキャスト API を廃止 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``Sora_20180820.ChangeSimulcastQuality`` API を廃止しました。 詳細は :ref:`obsolete-change-simulcast-quality-api` をご確認ください。 互換なしの変更情報 ------------------ 廃止以外の互換性がない機能変更はありません。 実験的機能から正式機能へ昇格 ---------------------------- - ``Sora_20201120.PushChannelByRole`` API - ``Sora_20201120.DisconnectChannelByRole`` API ハイライト --------------- - スポットライト機能に rid 指定機能を追加しました - スポットライト機能に遅延フォーカス機能を追加しました - スポットライト機能に自動アンフォーカス機能を追加しました - スポットライト機能にフォーカスなしの音声配信機能を追加しました - シグナリングを WebSocket から DataChannel へ切り替える機能を追加しました - DataChannel 経由のシグナリング利用時に WebSocket の切断を無視する機能を追加しました - より少ない CPU リソースでより多くの接続を処理できるようになりました 変更履歴 -------- - [UPDATE] デモ機能で利用している sora-demo を 2021.1 にアップデートしました - [UPDATE] より少ない CPU リソースで多くの接続を処理できるようになりました - [ADD] TURN-TCP 利用時の `Proxy Protocol v1 `_ へ対応しました - これに伴い :ref:`turn-tls-turn-tcp-signaling-443-port` の内容が Sora 2021.1 向けに変更されています - nginx の変更はしなくても動作しますが、変更をお勧めします - [ADD] シグナリング ``"type": "offer"`` 時に配信で有効になっている ``audio`` または ``video`` の ``mid`` を含めるようにしました - 例: ``"type": "offer", "mid": {"audio": "audio_lFaJYL", "video": "video_lMjsoq"}`` - [ADD] ``"type": "udpate"`` の代わりに ``"type": "re-offer"`` を送れるように、 ``sora.conf`` に ``use_re_offer`` を追加しました - デフォルトは ``false`` です - この設定は 2021 年 12 月リリースの Sora にてデフォルト ``true`` に変更されます - この設定は 2022 年 6 月リリースの Sora にて廃止され、常に ``"type": "re-offer"`` が送られるようになります - [ADD] シグナリング通知メタデータの利用時に、 ``metadata_list`` の代わりに ``data`` を送れるように、 ``sora.conf`` に ``unuse_metadata_list`` を追加しました - デフォルトは ``false`` です - この設定は 2021 年 12 月リリースの Sora にてデフォルト ``true`` に変更されます - この設定は 2022 年 6 月リリースの Sora にて廃止され、常に ``data`` が送られるようになります - [FIX] 録画機能の利用時で映像が送られてこない際に WebM の PixelWidth / PixelHeight が 0 になる問題を修正しました - [FIX] 不安定な回線や音声パケットが送られてこなくなる場合にクライアント側でリップシンクが正常に行われず、音声と映像がずれてしまう問題を修正しました - [FIX] 音声クロックレートが 48000 Hz 固定になってしまう問題を修正しました - [FIX] スポットライトレガシーで recvonly が利用できてしまう問題を修正しました - [FIX] TURN-TCP で問題があった際に、シグナリングを切断しない限り接続が残り続ける問題を修正しました 統計機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - [ADD] RTP ヘッダー拡張の統計情報を追加しました - [ADD] サイマルキャストの rid 単位の RTP 統計情報を追加しました - [ADD] サイマルキャストの rid 単位の RTP ヘッダー拡張統計情報を追加しました - [ADD] RTCP 統計情報を ``rtcp`` に移動しました - 2021 年 12 月のリリースにて ``rtp`` から RTCP 関連の統計情報を削除します スポットライト機能 ^^^^^^^^^^^^^^^^^^ **実験的機能** - [CHANGE] デフォルトの ``r0`` の ``maxFramerate`` を ``1.0`` から ``5.0`` に変更しました スポットライト機能: rid 指定 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** スポットライト利用時にフォーカス、アンフォーカスそれぞれで受信する映像を接続ごとに指定できるようになりました。 これによりモバイル端末や回線が不安定な場合は映像を一切受信しないなどの設定ができます。 - [ADD] アンフォーカス時に受信する rid を指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_unfocus_rid` を追加しました - デフォルトは ``r0`` - ``none``, ``r0``, ``r1``, ``r2`` を指定可能 - [ADD] フォーカス時に受信する rid を指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_focus_rid` を追加しました - デフォルトは ``r1`` - ``none``, ``r0``, ``r1``, ``r2`` を指定可能 - [ADD] アンフォーカス時に受信する rid を指定できるように、シグナリング ``"type": "connect"`` に ``spotlight_unfocus_rid`` を追加しました - デフォルトは ``sora.conf`` の :ref:`sora_conf-default_spotlight_unfocus_rid` の値が採用されます - ``none``, ``r0``, ``r1``, ``r2`` を指定可能 - [ADD] フォーカス時に受信する rid を指定できるように、シグナリング ``"type": "connect"`` に ``spotlight_focus_rid`` を追加しました - デフォルトは ``sora.conf`` の :ref:`sora_conf-default_spotlight_focus_rid` の値が採用されます - ``none``, ``r0``, ``r1``, ``r2`` を指定可能 - [ADD] アンフォーカス時に受信する rid を指定できるように、認証成功時の払い出しに、 ``spotlight_unfocus_rid`` を追加しました - デフォルトは ``sora.conf`` の :ref:`sora_conf-default_spotlight_unfocus_rid` の値が採用されます - ``"type": "connect"`` 時に、指定された ``spotlight_unfocus_rid`` を上書きできます - ``none``, ``r0``, ``r1``, ``r2`` を指定可能 - [ADD] フォーカス時に受信する rid を指定できるように、認証成功時の払い出しに ``spotlight_focus_rid`` を追加しました - デフォルトは ``sora.conf`` の :ref:`sora_conf-default_spotlight_focus_rid` の値が採用されます - ``"type": "connect"`` 時に、指定された ``spotlight_focus_rid`` を上書きできます - ``none``, ``r0``, ``r1``, ``r2`` を指定可能 スポットライト機能: 遅延フォーカス ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** スポットライト利用時に、ちょっとした物音やあいづちではすぐにフォーカスされないように、フォーカスを遅延させる機能を追加しました。 この機能によりサーバーからクライアントへのパケット流量を減らすことができるようになりました。 - [ADD] アンフォーカス時にフォーカスを遅延させるかどうかを指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_delayed_focus` を追加しました - デフォルトは ``true`` - [ADD] アンフォーカス時にフォーカスを遅延させる時間を指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_delayed_focus_interval` を追加しました - デフォルトは ``2000 ms`` スポットライト機能: フォーカスなしの音声配信 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** スポットライト利用時に、他の人にフォーカスが移った場合でも音声を配信し続ける機能を追加しました。 この機能によりスポットライトの数が少ない場合でも、他の人がフォーカスされたことにより音声が送られなくなる、といったことがなくなりました。 - [ADD] フォーカスなしでも音声を配信するかどうかを指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_unfocus_audio` を追加しました - デフォルトは ``true`` - [ADD] フォーカスなしでも音声を配信する上限レートを指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_unfocus_audio_rate_limit` を追加しました - デフォルトは ``2`` - 単位は ``1 音声ストリーム = 50 packets / s`` です スポットライト機能: 自動アンフォーカス機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** スポットライト利用時に、一定時間音声が配信されていない場合はアンフォーカスする機能を追加しました。 この機能によりサーバーからクライアントへのパケット流量を減らすことができるようになりました。 - [ADD] 音がない場合に自動でアンフォーカスするかどうかを指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_auto_unfocus` を追加しました - デフォルトは ``true`` - [ADD] 自動でアンフォーカスする無音時間を指定できるように、 ``sora.conf`` に :ref:`sora_conf-default_spotlight_auto_unfocus_interval` を追加しました - デフォルトは ``10 s`` - 1 ms 以上、30 s 以下 - API でフォーカスが固定されている場合は自動アンフォーカスの対象外になります DataChannel 機能: シグナリングの WebSocket から DataChannel への切り替え機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** .. note:: DataChannel は TURN を利用するため UDP が通らない場合でも問題なく繋がります。 .. important:: DataChannel 機能を利用する場合は Sora JavaScript SDK 2021.1 以降が必要になります シグナリングやシグナリング通知、プッシュ通知などで利用している WebSocket から DataChannel へ切り替えます。 **ただし WebSocket は切断判定に利用するため、Sora から切断することはありません** 。 - [ADD] ``sora.conf`` に :ref:`sora_conf-default_data_channel_signaling` を追加しました - デフォルトは ``false`` です - [ADD] シグナリング ``"type": "connect"`` で ``data_channel_signaling: boolean`` を指定できるようにしました - デフォルトは ``sora.conf`` の :ref:`sora_conf-default_data_channel_signaling` に設定された値です - [ADD] 認証成功時の払い出しで ``data_channel_signaling: boolean`` を指定できるようにしました - デフォルトは ``sora.conf`` の :ref:`sora_conf-default_data_channel_signaling` に設定された値です - ``"type": "connect"`` 時に、指定された ``data_channel_signaling`` を上書きできます - [ADD] シグナリング ``"type": "offer"`` 時に ``data_channel_signaling: boolean`` を払い出すようにしました - この払い出しは data_channel_signaling が true の時のみ有効です - [ADD] WebSocket から DataChannel へ切り替わった場合は ``"type": "switched"`` が WebSocket 経由で送られるようにしました - ``"type": "switched"`` を送ったタイミングからWebSocket 経由の ``"type": "ping"`` の間隔が 5 秒から 30 秒へ変更されます - ``"type": "switched"`` を送ったタイミングからWebSocket 経由の ``"type": "pong"`` を確認しなくなります 以下の機能が DataChannel に切り替わります。 - シグナリング - DataChannel の ``label`` は ``signaling`` です - 以下が利用できるメッセージタイプです - ``"type": "re-offer"`` - ``"type": "re-answer"`` - ``"type": "disconnect"`` - シグナリング通知 - DataChannel の ``label`` は ``notify`` です - 以下が利用できるメッセージタイプです - ``"type": "notify"`` - プッシュ通知 - DataChannel の ``label`` は ``push`` です - 以下が利用できるメッセージタイプです - ``"type": "push"`` - E2EE - DataChannel の ``label`` は ``e2ee`` です - 統計情報 - DataChannel の ``label`` は ``stats`` です - 以下が利用できるメッセージタイプです - ``"type": "req-stats"`` - ``"type": "stats"`` DataChannel 機能: WebSocket の切断を無視する機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** .. important:: WebSocket の切断を切断判定に利用しない場合、 DataChannel におけるエンドポイント障害検出が切断の判断に利用されます。 この判断は ``sora.conf`` の ``dcsctp_association_max_retrans`` の値に依存します。 - [ADD] ``sora.conf`` に :ref:`sora_conf-default_ignore_disconnect_websocket` を追加しました - デフォルトは ``false`` です - この値を ``true`` にした場合、 DataChannel 経由でのシグナリング有効時に WebSocket を切断しても、Sora はクライアントの切断と見なさずに接続が継続します - [ADD] ``"type": "connect"`` 時に ``ignore_disconnect_websocket: boolean`` を指定できるようにしました - デフォルトは ``sora.conf`` に設定された値です - この値を ``true`` にした場合、 DataChannel 経由でのシグナリング有効時に WebSocket を切断しても、Sora はクライアントの切断と見なさずに接続が継続します - [ADD] 認証成功時の払い出しに ``ignore_disconnect_websocket: boolean`` を指定できるようにしました - デフォルトは ``sora.conf`` に設定された値です - ``"type": "connect"`` 時に、指定された ``ignore_disconnect_websocket`` を上書きできます - この値を ``true`` にした場合、 DataChannel 経由でのシグナリング有効時に WebSocket を切断しても、Sora はクライアントの切断と見なさずに接続が継続します - [ADD] ``"type": "offer"`` 時に ``data_channel_signaling`` が ``true`` の場合 ``ignore_disconnect_websocket: boolean`` を払い出すようにしました DataChannel 機能: メッセージの圧縮機能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **実験的機能** DataChannel で送受信するメッセージを圧縮して送受信できる機能です。 ``"type": "offer"`` 時に送られてくる ``data_channels: [{"label": "signaling", "compress": true}, ...]`` のように compress が true になっている場合は圧縮して送る必要があります。 - [ADD] ``"type": "offer"`` 時に DataChannel の情報を送るようにしました - ``data_channels: [{"label": "