diff --git a/CHANGES.md b/CHANGES.md index 2602ed97..e80ee489 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,8 +15,13 @@ - JetPack 5.1.1, 5.1.2 で動作を確認 - JetPack 5.1 では、互換性の問題で JetsonJpegDecoder がエラーになることを確認 - @enm10k +- [ADD] Forwarding Filter の項目に Version と Metadata を追加 + - Version と Metadata はオプション項目として追加し、値がない場合は項目を設定しない + - @torikizi - [FIX] DataChannel シグナリングが有効な場合、一部のシグナリングメッセージのコールバックが上がらないことがあるのを修正 - @melpon +- [FIX] Forwarding Filter の Action 項目は本来オプション項目だったが、 action は `std::optional` 型になっていなかったため修正 + - @torikizi ## 2023.17.0 (2023-12-25) diff --git a/include/sora/sora_signaling.h b/include/sora/sora_signaling.h index 0721887c..ac33d0db 100644 --- a/include/sora/sora_signaling.h +++ b/include/sora/sora_signaling.h @@ -108,13 +108,15 @@ struct SoraSignalingConfig { std::vector data_channels; struct ForwardingFilter { - std::string action; + boost::optional action; struct Rule { std::string field; std::string op; std::vector values; }; std::vector> rules; + boost::optional version; + boost::optional metadata; }; boost::optional forwarding_filter; diff --git a/src/sora_signaling.cpp b/src/sora_signaling.cpp index a60838f2..9069f8f6 100644 --- a/src/sora_signaling.cpp +++ b/src/sora_signaling.cpp @@ -448,7 +448,9 @@ void SoraSignaling::DoSendConnect(bool redirect) { if (config_.forwarding_filter) { boost::json::object obj; auto& f = *config_.forwarding_filter; - obj["action"] = f.action; + if (f.action) { + obj["action"] = *f.action; + } obj["rules"] = boost::json::array(); for (const auto& rules : f.rules) { boost::json::array ar; @@ -464,6 +466,12 @@ void SoraSignaling::DoSendConnect(bool redirect) { } obj["rules"].as_array().push_back(ar); } + if (f.version) { + obj["version"] = *f.version; + } + if (f.metadata) { + obj["metadata"] = *f.metadata; + } m["forwarding_filter"] = obj; }