Πραγματοποιήστε εξερχόμενες κλήσεις (API)

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

Προϋποθέσεις

  1. Φέρτε έναν αριθμό VoIP

    Οι εξερχόμενες κλήσεις απαιτούν να κατέχετε το from_number μέσω μιας σύνδεσης VoIP. Οι αριθμοί επίδειξης είναι μόνο για εισερχόμενες κλήσεις. Δείτε Φέρτε τους δικούς σας αριθμούς.

  2. Δημιουργήστε έναν πράκτορα

    Μια προτροπή προσανατολισμένη σε εξερχόμενες κλήσεις συνήθως ξεκινά με τον πράκτορα να συστήνεται και να αναφέρει τον σκοπό του — «Γεια σας, σας καλεί η Acme για να επιβεβαιώσει το αυριανό σας ραντεβού στις 15:00…» Ορίστε το outbound_speak_order σε agent_first (η προεπιλογή).

  3. Διατηρήστε θετικό υπόλοιπο

    Οι εξερχόμενες κλήσεις επιστρέφουν 402 Payment Required αν το υπόλοιπο είναι ≤ $0.00. Προσθέστε υπόλοιπο μέσω POST /v1/billing/top-up ή ενεργοποιήστε την αυτόματη ανανέωση.

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

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

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
  }'

Απόκριση:

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

Πραγματοποιήστε κλήση με ενσωματωμένη διαμόρφωση

Αν θέλετε μια εφάπαξ προτροπή που δεν αξίζει να αποθηκευτεί ως πράκτορας, περάστε το config αντί γι’ αυτό. Η δομή αντιστοιχεί στο σχήμα απόκρισης του webhook call.incoming:

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 — είναι ο ταχύτερος τρόπος να γνωρίζετε ότι μια κλήση ολοκληρώθηκε. Αν δεν μπορείτε να δέχεστε εισερχόμενα webhooks, κάντε polling στο GET /v1/calls/{call_id} κάθε λίγα δευτερόλεπτα· η εγγραφή περιλαμβάνει τα end_reason, duration_seconds και το URL της εγγραφής μόλις ολοκληρωθεί η κλήση.

Τρόποι αποτυχίας που αξίζει να χειριστείτε

ΣφάλμαΔιόρθωση
402 Payment RequiredΠροσθέστε υπόλοιπο ή ενεργοποιήστε την αυτόματη ανανέωση
Εξερχόμενες κλήσεις 403 αποκλεισμένες (αριθμός επίδειξης)Φέρτε έναν αριθμό VoIP αντί γι’ αυτό
Εξερχόμενες κλήσεις 403 αποκλεισμένες (μη επαληθευμένο VoIP)Εκτελέστε POST /v1/phone-numbers/{id}/verify-voip
404 from_number is not registered to this organizationΕπιβεβαιώστε ότι το from_number αντιστοιχεί σε αριθμό τηλεφώνου που κατέχετε
502 Bad GatewayΠαροδική αποτυχία SIP / LiveKit· μπορείτε με ασφάλεια να επαναλάβετε την προσπάθεια

Έλεγχος χρόνου αναμονής

Οι εξερχόμενες κλήσεις που διαρκούν πολύ επειδή ο καλούμενος αργεί να απαντήσει (δέντρα IVR, ουρές) μπορούν να περιοριστούν με το max_hold_seconds:

{
  "from_number": "+15551234567",
  "to_number":   "+14155550199",
  "agent_id":    12,
  "max_hold_seconds": 120
}

Ο πράκτορας τερματίζει την κλήση αν δεν έχει ληφθεί ανθρώπινος ήχος τα τελευταία N δευτερόλεπτα. Η προεπιλογή είναι 900 (15 λεπτά).


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