# シグナリング API


## DisconnectChannel

**x-sora-target**: Sora_20151104.DisconnectChannel

指定したチャネルの接続をすべて切断します。

* - キー
  - 型
* - channel_id
  - string
* - reason (オプション)
  - object

`reason` に値を指定した場合、イベントウェブフック `connection.destroyed` の `disconnect_api_reason` に指定した値が入ってきます。

```console
$ curl -sS \
    -X POST \
    http://127.0.0.1:3000 \
    -H "x-sora-target: Sora_20151104.DisconnectChannel" \
    --json '{"channel_id":"sora"}' \
    | jq .
{
    "channel_id": "sora"
}
```


## DisconnectClient

**x-sora-target**: Sora_20151104.DisconnectClient

指定したクライアント ID の接続をすべて切断します。

* - キー
  - 型
* - channel_id
  - string
* - client_id
  - string
* - reason (オプション)
  - object

`reason` に値を指定した場合、イベントウェブフック `connection.destroyed` の `disconnect_api_reason` に指定した値が入ってきます。

```console
$ curl -sS \
    -X POST \
    http://127.0.0.1:3000/ \
    -H "x-sora-target: Sora_20151104.DisconnectClient" \
    --json '{"channel_id":"sora","client_id":"E2APPNQ9P97Q32V2ABW546SWW8"}' \
    | jq .
{
    "channel_id": "sora",
    "client_id": "E2APPNQ9P97Q32V2ABW546SWW8"
}
```


## DisconnectConnection

**x-sora-target**: Sora_20151104.DisconnectConnection

指定したコネクション ID の接続を切断します。

* - キー
  - 型
* - channel_id
  - string
* - connection_id
  - string
* - reason (オプション)
  - object

`reason` に値を指定した場合、イベントウェブフック `connection.destroyed` の `disconnect_api_reason` に指定した値が入ってきます。

```console
$ curl -sS \
    -X POST \
    http://127.0.0.1:3000/ \
    -H "x-sora-target: Sora_20151104.DisconnectConnection" \
    --json '{"channel_id":"sora","connection_id":"T34CDBMRJS1B5BVPF17RTBQA3C"}' \
    | jq .
{
    "channel_id": "sora",
    "connection_id": "T34CDBMRJS1B5BVPF17RTBQA3C"
}
```


## DisconnectChannelByRole

**x-sora-target**: Sora_20201120.DisconnectChannelByRole

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

* - キー
  - 型
* - channel_id
  - string
* - role
  - string (sendrecv | sendonly | recvonly)
* - reason (オプション)
  - object

```console
$ curl -sS \
    -X POST \
    http://127.0.0.1:3000/ \
    -H "x-sora-target: Sora_20201120.DisconnectChannelByRole" \
    --json '{"channel_id":"sora","role":"sendrecv"}' \
    | jq .
 {
     "channel_id": "sora",
     "role": "sendrecv"
 }
```


## ListConnections

**x-sora-target**: Sora_20201013.ListConnections

すべての接続一覧を取得します。

* - キー
  - 型
  - デフォルト
* - local (オプション)
  - boolean
  - true

`local` はクラスター機能利用時に、全てのノードの情報を取得するかどうかを指定します。

```console
$ curl -sS \
    -X POST \
    http://127.0.0.1:3000/ \
    -H "x-sora-target: Sora_20201013.ListConnections" \
    | jq .
[
    {
        "node_name": "sora@127.0.0.1",
        "audio": {
            "codec_type": "OPUS"
        },
        "channel_id": "akane",
        "session_id": "JJJ5BFH7QN6DQBTKSS7JA8ZYQR",
        "client_id": "DV2Z3MSXC50M78Y11ETN3VZ360",
        "bundle_id": "DV2Z3MSXC50M78Y11ETN3VZ360",
        "connection_id": "DV2Z3MSXC50M78Y11ETN3VZ360",
        "created_time": 1734420116038137,
        "created_timestamp": "2024-12-17T07:21:56.038137Z",
        "event_metadata": {"spam": "egg"},
        "recording_block": false,
        "role": "sendrecv",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 1000,
            "codec_type": "VP9",
            "vp9_params": { "profile_id": 0 }
        }
    },
    {
        "node_name": "sora@127.0.0.1",
        "audio": {
            "codec_type": "OPUS"
        },
        "channel_id": "sora",
        "session_id": "FDYSGDVQ592CK5D4ZMC0W4XXDM",
        "client_id": "DKF93NH82X3BDB0CVKEH32JMVR",
        "bundle_id": "DKF93NH82X3BDB0CVKEH32JMVR",
        "connection_id": "DKF93NH82X3BDB0CVKEH32JMVR",
        "created_time": 1734420116038137,
        "created_timestamp": "2024-12-17T07:21:56.038137Z",
        "event_metadata": {"spam": "egg"},
        "recording_block": false,
        "role": "sendrecv",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 1000,
            "codec_type": "VP9",
            "vp9_params": { "profile_id": 0 }
        }
    },
    {
        "node_name": "sora@127.0.0.1",
        "audio": {
            "codec_type": "OPUS"
        },
        "channel_id": "sora",
        "session_id": "FDYSGDVQ592CK5D4ZMC0W4XXDM",
        "client_id": "W6725M370N2W301378Y5SFG01C",
        "bundle_id": "W6725M370N2W301378Y5SFG01C",
        "connection_id": "W6725M370N2W301378Y5SFG01C",
        "created_time": 1734420116038137,
        "created_timestamp": "2024-12-17T07:21:56.038137Z",
        "event_metadata": {"spam": "egg"},
        "recording_block": false,
        "role": "sendrecv",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 1000,
            "codec_type": "VP9",
            "vp9_params": { "profile_id": 0 }
        }
    }
]
```


## ListChannelConnections

**x-sora-target**: Sora_20201013.ListChannelConnections

指定したチャネルの接続一覧を取得します。

* - キー
  - 型
* - channel_id
  - string

```console
$ curl -sS \
    -X POST \
    http://127.0.0.1:3000/ \
    -H "x-sora-target: Sora_20201013.ListChannelConnections" \
    --json '{"channel_id":"sora"}' \
    | jq .
[
    {
        "node_name": "sora@127.0.0.1",
        "audio": {
            "codec_type": "OPUS"
        },
        "channel_id": "sora",
        "session_id": "FDYSGDVQ592CK5D4ZMC0W4XXDM",
        "client_id": "DKF93NH82X3BDB0CVKEH32JMVR",
        "bundle_id": "DKF93NH82X3BDB0CVKEH32JMVR",
        "connection_id": "DKF93NH82X3BDB0CVKEH32JMVR",
        "created_time": 1734420116038137,
        "created_timestamp": "2024-12-17T07:21:56.038137Z",
        "event_metadata": {"spam": "egg"},
        "recording_block": false,
        "role": "sendrecv",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 1000,
            "codec_type": "VP9",
            "vp9_params": { "profile_id": 0 }
        }
    },
    {
        "node_name": "sora@127.0.0.1",
        "audio": {
            "codec_type": "OPUS"
        },
        "channel_id": "sora",
        "session_id": "FDYSGDVQ592CK5D4ZMC0W4XXDM",
        "client_id": "W6725M370N2W301378Y5SFG01C",
        "bundle_id": "W6725M370N2W301378Y5SFG01C",
        "connection_id": "W6725M370N2W301378Y5SFG01C",
        "created_time": 1734420116038137,
        "created_timestamp": "2024-12-17T07:21:56.038137Z",
        "event_metadata": {"spam": "egg"},
        "recording_block": false,
        "role": "sendrecv",
        "simulcast": false,
        "spotlight": false,
        "video": {
            "bit_rate": 1000,
            "codec_type": "VP9",
            "vp9_params": { "profile_id": 0 }
        }
    }
]
```
