Wipple CPaaS
メニュー
Function リファレンス / Conference

Conference

{
  "verb": "conference",
  "name": "test",
  "beep": true,
  "startConferenceOnEnter": false,
  "waitHook": "/confWait",
  "enterHook": "/confEnter"
}

パラメータ

namestring必須

会議の名前


actionHookstring

会議が終了したときに呼び出される Webhook


beepboolean

true の場合、発信者が入室したときに会議にビープ音を再生します(デフォルト: false)


distributeDtmfboolean

true の場合、この参加者からの DTMF イベントが通話中の他の参加者に送信されます。(デフォルト: false)


endConferenceOnExitboolean

true の場合、この発信者が切断したときに会議を終了します(デフォルト: false)


enterHookstring

会議の開始を待っていた発信者が会議に入れられる直前に、発信者に再生または読み上げる内容を取得するための Webhook


listenobject

音声ストリーミング設定。指定すると、会議の音声が WebSocket 接続を介してリモートサーバーにリアルタイムでストリーミングされます。後述の音声ストリーミングを参照してください。


listen.urlstring必須

会議の音声をストリーミングする先の WebSocket URL(例: wss://example.com/conference-audio)。


listen.sampleRatenumberデフォルト: 8000

音声のサンプルレート(Hz)。


listen.wsAuthobject

WebSocket サーバーへの接続時に含める認証資格情報。


listen.metadataobject

最初の WebSocket 接続メッセージに含めるカスタムメタデータ。


joinMutedboolean

true の場合、この発信者は音声をミュートした状態で会議に参加します


maxParticipantsnumber

会議で許可される参加者の最大数


memberTagstring

「コーチ」機能のために参加者を分類する方法。後述の関連する speakOnlyTo 属性を参照してください(0.9.1 以降)


speakOnlyTostring

このメンバーの音声を、そのタグが割り当てられたメンバーにのみ聞こえるようにするためのタグ値


startConferenceOnEnterboolean

true の場合、この発信者が入室したときにのみ会議を開始します。これにより、この発信者は会議のモデレーターとしても指定されます(デフォルト: true)


statusHookstring

会議のステータスイベントとともに呼び出される Webhook


statusEventsarray

statusHook を呼び出す対象となるイベントの配列。詳細は後述を参照してください。


waitHookstring

発信者が会議の開始を待っている間に再生または読み上げるコマンドを取得するための Webhook


会議ステータスイベント

  • 'start': 会議が開始された
  • 'end': 会議が終了した
  • 'join': 参加者が会議に参加した
  • 'leave': 参加者が会議から退出した
  • 'start-talking': 参加者が話し始めた
  • 'end-talking': 参加者が話すのをやめた

会議ステータス Webhook のパラメータ

会議ステータスの Webhook には、次の追加パラメータが含まれます。

  • conferenceSid: 会議の一意の識別子
  • friendlyName: アプリケーションで指定された会議の名前
  • event: 報告される会議イベント(例: "join")
  • time: イベントの時刻(ISO 形式、例: "2020-04-27T13:44:17.336Z")
  • members: 会議の現在のメンバー数
  • duration: 会議の現在の長さ(秒)

音声ストリーミング

listen プロパティを使用すると、会議全体のミックス音声を外部の WebSocket サーバーにリアルタイムでストリーミングできます。単独の listen Function(単一の参加者の音声をストリーミングします)とは異なり、これは会議の全参加者のミックス音声をストリーミングします。

{
  "verb": "conference",
  "name": "team-standup",
  "beep": true,
  "listen": {
    "url": "wss://example.com/conference-audio",
    "sampleRate": 8000,
    "metadata": {
      "conferenceId": "team-standup",
      "recordingType": "full-mix"
    }
  }
}

会議が開始されると、仮想参加者(独自のチャネルを持たない)が会議に参加し、ミックス音声を指定された WebSocket URL にストリーミングします。WebSocket 接続は次のものを受信します。

  • バイナリフレーム: 設定されたサンプルレートでの会議ミックスの生の L16 PCM 音声
  • participant-join: 参加者が会議に参加したときに送信される JSON テキストフレーム
  • participant-leave: 参加者が会議から退出したときに送信される JSON テキストフレーム

音声ストリームは会議の開始時に自動的に開始され、会議の終了時に停止します。

双方向音声

この接続は双方向です。WebSocket サーバーから合意されたサンプルレートのバイナリ L16 PCM フレームとして送り返された音声は、会議ミックスに注入され、全参加者に聞こえます。これにより、別の参加者を用意することなく、リモートサービスから TTS、音楽、アナウンス、AI 生成音声を会議に直接再生できます。

動的な制御

通話更新エンドポイントで conf:listen-status コマンドを使用すると、REST API を介して会議の音声ストリーミングを動的に開始および停止することもできます。

{
  "listen_status": "start",
  "url": "wss://example.com/conference-audio",
  "sampleRate": 8000
}

ストリーミングを停止するには:

{
  "listen_status": "stop"
}