@Falco サイト設定/シリアライザー内で、voice_enabled と並んで、LiveKit が設定されているかどうかを公開チェックとして公開することは可能でしょうか?
現在、voice_enabled はクライアントに公開されていますが、サイトが LiveKit を提供できるかどうかを示す公開シグナルはありません。唯一の LiveKit 関連サイト属性である voice_livekit_per_room_available はルーム形式のチェックボックスにスコープが限定されているため、all_rooms ポリシー下では false を返し、「このサイトはそもそも LiveKit を使用しているのか」という質問に答えるために使用できません。
RoomSerializer#expected_transport はルームごとのケースをうまくカバーしていますが、これはまずルームを取得する必要があるため、voice_public_access がオフの場合、LiveKit が完全に設定されているサイトであっても空になります。
このような形は受け入れ可能でしょうか? 既存の状態から派生しており、認証情報やポリシーの詳細を公開せず、新しいエンドポイントは必要ありません。
これは plugins/voice/plugin.rb に、voice_livekit_per_room_available ブロックの後、Voice::DefaultRoomSeeder.ensure! 行の直前に追加されます:
# サイトが LiveKit を提供できるかどうかを示す、公開かつ認証情報なしのシグナル。
add_to_serializer(:site, :voice_livekit_available) do
Voice::Livekit.configured? && SiteSetting.voice_livekit_room_policy != "disabled"
end