---
title: "Упућивање одлазних позива (API)"
description: "Покрените одлазни позив који води вештачка интелигенција из сопственог кода — за анкете, накнадне контакте или токове потврде."
---

Одлазно позивање вам омогућава да ThunderPhone-у проследите одредишни број и конфигурацију
агента, а да АИ обави позив у ваше име. Типични случајеви употребе:

- Потврде термина
- Повратни позиви за анкете
- Накнадни контакти „из другог покушаја“ после пропуштеног позива
- Обавештења у стилу диспечерске службе

<Note>
  Позивате целу листу? Функција
  [**Кампање**](/sr/guides/outbound-campaigns) на контролној табли
  (`/dashboard/campaigns`) прихвата CSV са контактима и за вас обрађује
  временске прозоре за позивање у складу са временским зонама, истовременост и
  политику поновних покушаја. Ово упутство обухвата појединачне програмске позиве.
</Note>

## Предуслови

<Steps>
  <Step title="Обезбедите VoIP број">
    За одлазно позивање потребно је да поседујете `from_number` преко
    [VoIP везе](/api-reference/voip-connections). ThunderPhone бројеви
    су само за долазне позиве. Погледајте
    [Користите сопствене бројеве](/sr/guides/bring-your-own-numbers).
  </Step>
  <Step title="Направите агента">
    Упит прилагођен одлазним позивима обично почиње тако што се агент
    представља и наводи своју сврху — „Здраво, овде Acme, зовемо да
    потврдимо ваш термин сутра у 15 часова…“ Подесите
    `outbound_speak_order` на `agent_first` (подразумевана вредност).
  </Step>
  <Step title="Одржавајте позитивно стање">
    Одлазни позиви враћају `402 Payment Required` ако је стање ≤
    `$0.00`. Допуните стање путем
    [`POST /v1/billing/top-up`](/api-reference/billing#top-up-balance)
    или омогућите [аутоматску допуну](/api-reference/billing#update-auto-reload).
  </Step>
</Steps>

## Обавите позив са сачуваним агентом

Најједноставнији начин — референцирајте агента према id-ју:

```bash
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
  }'
```

Одговор:

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

<Warning>
  `status: "initiated"` само значи да је захтев прихваћен — позив
  **још није повезан**. Проверавајте
  [`GET /v1/calls/{call_id}`](/api-reference/calls#retrieve-a-call)
  за статус уживо (`in_progress` → `completed` / `failed`).
</Warning>

## Обавите позив са уметнутом конфигурацијом

Ако желите једнократни упит који није вредно сачувати као агента,
уместо тога проследите `config`. Структура одговара шеми одговора за
[`call.incoming` вебхуку](/sr/webhooks/call-incoming):

```bash
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` вебхуку](/sr/webhooks/events) —
то је најбржи начин да сазнате да је позив завршен. Ако не можете да примате долазне
вебхукове, проверавајте `GET /v1/calls/{call_id}` сваких неколико секунди; запис
садржи `end_reason`, `duration_seconds` и URL снимка
када се позив заврши.

## Грешке које вреди обрадити

| Грешка | Решење |
|-------|-----|
| `402 Payment Required` | Допуните стање или омогућите аутоматску допуну |
| `403` одлазни позиви блокирани (ThunderPhone број) | Уместо тога обезбедите VoIP број |
| `403` одлазни позиви блокирани (непроверен VoIP) | Покрените [`POST /v1/phone-numbers/{id}/verify-voip`](/api-reference/phone-numbers#verify-a-voip-sourced-number) |
| `404 from_number is not registered to this organization` | Потврдите да `from_number` одговара броју телефона који поседујете |
| `502 Bad Gateway` | Пролазан SIP / LiveKit квар; безбедно је поновити покушај |

## Управљање временом чекања

Одлазни позиви који предуго трају јер прималац споро одговара
(IVR стабла, редови чекања) могу се ограничити помоћу `max_hold_seconds`:

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

Агент прекида позив ако у последњих N секунди није примио људски аудио. Подразумевана вредност је 900 (15 минута).

---

## Следећи кораци

<CardGroup cols={2}>
  <Card title="Референца за одлазне позиве" icon="phone-arrow-up-right" href="/api-reference/outbound-calls">
    Свако поље захтева и код грешке.
  </Card>
  <Card title="Примите call.complete" icon="bolt" href="/sr/webhooks/call-complete">
    Прослеђујте завршене одлазне позиве у свој систем.
  </Card>
  <Card title="Наплата" icon="credit-card" href="/api-reference/billing">
    Аутоматска допуна како одлазни позиви не би отказали због стања на рачуну.
  </Card>
  <Card title="Тестирајте одлазне агенте" icon="flask" href="/sr/guides/test-agents">
    Извршите пробно покретање одлазног агента пре продукције.
  </Card>
</CardGroup>
