通話キューイング

エージェントが同時接続数上限に達した際、発信者を拒否せずキューで待機させます。

概要

エージェントまたはワークスペースが同時接続数上限に達すると、新しい通話は通常すぐに拒否されます。通話キューイングを有効にすると、エージェントが満員のときに着信した発信者は保留音を聞きながら回線上で待機し、枠が空き次第、到着順に自動接続されます。

通話キューイングはエージェントごとに設定し、デフォルトではオフになっています。

通話キューイングは、エージェントでバースト 料金が有効な場合のバースト容量を含め、利用可能なすべての容量が使用中になると適用されます。

通話キューイングの仕組み

  1. 容量の確認:通話が着信すると、ElevenAgentsはエージェントとワークスペースに空きの同時接続枠があるか確認します。空きがあれば、すぐに接続されます。
  2. キューイング:空き枠がない場合、発信者はエージェントのキューで待機し、保留音を聞きます。発信者の待機中は会話は開始されず、課金も発生しません。
  3. 接続:枠が空いた時点で、キューの先頭にいる発信者が接続され、通常どおり会話が開始します。
  4. タイムアウト:Max queue wait time内に枠が空かない場合、通話は切断されます。電話回線の通話は通常どおり切断されます。WebSocketクライアントは、ステータスがtimed_outのqueue_statusイベントを受信した後、コード4300で接続が閉じられます。

特定のエージェントに対する発信者は、到着順に厳密に接続されます。複数のエージェントがワークスペースの同時接続プールを共有する場合は、通常、より長く待機している発信者が先に接続されます。

発信者に聞こえる音声

  • TwilioおよびSIPトランク番号の電話発信者には、通話中に保留音が再生されます。
  • ウィジェットおよびブラウザSDKのユーザーには、ブラウザで保留音が再生されます。ウィジェット(バージョン0.17.0以降)では、待機中のメッセージが表示され、キューに入っている間はテキスト入力も無効になります。
  • 直接WebSocket APIを使用するクライアントは、通常のaudioイベントとして保留音を受信するほか、独自UIで待機状態を制御するためのqueue_statusイベントも受信します。キューイベントの処理を参照してください。

請求と会話時間

キューで待機した時間は課金対象外で、エージェントのMax conversation durationにはカウントされず、会話の報告時間にも含まれません。ダッシュボードの会話詳細には、接続されるまでの発信者の待機時間が表示されます。

対応チャネル

チャネル通話キューイング
Twilio着信通話対応
SIPトランク着信通話対応
ウィジェットおよびクライアントSDK(WebSocketとWebRTC)対応
直接WebSocket API対応
発信通話および一括通話非対応
テキスト専用エージェント非対応
Genesys、AudioCodes、Exotel、WhatsApp、SMS非対応

1日の通話上限はキューに入りません。エージェントの1日の上限を超える通話は、翌日まで上限が回復しないため、 すぐに拒否されます。

設定

通話キューイングは、エージェントのSecurityタブにあるLimitsセクションで、エージェントごとに設定します。

設定説明デフォルト
Enable call queuingエージェントが同時接続数上限に達した場合、発信者をキューで待機させます。オフ
Max queue wait time通話が切断されるまでに発信者が待機できる時間(秒)。1~1,800秒(30分)です。180秒(3分)
Custom hold audioキュー内の発信者にループ再生するMP3またはWAVファイル。最大40MB、長さは3分までです。ファイルをアップロードしていない場合、発信者にはデフォルトの保留音が再生されます。ダッシュボードまたはAPIからアップロードしてください。デフォルトの保留音
1

Limits設定を開く

ダッシュボードでエージェントを開き、Securityタブに移動してLimitsまでスクロールします。

2

通話キューイングを有効化

Enable call queuingをオンに切り替え、Max queue wait timeを設定します。

3

保留音をアップロード(任意)

Custom hold audioでMP3またはWAVファイルをアップロードします。公開前に、デフォルトの保留音とアップロードしたクリップをプレビューできます。

4

変更を公開

Publishをクリックして新しい設定を適用します。

APIによる保留音の管理

MP3またはWAVファイルをアップロードして、エージェントのカスタム保留音を設定します。新しいファイルをアップロードすると、以前のファイルは置き換えられます。APIはaudio/mpegとaudio/wavのコンテンツタイプを受け付けるため、例ではタイプを明示的に設定しています。

from dotenv import load_dotenv
from elevenlabs import ElevenLabs
import os
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
elevenlabs.conversational_ai.agents.hold_audio.create(
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
hold_audio_file=("hold-music.mp3", open("hold-music.mp3", "rb"), "audio/mpeg"),
)

カスタムクリップを削除して、デフォルトの保留音に戻します:

elevenlabs.conversational_ai.agents.hold_audio.delete(
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
)

現在のクリップは、エージェントのplatform_settings.queueing_config.hold_audioとして読み取り専用で返されます。エージェント作成または更新リクエストでhold_audioを送信しても効果はありません。

カスタムWebSocketクライアントでのキューイベント処理

WebSocket API経由で接続したクライアントは、キューで待機している間にqueue_statusイベントを受信します:

{
"type": "queue_status",
"queue_status_event": {
"status": "waiting"
}
}
  • waitingは、conversation_initiation_metadataの直後かつ保留音の前に、一度送信されます。
  • admittedは、発信者が接続されたときに送信されます。その後、会話は通常どおり進行します。
  • timed_outは、待機時間が最大キュー待機時間を超えたときに送信されます。サーバーはその後、コード4300で接続を閉じます。

すぐに接続された通話では、queue_statusイベントは受信されません。このイベントは常にキュー内の発信者に送信され、エージェントのclient_eventsで有効にする必要はありません。

保留音は、エージェントのクライアントイベントにaudioが含まれている場合、通常のaudioイベントとしておよそ1秒ごとのチャンクで配信されます。保留音をエージェントの発話として扱うのではなく、queue_statusを使用して待機状態を表示してください。

@elevenlabs/clientおよび@elevenlabs/react SDKには、現時点ではこのイベント専用のコールバックはありません。 onIncomingEventコールバックを使用して、queue_statusを含む生のサーバーイベントを確認してください。

FAQ

いいえ。キューで待機している発信者は、エージェントに接続されるまで同時接続枠を使用しません。

現在はできません。キューで待機している発信者には保留音のみが再生されます。キュー内の順番や待機時間の推定値は アナウンスされません。

発信者はすぐにキューから離脱し、その後ろにいる全員が1つずつ前に進みます。 会話時間は課金されません。

いいえ。発信通話と一括通話は容量が利用可能な場合にのみ発信されるため、 キューに入ることはありません。