ThunderPhone 2.0 आता लाइव्ह आहे.स्वतःच सुरू करा—2¢/मिनिटपासून.घोषणा वाचा

Developer cookbook

आउटबाउंड कॉल करा (API)

तुमच्या स्वतःच्या कोडमधून AI-चालित आउटबाउंड कॉल ट्रिगर करा — सर्वेक्षण, फॉलो-अप किंवा पुष्टीकरण प्रवाहांसाठी.

आउटबाउंड कॉलिंगमुळे तुम्ही गंतव्य क्रमांक आणि एजंट कॉन्फिगरेशन ThunderPhone ला देऊ शकता आणि AI तुमच्या वतीने कॉल करू शकते. सामान्य वापरप्रकरणे:

  • अपॉइंटमेंट पुष्टीकरणे
  • सर्वेक्षण कॉलबॅक
  • मिस्ड कॉलनंतरचे "दुसऱ्या प्रयत्नाचे" फॉलो-अप
  • डिस्पॅच-शैलीतील सूचना

पूर्वअटी

  1. आउटबाउंड सक्षम क्रमांक निवडा

    तुमच्या मालकीचा क्रमांक VoIP कनेक्शनद्वारे वापरा किंवा Phone Numbers पेजवरून तुमचे ThunderPhone क्रमांक आउटबाउंड कॉलसाठी वापरण्याची परवानगी मागा. ThunderPhone क्रमांक सुरुवातीला फक्त इनबाउंड असतात. ThunderPhone प्रत्येक विनंतीचे हाताने पुनरावलोकन करते; मंजुरीनंतर, ते क्रमांक मंजूर दैनंदिन मर्यादेपर्यंत (00:00 UTC ला रीसेट होणारी) कॉल करू शकतात आणि मोहिमा चालवू शकतात, तसेच तुम्ही अधिक मर्यादेची विनंती करू शकता. ग्राहकांच्या VoIP क्रमांकांना दैनंदिन मर्यादा नसते, त्यामुळे आउटबाउंड कॉलिंगसाठी आम्ही त्यांची शिफारस करतो. पहा तुमचे स्वतःचे क्रमांक आणा.

  2. एजंट तयार करा

    आउटबाउंडसाठी तयार केलेला prompt सहसा एजंटने स्वतःची आणि उद्देशाची ओळख करून देण्याने सुरू होतो — "नमस्कार, तुमची उद्या दुपारी 3 वाजताची अपॉइंटमेंट निश्चित करण्यासाठी Acme कडून कॉल करत आहे…" outbound_speak_order ला agent_first (डीफॉल्ट) वर सेट करा.

  3. शिल्लक सकारात्मक ठेवा

    शिल्लक ≤ $0.00 असल्यास आउटबाउंड कॉल 402 Payment Required परत करतात. डॅशबोर्डमध्ये Organization → Billing Settings अंतर्गत रक्कम भरा किंवा ऑटो-रीलोड सक्षम करा. तुमची sk_live_ की GET /v1/billing वापरून शिल्लक तपासू शकते, पण रक्कम भरू किंवा ऑटो-रीलोड बदलू शकत नाही.

जतन केलेल्या एजंटसह कॉल करा

सर्वात सोपा मार्ग — id द्वारे एजंटचा संदर्भ द्या:

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":   "+14155552671",
    "agent_id":    12
  }'

प्रतिसाद:

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

इनलाइन कॉन्फिगरेशनसह कॉल करा

एजंट म्हणून जतन करण्यासारखा नसलेला एकदाच वापरायचा prompt हवा असल्यास, त्याऐवजी config पास करा. त्याचा आकार 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":   "+14155552671",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'

कॉलचे अनुसरण करा

समांतरपणे, telephony.complete वेबहुकचे सदस्यत्व घ्या — कॉल संपल्याचे जाणून घेण्याचा हा सर्वात जलद मार्ग आहे. तुम्ही इनबाउंड वेबहुक स्वीकारू शकत नसल्यास, दर काही सेकंदांनी GET /v1/calls/{call_id} पोल करा; कॉल संपल्यानंतर रेकॉर्डमध्ये end_reason, duration_seconds, आणि रेकॉर्डिंग URL समाविष्ट असते.

तुमचा एजंट कॉलनंतर संरचित डेटा काढण्यासाठी सेट केलेला असल्यास, अंतिमीकरण पूर्ण झाल्यानंतर तो डेटा स्वतंत्रपणे वितरित केला जातो.

सेव्ह केलेल्या एजंटला प्रति-कॉल व्हेरिएबल्स द्या

सेव्ह केलेले एजंट prompt मजकुरात {{name}} किंवा {{name|there}} यांसारखे प्लेसहोल्डर वापरू शकतात. तुम्ही agent_id सह आउटबाउंड कॉल करता तेव्हा, त्या कॉलच्या मूल्यांसह variables पाठवा:

{
  "from_number": "+[REDACTED_PHONE]",
  "to_number": "+[REDACTED_PHONE]",
  "agent_id": 12,
  "variables": {
    "name": "Jordan"
  }
}

प्लेसहोल्डरच्या नावानुसार की असलेली स्ट्रिंग मूल्ये वापरा. हे व्हेरिएबल्स सेव्ह केलेल्या एजंटसाठी लागू होतात; या मार्गदर्शिकेतील इनलाइन config उदाहरण त्यांचा वापर करत नाही.

हाताळण्यासारख्या अयशस्वी अवस्था

त्रुटीनिराकरण
402 Payment Requiredशिल्लक भरा किंवा स्वयंचलित रीलोड सक्षम करा
400 सह code: destination_not_allowedThunderPhone त्या क्रमांकावर कॉल करत नाही: अवैध क्रमांक, आपत्कालीन क्रमांक, प्रीमियम-रेट क्रमांक, शॉर्ट कोड किंवा निर्बंधित देश. ThunderPhone क्रमांकांवरून फक्त सामान्य US आणि कॅनेडियन क्रमांकांना कॉल करता येतो (प्रीमियम-रेट नाही). कोणता प्रकार लागू आहे ते reason सांगते; ब्लॉक केलेली गंतव्ये पहा
ThunderPhone क्रमांकासाठी retryable: false सह 409code नुसार कृती करा: Phone Numbers पेजवर आउटबाउंड कॉलिंगची विनंती करा, प्रलंबित पुनरावलोकनाची प्रतीक्षा करा किंवा दुसरा पात्र क्रमांक वापरा
429 सह code: platform_outbound_daily_limit_reachedसंस्थेने आजचे ThunderPhone क्रमांकांवरून केलेले आउटबाउंड कॉल वापरून झाले आहेत. resets_at (00:00 UTC) पर्यंत प्रतीक्षा करा, Phone Numbers पेजवर अधिक मर्यादेची विनंती करा किंवा तुमच्या स्वतःच्या VoIP कनेक्शनवरील क्रमांकावरून कॉल करा
429 सह code: concurrent_call_limit_reachedसंस्थेमध्ये तिच्या समवर्ती-कॉल मर्यादेइतके कॉल प्रगतीपथावर आहेत (डीफॉल्टनुसार 20; यात इनबाउंड, आउटबाउंड, वेब आणि चाचणी कॉल समाविष्ट आहेत). Retry-After हेडरमधील सेकंदांनंतर किंवा कॉल संपल्यावर पुन्हा प्रयत्न करा; मर्यादा वाढवण्यासाठी support@thunderphone.com वर ईमेल करा
429 सह code: same_number_too_soonतुम्ही 10 सेकंदांपेक्षा कमी वेळापूर्वी त्याच to_number वर कॉल केला आहे. Retry-After हेडरमधील सेकंदांनंतर पुन्हा प्रयत्न करा
ग्राहकाच्या VoIP क्रमांकासाठी retryable: false सह 409code ने दर्शवलेली स्थिती दुरुस्त करा; पडताळणी अयशस्वी झाल्यास POST /v1/phone-numbers/{id}/verify-voip चालवा
409 आयडेम्पोटन्सी संघर्षकीचा पुनर्वापर फक्त मूळ सामान्यीकृत विनंतीसह करा किंवा नवीन की पाठवा
404 from_number is not registered to this organizationfrom_number तुमच्या संस्थेतील सक्रिय फोन क्रमांकाशी जुळतो याची खात्री करा. आधीच प्रोव्हिजनिंगमध्ये असलेला, अयशस्वी, रिलीज होत असलेला किंवा रिलीज झालेला क्रमांक देखील हा प्रतिसाद परत करतो
फक्त detail फील्डसह 500कोणताही आउटबाउंड ट्रंक कॉन्फिगर केलेला नाही. सपोर्टशी संपर्क करा; ही अशी क्रमांक-स्थिती समस्या नाही जी तुम्ही दुरुस्त करू शकता
502 Bad Gatewayतात्पुरते SIP / LiveKit अपयश; पुन्हा प्रयत्न करणे सुरक्षित आहे

स्थिर पात्रता-कोडची संपूर्ण यादी आणि 409 प्रतिसादाचे दोन्ही स्वरूप यांसाठी आउटबाउंड कॉल्स संदर्भ पहा. विनंती स्वीकारल्यानंतर पण कॉल लावण्यापूर्वी सक्रिय नंबर अपात्र झाल्यास, अंतिम तपासणी पुन्हा प्रयत्न न करता येणारा 409 पेलोड परत करते.

होल्ड वेळ नियंत्रित करणे

कॉल प्राप्त करणारी व्यक्ती प्रतिसाद देण्यात धीमी असल्यामुळे दीर्घकाळ चालणारे आउटबाउंड कॉल (IVR ट्री, क्यू) max_hold_seconds वापरून मर्यादित करता येतात:

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

मागील N सेकंदांत मानवी आवाज प्राप्त झाला नसेल, तर एजंट कॉल बंद करतो. डीफॉल्ट 900 सेकंद (15 मिनिटे) आहे.


पुढील पायऱ्या