Blogs
/
多くのチームが見落とす音声AIの負荷テスト:通話の終了処理

多くのチームが見落とす音声AIの負荷テスト:通話の終了処理

8
 MIN READ
October 15, 2026
多くのチームが見落とす音声AIの負荷テスト:通話の終了処理
ブログ一覧へ戻る
Add Retell AI as a preferred source on Google
このページの目次
トップへ戻る

多くの音声AIの負荷テストが確認するのは「ピーク時に通話はつながるか」という1つの問いです。しかし、同じくらい重要な2つ目の問いがあります。通話が終わったとき、本当に終了しているかどうかです。

終了しない通話は、音声AIプラットフォーム上の同時通話枠、SIPトランクのチャネル、そして多くの場合コンタクトセンタープラットフォームのポートやシートを占有し続けます。誰も話していないにもかかわらずです。ピーク時には、こうした通話が数十件あるだけで、通話量は通常に見えても上限に達してしまうことがあります。

本ガイドでは、負荷テストのうち通話終了の側面を扱います。負荷時のレイテンシ、精度、スループットについては、音声エージェントの負荷テストに関するガイドをご覧ください。

音声AIの通話における「通話の終了」とは?

通話が終了したといえるのは、その通話のすべてのレグが、経由したすべてのシステムで解放されたときです。対象は発信者のレグ、転送レグ、AIエージェントのセッションです。

SIP通話では、終了はシグナリングイベントです。一方がBYEメッセージを送り、もう一方が200 OKで応答し、各システムがチャネルを解放します。呼び出されたものの応答されなかったレグは、CANCELで解除されます。

音声AIの導入では、次の3つが満たされている必要があります。

  • 両方のレグが切断される。発信者または相手側が切断したとき、もう一方のレグも解放され、無音のまま開いた状態で残らないこと。
  • 転送が完了する。転送は接続されるか正常に失敗するかのいずれかであり、どちらの場合もAIのレグが離脱すること。
  • すべてのシステムの認識が一致する。キャリア、セッションボーダーコントローラー(SBC)またはコンタクトセンタープラットフォーム、音声AIプラットフォームのすべてで、通話が終了として表示されること。

Retell では、終了した通話のステータスはendedとなり、user_hangup、agent_hangup、call_transferなどの切断理由が記録されます。進行中の通話のステータスはongoingで、現在の同時通話数にカウントされるのはこの進行中の通話です。

なぜ転送によって通話が開いたまま残るのか?

転送は1つの通話を2つ以上のレグに分け、多くの場合2つのプラットフォームにまたがります。そのため、あるレグでの切断は他のレグにも伝わる必要があります。このシグナルが失われたり無視されたりすると、誰もいないレグが残り続けます。

自社の構成で確認すべきパターンは次のとおりです。

  • AIへのブラインド転送。多くのコンタクトセンターは既存のプラットフォームで通話制御を保持し、発信者をAIエージェントの番号へブラインド転送します。発信者が切断しても、その切断が転送をまたいで伝わらなければ、AIのレグは動作し続けます。AIが通話を終了しても、自社のプラットフォームが自分側を解放しなければ、そのポートは使用中のままになります。
  • AIからのコールドトランスファー。AIエージェントは通話を引き渡した時点ですぐに離脱します。Retell は2つのSIP方式に対応しています。SIP INVITEは転送をブリッジし、SIP REFERは通話の相手側(通常はキャリアやトランク)に転送先への別の通話を開始するよう要求します。REFERはプロバイダーが許可している場合にのみ機能します。
  • ウォームトランスファー(事前取次)とエージェント型ウォームトランスファー。エージェントは発信者を保留にしたまま転送先に発信するため、2つのアクティブなレグが同時に存在します。転送先が応答しない場合、その試行はタイムアウトし、両側をクリーンアップする必要があります。
  • 独自の転送ロジック。音声AIプラットフォームが番号を制御していない場合(例:Retell のdial-to-SIP方式)、転送と通話終了は独自のカスタム関数で実行されるため、通話の終了はコード側の責任になります。

各タイプにおける発信者側の体験については、AI音声エージェントと人間のチーム間で通話転送がどのように機能するかとウォームトランスファーガイドをご覧ください。

ピーク時に開いたままの通話はどれだけのコストになるか?

開いている間、同時通話枠を1つ占有します。同時通話数は同時にアクティブな通話の数であり、空の通話も実際の通話と同じようにカウントされます。

計算は単純です:任意の時点での余分なオープン通話数=1時間あたりの終了に失敗した通話数×各通話が開いたままの時間(時間)

シナリオ(例示であり、実測値ではありません)1時間あたりの終了失敗数各通話が開いたままの時間任意の時点での余分なオープン通話数
時折の不具合、短い無音タイムアウト610分1
時折の不具合、1時間の通話時間上限のみ660分6
1時間あたり60件の転送を処理する、設定ミスのある転送ルート1つ6060分60

3行目は、ピーク時に数十件のファントム通話が発生する典型例です。転送をまたいで切断が伝わらないといった1つの設定問題が、転送されるすべての通話に影響します。

その容量は無料ではありません。Retell では、最初の20件の同時通話が含まれており、追加容量は同時通話1件あたり月額$8です(料金を参照)。ワークスペースが上限に達すると、新しい着信は空き枠を約40秒待ち、その後、電話番号にフォールバック番号が設定されていればそちらに回され、設定されていなければconcurrency_limit_reachedで終了します。新しい発信は、concurrency burstが有効でない限り拒否されます。ピーク時には、滞留した通話が実際の発信者を締め出してしまいます。

同じ計算はトランクのチャネルやコンタクトセンターのライセンスにも当てはまりますが、これらは音声AIプラットフォームからは見えません。

負荷テスト中に通話の終了をテストするには?

すべての終了パターンで、ピーク時のレートで意図的にすべての通話を終了させ、各システムのアクティブ通話数がゼロに戻ることを確認します。

終了マトリクスを実行する

終了パターンテストでのトリガー方法AI側で期待される結果あわせて確認すること
発信者が会話の途中で切断テスト発信者がランダムなタイミングで切断ended、user_hangupキャリアとコンタクトセンターのチャネルが解放される
エージェントが通話を終了End Callツールの条件を満たす別れの挨拶をスクリプト化ended、agent_hangup自社のプラットフォームがBYEを受信し、ポートを解放する
コールドトランスファー後に発信者が切断転送後、発信者を切断ended、call_transfer転送先のレグも解放される
コールドトランスファー後に転送先が切断転送後、転送先を切断ended、call_transfer発信者のレグも解放される
ウォームトランスファーが接続された後、どちらかが切断転送先で応答し、片側を切断transfer_bridged、続いてtransfer_endedのwebhook保留のまま残るレグがない
転送に応答なし転送の呼び出し時間を超えて転送先を鳴らし続けるtransfer_cancelled webhookCANCELが送信され、呼び出し中のレグが残らない
保留中に発信者が切断ウォームトランスファー中に発信者を切断通話が終了転送先への事前取次のレグが解放される
無音の回線テスト発信者が無言のままended、inactivity終了までの時間が無音設定と一致する

転送webhookはデフォルトでオフです。テストでは、エージェントのwebhookイベントにtransfer_started、transfer_bridged、transfer_cancelled、transfer_endedを追加してください。

ドレインテストを実行する

ピークまでのランプアップ後、新しい通話の発信を止め、カウンターが下がるのを確認します。Retell のGet Concurrency APIを数秒ごとにポーリングします。このAPIはcurrent_concurrency(進行中の通話数)を返します。この値は、スクリプト化した最長の通話時間以内にゼロに達するはずです。同じタイミングでSBC、コンタクトセンター、トランクのカウントも確認します。高いままのカウンターがあればそこがリークであり、それを保持しているシステムから、どちら側が解放していないかがわかります。

突き合わせと調査

  • すべてのcall_started webhookには、対応するcall_endedがあるはずです。すべてのtransfer_startedには、transfer_endedまたはtransfer_cancelledがあるはずです。
  • ドレイン後、List Calls APIでcall_statusフィルターをongoingに設定し、残っている通話を見つけます。
  • 残っている通話をCall Historyで開き、利用可能な場合はPacket Captureタブを確認します。SIPラダーで、どちらがBYEまたはCANCELを送信したか、相手側が応答したかを確認します。

本番稼働後に監視すべき項目は?

通話量が減っても高いままの同時通話数、タイムアウトによって終了する通話の増加、転送失敗に注意してください。

  • 通話量に対する同時通話数。Retell のアラートルールでは、concurrency_used(期間内のピーク同時通話数)とcall_count(期間内に終了した通話数)を並べて監視できます。終了した通話数が横ばいのまま同時通話数が上昇している場合、通話が終了していません。
  • 転送失敗。transfer_call_failure_countにアラートを設定します。
  • タイムアウトによる終了。Call Historyで切断理由によりフィルタリングします。転送後にinactivityやmax_duration_reachedの割合が増えている場合、切断ではなく安全策のタイムアウトが通話を終了させていることを意味します。
  • 長時間続く通話。Live Monitoringには、進行中のすべての通話がリアルタイムで更新される通話時間とともに表示されます。実際の最長の会話よりはるかに長い通話は要注意です。Live MonitoringまたはStop Call APIから終了できます。
  • システム間のカウント。AIプラットフォーム、トランク、コンタクトセンターのアクティブ通話数は連動して動くはずです。

通話が終了しない場合に被害を抑える設定は?

タイムアウトです。壊れたシグナリングを修正するものではありませんが、滞留した通話が枠を占有できる時間に上限を設けます。

設定Retell のデフォルト範囲通話終了において重要な理由
End Callツールオフ:エージェントは自ら通話を終了しない自分で定義する条件これがない場合、通話は発信者が切断するかタイムアウトが発動したときにのみ終了する
無音時に通話を終了10分最小10秒無音のまま途切れたレグは、この時間が経過すると終了する
最大通話時間1時間1分〜2時間あらゆる通話に対する最後の上限
転送の呼び出し時間エージェントの呼び出し時間(30秒)転送ごとに5〜90秒応答のない転送の試行を打ち切る
ウォームトランスファーでの担当者応答の待機時間30秒設定可能キューで人間の担当者を待つ時間を制限する

無音と通話時間の上限は、実際の通話時間に近い値に設定してください。デフォルトのままでは、無音のまま途切れたレグが10分間枠を占有する可能性があり、無音タイマーで検出されないものは最大1時間占有する可能性があります。

ベンダーと電話システムチームに確認すべきことは?

ローンチ前に書面で回答を得てください。

  1. ブラインド転送された通話で発信者が切断したとき、どのシステムがAIのレグにBYEを送信しますか?また、それはピーク時にテスト済みですか?
  2. AIが通話を終了したとき、コンタクトセンタープラットフォームはすぐにポートを解放しますか?
  3. 転送が接続されAIエージェントが離脱した後も、両者が切断するまで、その通話は音声AIプラットフォームの同時通話数にカウントされますか?
  4. SIPトランクはSIP REFERを許可していますか?許可していない場合、どの転送方式を使うべきですか?
  5. キャリア、SBC、コンタクトセンター、音声AIプラットフォームのすべてのホップから、テスト通話のパケットキャプチャを取得できますか?

リリース判定に通話終了を組み込む

「テスト後に同時通話数がゼロに戻ること」を合否基準として扱ってください。終了マトリクスとドレインテストをローンチ前に実行し、転送設定、電話番号、通話ルーティングを変更するたびに再度実行します。

Retell は必要な要素を提供しています。呼び出し・待機タイムアウト付きのコールド、ウォーム、エージェント型ウォームの通話転送、転送webhook、通話ごとの切断理由、パケットキャプチャ、リアルタイムの同時通話API、同時通話数と転送失敗に関するアラートです。ピーク時の同時通話数が多いコンタクトセンターへの展開を計画している場合は、Retell Enterpriseプランで同時通話数の高い上限と専任サポートが追加されます。

関連記事:負荷テストが実際の通話経路に沿うべき理由、発信用電話番号チェックリスト、その他のガイドはRetell Learnハブでご覧いただけます。

ROI計算ツール
通話の自動化によるROIを試算

AI搭載の音声エージェントに切り替えることで、あなたのビジネスがどれだけ節約できるかをご確認ください。

完了しました! 
送信内容がメールに届いています
エラーが発生しました。フォームの送信中に問題が起きました。
   1
   8
20
エラーが発生しました。フォームの送信中に問題が起きました。

ROI結果

2,000

Total Human Agent Cost

$5,000
/month

AI Agent Cost

$3,000
/month

Estimated Savings

$2,000
/month
ライブデモ
ライブデモを試す

Retell クリニックオフィスのデモ電話番号

ありがとうございます!送信が完了しました!
エラーが発生しました。フォームの送信中に問題が起きました。

Read Other Blogs

Revolutionize your call operation with Retell