---
title: "ਆਊਟਬਾਊਂਡ ਕਾਲਾਂ ਕਰੋ (API)"
description: "ਆਪਣੇ ਕੋਡ ਤੋਂ AI-ਸੰਚਾਲਿਤ ਆਊਟਬਾਊਂਡ ਕਾਲ ਟ੍ਰਿਗਰ ਕਰੋ — ਸਰਵੇਖਣ, ਫਾਲੋ-ਅੱਪ ਜਾਂ ਪੁਸ਼ਟੀਕਰਨ ਫਲੋਜ਼ ਲਈ।"
---

ਆਊਟਬਾਊਂਡ ਕਾਲਿੰਗ ਤੁਹਾਨੂੰ ਇੱਕ ਮੰਜ਼ਿਲ ਨੰਬਰ ਅਤੇ ਏਜੰਟ
ਕੌਂਫਿਗਰੇਸ਼ਨ ThunderPhone ਨੂੰ ਦੇਣ ਦਿੰਦੀ ਹੈ, ਤਾਂ ਜੋ AI ਤੁਹਾਡੀ
ਤਰਫ਼ੋਂ ਕਾਲ ਕਰੇ। ਆਮ ਵਰਤੋਂ ਦੇ ਮਾਮਲੇ:

- ਅਪਾਇੰਟਮੈਂਟ ਪੁਸ਼ਟੀਕਰਨ
- ਸਰਵੇਖਣ ਕਾਲਬੈਕ
- ਮਿਸਡ ਕਾਲ ਤੋਂ ਬਾਅਦ "ਦੂਜੀ ਕੋਸ਼ਿਸ਼" ਵਾਲੇ ਫਾਲੋ-ਅੱਪ
- ਡਿਸਪੈਚ-ਸ਼ੈਲੀ ਸੂਚਨਾਵਾਂ

<Note>
  ਪੂਰੀ ਸੂਚੀ ਨੂੰ ਕਾਲ ਕਰਨਾ ਹੈ? ਡੈਸ਼ਬੋਰਡ ਦੀ
  [**ਮੁਹਿੰਮਾਂ**](/pa/guides/outbound-campaigns) ਵਿਸ਼ੇਸ਼ਤਾ
  (`/dashboard/campaigns`) ਸੰਪਰਕਾਂ ਦੀ CSV ਲੈਂਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਲਈ
  ਟਾਈਮਜ਼ੋਨ-ਅਨੁਕੂਲ ਕਾਲਿੰਗ ਵਿੰਡੋਜ਼, ਕਨਕਰੰਸੀ ਅਤੇ ਰੀਟ੍ਰਾਈ ਨੀਤੀ ਸੰਭਾਲਦੀ ਹੈ।
  ਇਹ ਗਾਈਡ ਇਕੱਲੀਆਂ ਪ੍ਰੋਗਰਾਮੇਟਿਕ ਕਾਲਾਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ।
</Note>

## ਪੂਰਵ-ਲੋੜਾਂ

<Steps>
  <Step title="ਇੱਕ VoIP ਨੰਬਰ ਲਿਆਓ">
    ਆਊਟਬਾਊਂਡ ਕਾਲਿੰਗ ਲਈ ਤੁਹਾਡੇ ਕੋਲ `from_number` ਦਾ ਮਾਲਕ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ, ਜੋ
    ਇੱਕ [VoIP ਕਨੈਕਸ਼ਨ](/api-reference/voip-connections) ਰਾਹੀਂ ਹੋਵੇ। ThunderPhone ਨੰਬਰ
    ਸਿਰਫ਼ ਇਨਬਾਊਂਡ ਲਈ ਹਨ। ਵੇਖੋ
    [ਆਪਣੇ ਨੰਬਰ ਲਿਆਓ](/pa/guides/bring-your-own-numbers)।
  </Step>
  <Step title="ਇੱਕ ਏਜੰਟ ਬਣਾਓ">
    ਆਊਟਬਾਊਂਡ-ਕੇਂਦਰਿਤ prompt ਆਮ ਤੌਰ 'ਤੇ ਏਜੰਟ ਵੱਲੋਂ ਆਪਣੀ
    ਪਛਾਣ ਅਤੇ ਮਕਸਦ ਦੱਸਣ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ — "Hi, this is Acme calling to
    confirm your appointment for tomorrow at 3pm…"। `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` webhook](/pa/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` webhook](/pa/webhooks/events) ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰੋ —
ਕਾਲ ਖਤਮ ਹੋਣ ਬਾਰੇ ਜਾਣਨ ਦਾ ਇਹ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਨਬਾਊਂਡ
webhooks ਸਵੀਕਾਰ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਤਾਂ ਹਰ ਕੁਝ ਸਕਿੰਟਾਂ ਬਾਅਦ `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="/pa/webhooks/call-complete">
    ਮੁਕੰਮਲ ਹੋਈਆਂ ਆਊਟਬਾਊਂਡ ਕਾਲਾਂ ਨੂੰ ਆਪਣੇ ਸਿਸਟਮ ਵਿੱਚ ਸਟ੍ਰੀਮ ਕਰੋ।
  </Card>
  <Card title="ਬਿਲਿੰਗ" icon="credit-card" href="/api-reference/billing">
    ਤਾਂ ਜੋ ਬੈਲੈਂਸ ਕਾਰਨ ਆਊਟਬਾਊਂਡ ਕਦੇ ਅਸਫਲ ਨਾ ਹੋਵੇ, ਆਟੋ-ਰੀਲੋਡ ਵਰਤੋ।
  </Card>
  <Card title="ਆਊਟਬਾਊਂਡ ਏਜੰਟਾਂ ਦੀ ਜਾਂਚ ਕਰੋ" icon="flask" href="/pa/guides/test-agents">
    ਪ੍ਰੋਡਕਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੇ ਆਊਟਬਾਊਂਡ ਏਜੰਟ ਨੂੰ ਡਰਾਈ-ਰਨ ਕਰੋ।
  </Card>
</CardGroup>
