আউটবাউন্ড কল করুন (API)

আউটবাউন্ড কলিংয়ের মাধ্যমে আপনি ThunderPhone-কে একটি গন্তব্য নম্বর এবং একটি এজেন্ট কনফিগারেশন দিতে পারেন, যাতে AI আপনার হয়ে কল করে। সাধারণ ব্যবহারের ক্ষেত্র:

পূর্বশর্ত

  1. একটি VoIP নম্বর আনুন

    আউটবাউন্ড কলিংয়ের জন্য আপনাকে from_number-এর মালিক হতে হবে একটি VoIP সংযোগ-এর মাধ্যমে। ডেমো নম্বরগুলো শুধুমাত্র ইনবাউন্ডের জন্য। দেখুন নিজের নম্বর আনুন

  2. একটি এজেন্ট তৈরি করুন

    আউটবাউন্ড-ধাঁচের একটি prompt সাধারণত এজেন্টের নিজের পরিচয় ও উদ্দেশ্য জানানোর মাধ্যমে শুরু হয় — "হ্যালো, আগামীকাল 3pm-এ আপনার অ্যাপয়েন্টমেন্ট নিশ্চিত করতে Acme থেকে কল করা হয়েছে…" outbound_speak_order-কে agent_first-এ সেট করুন (ডিফল্ট)।

  3. ইতিবাচক ব্যালেন্স রাখুন

    ব্যালেন্স ≤ $0.00 হলে আউটবাউন্ড কল 402 Payment Required ফেরত দেয়। এর মাধ্যমে ব্যালেন্স টপ আপ করুন POST /v1/billing/top-up অথবা অটো-রিলোড চালু করুন।

সংরক্ষিত এজেন্ট দিয়ে কল করুন

সবচেয়ে সহজ উপায় — 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":   "+14155550199",
    "agent_id":    12
  }'

রেসপন্স:

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

ইনলাইন কনফিগ দিয়ে কল করুন

আপনি যদি একবারের জন্য এমন একটি prompt চান যা এজেন্ট হিসেবে সংরক্ষণ করার মতো গুরুত্বপূর্ণ নয়, তাহলে পরিবর্তে config পাস করুন। এর কাঠামো call.incoming webhook-এর রেসপন্স স্কিমার সঙ্গে মেলে:

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

কল অনুসরণ করুন

সমান্তরালে telephony.complete webhook-এ সাবস্ক্রাইব করুন — কল শেষ হয়েছে জানার এটি দ্রুততম উপায়। আপনি যদি ইনবাউন্ড webhook গ্রহণ করতে না পারেন, তাহলে প্রতি কয়েক সেকেন্ডে GET /v1/calls/{call_id} পোল করুন; কল শেষ হলে রেকর্ডে end_reason, duration_seconds, এবং রেকর্ডিং URL অন্তর্ভুক্ত থাকে।

যে ব্যর্থতার ধরনগুলো হ্যান্ডেল করা উচিত

ত্রুটিসমাধান
402 Payment Requiredব্যালেন্স টপ আপ করুন অথবা অটো-রিলোড চালু করুন
403 outbound blocked (demo number)পরিবর্তে একটি VoIP নম্বর আনুন
403 outbound blocked (unverified 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 মিনিট)।


পরবর্তী ধাপ