---
title: "Veiciet izejošos zvanus (API)"
description: "Aktivizējiet MI vadītu izejošo zvanu no sava koda — aptaujām, pēcpārbaudei vai apstiprināšanas plūsmām."
---

Izejošie zvani ļauj nodot ThunderPhone galamērķa numuru un balss aģenta
konfigurāciju, lai AI veiktu zvanu jūsu vārdā. Tipiski lietojuma gadījumi:

- Tikšanās apstiprinājumi
- Atkārtoti zvani aptaujām
- Atkārtota saziņa pēc neatbildēta zvana
- Dispečera tipa paziņojumi

<Note>
  Vai zvanāt visam sarakstam? Informācijas paneļa
  funkcija [**Kampaņas**](/lv/guides/outbound-campaigns)
  (`/dashboard/campaigns`) pieņem kontaktu CSV failu un jūsu vietā pārvalda
  zvanīšanas laika logus, ņemot vērā laika joslas, paralēlos zvanus un
  atkārtotu mēģinājumu politiku. Šajā ceļvedī ir aprakstīti atsevišķi
  programmatiski zvani.
</Note>

## Priekšnosacījumi

<Steps>
  <Step title="Izvēlieties numuru, no kura var veikt izejošos zvanus">
    Izmantojiet numuru, kas jums pieder, izmantojot
    [VoIP savienojumu](/api-reference/voip-connections), vai pieprasiet atļauju
    izmantot savus ThunderPhone numurus izejošajiem zvaniem lapā Phone Numbers.
    ThunderPhone numuri sākotnēji ir paredzēti tikai ienākošajiem zvaniem. ThunderPhone katru
    pieprasījumu pārskata manuāli; pēc apstiprināšanas ar šiem numuriem var veikt zvanus līdz
    apstiprinātajam dienas limitam (tas tiek atiestatīts plkst. 00:00 UTC) un palaist kampaņas,
    un jūs varat pieprasīt lielāku limitu. Klientu VoIP numuriem nav dienas limita, tāpēc mēs tos iesakām
    izejošajiem zvaniem. Skatiet
    [Izmantojiet savus numurus](/lv/guides/bring-your-own-numbers).
  </Step>
  <Step title="Izveidojiet aģentu">
    Izejošajiem zvaniem pielāgota uzvedne parasti sākas ar to, ka balss aģents
    nosauc sevi un zvana mērķi — "Labdien, zvana Acme, lai
    apstiprinātu jūsu rītdienas vizīti plkst. 15.00…" Iestatiet
    `outbound_speak_order` uz `agent_first` (noklusējuma vērtība).
  </Step>
  <Step title="Uzturiet pozitīvu atlikumu">
    Izejošie zvani atgriež `402 Payment Required`, ja atlikums ir ≤
    `$0.00`. Papildiniet atlikumu vai iespējojiet automātisko papildināšanu sadaļā
    **Organization → Billing Settings** informācijas panelī. Jūsu `sk_live_`
    atslēga var pārbaudīt atlikumu ar
    [`GET /v1/billing`](/api-reference/billing#get-billing-account), bet
    nevar papildināt atlikumu vai mainīt automātisko papildināšanu.
  </Step>
</Steps>

## Veiciet zvanu ar saglabātu balss aģentu

Vienkāršākais veids — norādiet balss aģentu pēc 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":   "+14155552671",
    "agent_id":    12
  }'
```

Atbilde:

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

<Warning>
  `status: "initiated"` nozīmē tikai to, ka pieprasījums tika pieņemts — zvans
  **vēl nav savienots**. Pieprasiet
  [`GET /v1/calls/{call_id}`](/api-reference/calls#retrieve-a-call),
  lai iegūtu aktuālo statusu (`in_progress` → `completed` / `failed`).
</Warning>

## Veiciet zvanu ar iekļautu konfigurāciju

Ja vēlaties vienreizēju uzvedni, kuru nav vērts saglabāt kā balss aģentu,
tā vietā nododiet `config`. Struktūra atbilst
[`call.incoming` tīmekļa āķa](/lv/webhooks/call-incoming)
atbildes shēmai:

```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":   "+14155552671",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'
```

## Sekojiet līdzi zvanam

Vienlaikus abonējiet
[`telephony.complete` tīmekļa āķi](/lv/webhooks/events) —
tas ir ātrākais veids, kā uzzināt, ka zvans ir beidzies. Ja nevarat pieņemt ienākošos
tīmekļa āķus, ik pēc dažām sekundēm periodiski pieprasiet `GET /v1/calls/{call_id}`; 
ierakstā pēc zvana beigām ir pieejami `end_reason`, `duration_seconds` un ieraksta
URL.

Ja jūsu balss aģents ir konfigurēts strukturētu datu iegūšanai pēc zvana,
šie dati tiek piegādāti atsevišķi pēc pabeigšanas procesa noslēguma.

### Nododiet katra zvana mainīgos saglabātam balss aģentam

Saglabātie balss aģenti uzvednes tekstā var izmantot vietturus, piemēram, `{{name}}` vai `{{name|there}}`.
Veicot izejošo zvanu ar `agent_id`, nododiet `variables` ar šī zvana
vērtībām:

```json
{
  "from_number": "+[REDACTED_PHONE]",
  "to_number": "+[REDACTED_PHONE]",
  "agent_id": 12,
  "variables": {
    "name": "Jordan"
  }
}
```

Izmantojiet virkņu vērtības, kuru atslēgas atbilst vietturu nosaukumiem. Šie mainīgie attiecas uz
saglabātajiem balss aģentiem; šīs rokasgrāmatas iekļautajā `config` piemērā tie netiek izmantoti.

## Kļūmju režīmi, kurus vērts apstrādāt

| Kļūda | Risinājums |
|-------|-----|
| `402 Payment Required` | Papildiniet bilanci vai iespējojiet automātisko papildināšanu |
| `400` ar `code: destination_not_allowed` | ThunderPhone nezvana uz šo numuru: nederīgi numuri, ārkārtas palīdzības numuri, paaugstinātas maksas numuri, īsie kodi vai sankcionētu valstu numuri. No ThunderPhone numuriem var zvanīt tikai uz parastajiem ASV un Kanādas numuriem (ne uz paaugstinātas maksas numuriem). `reason` norāda, kurš no tiem; skatiet [bloķētos galamērķus](/api-reference/outbound-calls#blocked-destinations) |
| `409` ar `retryable: false` ThunderPhone numuram | Rīkojieties atbilstoši `code`: pieprasiet izejošo zvanu iespēju lapā Tālruņa numuri, gaidiet, līdz tiek pabeigta izskatīšana, vai izmantojiet citu atbilstošu numuru |
| `429` ar `code: platform_outbound_daily_limit_reached` | Organizācija ir izmantojusi šodienas izejošo zvanu limitu no ThunderPhone numuriem. Gaidiet līdz `resets_at` (00:00 UTC), pieprasiet lielāku limitu lapā Tālruņa numuri vai zvaniet no numura savā VoIP savienojumā |
| `429` ar `code: concurrent_call_limit_reached` | Organizācijai vienlaikus notiek tik zvanu, cik atļauj tās [vienlaicīgo zvanu limits](/api-reference/introduction#call-limits) (pēc noklusējuma 20, ieskaitot ienākošos, izejošos, tīmekļa un testa zvanus). Mēģiniet vēlreiz pēc `Retry-After` galvenē norādītā sekunžu skaita vai pēc zvana beigām; rakstiet uz support@thunderphone.com, lai palielinātu limitu |
| `429` ar `code: same_number_too_soon` | Jūs zvanījāt uz to pašu `to_number` mazāk nekā pirms 10 sekundēm. Mēģiniet vēlreiz pēc `Retry-After` galvenē norādītā sekunžu skaita |
| `409` ar `retryable: false` klienta VoIP numuram | Novērsiet `code` norādīto stāvokli; verifikācijas kļūmju gadījumā izpildiet [`POST /v1/phone-numbers/{id}/verify-voip`](/api-reference/phone-numbers#verify-a-voip-sourced-number) |
| `409` idempotences konflikts | Izmantojiet atslēgu atkārtoti tikai ar sākotnējo normalizēto pieprasījumu vai nosūtiet jaunu atslēgu |
| `404 from_number is not registered to this organization` | Pārliecinieties, vai `from_number` atbilst aktīvam tālruņa numuram jūsu organizācijā. Šo atbildi atgriež arī numurs, kura aktivizēšana jau notiek, ir neizdevusies, tiek atbrīvots vai ir atbrīvots |
| `500` tikai ar lauku `detail` | Nav konfigurēts neviens izejošais tranks. Sazinieties ar atbalsta dienestu; tā nav numura stāvokļa problēma, ko varat novērst |
| `502 Bad Gateway` | Pārejoša SIP / LiveKit kļūme; varat droši mēģināt vēlreiz |

Skatiet [izejošo zvanu atsauci](/api-reference/outbound-calls#error-responses),
lai iegūtu pilnu stabilo atbilstības kodu sarakstu un abas `409` atbilžu formas.
Ja aktīvs numurs vairs neatbilst prasībām pēc pieprasījuma pieņemšanas, bet pirms
zvana veikšanas, galīgā pārbaude atgriež neatkārtojamas `409` atbildes saturu.

## Gaidīšanas laika kontrole

Izejošo zvanu ilgumu, kas ieilgst, jo izsauktais abonents reaģē lēni
(IVR izvēlnes, rindas), var ierobežot ar `max_hold_seconds`:

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

Balss aģents pārtrauc zvanu, ja pēdējās N sekundēs nav saņemts cilvēka audio. Noklusējuma vērtība ir 900 sekundes (15 minūtes).

---

## Nākamās darbības

<CardGroup cols={2}>
  <Card title="Izejošo zvanu atsauce" icon="phone-arrow-up-right" href="/api-reference/outbound-calls">
    Visi pieprasījumu lauki un kļūdu kodi.
  </Card>
  <Card title="Saņemiet call.complete" icon="bolt" href="/lv/webhooks/call-complete">
    Straumējiet pabeigtos izejošos zvanus uz savu sistēmu.
  </Card>
  <Card title="Norēķini" icon="credit-card" href="/api-reference/billing">
    Automātiskā papildināšana, lai izejošie zvani nekad neciestu neveiksmi atlikuma dēļ.
  </Card>
  <Card title="Pārbaudiet izejošos balss aģentus" icon="flask" href="/lv/guides/test-agents">
    Veiciet izejošā balss aģenta izmēģinājumu pirms produkcijas vides.
  </Card>
</CardGroup>
