Tablebox ドキュメントサイト English

リファレンス

すべての呼び出し、クレーム、コード、パス、環境変数、上限、時間を、説明するページと一緒に並べます。

ホストするサービス

運営者がホストするサービスについて公開する値です。

値
Relay の URL 未公開
Manager API のアドレス 未公開
Console のアドレス 未公開
Ingress のホスト 未公開
Ingress のホストの SRT のポート 未公開
Egress のホスト 未公開

MoQ の版

Tablebox は、版をきっちり固定した moq-dev のリリースを使います。TypeScript の SDK: @moq/net 0.4.2(インストール時に当てる 1 行のパッチ付き)、@moq/json 0.4.2、@moq/publish 0.5.2、@moq/watch 0.6.2、Node では @moq/web-transport 0.1.5。Rust の SDK: moq-net 0.3.10、moq-tokio 0.19.22、moq-json 0.5.8。Relay は moq-relay 0.17.1 と moq-auth 0.2.1 の上に作り、プログラムは moq-mux 0.10.11、moq-audio 0.1.10、moq-rtmp と moq-srt 0.3.11 も使います。

セッションはこれらのリリースのとおりに MoQ を話します。moq-lite か IETF の moq-transport のドラフトで、版はセッションが開くときに両端が決めます。固定したリリースは moq-lite-06 を話し、TypeScript の SDK はこれを最初に、続けて古い moq-lite の版と IETF のドラフト moqt-22 から moqt-15 までを示します。次の三つは分けて扱います。

何か
IETF のドラフト moq-transport。IETF の MoQ ワーキンググループのプロトコルで、番号付きのドラフトとして出る
moq-dev のプロファイル moq-lite。moq-dev プロジェクトのプロトコル
交渉した版 一つのセッションが話すもの。どちらかの一つの版で、セッションが開くときにクライアントと Relay が決める

SDK

パッケージ tablebox.io(TypeScript、ブラウザーと Node 22)とクレート tablebox(Rust、tokio ランタイム上)は同じ呼び出しを持ちます。

呼び出し TypeScript Rust ページ
接続 connect({ url, token })、{ url, getToken }、{ url, link, secret }。serverCertificateHashes も connect(ConnectOptions::token(url, token))、ConnectOptions::get_token(url, f)、ConnectOptions::link(url, link, secret)。server_certificate_hashes も 接続の仕方
状態 status、reason、transport: peek() と subscribe() を持つシグナル status()、reason()、transport(): tokio::sync::watch の受け手 状態
リンクの ID identity identity() リンク
出す publish(path): Broadcast.Producer publish(path): broadcast::Producer 出す
読む read(path): 出されたら Broadcast.Consumer read(path).await: broadcast::Consumer 読む
一覧 list(prefix, { hidden }): Announce.Consumer list(prefix, hidden): announce::Consumer 一覧する
受け持つ serve(prefix, handler): { close() }。request.path、accept(broadcast)、refuse(name) serve(prefix, handler): Serving。request.path()、accept(&broadcast)、refuse(reason) パスを受け持つ
メディア origin。publish と watch 用(ブラウザー) origin() メディア
閉じる close() close().await、または捨てる
コード Reason: code、name、Reason.of(error) Reason: code()、name()、Reason::of(&error) コード
固定したパッケージ moq(@moq/net)、json(@moq/json)。ブラウザーでは publish と watch も moq(moq-net)、json(moq-json)

トークンのクレーム

クレーム 型 意味
root パス。既定は空 セッションのルート。プロジェクトのルートからの相対
publish, subscribe moq-pattern の一覧。root からの相対 セッションが出せるもの、読めるもの。全体で少なくとも一つ
sub 文字列。必須 参加者の ID
iat 秒。必須 発行時刻。Relay の時計より 60 秒先まで
exp 秒。必須 期限。受け入れるときに確かめる
nbf 秒。任意 これより前は無効。受け入れるときに確かめる

moq-auth 0.2.1 の形式です。プロジェクトのキーのシークレットで HS256、HS384、HS512 のどれかにより署名した JWT で、ヘッダの kid はキーの ID です。ほかのクレームは拒否されます。トークン。

コード

コード 名前 出すもの SDK
64 invalid-token Relay 止まる
65 expired Relay getToken で再接続する
66 removed Relay 止まる
67 closed Relay 止まる
68 limit Relay 止まる
69 unavailable Relay やり直す
80 bad-request パスを受け持つもの 読み出しかトラックを終える
81 missing-variable パスを受け持つもの 読み出しかトラックを終える
82 failed パスを受け持つもの 読み出しかトラックを終える
83 too-large パスを受け持つもの 読み出しかトラックを終える

それぞれがいつ当たるかは接続するとパスを受け持つにあります。

プログラムのパス

読み手のルートからの相対です。

パス トラック 書く人 ページ
{name}/.aggregation/{writer} patch.json, value.json 書き手 Aggregation
.aggregation/{name} state.json, writers.json, applied/{writer} Aggregation Aggregation
.persistence/{path} {track}。{path} の {track} の保存した文書 Persistence Persistence
.egress/{source}/{dest}, .egress/{prefix}/.composite/{dest} status.json Egress Egress
{source} hang の音声、context.json, input.json Agent を呼ぶ人 Agent
.agent/{source} hang の声、transcript.json, calls.json, status.json Agent Agent
ストリームキーの publish のパス hang のブロードキャスト Ingress Ingress

プロジェクトの環境変数

変数 読むもの 意味
STORAGE_BUCKET, STORAGE_ACCESS_KEY_ID, STORAGE_SECRET_ACCESS_KEY Persistence、Egress(Aggregation は Persistence を通して) バケットとその認証情報。必須
STORAGE_ENDPOINT, STORAGE_REGION, STORAGE_PREFIX 同じ https:// のエンドポイント(なければ AWS S3)、地域(us-east-1)、キーの前に付けるもの(空)
EXPORT_{NAME}_URL Egress {name} という名前の rtmp://、rtmps://、srt:// の送り先
AGENT_PROVIDER Agent openai(既定)か gemini
OPENAI_API_KEY, GEMINI_API_KEY Agent 選んだプロバイダのキー
AGENT_MODEL, AGENT_VOICE Agent モデル(なければ gpt-realtime-2.1 か gemini-3.8-live)と声
AGENT_INSTRUCTIONS, AGENT_TOOLS Agent 指示と、ツールの JSON 配列

環境変数。

管理 API

呼び出し 認証
GET, POST /v1/projects Console のセッション
GET, PATCH, DELETE /v1/projects/{p} Console のセッションか、そのプロジェクトのキー
/v1/projects/{p}/keys, /links, /variables, /removals, /closings, /usage Console のセッションか、そのプロジェクトのキー

本体、結果、エラーは管理 API にあります。

上限と時間

値 何か ページ
32 段 パス パス
60 秒 iat が Relay の時計より先でよい幅 トークン
32〜128 文字 リンクのシークレット。入る人の ID は 22 文字 リンク
500 ms ブラウザーで WebSocket への切り替えが加わる前の WebTransport の試み 転送方式
1 秒から 30 秒まで倍に SDK の再接続の待ち。5 秒続いたセッションの後は 1 秒に戻る 状態
2 秒 プロジェクトの状態をまだ読んでいない Relay をセッションが待つ時間。その後 unavailable コード
10 秒 黙った接続が終わるまで 状態
5 秒 取り外しと閉鎖が効くまで。変更が Relay とプログラムに届くまで 取り外し
10 秒 Relay が使用量を報告する間隔。上限はその間に運ぶ分だけ超えうる 上限
1 分 使用量が見えるまで 上限
70 文字、16 KiB、100 個 環境変数の名前、値、プロジェクトあたりの数 環境変数
20 秒 最後の読み手が去ってからプログラムが止まるまで 呼ぶ
16 MiB Aggregation のまとめた文書 Aggregation
2 秒、10 秒 Persistence は変更の 2 秒後に、最低 10 秒ごとに保存する Persistence
5 秒、30 秒 Egress が二つ目のレンディションを待つ時間。やり直しの間隔は 30 秒まで延びる Egress
1280x720、30 fps、48 kHz ステレオ 合成の映像と音声 Egress
10 秒、64 KiB Agent がツールの答えを待つ時間。手がかりの大きさ Agent
496 バイト SRT のストリームキー Ingress
1 秒 Ingress がストリームを受け入れる前に待つ時間 Ingress