リリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2021.1.4

リリース

2021-10-29

対応 Chrome

M95 以降

対応 Firefox

93 以降

対応 Safari

15.1 以降

対応 Edge

95 以降

変更履歴

  • [FIX] ネットワークが不安定な場合に録画が失敗する問題を修正しました

  • [FIX] Safari を利用した場合に特定条件で復号が失敗する問題を修正しました

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.destroyeddisconnect_api_reason として含まれるようになりました

    • disconnect_reason と同じ名前のものが入ります

  • [ADD] "type": "disconnect"reason を指定した場合に、指定した reason が、イベントウェブフック connection.destroyedtype_disconnect_reason として含まれるようになりました

  • [ADD] イベントウェブフック connection.*data"created_time": "connection.created 時の UNIX 時刻" を追加しました

  • [ADD] sora.conf にスポットライトでフォーカスされた後、一定時間追い出されなくなる default_spotlight_focus_min_interval を追加しました

    • デフォルトは 2000 ms です

  • [FIX] スポットライト機能で複数人が音を出し続けていると頻繁にフォーカスが入れ替わる問題を修正しました

  • [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 の不要なコメントを削除しました

2021.1

リリース

2021-06-23

対応 Chrome

M91 以降

対応 Firefox

89 以降

対応 Safari

14.1 以降

対応 Edge

91 以降

廃止情報

role の upstream と downstream を廃止

roleupstreamdownstream を廃止しました。

詳細は role の upstream と downstream を廃止 をご確認ください。

allow_client_id_assignment 設定を廃止

接続時や認証成功時に、常に client_id を指定できるようになり、 sora.confallow_client_id_assignment を廃止しました。

詳細は client_id を指定する設定の廃止 をご確認ください。

旧サイマルキャスト API を廃止

Sora_20180820.ChangeSimulcastQuality API を廃止しました。

詳細は 旧サイマルキャスト画質変更 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 へ対応しました

  • [ADD] シグナリング "type": "offer" 時に配信で有効になっている audio または videomid を含めるようにしました

    • 例: "type": "offer", "mid": {"audio": "audio_lFaJYL", "video": "video_lMjsoq"}

  • [ADD] "type": "udpate" の代わりに "type": "re-offer" を送れるように、 sora.confuse_re_offer を追加しました

    • デフォルトは false です

    • この設定は 2021 年 12 月リリースの Sora にてデフォルト true に変更されます

    • この設定は 2022 年 6 月リリースの Sora にて廃止され、常に "type": "re-offer" が送られるようになります

  • [ADD] シグナリング通知メタデータの利用時に、 metadata_list の代わりに data を送れるように、 sora.confunuse_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] デフォルトの r0maxFramerate1.0 から 5.0 に変更しました

スポットライト機能: rid 指定

実験的機能

スポットライト利用時にフォーカス、アンフォーカスそれぞれで受信する映像を接続毎に指定できるようになりました。 これによりモバイル端末や回線が不安定な場合は映像を一切受信しないなどの設定ができます。

  • [ADD] アンフォーカス時に受信する rid を指定できるように、 sora.confdefault_spotlight_unfocus_rid を追加しました

    • デフォルトは r0

    • none, r0, r1, r2 を指定可能

  • [ADD] フォーカス時に受信する rid を指定できるように、 sora.confdefault_spotlight_focus_rid を追加しました

    • デフォルトは r1

    • none, r0, r1, r2 を指定可能

  • [ADD] アンフォーカス時に受信する rid を指定できるように、シグナリング "type": "connect"spotlight_unfocus_rid を追加しました

  • [ADD] フォーカス時に受信する rid を指定できるように、シグナリング "type": "connect"spotlight_focus_rid を追加しました

  • [ADD] アンフォーカス時に受信する rid を指定できるように、認証成功時の払い出しに、 spotlight_unfocus_rid を追加しました

    • デフォルトは sora.confdefault_spotlight_unfocus_rid の値が採用されます

    • "type": "connect" 時に、指定された spotlight_unfocus_rid を上書きできます

    • none, r0, r1, r2 を指定可能

  • [ADD] フォーカス時に受信する rid を指定できるように、認証成功時の払い出しに spotlight_focus_rid を追加しました

    • デフォルトは sora.confdefault_spotlight_focus_rid の値が採用されます

    • "type": "connect" 時に、指定された spotlight_focus_rid を上書きできます

    • none, r0, r1, r2 を指定可能

スポットライト機能: 遅延フォーカス

実験的機能

スポットライト利用時に、ちょっとした物音やあいづちではすぐにフォーカスされないように、フォーカスを遅延させる機能を追加しました。 この機能によりサーバーからクライアントへのパケット流量を減らすことができるようになりました。

  • [ADD] アンフォーカス時にフォーカスを遅延させるかどうかを指定できるように、 sora.confdefault_spotlight_delayed_focus を追加しました

    • デフォルトは true

  • [ADD] アンフォーカス時にフォーカスを遅延させる時間を指定できるように、 sora.confdefault_spotlight_delayed_focus_interval を追加しました

    • デフォルトは 2000 ms

スポットライト機能: フォーカスなしの音声配信

実験的機能

スポットライト利用時に、他の人にフォーカスが移った場合でも音声を配信し続ける機能を追加しました。 この機能によりスポットライトの数が少ない場合でも、他の人がフォーカスされたことにより音声が送られなくなる、といった事がなくなりました。

  • [ADD] フォーカスなしでも音声を配信するかどうかを指定できるように、 sora.confdefault_spotlight_unfocus_audio を追加しました

    • デフォルトは true

  • [ADD] フォーカスなしでも音声を配信する上限レートを指定できるように、 sora.confdefault_spotlight_unfocus_audio_rate_limit を追加しました

    • デフォルトは 2

    • 単位は 1 音声ストリーム = 50 packets / s です

スポットライト機能: 自動アンフォーカス機能

実験的機能

スポットライト利用時に、一定時間音声が配信されていない場合はアンフォーカスする機能を追加しました。 この機能によりサーバーからクライアントへのパケット流量を減らすことができるようになりました。

  • [ADD] 音がない場合に自動でアンフォーカスするかどうかを指定できるように、 sora.confdefault_spotlight_auto_unfocus を追加しました

    • デフォルトは true

  • [ADD] 自動でアンフォーカスする無音時間を指定できるように、 sora.confdefault_spotlight_auto_unfocus_interval を追加しました

    • デフォルトは 10 s

    • 1 ms 以上、30 s 以下

    • API でフォーカスが固定されている場合は自動アンフォーカスの対象外になります

DataChannel 機能: シグナリングの WebSocket から DataChannel への切り替え機能

実験的機能

注釈

DataChannel は TURN を利用するため UDP が通らない場合でも問題なく繋がります。

重要

DataChannel 機能を利用する場合は Sora JavaScript SDK 2021.1 以降が必要になります

シグナリングやシグナリング通知、プッシュ通知などで利用している WebSocket から DataChannel へ切り替えます。

ただし WebSocket は切断判定に利用するため、Sora から切断することはありません

  • [ADD] sora.confdefault_data_channel_signaling を追加しました

    • デフォルトは false です

  • [ADD] シグナリング "type": "connect"data_channel_signaling: boolean を指定できるようにしました

  • [ADD] 認証成功時の払い出しで data_channel_signaling: boolean を指定できるようにしました

    • デフォルトは sora.confdefault_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 の labelsignaling です

    • 以下が利用できるメッセージタイプです

      • "type": "re-offer"

      • "type": "re-answer"

      • "type": "disconnect"

  • シグナリング通知

    • DataChannel の labelnotify です

    • 以下が利用できるメッセージタイプです

      • "type": "notify"

  • プッシュ通知

    • DataChannel の labelpush です

    • 以下が利用できるメッセージタイプです

      • "type": "push"

  • E2EE

    • DataChannel の labele2ee です

  • 統計情報

    • DataChannel の labelstats です

    • 以下が利用できるメッセージタイプです

      • "type": "req-stats"

      • "type": "stats"

DataChannel 機能: WebSocket の切断を無視する機能

実験的機能

重要

WebSocket の切断を切断判定に利用しない場合、 DataChannel におけるエンドポイント障害検出が切断の判断に利用されます。 この判断は sora.confdcsctp_association_max_retrans の値に依存します。

  • [ADD] sora.confdefault_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_signalingtrue の場合 ignore_disconnect_websocket: boolean を払い出すようにしました

DataChannel 機能: メッセージの圧縮機能

実験的機能

DataChannel で送受信するメッセージを圧縮して送受信できる機能です。

"type": "offer" 時に送られてくる data_channels: [{"label": "signaling", "compress": true}, ...] のように compress が true になっている場合は圧縮して送る必要があります。

  • [ADD] "type": "offer" 時に DataChannel の情報を送るようにしました

    • data_channels: [{"label": "<label>", "compress": boolean}, ...] の形式で送られてきます

    • DataChannel を有効にしていない場合は data_channels キーは含まれません

    • compresstrue の場合、 DataChannel 経由でのメッセージを zlib/deflate で圧縮/展開する必要があります

DataChannel 機能: クライアント統計情報の要求

実験的機能

DataChannel 経由でのシグナリングが有効になると、統計情報を "type": "pong" に入れて返すのではなく、 サーバーから "type": "req-stats" が送られてきたら、 "type": "stats", "reports": [...] で送るという仕組みに切り替わります。

  • [ADD] DataChannel 経由でのシグナリング利用時に labelstats から "type": "req-stats" が送られてきます

  • [ADD] sora.confdata_channel_stats_timer_interval を追加しました

    • デフォルトは 5 s です

    • 最小は 5 s で最大は 300 s です

DataChannel 機能: サーバー統計情報

実験的機能

GetStats* 系 API に DataChannel 関連の Sora 統計情報を追加しました。

  • [ADD] total_dropped_received_data_channel を追加

  • [ADD] total_dropped_sent_data_channel を追加

  • [ADD] 項目に data_channel を追加しました

    • label 単位の統計情報が確認できます

    • total_received_data_channel_message

      • label 単位で受信したメッセージ数の合計

    • total_received_data_channel_message_byte_size

      • label 単位で受信したメッセージのバイト数の合計

    • total_sent_data_channel_message

      • label 単位で送信したメッセージの数の合計

    • total_sent_data_channel_message_byte_size

      • label 単位で送信したメッセージのバイト数の合計

  • [ADD] 項目に sctp を追加しました

    • total_received_invalid_sctp

    • total_received_sctp

    • total_received_sctp_byte_size

    • total_received_sctp_chunk_abort

    • total_received_sctp_chunk_asconf

    • total_received_sctp_chunk_asconf_ack

    • total_received_sctp_chunk_auth

    • total_received_sctp_chunk_cookie_ack

    • total_received_sctp_chunk_cookie_echo

    • total_received_sctp_chunk_cwr

    • total_received_sctp_chunk_data

    • total_received_sctp_chunk_ecne

    • total_received_sctp_chunk_error

    • total_received_sctp_chunk_forward_tsn

    • total_received_sctp_chunk_heartbeat

    • total_received_sctp_chunk_heartbeat_ack

    • total_received_sctp_chunk_i_data

    • total_received_sctp_chunk_i_forward_tsn

    • total_received_sctp_chunk_init

    • total_received_sctp_chunk_init_ack

    • total_received_sctp_chunk_pad

    • total_received_sctp_chunk_reconfig

    • total_received_sctp_chunk_sack

    • total_received_sctp_chunk_shutdown

    • total_received_sctp_chunk_shutdown_ack

    • total_received_sctp_chunk_shutdown_complete

    • total_received_sctp_chunk_unknown

    • total_received_unknown_sctp

    • total_sent_sctp

    • total_sent_sctp_byte_size

    • total_sent_sctp_chunk_abort

    • total_sent_sctp_chunk_asconf

    • total_sent_sctp_chunk_asconf_ack

    • total_sent_sctp_chunk_auth

    • total_sent_sctp_chunk_cookie_ack

    • total_sent_sctp_chunk_cookie_echo

    • total_sent_sctp_chunk_cwr

    • total_sent_sctp_chunk_data

    • total_sent_sctp_chunk_ecne

    • total_sent_sctp_chunk_error

    • total_sent_sctp_chunk_forward_tsn

    • total_sent_sctp_chunk_heartbeat

    • total_sent_sctp_chunk_heartbeat_ack

    • total_sent_sctp_chunk_i_data

    • total_sent_sctp_chunk_i_forward_tsn

    • total_sent_sctp_chunk_init

    • total_sent_sctp_chunk_init_ack

    • total_sent_sctp_chunk_pad

    • total_sent_sctp_chunk_reconfig

    • total_sent_sctp_chunk_sack

    • total_sent_sctp_chunk_shutdown

    • total_sent_sctp_chunk_shutdown_ack

    • total_sent_sctp_chunk_shutdown_complete

    • total_sent_sctp_chunk_unknown

DataChannel 機能: 設定

実験的機能

詳細は DataChannel 機能 をご確認ください。

  • [ADD] sora.confdcsctp_association_max_retrans を追加しました

    • DataChannel で利用している SCTP プロトコルのエンドポイント障害検出の最大再送値です

    • デフォルトは 10 です

    • 最小は 1 で最大は 128 です

  • [ADD] sora.confdcsctp_heartbeat_interval を追加しました

    • DataChannel で利用している SCTP プロトコルのハートビートを送る間隔です

    • デフォルトは 30 s です

    • 最小は 0 s で最大は 120 s です

    • 0 s に設定した場合は SCTP レイヤーでのハートビートを送りません

  • [ADD] sora.confdata_channel_packet_loss_simulator_incoming を追加しました

    • デフォルトは 0 で無効です

    • Sora が受信する DataChannel のメッセージを、指定した割合で破棄します

  • [ADD] sora.confdata_channel_packet_loss_simulator_outgoing を追加しました

    • デフォルトは 0 で無効です

    • Sora が送信する DataChannel のメッセージを、指定した割合で破棄します

RTP ヘッダー拡張機能

実験的機能

RTP ヘッダー拡張の利用を指定できるようにしました。

  • [ADD] sora.conf に RTP ヘッダー拡張 urn:3gpp:video-orientation を有効にする設定 rtp_hdrext_video_orientation を追加しました

    • デフォルトは false

  • [ADD] sora.conf に RTP ヘッダー拡張 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type を有効にする設定 rtp_hdrext_video_content_type を追加しました

    • デフォルトは false

  • [ADD] sora.conf に RTP ヘッダー拡張 http://www.webrtc.org/experiments/rtp-hdrext/video-timing を有効にする設定 rtp_hdrext_video_timing を追加しました

    • デフォルトは false

  • [ADD] sora.conf に RTP ヘッダー拡張 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay を有効にする設定 rtp_hdrext_playout_delay を追加しました

    • デフォルトは false

  • [ADD] sora.conf に RTP ヘッダー拡張 http://www.webrtc.org/experiments/rtp-hdrext/color-space を有効にする設定 rtp_hdrext_color_space を追加しました

    • デフォルトは false

  • [ADD] sora.conf に RTP ヘッダー拡張 urn:ietf:params:rtp-hdrext:sdes:mid を有効にする設定 rtp_hdrext_sdes_mid を追加しました

    • デフォルトは false

2020.3.5

リリース

2021-03-12

対応 Chrome

M89 以降

対応 Firefox

86 以降

対応 Safari

14.0 以降

対応 Edge

89 以降

変更履歴

  • [UPDATE] デモ機能のバージョンを 2020.6.2 にアップデートしました

    • サイマルキャストの利用可能判定処理を改善した Sora JavaScript SDK 2020.6.2 にアップデートしています

  • [FIX] ネットワークが不安定な場合に、リップシンクが正常に動作しない問題を暫定的に修正しました

    • 正式な対応は今後リリース予定です

  • [FIX] サイマルキャスト利用時に複数の SSRC が r0 と判断されてしまう問題を修正しました

  • [FIX] サイマルキャスト利用時に複数の SSRC に対する rid が重複した時に WARNING ログを出力するようにしました

  • [FIX] サイマルキャスト利用時に、ストリームの切り替わりでブロックノイズが出る問題を修正しました

  • [FIX] 映像の切り替えが発生した際に映像が乱れる問題を修正しました

  • [FIX] VP8 サイマルキャストで Temporal Scalability が存在しない場合に、視聴側が切断される問題を修正しました

  • [FIX] 実験的機能である opus_params が正常に利用できなくなっていた問題を修正しました

2020.3.3

リリース

2021-02-03

対応 Chrome

M88 以降

対応 Firefox

85 以降

対応 Safari

14.0 以降

対応 Edge

88 以降

  • [FIX] ライセンスファイルの接続上限数の半分を超えた時点で、接続数の超過エラーを示す EXCEED-MAX-CONNECTIONS が発生する問題を修正しました

    • バージョン 2020.3 / 2020.3.1 / 2020.3.2 がこの問題の影響を受けます

2020.3.2

リリース

2021-01-19

対応 Chrome

M87 以降

対応 Firefox

84 以降

対応 Safari

14.0 以降

対応 Edge

87 以降

変更履歴

  • [FIX] マルチストリーム機能利用時に、短い間に複数の接続・切断が発生した場合に、Sora から "type": "update" が連続で送られてしまう問題を修正しました

  • [FIX] スポットライト機能のシグナリング通知 spotlight.focusedspotlight.unfocused に新しく spotlight_number を追加しました

    • この追加により ChangeSpotlightNumber API を実行した後に参加者が現時点でのスポットライト数を確認することができない問題を解決しています

2020.3.1

リリース

2020-12-23

対応 Chrome

M87 以降

対応 Firefox

84 以降

対応 Safari

14.0 以降

対応 Edge

87 以降

変更履歴

  • [FIX] スポットライト機能利用時に音声のみで接続できない問題を修正しました

  • [FIX] サイマルキャスト利用時に映像を無効にしている場合に simulcast_rid を指定してもデフォルトの値が採用されてしまう問題を修正しました

  • [FIX] サイマルキャスト機能やスポットライト機能利用時に RequestRtpStream API を利用すると、新規接続の rid が固定されてしまう問題を修正しました

  • [FIX] サイマルキャスト機能やスポットライト機能利用時に ResetRtpStream API を利用すると、新規接続の rid が固定されてしまう問題を修正しました

  • [FIX] ListPauseRtpStreams API の戻り値を recv_connection_idsend_connection_id に修正しました

2020.3

リリース

2020-12-16

対応 Chrome

M87 以降

対応 Firefox

83 以降

対応 Safari

14.0 以降

対応 Edge

87 以降

互換なしの変更情報

変更点の不明点についてはサポートまでお問い合わせください

移行についての詳細は 2020.2.x から 2020.3.x をご確認ください。

  • bin/sora start を廃止しました、今後は bin/sora daemon をお使いください

    • systemd を利用していて bin/sora foreground を利用されている方に影響はありません

  • 録画フォルダ構成を変更しました

    • archive/ 以下にすべて生成するのではなくレコーディング ID 単位でフォルダを生成するようになりました

  • レコーディング ID を明示的にしました

    • StartRecording API の戻り値の idrecording_id に変更しました

    • recording.report イベントウェブフックの idrecording_id に変更しました

    • archive.available イベントウェブフックの data の中に recording_id を追加しました

  • sora.conf にて時間を指定する設定項目で単位指定を必須にしました

    • 単位が必要な値を指定する場合は 30 s2000 ms といった単位を指定する必要があります

    • 数値と単位の間にはスペースを入れてください

    • 例: webhook_response_timeout = 5 s

    • 例: default_forwarding_pli_interval = 30000 ms

    • 例: connection_created_wait_timeout = 30 s

  • サイマルキャスト機能の quality 指定を全て rid に変更しました

  • sora.confallow_client_id_assignment をデフォルト true に変更しました

  • sora.confallow_client_id_assignmenttrue にした際にクライアントが client_id を含めない場合、認証ウェブフックに client_id が含まれないよう変更しました

    • いままでは client_idnull が入っていました

  • sora.confspotlight_legacy をデフォルト false にしました

    • スポットライトレガシーを利用したい場合は sora.conf にて spotlight_legacy = true を設定してください

  • 実験的機能として提供していた ChangeSimulcastQuality API を非推奨にしました

    • RequestRtpStream API を利用してください

  • 実験的機能として提供していた RequestSpotlightQuality API を廃止しました

    • RequestRtpStream API を利用してください

  • 実験的機能として提供していた ResetSpotlightQuality API を廃止しました

    • ResetRtpStream API を利用してください

  • sora.confgeneric_nack_cache_size_msec を廃止しました

ハイライト

  • Red Hat Enterprise Linux 8 向けパッケージを追加しました

  • サイマルキャスト機能が正式版になりました

  • サイマルキャストのエンコーディング設定がカスタマイズ可能になりました

  • サイマルキャスト利用時の録画が可能になりました

  • サイマルキャスト利用時の転送が可能になりました

  • ウェブフックにベーシック認証機能を追加しました

  • 実験的機能として録画ファイル分割出力機能を追加しました

  • 実験的機能としてシグナリング通知メタデータ拡張機能を追加しました

  • 実験的機能として E2EE (End to End Encryption) 機能を追加しました

  • 実験的機能として認証ウェブフックログ機能を追加しました

変更履歴

Red Hat Enterprise Linux 8 対応

CentOS 8 のサポートが 2021 年 12 月に終了することが発表されました。 それにともない時雨堂では Red Hat Enterprise Linux 8 向けのパッケージを用意しました。

  • [ADD] Red Hat Enterprise Linux 8 向けパッケージを追加しました

サイマルキャスト機能

  • [CHANGE] quality の指定をすべて rid に変更しました

    • rid とはサイマルキャストのストリームそれぞれに付いている id です

    • rid は r0 / r1 / r2 があります

    • rid には優先度があり、数値が少ないほど優先されて配信されます

    • r0 は必ず配信されますが、回線が不安定になったりした場合は r2 -> r1 の順番で配信が停止していきます

  • [ADD] 実験的機能として rid をリクエストできる RequestRtpStream API を追加しました

  • [ADD] 実験的機能として rid をリセットできる ResetRtpStream API を追加しました

  • [FIX] 視聴者が受信するストリームの rid 変更後に配信側を再接続した場合に状態が不整合になる問題を修正しました

    • マルチストリームが無効な状態でのみ発生していた問題です

サイマルキャストエンコーディング設定のカスタマイズ機能

サイマルキャスト録画機能

  • [ADD] サイマルキャストで録画機能が利用可能になりました

    • 配信されている 優先度が一番低い映像 を録画します

      • r0 / r1 / r2 の 3 本が配信されていれば r2 が録画されます

      • 優先度が低い映像については 映像の優先度 をご確認ください

サイマルキャスト転送機能

  • [ADD] サイマルキャストで転送機能が利用可能になりました

  • [ADD] sora.confforwarding_simulcast を追加しました

    • allsingle が指定可能です

      • all は配信されている全てのストリームが転送されます

      • single は配信されている優先度が低いストリームが転送されます

スポットライト機能

  • [FIX] 認証ウェブフック通知に spotlight / spotlight_number を追加しました

    • sora.conf にて spotlight_legacy = false の場合に含まれます

スポットライトのサイマルキャストエンコーディング設定カスタマイズ機能

ウェブフックベーシック認証機能

ウェブフックを通知する際にベーシック認証を利用できるようになりました。

  • [ADD] sora.conf にウェブフックのベーシック認証を有効にする webhook_basic_authn を追加しました

    • デフォルトは false です

  • [ADD] sora.conf にウェブフックのベーシック認証に利用するユーザ ID を指定する webhook_basic_authn_user_id を追加しました

  • [ADD] sora.conf にウェブフックのベーシック認証に利用するパスワードを指定する webhook_basic_authn_password を追加しました

ウェブフックを安全でない通信でも利用できる機能

ウェブフックを HTTPS で利用する際に証明書のチェックを行わなくできます。自己署名証明書などが利用できるようになりました。

  • [ADD] sora.conf にウェブフックの安全でない通信を許可する webhook_insecure を追加しました

    • デフォルトは false です

認証ウェブフック機能

  • [CHANGE] sora.confallow_client_id_assignmenttrue にした際、クライアントが client_id を指定しない場合、認証ウェブフックに client_id を含まないよう変更しました

    • いままでは client_idnull が入っていました

イベントウェブフック機能

  • [CHANGE] イベントウェブフック connection.*channel_upstream_connections を非推奨にしました

    • 2021 年 6 月廃止予定です

  • [CHANGE] イベントウェブフック connection.*channel_downstream_connections を非推奨にしました

    • 2021 年 6 月廃止予定です

  • [ADD] イベントウェブフック connection.*simulcast: booleanspotlight: boolean の項目を追加しました

    • spotlight_legacy は非対応です

  • [ADD] 実験的機能としてイベントウェブフック connection.*channel_sendrecv_connections を追加しました

    • 送受信している接続数

  • [ADD] 実験的機能としてイベントウェブフック connection.*channel_sendonly_connections を追加しました

    • 送信のみしている接続数

  • [ADD] 実験的機能としてイベントウェブフック connection.*channel_recvonly_connections を追加しました

    • 受信のみしている接続数

  • [FIX] WebRTC が確立していなくてもイベントウェブフック connection.updated が発火してしまう問題を修正

    • sora.confconnection_created_timeout を 60 秒以上にしており、パケロスがひどい場合のみ発生していました

  • [FIX] イベントウェブフック connection.destroyedreasonDisconnect API で指定した値以外が入ってくるのを修正しました

録画機能

  • [FIX] 録画機能利用時に WebM ヘッダとイベントウェブフック通知に含まれる解像度が最大解像度にならない問題を修正しました

  • [FIX] 録画メタデータファイルのタイムスタンプが WebM の最初および最後のフレームの時刻とずれていた問題を修正しました

録画フォルダ構成とファイル名の変更

  • [CHANGE] レコーディング ID 単位でディレクトリを生成しその下に録画ファイル、録画メタデータファイル、録画レポートファイルを生成するように変更しました

    • レコーディング ID とは StartRecording API の戻り値に入っている recording_id です

  • [CHANGE] 録画ファイルの名前を archive-<connection_id>.webm に変更しました

  • [CHANGE] 録画メタデータファイルの名前を archive-<connection_id>.json に変更しました

  • [CHANGE] 録画レポートファイルの名前を report-<recording_id>.json に変更しました

録画ファイル分割出力機能

実験的機能

  • [ADD] StartRecording に分割録画間隔を指定する split_duration を追加しました

    • 指定は秒で行い、最大 86400 秒 (24 時間) まで指定可能です

      • 3600 秒を指定する例

      • {"split_duration": 3600}

    • split_duration を指定すると今までの録画終了時に出力されるファイルとは別に指定した時間間隔で録画ファイルを出力します

    • ファイルは archive-<Connection-ID>_0001.webm として出力されます

    • メタデータファイルは archive-<Connection-ID>_0001.json として出力されます

    • 連番は 0001 開始で 9999 までいったら 10000 となりそのあとは 10001 と続きます

  • [ADD] StartRecording に分割録画のみを行う split_only を追加しました

    • この指定をする場合はかならず split_duration を指定し、 expire_time0 に指定する必要があります

      • {"split_duration": 180, "split_only": true, "expire_time": 0}

    • この指定を有効にした場合はイベントウェブフックの recording.report を通知しません

    • この指定を有効にした場合は録画終了時にファイル出力を行いません

  • [ADD] 録画ファイル分割出力用の archive.split イベントウェブフックを追加しました

    • このウェブフックは分割録画がファイルが出力された際に通知します

    • 詳細は archive.split をご確認ください

  • [ADD] 録画ファイル分割出力用の archive.end イベントウェブフックを追加しました

    • このウェブフックは分割録画が終了した際に通知します

    • 詳細は archive.end をご確認ください

レコーディング ID の明示化

  • [CHANGE] StartRecording API の戻り値の idrecording_id に変更しました

  • [CHANGE] recording.report イベントウェブフックの data の中の id を削除しました

  • [CHANGE] recording.report イベントウェブフックの data の中に recording_id を追加しました

  • [CHANGE] archive.available イベントウェブフックの data の中の id を削除しました

  • [ADD] archive.available イベントウェブフックの data の中に recording_id を追加しました

  • [ADD] archive.failed イベントウェブフックの data の中に recording_id を追加しました

デモ機能

  • [UPDATE] 組み込みのデモ機能のバージョンを 2020.4.0 にアップデートしました

sora.conf 設定

  • [CHANGE] sora.confallow_client_id_assignment をデフォルト true に変更しました

  • [CHANGE] sora.confgeneric_nack_cache_size_msec を廃止しました

    • 内部的な設定のため非公開設定としました

  • [CHANGE] sora.confspotlight_legacy のデフォルトを false にしました

    • スポットライトレガシーを利用したい場合は sora.conf にて spotlight_legacy = true を設定してください

  • [CHANGE] sora.conf から turn_fqdn の記載を削除しました

    • 設定が非推奨のため削除しました。設定自体は可能です。

  • [CHANGE] 時間を指定する設定項目の単位を明示的に指定するようにしました

    • 単位が必要な値を指定する場合は 30 s2000 ms といった単位を指定する必要があります

    • 数値と単位の間にはスペースを入れてください

    • 単位指定が必要になった設定項目

      • webhook_response_timeout

      • connection_created_wait_timeout

      • default_forwarding_pli_interval

    • 詳細は 単位指定 をご確認ください

DTLS 再送制御

  • [UPDATE] DTLS パケットをしつこく再送するようにしました

    • hello ハンドシェイクはハンドシェイクパケットとタイマーをトリガーにしてしつこく再送します

    • cipher ハンドシェイクはハンドシェイクパケットをトリガーにしつこく再送します

スポットライトレガシー機能

  • [FIX] スポットライトレガシー利用時に音声のみを指定した場合に受信も音声のみになってしまう問題を修正

E2EE (End to End Encryption) 機能

実験的機能

  • [ADD] シグナリングに E2EE 用のメッセージングルーティング機能を追加しました

  • [ADD] 認証ウェブフック時に通知する項目として e2ee を追加しました

    • 型は boolean となります

  • [ADD] sora.conf に E2EE を利用可能にするかどうかの e2ee = true を追加しました

シグナリング通知メタデータ

  • [ADD] 接続時に送られてきた signaling_notify_metadatametadata 以外に authn_metadata としてシグナリング通知時に含めるようにしました

  • [ADD] 認証成功時に払い出した signaling_notify_metadatametadata 以外に authz_metadata としてシグナリング通知時に含めるようにしました

  • [ADD] 接続時に送る signaling_notify_metadata の最大サイズを指定できる sora.confsignaling_notify_authn_metadata_max_size を追加しました

    • デフォルトは 64512 で、 64 KiB バイトです

    • 0 ~ 1048576 (1 MiB) の範囲で指定可能です

シグナリング通知メタデータ拡張機能

実験的機能

  • [ADD] sora.conf にシグナリング通知メタデータ拡張を有効にする signaling_notify_metadata_ext を追加しました

    • デフォルトは false です

    • この設定を有効にした場合、接続時に送った signaling_notify_metadataauthn_metadata となります

      • metadata は初期値 {} となります

    • この設定を有効にした場合、認証成功時に払い出した signaling_notify_metadataauthz_metadata となります

      • metadata は初期値 {} となります

  • [ADD] 指定したチャネルのシグナリング通知メタデータ一覧を取得する ListSignalingNotifyMetadata API を追加しました

  • [ADD] 指定した接続の metadata を取得する GetSignalingNotifyMetadata API を追加しました

  • [ADD] 指定した接続の metadata を追加する PutSignalingNotifyMetadata API を追加しました

  • [ADD] 指定した接続の metadata を削除する DeleteSignalingNotifyMetadata API を追加しました

  • [ADD] 指定した接続の metadata のアイテムを追加する PutSignalingNotifyMetadataItem API を追加しました

  • [ADD] 指定した接続の metadata のアイテムを削除する DeleteSignalingNotifyMetadataItem API を追加しました

認証ウェブフックログ機能

実験的機能

認証ウェブフックのログを出力するように変更しました。リクエストとレスポンスを一つの JSON としてログに書き込みます。

  • [ADD] 認証イベントウェブフックのリクエストとレスポンスを log/auth_webhook.log として出力するようにしました

  • [ADD] sora.conf に認証イベントフェブフックのログ出力するかどうかの auth_webhook_log を追加しました

    • デフォルトで有効です

認証成功時での H.264 プロファイルレベルの指定機能

実験的機能

H.264 利用時にプロファイル ID を認証成功時の払い出しに指定可能にしました。

  • [ADD] 認証払い出し時の h264_profile_level_id を指定可能にしました

    • 文字列で指定することで SDP の払い出しが可能になります

    • この払い出しは sora.conf の設定を上書きします

廃止機能

  • [CHANGE] bin/sora start を廃止しました、今後は bin/sora daemon をお使いください

新規 API

新しく API を追加しました。既存 API のアップデート版となります。

実験的 API

実験的機能

  • [CHANGE] 実験的機能として提供している PauseRtpStream APIResumeRtpStream API のパラメータを変更しました

    • connection_idrecv_connection_id に変更しました

    • stream_idsend_connection_id に変更しました

  • [ADD] 実験的機能として ListChannels API を追加しました

    • すべてのチャネルリストが返ってきます

    • 詳しくは すべてのチャネル一覧を取得する をご確認ください

  • [ADD] 実験的機能として DisconnectChannelByRole API を追加しました

    • 指定したチャネルの指定したロールの接続を全て切断します

  • [ADD] 実験的機能として PushChannelByRole API を追加しました

    • 指定したチャネルの指定したロールの接続にプッシュ通知を送ります

  • [FIX] 実験的機能として提供している ChangeUpstreamVideoBitRate API の利用時に新規接続が走るとビットレートが戻ってしまう問題を修正しました

非推奨 API

  • [CHANGE] 切断用の DisconnectChannelUpstream API を非推奨 API としました

    • 実験的機能として提供している DisconnectChannelByRole API を利用してください

    • 2021 年 6 月廃止します

  • [CHANGE] 切断用の DisconnectChannelDownstream API を非推奨 API としました

    • 実験的機能として提供している DisconnectChannelByRole API を利用してください

    • 2021 年 6 月廃止します

  • [CHANGE] プッシュ用の PushUpstream API を非推奨 API としました

    • 実験的機能として提供している PushChannelByRole API を利用してください

    • 2021 年 6 月廃止します

  • [CHANGE] プッシュ用の PushDownstream API を非推奨 API としました

    • 実験的機能として提供している PushChannelByRole API を利用してください

    • 2021 年 6 月廃止します

  • [CHANGE] 実験的機能として提供していたサイマルキャスト用の ChangeSimulcastQuality API を非推奨 API としました

    • 実験的機能として提供している RequestRtpStream API を利用してください

    • 2021 年 6 月廃止します

  • [CHANGE] 実験的機能として提供していたスポットライトレガシー用の CastAlwaysSpotlight API を非推奨 API としました

    • 2021 年 12 月廃止します

  • [CHANGE] 実験的機能として提供していたスポットライトレガシー用の CancelSpotlight API を非推奨 API としました

    • 2021 年 12 月廃止します

  • [CHANGE] 実験的機能として提供していたスポットライトレガシー用の CastSpotlight API を非推奨 API としました

    • 2021 年 12 月廃止します

  • [CHANGE] 実験的機能として提供していたスポットライトレガシー用の DowngradeSpotlightBitRate API を非推奨 API としました

    • 2021 年 12 月廃止します

  • [CHANGE] 実験的機能として提供していたスポットライトレガシー用の ResetSpotlightBitRate API を非推奨 API としました

    • 2021 年 12 月廃止します

廃止 API

  • [CHANGE] 実験的機能として提供していた RequestSpotlightQuality API を廃止しました

    • 実験的機能として提供している RequestRtpStream API を利用してください

  • [CHANGE] 実験的機能として提供していた ResetSpotlightQuality API を廃止しました

    • 実験的機能として提供している ResetRtpStream API を利用してください

© Copyright 2021, Shiguredo Inc Created using Sphinx 4.2.0