転送フィルター API¶
注意
この API は 実験的機能 のため、正式版では仕様が変更される可能性があります。
転送フィルター API はチャネル単位やコネクション単位で音声や映像の転送をフィルターする機能です。
ListForwardingFilters¶
- x-sora-target:
 Sora_20230628.ListForwardingFilters
指定したチャネルについて、チャネル単位とコネクション単位両方の転送フィルターを表示します。
また、blocked オプションの指定により音声と映像のブロック状況を表示します。
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
blocked (オプション)  | 
boolean  | 
blockedを指定しない場合はfalseが指定されます
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.ListForwardingFilters \
    channel_id=sora \
    blocked:=true \
    -vvv
POST / HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 39
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/2.6.0
x-sora-target: Sora_20230628.ListForwardingFilters
{
   "channel_id": "sora",
   "blocked": true
}
HTTP/1.1 200 OK
content-length: 712
content-type: application/json
date: Fri, 16 Jun 2023 02:36:06 GMT
server: Cowboy
{
   "channel_forwarding_filter": {
      "action": "block",
      "rules": [
         [
            {
               "field": "kind",
               "operator": "is_in",
               "values": [
                  "video",
                  "audio"
               ]
            }
         ]
      ]
   },
   "connection_forwarding_filters": [
      {
         "action": "allow",
         "connection_id": "6V9VANDZZH71HCQGVKBWKJ8GS0",
         "rules": [
            [
               {
                  "field": "kind",
                  "operator": "is_in",
                  "values": [
                     "video"
                  ]
               }
            ]
         ]
      },
      {
         "action": "allow",
         "connection_id": "XEDQM589M520Z50KM7C6C5PRB0",
         "rules": [
            [
               {
                  "field": "kind",
                  "operator": "is_in",
                  "values": [
                     "audio"
                  ]
               }
            ]
         ]
      }
   ],
   "blocked": [
      {
         "destination_connection_id": "6V9VANDZZH71HCQGVKBWKJ8GS0",
         "kind": "audio",
         "source_connection_id_list": [
            "ASJDFJ1PF94JN6DV59JQZ1HNDR"
         ]
      },
      {
         "destination_connection_id": "XEDQM589M520Z50KM7C6C5PRB0",
         "kind": "video",
         "source_connection_id_list": [
            "ASJDFJ1PF94JN6DV59JQZ1HNDR",
            "6V9VANDZZH71HCQGVKBWKJ8GS0"
         ]
      }
   ]
}
レスポンス¶
レスポンスの内容は以下の通りです。転送フィルターについての詳細は 転送フィルタールールの仕様 をご確認ください。
channel_forwarding_filter
指定したチャネルに設定されているチャネル単位の転送フィルターを表示します
connection_forwarding_filters
指定したチャネルに設定されているコネクション単位の転送フィルターを配列で表示します
blocked
destination_connection_id
ブロックされている送信先のコネクション ID
kind
ブロックされているメディア (audio または video)
source_connection_id_list
ブロックされている送信元のコネクション ID の配列
CreateChannelForwardingFilter¶
- x-sora-target:
 Sora_20230628.CreateChannelForwardingFilter
指定したチャネルに対して転送フィルターを作成します。 チャネル単位での転送フィルター作成は 送信元からの音声や映像を送信先に転送するかどうか です。 送信先はチャネルに参加しているすべてのコネクションです。
指定した送信先だけにブロックをさせたい場合は CreateConnectionForwardingFilter を使用してください。
転送フィルターの指定方法についての詳細は 転送フィルタールールの仕様 をご確認ください。
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
action (オプション)  | 
string (block | allow)  | 
rules  | 
array of object  | 
actionの指定がない場合はblockが指定されますrulesは転送フィルターの対象を配列で指定します。rulesで指定する array of object の object の内容は以下の通りです
キー  | 
型  | 
|---|---|
field  | 
string (connection_id | client_id | kind)  | 
operator  | 
string (is_in | is_not_in)  | 
value  | 
array of string  | 
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.CreateChannelForwardingFilter \
    channel_id=sora \
    action=block \
    rules:='[
      [
        {"field": "connection_id", "operator": "is_in", "values": ["XEDQM589M520Z50KM7C6C5PRB0"]},
        {"field": "client_id", "operator": "is_not_in", "values": ["screen-share"]},
        {"field": "kind", "operator": "is_in", "values": ["video"]}
      ]
    ]' \
    -vvv
POST / HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 283
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/3.2.1
x-sora-target: Sora_20230628.CreateChannelForwardingFilter
{
  "action": "block",
  "channel_id": "sora",
  "rules": [
    [
      {
        "field": "connection_id",
        "operator": "is_in",
        "values": [
          "XEDQM589M520Z50KM7C6C5PRB0"
        ]
      },
      {
        "field": "client_id",
        "operator": "is_not_in",
        "values": [
          "screen-share"
        ]
      },
      {
        "field": "kind",
        "operator": "is_in",
        "values": [
          "video"
        ]
      }
    ]
  ]
}
HTTP/1.1 200 OK
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, x-sora-target
access-control-allow-methods: POST, OPTIONS
access-control-allow-origin: *
access-control-max-age: 1000
content-length: 261
content-type: application/json
date: Thu, 22 Jun 2023 07:28:35 GMT
server: Cowboy
{
  "action": "block",
  "channel_id": "sora",
  "rules": [
    [
      {
        "field": "connection_id",
        "operator": "is_in",
        "values": [
          "XEDQM589M520Z50KM7C6C5PRB0"
        ]
      },
      {
        "field": "client_id",
        "operator": "is_not_in",
        "values": [
          "screen-share"
        ]
      },
      {
        "field": "kind",
        "operator": "is_in",
        "values": [
          "video"
        ]
      }
    ]
  ]
}
UpdateChannelForwardingFilter¶
- x-sora-target:
 Sora_20230628.UpdateChannelForwardingFilter
指定したチャネルの転送フィルターの設定を、 rules と action の内容で置き換えます。
注意
この API を実行するには事前に指定したチャネル単位の転送フィルターが作成されている必要があります
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
action (オプション)  | 
string (block | allow)  | 
rules  | 
array of object  | 
actionの指定がない場合はblockが指定されますrulesは転送フィルターの対象を配列で指定します。rulesで指定する array of object の object の内容は以下の通りです
キー  | 
型  | 
|---|---|
field  | 
string (connection_id | client_id | kind)  | 
operator  | 
string (is_in | is_not_in)  | 
value  | 
array of string  | 
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.UpdateChannelForwardingFilter \
    channel_id=sora \
    action=block \
    rules:='[
      [
        {"field": "connection_id", "operator": "is_in", "values": ["XEDQM589M520Z50KM7C6C5PRB0"]},
        {"field": "client_id", "operator": "is_not_in", "values": ["screen-share"]},
        {"field": "kind", "operator": "is_in", "values": ["video"]}
      ]
    ]' \
    -vvv
POST / HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 283
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/3.2.2
x-sora-target: Sora_20230628.UpdateChannelForwardingFilter
{
   "action": "block",
   "channel_id": "sora",
   "rules": [
      [
         {
            "field": "connection_id",
            "operator": "is_in",
            "values": [
               "XEDQM589M520Z50KM7C6C5PRB0"
            ]
         },
         {
            "field": "client_id",
            "operator": "is_not_in",
            "values": [
               "screen-share"
            ]
         },
         {
            "field": "kind",
            "operator": "is_in",
            "values": [
               "video"
            ]
         }
      ]
   ]
}
HTTP/1.1 200 OK
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, x-sora-target
access-control-allow-methods: POST, OPTIONS
access-control-allow-origin: *
access-control-max-age: 1000
content-length: 261
content-type: application/json
date: Thu, 22 Jun 2023 07:40:11 GMT
server: Cowboy
{
   "action": "block",
   "channel_id": "sora",
   "rules": [
      [
         {
            "field": "connection_id",
            "operator": "is_in",
            "values": [
               "XEDQM589M520Z50KM7C6C5PRB0"
            ]
         },
         {
            "field": "client_id",
            "operator": "is_not_in",
            "values": [
               "screen-share"
            ]
         },
         {
            "field": "kind",
            "operator": "is_in",
            "values": [
               "video"
            ]
         }
      ]
   ]
}
DeleteChannelForwardingFilter¶
- x-sora-target:
 Sora_20230628.DeleteChannelForwardingFilter
指定したチャネルの転送フィルターの設定を削除します。
注意
この API を実行するには事前に指定したチャネル単位の転送フィルターが作成されている必要があります
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.DeleteChannelForwardingFilter \
    channel_id=sora \
    -vvv
POST / HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 22
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/3.2.2
x-sora-target: Sora_20230628.DeleteChannelForwardingFilter
{
   "channel_id": "sora"
}
HTTP/1.1 200 OK
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, x-sora-target
access-control-allow-methods: POST, OPTIONS
access-control-allow-origin: *
access-control-max-age: 1000
content-length: 21
content-type: application/json
date: Thu, 22 Jun 2023 07:48:10 GMT
server: Cowboy
{
   "channel_id": "sora"
}
CreateConnectionForwardingFilter¶
- x-sora-target:
 Sora_20230628.CreateConnectionForwardingFilter
指定したチャネルの特定コネクションに対して転送フィルターを作成します。
コネクション単位での転送フィルター作成は 指定したコネクションに送信元からの音声や映像を送信先に転送するかどうか です。 指定した送信先だけブロックをしたい場合に利用します。
転送フィルターの指定方法についての詳細は 転送フィルタールールの仕様 をご確認ください。
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
connection_id  | 
string  | 
action (オプション)  | 
string (block | allow)  | 
rules  | 
array of object  | 
actionの指定がない場合はblockが指定されますrulesは転送フィルターの対象を配列で指定します。rulesで指定する array of object の object の内容は以下の通りです
キー  | 
型  | 
|---|---|
field  | 
string (connection_id | client_id | kind)  | 
operator  | 
string (is_in | is_not_in)  | 
value  | 
array of string  | 
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.CreateConnectionForwardingFilter \
    channel_id=sora \
    connection_id=EQ13WT731S1EK452YRJVFGYAY8 \
    action=block \
    rules:='[
      [
        {"field": "connection_id", "operator": "is_in", "values": ["XEDQM589M520Z50KM7C6C5PRB0"]},
        {"field": "client_id", "operator": "is_not_in", "values": ["screen-share"]},
        {"field": "kind", "operator": "is_in", "values": ["video"]}
      ]
    ]' \
    -vvv
POST / HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 330
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/3.2.2
x-sora-target: Sora_20230628.CreateConnectionForwardingFilter
{
  "action": "block",
  "channel_id": "sora",
  "connection_id": "EQ13WT731S1EK452YRJVFGYAY8",
  "rules": [
    [
      {
        "field": "connection_id",
        "operator": "is_in",
        "values": [
          "XEDQM589M520Z50KM7C6C5PRB0"
        ]
      },
      {
        "field": "client_id",
        "operator": "is_not_in",
        "values": [
          "screen-share"
        ]
      },
      {
        "field": "kind",
        "operator": "is_in",
        "values": [
          "video"
        ]
      }
    ]
  ]
}
HTTP/1.1 200 OK
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, x-sora-target
access-control-allow-methods: POST, OPTIONS
access-control-allow-origin: *
access-control-max-age: 1000
content-length: 306
content-type: application/json
date: Thu, 22 Jun 2023 07:50:04 GMT
server: Cowboy
{
  "action": "block",
  "channel_id": "sora",
  "connection_id": "EQ13WT731S1EK452YRJVFGYAY8",
  "rules": [
    [
      {
        "field": "connection_id",
        "operator": "is_in",
        "values": [
          "XEDQM589M520Z50KM7C6C5PRB0"
        ]
      },
      {
        "field": "client_id",
        "operator": "is_not_in",
        "values": [
          "screen-share"
        ]
      },
      {
        "field": "kind",
        "operator": "is_in",
        "values": [
          "video"
        ]
      }
    ]
  ]
}
UpdateConnectionForwardingFilter¶
- x-sora-target:
 Sora_20230628.UpdateConnectionForwardingFilter
指定したチャネルの特定コネクションに対する転送フィルターの設定を、 rules と action の内容で置き換えます。
注意
この API を実行するには事前に指定したコネクション単位の転送フィルターが作成されている必要があります
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
connection_id  | 
string  | 
action (オプション)  | 
string (block | allow)  | 
rules  | 
array of object  | 
actionの指定がない場合はblockが指定されますrulesは転送フィルターの対象を配列で指定します。rulesで指定する array of object の object の内容は以下の通りです
キー  | 
型  | 
|---|---|
field  | 
string (connection_id | client_id | kind)  | 
operator  | 
string (is_in | is_not_in)  | 
value  | 
array of string  | 
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.UpdateConnectionForwardingFilter \
    channel_id=sora \
    connection_id=T9J5FM3NTH6JH4JKFGTSHB1BA0 \
    action=block \
    rules:='[
      [
        {"field": "connection_id", "operator": "is_in", "values": ["XEDQM589M520Z50KM7C6C5PRB0"]},
        {"field": "client_id", "operator": "is_not_in", "values": ["screen-share"]},
        {"field": "kind", "operator": "is_in", "values": ["video"]}
      ]
    ]' \
   -vvv
POST / HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 330
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/3.2.2
x-sora-target: Sora_20230628.UpdateConnectionForwardingFilter
{
  "action": "block",
  "channel_id": "sora",
  "connection_id": "EQ13WT731S1EK452YRJVFGYAY8",
  "rules": [
    [
      {
        "field": "connection_id",
        "operator": "is_in",
        "values": [
          "XEDQM589M520Z50KM7C6C5PRB0"
        ]
      },
      {
        "field": "client_id",
        "operator": "is_not_in",
        "values": [
          "screen-share"
        ]
      },
      {
        "field": "kind",
        "operator": "is_in",
        "values": [
          "video"
        ]
      }
    ]
  ]
}
HTTP/1.1 200 OK
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, x-sora-target
access-control-allow-methods: POST, OPTIONS
access-control-allow-origin: *
access-control-max-age: 1000
content-length: 306
content-type: application/json
date: Thu, 22 Jun 2023 07:54:29 GMT
server: Cowboy
{
  "action": "block",
  "channel_id": "sora",
  "connection_id": "EQ13WT731S1EK452YRJVFGYAY8",
  "rules": [
    [
      {
        "field": "connection_id",
        "operator": "is_in",
        "values": [
          "XEDQM589M520Z50KM7C6C5PRB0"
        ]
      },
      {
        "field": "client_id",
        "operator": "is_not_in",
        "values": [
          "screen-share"
        ]
      },
      {
        "field": "kind",
        "operator": "is_in",
        "values": [
          "video"
        ]
      }
    ]
  ]
}
DeleteConnectionForwardingFilter¶
- x-sora-target:
 Sora_20230628.DeleteConnectionForwardingFilter
指定したチャネルの特定コネクションの転送フィルターを削除します。
注意
この API を実行するには事前に指定したコネクション単位の転送フィルターが作成されている必要があります
キー  | 
型  | 
|---|---|
channel_id  | 
string  | 
connection_id  | 
string  | 
$ http POST 127.0.0.1:3000/ \
    x-sora-target:Sora_20230628.DeleteConnectionForwardingFilter \
    channel_id=sora \
    connection_id=T9J5FM3NTH6JH4JKFGTSHB1BA0 \
    -vvv
POST / HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 69
Content-Type: application/json
Host: 127.0.0.1:3000
User-Agent: HTTPie/3.2.2
x-sora-target: Sora_20230628.DeleteConnectionForwardingFilter
{
  "channel_id": "sora",
  "connection_id": "EQ13WT731S1EK452YRJVFGYAY8"
}
HTTP/1.1 200 OK
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, x-sora-target
access-control-allow-methods: POST, OPTIONS
access-control-allow-origin: *
access-control-max-age: 1000
content-length: 66
content-type: application/json
date: Thu, 22 Jun 2023 07:57:39 GMT
server: Cowboy
{
  "channel_id": "sora",
  "connection_id": "EQ13WT731S1EK452YRJVFGYAY8"
}