---
title: "Πραγματοποίηση εξερχόμενων κλήσεων (API)"
description: "Ενεργοποιήστε μια εξερχόμενη κλήση με AI από τον δικό σας κώδικα — για ροές ερευνών, παρακολούθησης ή επιβεβαίωσης."
---

Οι εξερχόμενες κλήσεις σάς επιτρέπουν να δώσετε έναν αριθμό προορισμού και μια
διαμόρφωση πράκτορα στο ThunderPhone και να αναθέσετε στον AI πράκτορα να πραγματοποιήσει την κλήση
εκ μέρους σας. Συνήθεις περιπτώσεις χρήσης:

- Επιβεβαιώσεις ραντεβού
- Επανακλήσεις για έρευνες
- Επακόλουθες ενέργειες «δεύτερης προσπάθειας» μετά από αναπάντητη κλήση
- Ειδοποιήσεις τύπου αποστολής

<Note>
  Καλείτε μια ολόκληρη λίστα; Η λειτουργία
  [**Καμπάνιες**](/el/guides/outbound-campaigns) του πίνακα ελέγχου
  (`/dashboard/campaigns`) δέχεται ένα CSV επαφών και διαχειρίζεται για
  εσάς παράθυρα κλήσεων με επίγνωση ζώνης ώρας, ταυτόχρονες κλήσεις και πολιτική
  επανάληψης. Αυτός ο οδηγός καλύπτει μεμονωμένες προγραμματιστικές κλήσεις.
</Note>

## Προαπαιτούμενα

<Steps>
  <Step title="Προσθέστε έναν αριθμό VoIP">
    Οι εξερχόμενες κλήσεις απαιτούν να είστε κάτοχος του `from_number` μέσω μιας
    [σύνδεσης VoIP](/api-reference/voip-connections). Οι αριθμοί ThunderPhone
    προορίζονται μόνο για εισερχόμενες κλήσεις. Δείτε
    [Χρησιμοποιήστε τους δικούς σας αριθμούς](/el/guides/bring-your-own-numbers).
  </Step>
  <Step title="Δημιουργήστε έναν πράκτορα">
    Μια προτροπή προσανατολισμένη σε εξερχόμενες κλήσεις συνήθως ξεκινά με τον πράκτορα
    να συστήνεται και να αναφέρει τον σκοπό του — «Γεια σας, εδώ η Acme, καλούμε για να
    επιβεβαιώσουμε το ραντεβού σας για αύριο στις 3 μ.μ.…» Ορίστε το
    `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>

## Πραγματοποιήστε μια κλήση με αποθηκευμένο πράκτορα

Η απλούστερη μέθοδος — αναφέρετε έναν πράκτορα με αναγνωριστικό:

```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` αντί αυτού. Η δομή αντιστοιχεί στο σχήμα απόκρισης του
[webhook `call.incoming`](/el/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"
    }
  }'
```

## Παρακολουθήστε την κλήση

Παράλληλα, εγγραφείτε στο
[webhook `telephony.complete`](/el/webhooks/events) —
είναι ο ταχύτερος τρόπος να γνωρίζετε ότι μια κλήση ολοκληρώθηκε. Αν δεν μπορείτε να
δέχεστε εισερχόμενα webhook, ελέγχετε περιοδικά το `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="/el/webhooks/call-complete">
    Μεταδώστε ολοκληρωμένες εξερχόμενες κλήσεις στο σύστημά σας.
  </Card>
  <Card title="Χρέωση" icon="credit-card" href="/api-reference/billing">
    Αυτόματη επαναφόρτιση ώστε οι εξερχόμενες κλήσεις να μη αποτυγχάνουν λόγω υπολοίπου.
  </Card>
  <Card title="Δοκιμή εξερχόμενων πρακτόρων" icon="flask" href="/el/guides/test-agents">
    Εκτελέστε δοκιμαστικά τον εξερχόμενο πράκτορά σας πριν από την παραγωγή.
  </Card>
</CardGroup>
