ThunderPhone 2.0 अब लाइव है।सेल्फ़-सर्व, 2¢/मिनट से।घोषणा पढ़ें

Developer cookbook

इनबाउंड कॉल हैंडल करें (API)

एंड-टू-एंड: एक एजेंट कॉन्फ़िगर करें, उसे एक फोन नंबर असाइन करें, कॉल लें और ट्रांसक्रिप्ट की जांच करें।

आपके टर्मिनल से, "AI से फोन का जवाब देने" का मानक फ्लो। आप:

  1. प्रॉम्प्ट और आवाज़ के साथ एक एजेंट बनाएँ।
  2. एक फोन नंबर प्रोविज़न करें (या अपना नंबर लाएँ) और एजेंट को उसके इनबाउंड हैंडलर के रूप में असाइन करें।
  3. नंबर पर कॉल करें। कॉल लॉग, ट्रांसक्रिप्ट और रिकॉर्डिंग देखें।

कुल API कॉल: चार। कुल समय: पाँच मिनट से कम।

1. एजेंट बनाएँ

एक एजेंट में वह प्रॉम्प्ट, वॉइस और प्रोडक्ट टियर शामिल होते हैं जो कॉल को संचालित करेंगे। आप एजेंट पर max_call_duration_seconds और ring_duration_seconds जैसी कॉल सीमाएं भी सेट कर सकते हैं। एजेंट पहले से रिकॉर्ड किया गया इंट्रो चलाने और एजेंट के बोलने से पहले अधिकतम दो रिंग बजाने के लिए intro_clip और intro_ring_count को भी सपोर्ट करते हैं। नए एजेंट के लिए टाइम ज़ोन भी आवश्यक है। यदि आपका एजेंट बहुभाषी है, तो आप language_switching सेट करके नियंत्रित कर सकते हैं कि वह भाषा बदलने से पहले पूछे या कॉलर की भाषा का अनुसरण करे। हर कॉन्फ़िगरेशन फ़ील्ड के लिए Agents देखें; न्यूनतम आवश्यक कॉन्फ़िगरेशन यह है:

curl -X POST https://api.thunderphone.com/v1/agents \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":    "Acme Support",
    "prompt":  "You are a friendly support agent for Acme. Help callers with orders and returns. Keep answers short.",
    "voice":   "john",
    "product": "spark"
  }'

लौटाया गया id सहेजें — चरण 2 में इसकी आवश्यकता होगी।

2. फोन नंबर प्राप्त करें

अगर आपको केवल डायल करने के लिए कुछ चाहिए, तो ThunderPhone के पूल से एक ThunderPhone नंबर प्राप्त करें:

curl -X POST https://api.thunderphone.com/v1/phone-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_code": "415"}'

रिस्पॉन्स में E.164 प्रारूप में एक id और एक number शामिल होता है। ThunderPhone नंबर status="provisioning" से शुरू होते हैं और कुछ सेकंड के भीतर active हो जाते हैं — अगर आप ट्रांज़िशन देखना चाहते हैं, तो GET /v1/phone-numbers/{id} को पोल करें।

3. एजेंट असाइन करें

चरण 1 के एजेंट को नंबर की इनबाउंड दिशा से संबद्ध करें:

curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/{phone_id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inbound_agent_id": 12}'

बस इतना ही — नंबर लाइव है। आपके संगठन के लिए आउटबाउंड कॉलिंग स्वीकृत होने के बाद, आप उसी PATCH में outbound_agent_id भी सेट कर सकते हैं। तब तक, API उस असाइनमेंट को 400 के साथ अस्वीकार करता है।

यदि आप इनबाउंड कॉल को एक निश्चित inbound_agent_id के बजाय कॉन्फ़िग वेबहुक के माध्यम से रूट करते हैं, तो वह वेबहुक अब agent_id और variables के साथ हर कॉल के लिए timezone भी रिटर्न कर सकता है।

4. कॉल लें

अपने फोन से नंबर डायल करें। एजेंट कॉल उठाता है, आपके प्रॉम्प्ट के अनुसार अपना परिचय देता है, और बातचीत शुरू हो जाती है।

कॉल जारी रहने के दौरान, यह GET /v1/calls में status="in_progress" के साथ दिखाई देती है। कॉल समाप्त होने पर, रिकॉर्ड में end_reason, duration_seconds, billable_minutes, और (बाद में) एक रिकॉर्डिंग URL और AI ग्रेड के साथ अपडेट हो जाता है।

इनबाउंड कॉल आपके संगठन की समवर्ती-कॉल सीमा में गिनी जाती हैं (डिफ़ॉल्ट रूप से प्रगति में 20 कॉल, जो आउटबाउंड, वेब और टेस्ट कॉल के साथ साझा होती हैं)। सीमा पर आने वाली कॉल को एजेंट के जवाब देने से पहले अस्वीकार कर दिया जाता है और डिस्कनेक्ट कर दिया जाता है, उसका बिल नहीं लिया जाता, और उसे concurrent_call_limit_reached एंड रीजन के साथ विफल कॉल के रूप में रिकॉर्ड किया जाता है। यदि आपको अधिक सीमा चाहिए, तो support@thunderphone.com पर ईमेल करें।

5. परिणामों की जाँच करें

हाल की कॉल्स की सूची प्राप्त करें:

curl 'https://api.thunderphone.com/v1/calls?limit=5' \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

ट्रांसक्रिप्ट प्राप्त करें:

curl https://api.thunderphone.com/v1/calls/{call_id}/transcript \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

और रिकॉर्डिंग URL प्राप्त करें (अल्पकालिक, साइन किया हुआ):

curl https://api.thunderphone.com/v1/calls/{call_id}/audio \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

अगर आपने telephony.complete webhook को सब्सक्राइब किया है, तो आपको वही डेटा आपके सर्वर पर POST के रूप में मिलेगा — देखें call.complete।

अगर आपके एजेंट में एक्सट्रैक्शन फ़ील्ड्स कॉन्फ़िगर किए गए हैं, तो पूर्ण कॉल पेलोड में स्ट्रक्चर्ड एक्सट्रैक्टेड डेटा भी शामिल हो सकता है।


अगले चरण