Wipple CPaaS
メニュー
REST API / 通話の作成

通話の作成

POSThttps://{API_ENDPOINT}/v1/Accounts/{AccountSid}/CallsContent-Type: application/json

認証

  • Authorization ヘッダー (ベアラートークン, 必須) — Bearer <token> 形式のベアラー認証です。token にはご自身の認証トークンを指定します。

リクエスト

パスパラメータ

  • AccountSidstring必須

ボディ (application/json)

このエンドポイントはオブジェクトを受け取ります。

  • fromstring必須発信者番号
  • toTarget必須通話の宛先
  • application_sidstring任意この通話の制御に使用するアプリケーション。application_sid と call_hook のいずれかが必須です。
  • answerOnBridgeboolean任意true に設定すると、発信先の番号が応答するまで着信通話は呼び出し中のままとなり、応答した時点で着信レグに 200 OK が送信されます。false の場合、発信通話を発信すると同時に着信通話は即座に応答されます。
  • call_hookWebhook任意
  • call_status_hookWebhook任意
  • fromHoststring任意INVITE の SIP From ヘッダーに設定するホスト名
  • timeoutinteger任意通話の応答を待機する秒数。デフォルトは 60 です。
  • timeLimitinteger任意通話の最大長 (秒)
  • codecslist of string任意発信 INVITE で提示するコーデック名を優先順に指定します。名前の大文字・小文字は区別されません。省略した場合、メディアサーバーはデフォルトのコーデックを提示します。サポートされていない名前が 1 つでも含まれている場合はリスト全体が無視され、エラーがログに記録されてアラートが書き込まれ、デフォルトのネゴシエーションが使用されます。
  • tagobject任意通話に関連付ける顧客提供メタデータの初期セット (Wipple CPaaS の 'tag' Function を参照)
  • headersobject任意通話に関連付ける顧客の SIP ヘッダー
  • sipRequestWithinDialogHookstring任意セッションメッセージを受信するための SIP ダイアログ内フック
  • speech_synthesis_vendorstring任意音声合成 (TTS) のベンダー (application_sid を使用しない場合は必須)
  • speech_synthesis_languagestring任意音声合成 (TTS) の言語 (application_sid を使用しない場合は必須)
  • speech_synthesis_voicestring任意音声合成 (TTS) の音声 (application_sid を使用しない場合は必須)
  • speech_recognizer_vendorstring任意音声認識 (STT) のベンダー (application_sid を使用しない場合は必須)
  • speech_recognizer_languagestring任意音声認識 (STT) の言語 (application_sid を使用しない場合は必須)
  • amdamd任意
  • dual_streamsboolean任意true に設定すると、Wipple CPaaS は SDP オファーに 1 つではなく 2 つのオーディオメディアストリーム (2 つの m=audio 行) を含む発信 INVITE を生成します。対向側 (キャリアや録音システムなど) が着信音声と発信音声を別々の RTP ストリームで受け取る必要がある場合に有用です。デフォルトは false です。REST API 経由で通話を作成する場合にのみサポートされます (dial Function からは使用できません)。

レスポンス

201

通話が正常に作成されました

  • sidstring必須

エラー

400 Bad Request Error

不正なリクエスト

  • any

型定義

Target

  • typeenum必須
  • 指定可能な値: phone, sip, user, teams
  • numberstring任意発信先の電話番号 (type が phone の場合)
  • sipUristring任意発信先の SIP URI (type が sip の場合)
  • tenantstring任意Microsoft Teams の顧客テナントドメイン名 (type が teams の場合)
  • trunkstring任意この通話の配信に使用するキャリアの名前 (type が phone の場合)
  • vmailboolean任意ユーザーのボイスメールに直接発信してメッセージを残します (MS Teams のみ)
  • overrideTostring任意指定した場合、発信 INVITE の To ヘッダーとして使用される SIP URI (ほとんどの場合は不要)
  • namestring任意発信先となる登録済み Wipple CPaaS ユーザーの名前 (type が user の場合)
  • authTargetAuth任意
  • proxystring任意発信 INVITE に使用する SIP プロキシ

Webhook

  • urlstring必須
  • webhook_sidstring任意
  • methodenum任意
  • 指定可能な値: get, post
  • usernamestring任意
  • passwordstring任意

amd

  • actionHookstring任意AMD イベントの送信先 Webhook。
  • thresholdWordCountdouble任意amd_machine_detected の結果となる、挨拶内の発話単語数。
  • digitCountdouble任意amd_machine_detected の結果をトリガーする、挨拶内の数字の個数。0 で無効
  • timersAmdTimers任意

TargetAuth

  • usernamestring任意チャレンジされた場合に SIP 認証で使用するユーザー名
  • passwordstring任意チャレンジされた場合に SIP 認証で使用するパスワード

AmdTimers

  • decisionTimeoutMsdouble任意デフォルト: 15000amd_decision_timeout を返すまでに待機する時間 (ミリ秒)。
  • greetingCompletionTimeoutMsdouble任意デフォルト: 2000挨拶中に amd_machine_stopped_speaking を返すまでに待機する無音時間 (ミリ秒)。
  • noSpeechTimeoutMsdouble任意デフォルト: 5000amd_no_speech_detected を返すまでに発話を待機する時間 (ミリ秒)。
  • toneTimeoutMsdouble任意デフォルト: 20000トーンの検出を待機する時間 (ミリ秒)。

例

リクエスト

{
  "from": "815099990001",
  "to": {
    "type": "phone",
    "number": "+815099990003"
  }
}

レスポンス

{
  "sid": "2531329f-fb09-4ef7-887e-84e648214436"
}

cURL

curl -X POST "https://{API_ENDPOINT}/v1/Accounts/AccountSid/Calls" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "815099990001",
  "to": {
    "type": "phone",
    "number": "+815099990003"
  }
}'

Python

import requests

url = "https://{API_ENDPOINT}/v1/Accounts/AccountSid/Calls"

payload = {
    "from": "815099990001",
    "to": {
        "type": "phone",
        "number": "+815099990003"
    }
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())

JavaScript

const url = 'https://{API_ENDPOINT}/v1/Accounts/AccountSid/Calls';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"from":"815099990001","to":{"type":"phone","number":"+815099990003"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}