認証ウェブフック成功時の払い出し

概要

Sora では認証ウェブフック成功時に様々な値を外部の認証サーバーから払い出すことができます。

Sora は払い出された値を反映した状態でクライアントへの接続要求 ("type": "offer") を送ります。

audio の払い出し

クライアントが指定してきた音声のコーデックやビットレートなどのパラメータに対して、 認証サーバー側で新たに値を払い出すことで、上書きを行えます。

クライアントが指定してきた値を上書きすることができるため、 サーバー側でそれぞれのクライアントに対して、音声のコーデックやビットレートをコントロールすることができます。

この機能を使用する場合は、認証成功時のレスポンス JSON に audio を指定してください。 ここで使用できるのはシグナリングの "type": "connect" 時に指定可能な audio の値です。

払い出し例

{
    "allowed": true,
    "audio": {
        "codec_type": "OPUS",
        "bit_rate": 64
    }
}

指定可能な値

  • true または false または object が指定可能です

  • codec_type

    • "OPUS"

    • codec_type を指定しないことも可能です

  • bit_rate

    • 6 ~ 510

    • 単位は kbps です

    • デフォルトで最適なビットレートが選択されるようになっているため指定する必要はありません

video の払い出し

クライアントが指定してきた映像のコーデックやビットレートなどのパラメータに対して、 認証サーバー側で新たに値を払い出すことで、上書きを行えます。

クライアントが指定してきた値を上書きすることができるため、 サーバー側でそれぞれのクライアントに対して、映像のコーデックやビットレートをコントロールすることができます。

この機能を使用する場合は、認証成功時のレスポンス JSON に video を指定してください。 ここで使用できるのはシグナリングの "type": "connect" 時に指定可能な video の値です。

払い出し例

{
    "allowed": true,
    "video": {
        "codec_type": "VP9",
        "bit_rate": 1000
    }
}

指定可能な値

  • true または false または object が指定可能です

  • codec_type

    • 文字列で指定可能です

    • "VP8"

    • "VP9"

    • "AV1"

    • "H264"

    • "H265"

      • sora.conf にて h265true にしている必要があります

    • codec_type を指定しないことも可能です

  • bit_rate

    • 1 ~ 30000

      • サポートされている値は 1 ~ 15000 までです

    • 単位は kbps です

    • bit_rate を指定しないことも可能です

client_id の払い出し

Sora は認証成功時の戻り値に client_id を認証サーバーから返すことができます。

シグナリング接続時にも、 認証成功時の戻り値にも client_id を指定しない場合は connection_id と同じ値が client_id に割りあてられます。

{
    "allowed": true,
    "client_id": "spam"
}
  • client_id

    • 1 から 255 の長さの文字列

bundle_id の払い出し

Sora は認証成功時の戻り値に bundle_id を認証サーバーから返すことができます。

bundle_id を指定した場合、マルチストリーム利用時に bundle_id の値が同じ接続からの音声や映像、メッセージング、シグナリング通知を受信しなくなります。

シグナリング接続時にも、 認証成功時の戻り値にも bundle_id を指定しない場合は connection_id と同じ値が bundle_id に割りあてられます。

{
    "allowed": true,
    "bundle_id": "spam"
}
  • bundle_id

    • 1 から 255 バイトの文字列

data_channel_signaling の払い出し

Sora は、認証成功時のタイミングで接続単位での data_channel_signaling の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "data_channel_signaling": true
}

この値は "type": "connect"data_channel_signalingsora.confdefault_data_channel_signaling の値を上書きします。

認証成功時にクライアントが受け取る JSON

{
    "type": "offer",
    "sdp": "<SDP>",
    "data_channel_signaling": true,
    "ignore_disconnect_websocket": false
}

ignore_disconnect_websocket の払い出し

Sora は、認証成功時のタイミングで接続単位での ignore_disconnect_websocket の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "ignore_disconnect_websocket": true
}

この値は "type": "connect"ignore_disconnect_websocketsora.confdefault_ignore_disconnect_websocket の値を上書きします。

ただし data_channel_signalingtrue の時のみ、この値は有効になります。

認証成功時にクライアントが受け取る JSON

data_channel_signaling が有効な場合、 "type": "switched" が送られる際に ignore_disconnect_websocket も送られます。

{
    "type": "switched",
    "ignore_disconnect_websocket": "<bool>",
}

data_channels の払い出し

Sora は、認証成功時のタイミングで接続単位での data_channels の値を認証サーバーから払い出すことができます。

{
    "allowed": true,
    "data_channels": [
        {
            "label": "#spam",
            "max_packet_life_time": 5000,
            "ordered": true,
            "protocol": "efg",
            "compress": false,
            "direction": "sendonly"
        },
        {
            "label": "#egg",
            "max_retransmits": 0,
            "ordered": false,
            "protocol": "abc",
            "compress": false,
            "direction": "recvonly"
        }
    ]
}

data_channels の詳細仕様は data_channels 仕様 をご確認ください。

metadata の払い出し

Sora は、認証成功時のタイミングで metadata という値を認証サーバーから払い出すことができます。

{
    "allowed": true,
    "metadata": {"spam": "egg"}
}

認証サーバーが認証成功時に metadata を含めた場合、クライアントへ送る "type": "offer"metadata をそのまま送ります。

この機能を使うことで、認証成功のタイミングでユーザー毎に任意の値を送ることができます。

認証成功時にクライアントが受け取る JSON

認証成功の場合は Offer 送信時の JSON に metadata が含められます。

{
    "type": "offer",
    "sdp": "<SDP>",
    "metadata": {"spam": "egg"}
}

event_metadata の払い出し

event_metadata はクライアントには送られません

Sora は、認証成功時のタイミングで event_metadata という値を認証サーバーから払い出すことができます。

認証サーバーが認証成功時に event_metadata を含めた場合、 イベントウェブフック通知時に event_metadata という項目が追加されます。

{
    "allowed": true,
    "event_metadata": {"pk": 1}
}

event_metadata はクライアントに知られることのない値です。 Sora イベントウェブフック通知先のサーバーのみが知り得る値となります。

使用例

この event_metadata の値は、クライアントに知られることはありません。そのためユーザー ID を直接入れておくという仕組みも使用できます。

こうすることで通知の際、サーバー側がユーザーの判定をしやすくなります。

シグナリング経由での通知機能の払い出し

Sora は、認証成功時のタイミングで signaling_notify という値を認証サーバーから払い出すことができます。

{
    "allowed": true,
    "signaling_notify": true
}

signaling_notify の値を返すことで、クライアント毎にシグナリング通知を受け取るかどうかを指定可能になります。

シグナリング経由での通知機能の詳細は "type": "notify" をご確認ください

シグナリング経由での通知機能を利用したメタデータの払い出し

Sora は、認証成功時のタイミングで signaling_notify_metadata という値を認証サーバーから払い出すことができます。

ここに値を指定することで、参加時や離脱時に外の参加者に情報を通知することができます。

{
    "allowed": true,
    "signaling_notify_metadata": {
        "username": "spam"
    }
}

詳細は signaling_notify_metadata をご確認ください。

ipv4_address と ipv6_address の払い出し

Sora は、認証成功時のタイミングで ipv4_address または ipv6_address を認証サーバーから払い出すことができます。 ipv4_addressipv6_address は片方だけでも、両方返しても問題ありません。

{
    "allowed": true,
    "ipv4_address": "192.0.2.10",
    "ipv6_address": "2001:0DB8::10"
}

この値は SDP の offer 時の a=candidate と TURN-UDP と TURN-TCP の URL の払い出しに使用されます。

sora.conf の値はこの戻り値で上書きされます。指定する IP アドレスを間違えると繋がらなくなるため、使用には注意してください。

この機能を使用することでクライアント毎に経路を指定することができます。

turn_fqdn 払い出し

Sora は、認証成功時のタイミングで接続単位での turn_fqdn の値を認証サーバーから払い出すことができます。

{
    "allowed": true,
    "turn_fqdn": "sora-turn.example.com"
}

この値は sora.confturn_fqdn の値を上書きします。

指定する FQDN を間違えると繋がらなくなるため、使用には注意してください。

turn_tls_fqdn の 払い出し

Sora は、認証成功時のタイミングで接続単位での turn_tls_fqdn の値を認証サーバーから払い出すことができます。

{
    "allowed": true,
    "turn_tls_fqdn": "sora-turn.example.com"
}

この値は sora.conf の turn_tls_fqdn の値を上書きします。指定する FQDN を間違えると繋がらなくなるため、使用には注意してください。

この機能は sora.confturn_tls_fqdn の値を上書きします。

turn_tcp_only / turn_tls_only の払い出し

Sora は、認証成功時のタイミングで接続単位での turn_tcp_only または turn_tls_only の値を認証サーバーから払い出すことができます。

{
    "allowed": true,
    "turn_tcp_only": true
}
{
    "allowed": true,
    "turn_tls_only": true
}

この値は sora.confturn_tcp_onlyturn_tls_only の値を上書きします。

simulcast / simulcast_rid の払い出し

Sora は、認証成功時のタイミングで接続単位での simulcastsimulcast_rid の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "simulcast": true
}
{
    "allowed": true,
    "simulcast": true,
    "simulcast_rid": "r0"
}

この値は sora.confdefault_simulcast_rid の値を上書きします。

simulcast_encodings の払い出し

Sora は、認証成功時のタイミングで接続単位での simulcast_encodings の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "simulcast_encodings": [
        {"rid": "r0", "active": true, "scaleResolutionDownBy": 2.0, "maxFramerate": 1.0},
        {"rid": "r1", "active": true, "scaleResolutionDownBy": 2.0, "maxFramerate": 10.0},
        {"rid": "r2", "active": true, "scaleResolutionDownBy": 1.0, "maxFramerate": 30.0}
    ]
}

詳細については サイマルキャスト映像のエンコーディングパラメータのカスタマイズ をご確認ください。

spotlight_encodings の払い出し

Sora は、認証成功時のタイミングで接続単位での spotlight_encodings の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "spotlight_encodings": [
        {"rid": "r0", "active": true, "scaleResolutionDownBy": 4.0, "maxFramerate": 1.0},
        {"rid": "r1", "active": true, "scaleResolutionDownBy": 1.0, "maxFramerate": 10.0},
        {"rid": "r2", "active": false}
    ]
}

詳細については サイマルキャスト映像のエンコーディングパラメータのカスタマイズ をご確認ください。

spotlight / spotlight_number の払い出し

Sora は、認証成功時のタイミングで接続単位での spotlightspotlight_number の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "spotlight": true
}
{
    "allowed": true,
    "spotlight": true,
    "spotlight_number": 3
}

user_agent_stats の払い出し

Sora は、認証成功時のタイミングで接続単位での user_agent_stats の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "user_agent_stats": true
}

この値は sora.confuser_agent_stats の値を上書きします。

h264_profile_level_id の払い出し

Sora は、認証成功時のタイミングで接続単位での h264_profile_level_id の値を認証サーバーから払い出すことが可能です。

{
    "allowed": true,
    "h264_profile_level_id": "42e01f"
}

この値は sora.confdefault_h264_profile_level_id の値を上書きします。

© Copyright 2022, Shiguredo Inc Created using Sphinx 5.0.2