---
title: "Χρησιμοποιήστε τους δικούς σας αριθμούς (VoIP, API)"
description: "Συνδέστε το Twilio ή το Telnyx — ή οποιοδήποτε SIP trunk — εισαγάγετε τους τηλεφωνικούς αριθμούς που ήδη διαθέτετε και επιτρέψτε στους πράκτορες ThunderPhone να απαντούν και να πραγματοποιούν κλήσεις μέσω αυτών."
---

Οι αριθμοί ThunderPhone καλύπτουν τις εισερχόμενες κλήσεις, αλλά οι εξερχόμενες κλήσεις και οι καμπάνιες χρειάζονται αριθμούς που σας ανήκουν μέσω του δικού σας παρόχου VoIP. Αυτός ο οδηγός σάς καθοδηγεί στη ροή τριών βημάτων: **δοκιμή διαπιστευτηρίων → δημιουργία σύνδεσης → εισαγωγή αριθμών → επαλήθευση**.

<Note>
  Ο πίνακας ελέγχου διαθέτει μια καθοδηγούμενη έκδοση ολόκληρης αυτής της ροής στην ενότητα
  **Συνδέσεις → VoIP** (`/dashboard/voip-connections`): μια
  καθοδηγούμενη ρύθμιση Telnyx που σας καθοδηγεί στη δημιουργία λογαριασμού και στα κλειδιά API, μια
  διαδρομή σύνδεσης υπάρχοντος λογαριασμού και μια μη αυτόματη φόρμα SIP με γεννήτρια
  οδηγού ρύθμισης AI.
</Note>

## Υποστηριζόμενοι πάροχοι

| Πάροχος | Αναγνωριστικό `provider` | Σημειώσεις |
|----------|---------------|-------|
| Twilio | `twilio` | SID λογαριασμού + Διακριτικό ελέγχου ταυτότητας· μία σύνδεση ανά λογαριασμό ή υπολογαριασμό Twilio (δείτε [υπολογαριασμούς Twilio](#twilio-subaccounts)) |
| Telnyx | `telnyx` | Κλειδί API· διαθέσιμη καθοδηγούμενη ενσωμάτωση (`setup_method: guided_telnyx`) |
| SignalWire | `signalwire` | **Σύντομα διαθέσιμο** — συνδεθείτε σήμερα μέσω μη αυτόματου SIP |
| Vonage | `vonage` | **Σύντομα διαθέσιμο** — συνδεθείτε σήμερα μέσω μη αυτόματου SIP |
| Μη αυτόματο SIP | `manual` | Οποιοδήποτε SIP trunk — χρησιμοποιήστε τη δική σας διαμόρφωση |

## 1. Δοκιμή διαπιστευτηρίων

Πριν δημιουργήσετε μια μόνιμη σύνδεση VoIP, ελέγξτε τα διαπιστευτήρια
του παρόχου για να επιβεβαιώσετε ότι λειτουργούν. Αυτό επιστρέφει ένα
`verification_evidence_id`, το οποίο περνάτε στο βήμα δημιουργίας ώστε τα
διαπιστευτήρια να μην χρεώνονται δύο φορές για δοκιμές.

```bash
curl -X POST https://api.thunderphone.com/v1/voip-connections/test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider":    "telnyx",
    "credentials": { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":  { "domain": "acme.sip.telnyx.com" }
  }'
```

```json Response
{
  "status": "pass",
  "verification_evidence_id": "b9a2...",
  "suggested_connection_name": "Telnyx: Acme Main (+15550001234)",
  "checks": {
    "credentials_valid": true,
    "inbound_reachable": true,
    "outbound_authorized": true
  }
}
```

Αν αποτύχει οποιοσδήποτε έλεγχος, το `status` της απόκρισης θα είναι `fail` και το `checks` θα
δείχνει ποιο βήμα απέτυχε. Διορθώστε τη διαμόρφωση στην πλευρά του παρόχου (ανάθεση
trunk, λίστα επιτρεπόμενων IP, εξουσιοδότηση εξερχομένων) και δοκιμάστε ξανά.

## 2. Δημιουργήστε τη σύνδεση

Περάστε το `verification_evidence_id` που μόλις λάβατε:

```bash
curl -X POST https://api.thunderphone.com/v1/voip-connections \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":         "Acme Telnyx Main",
    "provider":     "telnyx",
    "setup_method": "api_key",
    "credentials":  { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":   { "domain": "acme.sip.telnyx.com" },
    "verification_evidence_id": "b9a2..."
  }'
```

Η απόκριση είναι ένα [αντικείμενο VoipConnection](/api-reference/voip-connections#connection-object)
με `status="connected"`. Τα διαπιστευτήρια αποθηκεύονται στην πλευρά του διακομιστή και δεν
επιστρέφονται ποτέ ως απλό κείμενο από επόμενα αιτήματα GET — για εναλλαγή, εκτελέστε νέο
`test` και PATCH με τα νέα αποδεικτικά στοιχεία.

### Δευτερεύοντες λογαριασμοί Twilio

Μια σύνδεση Twilio συνδέεται με τον μοναδικό λογαριασμό Twilio του οποίου
διαθέτει το Account SID και το Auth Token. Το Twilio διατηρεί αριθμούς τηλεφώνου και κορμούς SIP
μέσα σε κάθε δευτερεύοντα λογαριασμό, επομένως μια σύνδεση που δημιουργείται με τον γονικό
λογαριασμό βλέπει μόνο τους αριθμούς του γονικού λογαριασμού και μια υπάρχουσα
σύνδεση δεν μπορεί αργότερα να μεταφερθεί σε διαφορετικό δευτερεύοντα λογαριασμό (η
ενημέρωση απορρίπτεται επειδή ο κορμός SIP της σύνδεσης βρίσκεται στον
αρχικό λογαριασμό).

Για να αποκτήσετε πρόσβαση σε αριθμούς που διατηρούνται σε δευτερεύοντες λογαριασμούς, δημιουργήστε μία σύνδεση ανά
δευτερεύοντα λογαριασμό. Ο πίνακας ελέγχου το κάνει για εσάς: όταν συνδέετε έναν γονικό
λογαριασμό που έχει ενεργούς δευτερεύοντες λογαριασμούς, το παράθυρο ρυθμίσεων τους εμφανίζει, εσείς
επιλέγετε αυτούς που θέλετε και το ThunderPhone δημιουργεί μια σύνδεση (και έναν
κορμό SIP) σε κάθε έναν. Η ίδια ροή είναι διαθέσιμη μέσω του API:

```bash
# Discover active subaccounts visible to the parent credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"credentials": {"accountSid": "ACparent...", "authToken": "..."}}'
```

```json Response
{
  "discovery_id": "7c1e...",
  "parent": { "sid": "ACparent...", "friendly_name": "Acme" },
  "subaccounts": [
    { "sid": "ACsupport...", "friendly_name": "Acme Support", "already_connected": false, "connection_id": null },
    { "sid": "ACsales...",   "friendly_name": "Acme Sales",   "already_connected": true,  "connection_id": 5 }
  ]
}
```

```bash
# Create a connection for each selected subaccount
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts/connect \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"discovery_id": "7c1e...", "subaccount_sids": ["ACsupport..."]}'
```

Η απόκριση περιέχει μία γραμμή ανά δευτερεύοντα λογαριασμό με `status`
`created`, `skipped` (ήδη συνδεδεμένος) ή `failed`, καθώς και ένα `error`
στο οποίο μπορείτε να ενεργήσετε. Οι γραμμές είναι ανεξάρτητες, επομένως μια αποτυχία σε έναν δευτερεύοντα λογαριασμό
δεν εμποδίζει ποτέ τις υπόλοιπες, και ένα `discovery_id` παραμένει έγκυρο για 30
λεπτά, ώστε μια αποτυχημένη γραμμή να μπορεί απλώς να επαναληφθεί. Τα διακριτικά δευτερευόντων λογαριασμών
ανακτώνται από το Twilio κατά τον χρόνο εντοπισμού και αποθηκεύονται στη νέα σύνδεση·
δεν επιστρέφονται ποτέ από το API. Κάθε νέα σύνδεση έπειτα εισάγει
και επαληθεύει αριθμούς ακριβώς όπως μια σύνδεση που δημιουργήσατε χειροκίνητα.

## 3. Καταχωρίστε και εισαγάγετε αριθμούς

Επιθεωρήστε τους αριθμούς που είναι ορατοί στα διαπιστευτήριά σας και δεν βρίσκονται ήδη
σε έναν οργανισμό ThunderPhone:

```bash
curl https://api.thunderphone.com/v1/voip-connections/5/available-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Έπειτα εισαγάγετε αυτούς που θέλετε:

```bash
curl -X POST https://api.thunderphone.com/v1/voip-connections/5/import-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+15550001234", "+15550009999"]}'
```

Κάθε εισαγωγή γίνεται ένας [πόρος αριθμού τηλεφώνου](/api-reference/phone-numbers)
στον οργανισμό σας με `source="voip"` και `status="provisioning"`.

## 4. Επαληθεύστε κάθε εισαγόμενο αριθμό

Η εισαγωγή καταχωρεί τον αριθμό ως *διαθέσιμο*· η πραγματική δρομολόγηση κλήσεων
μέσω αυτού απαιτεί επαλήθευση. Για συνδέσεις παρόχων (Twilio,
Telnyx), αυτό επανελέγχει τα διαπιστευτήρια του παρόχου και την προσβασιμότητα SIP.
Για μια **χειροκίνητη σύνδεση SIP**, πραγματοποιεί μια σύντομη δοκιμαστική κλήση (μερικών
δευτερολέπτων, που τερματίζεται αυτόματα) *από* τον αριθμό, *μέσω* του κορμού SIP σας,
*προς* έναν αριθμό ThunderPhone — ώστε να επιβεβαιώνονται στην πράξη το όνομα χρήστη,
ο κωδικός πρόσβασης, η μεταφορά και η εξερχόμενη δρομολόγηση του κορμού. Ο πάροχός σας
χρεώνει αυτή την κλήση όπως κάθε άλλη.

```bash
curl -X POST https://api.thunderphone.com/v1/phone-numbers/{id}/verify-voip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Σε περίπτωση επιτυχίας, το `voip_verification_status` αλλάζει σε `verified` και ο
αριθμός αποκτά `status="active"`. Σε περίπτωση αποτυχίας, η απόκριση αναφέρει
αναλυτικά τι απέτυχε — για έναν χειροκίνητο κορμό, πρόκειται για την απάντηση SIP
του παρόχου, για παράδειγμα *«απορρίφθηκαν τα διαπιστευτήρια του ThunderPhone (SIP 401)»*
ή *«δεν ήταν δυνατή η δρομολόγηση κλήσης (SIP 404)»* — διορθώστε το ζήτημα
(διαπιστευτήρια, επιτρεπόμενες IP προέλευσης, αντιστοίχιση κορμού που λείπει στον
πίνακα ελέγχου του παρόχου) και καλέστε ξανά.

## 5. Αναθέστε πράκτορες και δεχτείτε μια κλήση

Αφού επαληθευτεί ο αριθμός, αναθέτετε εισερχόμενους / εξερχόμενους πράκτορες με
τον ίδιο τρόπο όπως για έναν αριθμό ThunderPhone. Δείτε
[Διαχείριση εισερχόμενων κλήσεων](/el/guides/handle-inbound-calls) και
[Πραγματοποίηση εξερχόμενων κλήσεων](/el/guides/place-outbound-calls).

## Ανανέωση διαπιστευτηρίων

Όταν ανανεώνεται ένα κλειδί παρόχου, εκτελέστε ξανά τη ροή δοκιμής και ενημέρωσης:

```bash
# 1. Test the new credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/test ...

# 2. PATCH the connection with the new evidence
curl -X PATCH https://api.thunderphone.com/v1/voip-connections/{id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "credentials": { "apiKey": "NEW_KEY..." },
    "verification_evidence_id": "fresh-evidence-id"
  }'
```

Η σύνδεση παραμένει στη θέση της — δεν χρειάζεται να εισαγάγετε ξανά αριθμούς.

---

## Επόμενα βήματα

<CardGroup cols={2}>
  <Card title="Αναφορά συνδέσεων VoIP" icon="phone-volume" href="/api-reference/voip-connections">
    Κάθε πεδίο στις αποκρίσεις σύνδεσης, αποδεικτικών στοιχείων και εισαγωγής.
  </Card>
  <Card title="Αναφορά αριθμών τηλεφώνου" icon="phone" href="/api-reference/phone-numbers">
    Αναθέστε πράκτορες, μεταφέρετε μεταξύ οργανισμών, αποδεσμεύστε αριθμούς.
  </Card>
  <Card title="Πραγματοποίηση εξερχόμενων κλήσεων" icon="arrow-up-right" href="/el/guides/place-outbound-calls">
    Τώρα που έχετε τον αριθμό, ξεκινήστε να πραγματοποιείτε εξερχόμενες κλήσεις.
  </Card>
</CardGroup>
