---
title: "Opravljanje odhodnih klicev (API)"
description: "Iz lastne kode sprožite odhodni klic z umetno inteligenco – za ankete, nadaljnje korake ali potrditev."
---

Odhodno klicanje vam omogoča, da ThunderPhone posredujete ciljno številko in
konfiguracijo agenta, AI pa v vašem imenu opravi klic. Običajni primeri uporabe:

- Potrditve terminov
- Povratni klici za ankete
- Nadaljnji stiki ob »drugem poskusu« po zgrešenemu klicu
- Obvestila v slogu dispečerskega sistema

<Note>
  Kličete celoten seznam? Funkcija
  [**Kampanje**](/sl/guides/outbound-campaigns) na nadzorni plošči
  (`/dashboard/campaigns`) sprejme CSV s stiki ter namesto vas upravlja
  časovna okna za klicanje, prilagojena časovnim pasovom, sočasnost in
  pravilnik ponovnih poskusov. Ta vodnik obravnava posamezne programske klice.
</Note>

## Predpogoji

<Steps>
  <Step title="Zagotovite VoIP-številko">
    Za odhodno klicanje morate imeti v lasti `from_number` prek
    [povezave VoIP](/api-reference/voip-connections). Številke ThunderPhone
    so samo za dohodne klice. Glejte
    [Uporabite lastne številke](/sl/guides/bring-your-own-numbers).
  </Step>
  <Step title="Ustvarite agenta">
    Poziv, prilagojen odhodnim klicem, se običajno začne tako, da se agent
    predstavi in navede svoj namen — »Pozdravljeni, kliče Acme, da potrdi
    vaš jutrišnji termin ob 15.00 …« Nastavite
    `outbound_speak_order` na `agent_first` (privzeta vrednost).
  </Step>
  <Step title="Ohranite pozitivno stanje">
    Odhodni klici vrnejo `402 Payment Required`, če je stanje ≤
    `$0.00`. Dobroimetje napolnite prek
    [`POST /v1/billing/top-up`](/api-reference/billing#top-up-balance)
    ali omogočite [samodejno ponovno nalaganje](/api-reference/billing#update-auto-reload).
  </Step>
</Steps>

## Opravite klic s shranjenim agentom

Najpreprostejša možnost — sklicujte se na agenta po ID-ju:

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

Odgovor:

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

<Warning>
  `status: "initiated"` pomeni le, da je bila zahteva sprejeta — klic
  **še ni povezan**. Preverjajte
  [`GET /v1/calls/{call_id}`](/api-reference/calls#retrieve-a-call)
  za stanje v živo (`in_progress` → `completed` / `failed`).
</Warning>

## Opravite klic z vgrajeno konfiguracijo

Če želite enkraten poziv, ki ga ni vredno shraniti kot agenta,
namesto tega posredujte `config`. Oblika ustreza shemi odgovora za
[`call.incoming` webhook](/sl/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"
    }
  }'
```

## Spremljajte klic

Vzporedno se naročite na
[`telephony.complete` webhook](/sl/webhooks/events) —
to je najhitrejši način, da izveste, da se je klic končal. Če ne morete
sprejemati dohodnih webhookov, vsakih nekaj sekund preverjajte `GET /v1/calls/{call_id}`; zapis
po koncu klica vključuje `end_reason`, `duration_seconds` in URL posnetka.

## Načini napak, ki jih je vredno obravnavati

| Napaka | Rešitev |
|-------|-----|
| `402 Payment Required` | Napolnite dobroimetje ali omogočite samodejno ponovno nalaganje |
| `403` odhodno klicanje blokirano (številka ThunderPhone) | Namesto tega zagotovite VoIP-številko |
| `403` odhodno klicanje blokirano (nepreverjen VoIP) | Zaženite [`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` | Potrdite, da se `from_number` ujema s telefonsko številko, ki je v vaši lasti |
| `502 Bad Gateway` | Prehodna napaka SIP / LiveKit; ponovni poskus je varen |

## Nadzor časa čakanja

Odhodne klice, ki trajajo dolgo, ker se klicana oseba počasi odziva
(drevesa IVR, čakalne vrste), lahko omejite z `max_hold_seconds`:

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

Agent prekine klic, če v zadnjih N sekundah ni prejel človeškega zvoka. Privzeta vrednost je 900 (15 minut).

---

## Naslednji koraki

<CardGroup cols={2}>
  <Card title="Referenca za odhodne klice" icon="phone-arrow-up-right" href="/api-reference/outbound-calls">
    Vsako polje zahteve in koda napake.
  </Card>
  <Card title="Prejem call.complete" icon="bolt" href="/sl/webhooks/call-complete">
    Dokončane odhodne klice pretakajte v svoj sistem.
  </Card>
  <Card title="Obračunavanje" icon="credit-card" href="/api-reference/billing">
    Samodejno ponovno nalaganje, da odhodni klici nikoli ne odpovejo zaradi stanja.
  </Card>
  <Card title="Preizkusite odhodne agente" icon="flask" href="/sl/guides/test-agents">
    Pred produkcijo izvedite poskusni zagon svojega odhodnega agenta.
  </Card>
</CardGroup>
