メタデータ

概要

Sora では様々なメタデータを扱っているため、それぞれのメタデータの説明をしています。

接続時の認証メタデータ指定

クライアントが Sora へ接続する際に、認証に利用する metadata を指定できます。 これは認証ウェブフックに metadata として含まれます。

{
  "type": "connect",
  "role": "sendrecv",
  "channel_id": "sora",
  "metadata": {"spam": "egg"}
}

この値はクライアントと Sora だけで共有される値です。他のクライアントには一切共有されません。

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

認証ウェブフック成功時に metadata を払い出すことができます。 この値は Sora が "type": "offer" をクライアントへ送る際に metadata として送られます。

{
  "allowed": true,
  "metadata": {"spam": "egg"}
}
{
  "type": "offer",
  "sdp": "...",
  "metadata": {"spam": "egg"}
}

この値は Sora とクライアントだけで共有される値です。他のクライアントには一切共有されません。

認証ウェブフック成功時のイベントメタデータ払い出し

認証ウェブフック成功時に event_metadata を払い出すことができます。 この値は Sora がイベントウェブフックリクエストを送信する際に event_metadata として含まれます。

{
  "allowed": true,
  "event_metadata": {"spam": "egg"}
}
{
  "type": "connection.created",
  "event_metadata": {"spam": "egg"}
}

この値は Sora と認証ウェブフックとイベントウェブフック先のサーバーとのみで共有されます。 クライアントには通知されません。

接続時のシグナリング通知メタデータ指定

シグナリング接続時の "type": "connect"signaling_notify_metadata が指定できます。 ここで指定した値は同じチャネルに参加しているクライアントと新しく参加するクライアントに通知されます。

{
  "type": "connect",
  "signaling_notify_metadata": {"spam": "egg"}
}
{
  "type": "connection.created",
  "authn_metadata": {"spam": "egg"}
  "metadata": {"spam": "egg"}
}

シグナリング通知メタデータ拡張が有効な場合

シグナリング通知メタデータ拡張有効になっている場合は以下のように authn_metadata のみに値が含まれます。

{
  "type": "connection.created",
  "authn_metadata": {"spam": "egg"}
  "metadata": {}
}

もしこのシグナリング通知メタデータを接続時にしていさせたくない場合、 signaling_notify_authn_metadata_max_size0 に設定してください。

認証ウェブフック成功時のシグナリング通知メタデータ払い出し

認証ウェブフック成功時に signaling_notify_metadata を払い出すことができます。 この値は同じチャネルに参加しているクライアントと新しく参加するクライアントに通知されます。

もし接続時に signaling_notify_metadata が指定されていた場合は、 認証成功時のシグナリング通知メタデータ払い出しで 上書き されます。

{
  "allowed": true,
  "signaling_notify_metadata": {"spam": "egg"}
}
{
  "type": "connection.created",
  "authz_metadata": {"spam": "egg"}
  "metadata": {"spam": "egg"}
}

シグナリング通知メタデータ拡張が有効な場合

シグナリング通知メタデータ拡張が有効になっている場合は以下のように authz_metadata のみに値が含まれます。

{
  "type": "connection.created",
  "authz_metadata": {"spam": "egg"}
  "metadata": {}
}

シグナリング通知メタデータ拡張

シグナリング通知メタデータ拡張 を利用すると接続ごとに状態を持てるようになり、

API でそのメタデータを変更し、通知することができるようになります。

本来、シグナリング通知メタデータは接続時か認証成功払い出し時にしか指定できず一度指定したら変更できません。 シグナリング通知メタデータ拡張を利用した場合は HTTP API を利用して途中でメタデータの値を変更できます。

この機能を有効にするとシグナリング時の通知メタデータに指定した値は metadata に含まれなくなります。

セッション生成時のセッションメタデータ払い出し

セッション生成時に送信される session.created の戻り値に指定することで session_metadata を払い出すことができます。 この値は一定間隔で送られる session.updated と、 このセッションが破棄された時に送られる session.destroyed に含まれます。

{
  "session_metadata": "<JSON>"
}

一括録画ファイルメタデータ archive-<connection_id>.json

録画機能で一括録画を指定した際に archive/<recording-id>/ 以下に生成されるファイルです。 かならず archive-<connection_id>.webm ファイルとペアになります。

分割録画ファイルメタデータ split-archive-<connection_id>_<index>.json

録画機能で分割録画を指定した際に archive/<recording-id>/ 以下に生成されるファイルです。 かならず split-archive-<connection_id>_<index>.webm ファイルとペアになります。

録画(セッション単位) の StartRecording API で指定するメタデータ

StartRecording API では metadata を指定できます。

この値は以下のセッションウェブフックに recording_metadata として含まれます。

また、 report-<recording_id>.json ファイルにも記録されます。

録画(セッション単位) のセッションウェブフック session.created で指定するメタデータ

録画(セッション単位) ではセッションウェブフック session.created の戻り値として、 recording_metadata を払い出すことができます。

{
  "recording": true,
  "recording_metadata": "<JSON>"
}

この値は以下のセッションウェブフックに recording_metadata として含まれます。

また、 report-<recording_id>.json ファイルにも記録されます。

レガシー録画の StartRecording API で指定するメタデータ

StartRecording API では metadata を指定できます。

この値は、以下のイベントウェブフックに metadata として含まれます。

また、 report-<recording_id>.json ファイルにも記録されます。

© Copyright 2024, Shiguredo Inc Created using Sphinx 8.1.3