---
title: "అవుట్‌బౌండ్ కాల్‌లను చేయండి (API)"
description: "మీ స్వంత కోడ్ నుండి AI ఆధారిత అవుట్‌బౌండ్ కాల్‌ను ట్రిగ్గర్ చేయండి — సర్వే, ఫాలో-అప్ లేదా నిర్ధారణ ఫ్లోల కోసం."
---

అవుట్‌బౌండ్ కాలింగ్ ద్వారా మీరు గమ్యస్థాన నంబర్ మరియు ఏజెంట్
కాన్ఫిగరేషన్‌ను ThunderPhoneకు అందించి, మీ తరఫున AIతో కాల్ చేయించవచ్చు.
సాధారణ వినియోగ సందర్భాలు:

- అపాయింట్‌మెంట్ నిర్ధారణలు
- సర్వే తిరిగి కాల్‌లు
- మిస్డ్ కాల్ తర్వాత "రెండో ప్రయత్నం" ఫాలో-అప్‌లు
- డిస్పాచ్ తరహా నోటిఫికేషన్‌లు

<Note>
  మొత్తం జాబితాకు కాల్ చేయాలా? డ్యాష్‌బోర్డ్‌లోని
  [**క్యాంపెయిన్లు**](/te/guides/outbound-campaigns) ఫీచర్
  (`/dashboard/campaigns`) కాంటాక్ట్‌ల CSVని తీసుకుని, టైమ్‌జోన్‌కు అనుగుణమైన
  కాలింగ్ విండోలు, సమాంతర నిర్వహణ, మరియు రీట్రై విధానాన్ని
  మీ కోసం నిర్వహిస్తుంది. ఈ గైడ్ ఒక్కో ప్రోగ్రామాటిక్ కాల్‌ను వివరిస్తుంది.
</Note>

## ముందస్తు అవసరాలు

<Steps>
  <Step title="ఒక VoIP నంబర్‌ను తీసుకురండి">
    అవుట్‌బౌండ్ కాలింగ్ కోసం మీరు `from_number`ను
    [VoIP కనెక్షన్](/api-reference/voip-connections) ద్వారా స్వంతంగా కలిగి ఉండాలి. ThunderPhone నంబర్‌లు
    ఇన్‌బౌండ్‌కు మాత్రమే అందుబాటులో ఉంటాయి. చూడండి:
    [మీ స్వంత నంబర్‌లను తీసుకురండి](/te/guides/bring-your-own-numbers).
  </Step>
  <Step title="ఏజెంట్‌ను సృష్టించండి">
    అవుట్‌బౌండ్‌కు అనుగుణమైన promptలో సాధారణంగా ఏజెంట్ తనను తాను మరియు తన
    ఉద్దేశ్యాన్ని పరిచయం చేసుకోవడం ఉంటుంది — "హాయ్, రేపు మధ్యాహ్నం 3 గంటలకు ఉన్న మీ అపాయింట్‌మెంట్‌ను
    నిర్ధారించడానికి Acme నుంచి కాల్ చేస్తున్నాను…" `outbound_speak_order`ను
    `agent_first`గా సెట్ చేయండి (డిఫాల్ట్).
  </Step>
  <Step title="పాజిటివ్ బ్యాలెన్స్‌ను ఉంచండి">
    బ్యాలెన్స్ ≤
    `$0.00` అయితే అవుట్‌బౌండ్ కాల్‌లు `402 Payment Required`ను తిరిగి ఇస్తాయి. దీని ద్వారా
    టాప్ అప్ చేయండి:
    [`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>

## ఇన్‌లైన్ కాన్ఫిగ్‌తో కాల్ చేయండి

ఏజెంట్‌గా సేవ్ చేయడం అవసరం లేని ఒకసారి ఉపయోగించే prompt కావాలంటే,
బదులుగా `config`ను పంపండి. దీని ఆకృతి
[`call.incoming` వెబ్‌హుక్](/te/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` వెబ్‌హుక్](/te/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="/te/webhooks/call-complete">
    పూర్తైన అవుట్‌బౌండ్ కాల్‌లను మీ సిస్టమ్‌కు స్ట్రీమ్ చేయండి.
  </Card>
  <Card title="బిల్లింగ్" icon="credit-card" href="/api-reference/billing">
    బ్యాలెన్స్ కారణంగా అవుట్‌బౌండ్ విఫలం కాకుండా ఆటో-రీలోడ్ చేయండి.
  </Card>
  <Card title="అవుట్‌బౌండ్ ఏజెంట్‌లను పరీక్షించండి" icon="flask" href="/te/guides/test-agents">
    ప్రొడక్షన్‌కు ముందు మీ అవుట్‌బౌండ్ ఏజెంట్‌ను డ్రై-రన్ చేయండి.
  </Card>
</CardGroup>
