転送フィルター

Sora Unity SDK の転送フィルター機能について説明します。

この機能を利用することで、音声や映像のフィルターをすることができます。

Sora 2024.2.0 以降の Sora での利用について

Sora 2024.2.0 からルールだけでなくフィルターそのものを複数設定できるようになりました。

これまでの ForwardingFilter は非推奨になり、新たに ForwardingFilters が追加されました。

今後は ForwardingFilters を使用して転送フィルターを設定してください。

以下は ForwardingFilters を前提とした説明を記載しています。

転送フィルターについて

転送フィルターは ForwardingFilters クラスを使用して設定することができます。

このクラスは ForwardingFilter のリストになっており、複数の転送フィルターを設定が可能になっています。

転送フィルターの仕様の詳細については Sora ドキュメント を参照してください。

また、複数の転送フィルターの仕様については Sora ドキュメント を参照してください。

Sora.cs で ForwardingFiltersForwardingFilter クラスは以下のように定義されています。

// 転送フィルターの設定を保持するクラス
public class ForwardingFilter
{
    public string? Action;
    public string? Name;
    public int? Priority;
    public class Rule
    {
        public string Field;
        public string Operator;
        public List<string> Values = new List<string>();
    }
    public List<List<Rule>> Rules = new List<List<Rule>>();
    public string? Version;
    public string? Metadata;
}
public class Config
{
    // ForwardingFilter 設定
    public ForwardingFilter ForwardingFilter;
    // ForwardingFilters 設定
    public List<ForwardingFilter> ForwardingFilters;
}

利用方法

転送フィルターの利用方法の例を以下に示します。

var config = new Sora.Config();
// ForwardingFilters プロパティにフィルタリストを設定
config.ForwardingFilters = new List<Sora.ForwardingFilter>
{
    // フィルタ1: 特定の client-id (carol) を持つデータを許可
    new Sora.ForwardingFilter
    {
        // 許可アクション
        Action = Sora.ActionAllow,
        // フィルタの名前
        Name = "client-id-carol-allow",
        // 優先度
        Priority = 0,
        // フィルタのルール
        Rules = new List<List<Sora.ForwardingFilter.Rule>>
        {
            new List<Sora.ForwardingFilter.Rule>
            {
                new Sora.ForwardingFilter.Rule
                {
                    // 許可対象の client-id リスト
                    Field = Sora.FieldClientId,
                    Operator = Sora.OperatorIsIn,
                    Values = new List<string> { "carol" }
                }
            }
        },
        // フィルタのバージョン
        Version = "a",
        // メタデータ(JSON形式)
        Metadata = "{\"spam\":\"egg\"}"
    },
    // フィルタ2: audio と video データをフィルタ
    new Sora.ForwardingFilter
    {
        // Action / Name / Priority は未指定の場合はデフォルト値が設定される
        // フィルタのルール
        Rules = new List<List<Sora.ForwardingFilter.Rule>>
        {
            new List<Sora.ForwardingFilter.Rule>
            {
                new Sora.ForwardingFilter.Rule
                {
                    Field = Sora.FieldKind,
                    Operator = Sora.OperatorIsIn,
                    Values = new List<string> { "audio", "video" }
                }
            },
        },
    }
};
© Copyright 2024, Shiguredo Inc. Created using Sphinx 8.1.3