Извършвайте изходящи обаждания (API)

Изходящите обаждания ви позволяват да подадете номер на получател и конфигурация на агент към ThunderPhone, а ИИ да осъществи обаждането от ваше име. Типични случаи на употреба:

Предварителни изисквания

  1. Осигурете VoIP номер

    За изходящи обаждания трябва да притежавате from_number чрез VoIP връзка. Демо номерата са само за входящи обаждания. Вижте Използване на собствени номера.

  2. Създайте агент

    Подканата за изходящи обаждания обикновено започва с това агентът да се представи и да посочи целта си — „Здравейте, обажда се Acme, за да потвърдим вашата среща за утре в 15:00 ч.…“ Задайте outbound_speak_order на agent_first (по подразбиране).

  3. Поддържайте положителен баланс

    Изходящите обаждания връщат 402 Payment Required, ако балансът е ≤ $0.00. Заредете средства чрез POST /v1/billing/top-up или активирайте автоматично презареждане.

Осъществете обаждане със запазен агент

Най-лесният начин — посочете агент чрез идентификатор:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "agent_id":    12
  }'

Отговор:

{ "call_id": 987654321, "status": "initiated" }

Осъществете обаждане с вградена конфигурация

Ако искате еднократна подкана, която не си заслужава да бъде запазена като агент, подайте вместо това config. Структурата съответства на схемата на отговора на call.incoming webhook:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'

Проследете обаждането

Успоредно с това се абонирайте за telephony.complete webhook — това е най-бързият начин да разберете, че обаждането е приключило. Ако не можете да приемате входящи webhook събития, проверявайте GET /v1/calls/{call_id} на всеки няколко секунди; записът включва end_reason, duration_seconds и URL адреса на записа, след като обаждането приключи.

Грешки, които си струва да обработвате

ГрешкаРешение
402 Payment RequiredЗаредете баланс или активирайте автоматично презареждане
403 изходящите обаждания са блокирани (демо номер)Вместо това осигурете VoIP номер
403 изходящите обаждания са блокирани (непотвърден VoIP)Изпълнете POST /v1/phone-numbers/{id}/verify-voip
404 from_number is not registered to this organizationПотвърдете, че from_number съответства на телефонен номер, който притежавате
502 Bad GatewayВременна грешка в SIP / LiveKit; безопасно е да опитате отново

Управление на времето на изчакване

Изходящите разговори, които се проточват, защото отсрещната страна отговаря бавно (IVR дървета, опашки), могат да бъдат ограничени с max_hold_seconds:

{
  "from_number": "+15551234567",
  "to_number":   "+14155550199",
  "agent_id":    12,
  "max_hold_seconds": 120
}

Агентът прекратява разговора, ако през последните N секунди не е получен човешки звук. Стойността по подразбиране е 900 (15 минути).


Следващи стъпки