Το ThunderPhone 2.0 είναι εδώ.Ξεκινήστε μόνοι σας, από 2¢/λεπτό.Διαβάστε την ανακοίνωση

Developer cookbook

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

Ενεργοποιήστε μια εξερχόμενη κλήση με AI από τον δικό σας κώδικα — για ροές ερευνών, παρακολούθησης ή επιβεβαίωσης.

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

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

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

  1. Προσθέστε έναν αριθμό VoIP

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

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

    Μια προτροπή προσανατολισμένη σε εξερχόμενες κλήσεις συνήθως ξεκινά με τον πράκτορα να συστήνεται και να αναφέρει τον σκοπό του — «Γεια σας, εδώ η Acme, καλούμε για να επιβεβαιώσουμε το ραντεβού σας για αύριο στις 3 μ.μ.…» Ορίστε το 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 — είναι ο ταχύτερος τρόπος να γνωρίζετε ότι μια κλήση ολοκληρώθηκε. Αν δεν μπορείτε να δέχεστε εισερχόμενα 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
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 λεπτά).


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