API リファレンス

通話

通話を終了beta

この機能はクローズドベータ版です。ワークスペースでの利用を希望する場合は、テクニカルサポートにお問い合わせください。

現在は WhatsApp の1対1音声・ビデオ通話のみ対応しています。 account_id と call_id で通話を終了します。ID が不明な場合は現在の通話を取得してください。

POSThttps://api.unifyport.ai/v1/calls/{call_id}/hangup

対応チャネル

WhatsApp

呼び出す前に

対象ワークスペースの X-Api-Key をサーバー側で使用します。実行前にすべてのプレースホルダーを置き換えます。

ワークスペースの非公開ベータ利用資格を確認します。通話作成前に WhatsApp の認証を完了し、runtime_status=running を確認してください。相手には現在のアカウントに属する個人会話の conversation_id を使います。

パラメーターの取得元
account_id
アカウント作成・取得応答の data.id を使います。識別子は X-Api-Key のワークスペースに属します。 アカウント取得
call_id
このアカウントの通話作成または現在の通話取得で返された call_id を使います。紛失した場合は、切断前に現在の通話を取得します。 現在の通話を取得

リクエストパラメータ

ヘッダー

X-Api-Key
string必須

ワークスペース API キー。このヘッダーからワークスペースを特定します。

Content-Type
string必須

JSON のリクエストボディを送る場合は application/json を使用します。

パスパラメータ

call_id
string必須

calls ルートで使用される識別子。

maxLength: 128 · pattern: ^[A-Za-z0-9][A-Za-z0-9_-]*$

リクエストボディ

account_id
string必須

現在のワークスペースのアカウント ID。

pattern: ^acc_[A-Za-z0-9][A-Za-z0-9_-]*$

結果の確認

返された call_id と state を確認します。ended と failed はどちらも通話の終端状態で、再度の切断は既存の終端状態を返す場合があります。HTTP 200 を必ず state=ended と解釈せず、state=failed だけを理由に自動再試行しないでください。

レスポンス 200 · 200

{
  "request_id": "req_example",
  "data": {
    "call_id": "call_example",
    "state": "ended",
    "direction": "outbound",
    "media_type": "voice"
  }
}

レスポンスボディ

call_id
string

通話 ID。切断にも使用します。

maxLength: 128

state
string

現在の通話状態。

enum: ended, failed

direction
string

通話の方向。

enum: inbound, outbound

media_type
string

voice は音声、video はビデオ対応通話。

enum: voice, video

レスポンス

200

200 · 200

リクエスト成功。レスポンスボディの例を参照してください。

400

Bad Request

リクエストボディ、パス、またはパラメータが不正です。

401

Unauthorized

X-Api-Key ヘッダが欠落しているか無効です。

403

Forbidden

リクエストは識別されましたが、この操作は許可されていません。

404

Not Found

要求されたリソースが見つかりません。error.code と現在の操作を合わせて確認してください。

409

Conflict

要求された操作が、既存のプロバイダアカウントまたはリソースと競合しています。

500

Internal Server Error

サービスで予期しないエラーが発生しました。

501

Not Implemented

選択したプロバイダはこの操作を実装していません。

502

Bad Gateway

プロバイダアダプタまたは上流サービスが操作を完了できませんでした。

503

Service Unavailable

必要なバックエンドサービスが一時的に利用できません。

失敗時の対応

HTTP 状態と error.code/numeric_code を確認し、request_id を保存します。ベータ資格、アカウント、call_id を確認します。作成が競合した場合は現在の通話を取得し、作成や切断の再試行前に状態を確認してください。 エラーリファレンス

invalid_request · 10000 · 400
必須項目、形式、チャネルの条件を確認して修正します。
missing_api_key · 11000 · 401
X-Api-Key とワークスペースの有効性を確認します。
invalid_api_key · 11001 · 401
X-Api-Key とワークスペースの有効性を確認します。
account_not_found · 20020 · 404
account_id を確認し、アカウントが属するワークスペースの X-Api-Key を使います。このワークスペースにないアカウントには現在のキーでアクセスできません。
unsupported_by_provider · 30003 · 501
チャネル能力ガイドを確認し、対応するチャネルまたは操作を選びます。再送しても対応範囲は変わりません。
beta_feature_not_enabled · 41002 · 403
技術サポートにワークスペースの非公開ベータ利用を申請します。再送やリクエスト内の is_beta の変更では利用資格は得られません。
call_not_found · 38003 · 404
HTTP 状態と error.code/numeric_code を確認し、request_id を保存します。ベータ資格、アカウント、call_id を確認します。作成が競合した場合は現在の通話を取得し、作成や切断の再試行前に状態を確認してください。