আউটবাউন্ড কল করুন (API)
আউটবাউন্ড কলিংয়ের মাধ্যমে আপনি ThunderPhone-কে একটি গন্তব্য নম্বর এবং একটি এজেন্ট কনফিগারেশন দিতে পারেন, যাতে AI আপনার হয়ে কল করে। সাধারণ ব্যবহারের ক্ষেত্র:
- অ্যাপয়েন্টমেন্ট নিশ্চিতকরণ
- সার্ভে কলব্যাক
- মিসড কলের পর "দ্বিতীয় চেষ্টা" ফলো-আপ
- ডিসপ্যাচ-ধাঁচের বিজ্ঞপ্তি
পূর্বশর্ত
- একটি VoIP নম্বর আনুন
আউটবাউন্ড কলিংয়ের জন্য আপনাকে
from_number-এর মালিক হতে হবে একটি VoIP সংযোগ-এর মাধ্যমে। ডেমো নম্বরগুলো শুধুমাত্র ইনবাউন্ডের জন্য। দেখুন নিজের নম্বর আনুন। - একটি এজেন্ট তৈরি করুন
আউটবাউন্ড-ধাঁচের একটি prompt সাধারণত এজেন্টের নিজের পরিচয় ও উদ্দেশ্য জানানোর মাধ্যমে শুরু হয় — "হ্যালো, আগামীকাল 3pm-এ আপনার অ্যাপয়েন্টমেন্ট নিশ্চিত করতে Acme থেকে কল করা হয়েছে…"
outbound_speak_order-কেagent_first-এ সেট করুন (ডিফল্ট)। - ইতিবাচক ব্যালেন্স রাখুন
ব্যালেন্স ≤
$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 মিনিট)।
পরবর্তী ধাপ
প্রতিটি রিকোয়েস্ট ফিল্ড এবং ত্রুটি কোড।
সম্পন্ন আউটবাউন্ড কলগুলো আপনার সিস্টেমে স্ট্রিম করুন।
স্বয়ংক্রিয় রিলোড, যাতে ব্যালান্সের কারণে আউটবাউন্ড কখনও ব্যর্থ না হয়।
প্রোডাকশনের আগে আপনার আউটবাউন্ড এজেন্ট পরীক্ষামূলকভাবে চালান।