নিজের নম্বর ব্যবহার করুন (VoIP, API)
প্রোটোটাইপিংয়ের জন্য ডেমো নম্বর ঠিক আছে, কিন্তু প্রোডাকশন ট্র্যাফিকের জন্য আপনার নিজস্ব VoIP প্রোভাইডারের মাধ্যমে আপনার মালিকানাধীন নম্বর ব্যবহার করা উচিত। এই গাইডে তিন ধাপের ফ্লো দেখানো হয়েছে: ক্রেডেনশিয়াল পরীক্ষা → সংযোগ তৈরি → নম্বর ইমপোর্ট → যাচাই।
সমর্থিত প্রোভাইডার
| প্রোভাইডার | provider id | নোট |
|---|---|---|
| Twilio | twilio | API কী + সিক্রেট |
| Telnyx | telnyx | API কী; নির্দেশিত অনবোর্ডিং উপলভ্য (setup_method: guided_telnyx) |
| SignalWire | signalwire | শীঘ্রই আসছে — আজই Manual SIP-এর মাধ্যমে সংযোগ করুন |
| Vonage | vonage | শীঘ্রই আসছে — আজই Manual SIP-এর মাধ্যমে সংযোগ করুন |
| Manual SIP | manual | যেকোনো SIP ট্রাঙ্ক — নিজস্ব কনফিগ আনুন |
1. ক্রেডেনশিয়াল পরীক্ষা করুন
একটি স্থায়ী VoIP সংযোগ তৈরি করার আগে, প্রোভাইডারের
ক্রেডেনশিয়াল কাজ করছে কি না নিশ্চিত করতে পরীক্ষা করুন। এটি একটি
verification_evidence_id ফেরত দেয়, যা তৈরি ধাপে পাঠাতে হবে যাতে
পরীক্ষার জন্য ক্রেডেনশিয়াল থেকে দুবার চার্জ না হয়।
curl -X POST https://api.thunderphone.com/v1/voip-connections/test \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "telnyx",
"credentials": { "apiKey": "KEY...", "connectionId": "123456" },
"sip_config": { "domain": "acme.sip.telnyx.com" }
}'
{
"status": "pass",
"verification_evidence_id": "b9a2...",
"suggested_connection_name": "Telnyx: Acme Main (+15550001234)",
"checks": {
"credentials_valid": true,
"inbound_reachable": true,
"outbound_authorized": true
}
}
কোনো পরীক্ষা ব্যর্থ হলে, রেসপন্সের status হবে fail এবং checks দেখাবে
কোন ধাপে সমস্যা হয়েছে। প্রোভাইডার-পক্ষের কনফিগ ঠিক করুন (ট্রাঙ্ক
অ্যাসাইনমেন্ট, IP অ্যালাউলিস্ট, আউটবাউন্ড অনুমোদন) এবং পুনরায় চেষ্টা করুন।
2. সংযোগ তৈরি করুন
এইমাত্র পাওয়া verification_evidence_id পাঠান:
curl -X POST https://api.thunderphone.com/v1/voip-connections \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Telnyx Main",
"provider": "telnyx",
"setup_method": "api_key",
"credentials": { "apiKey": "KEY...", "connectionId": "123456" },
"sip_config": { "domain": "acme.sip.telnyx.com" },
"verification_evidence_id": "b9a2..."
}'
রেসপন্সটি status="connected" অবস্থায় একটি VoipConnection অবজেক্ট
হয়। ক্রেডেনশিয়াল সার্ভার-পক্ষে সংরক্ষিত থাকে এবং পরবর্তী GET-এ কখনও
প্লেইন টেক্সটে ফেরত দেওয়া হয় না — রোটেট করতে নতুন করে
test চালান এবং নতুন প্রমাণসহ PATCH করুন।
3. নম্বর তালিকাভুক্ত ও ইমপোর্ট করুন
ইতিমধ্যে কোনো ThunderPhone org-এ নেই, এমন আপনার ক্রেডেনশিয়ালে দৃশ্যমান নম্বরগুলো দেখুন:
curl https://api.thunderphone.com/v1/voip-connections/5/available-numbers \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
তারপর আপনি যে নম্বরগুলো চান সেগুলো ইমপোর্ট করুন:
curl -X POST https://api.thunderphone.com/v1/voip-connections/5/import-numbers \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers": ["+15550001234", "+15550009999"]}'
প্রতিটি ইমপোর্ট আপনার org-এ source="voip" এবং status="provisioning" সহ
একটি ফোন নম্বর রিসোর্স হয়ে যায়।
4. প্রতিটি ইমপোর্ট করা নম্বর যাচাই করুন
ইমপোর্ট করলে নম্বরটি available হিসেবে নিবন্ধিত হয়; এর মাধ্যমে বাস্তবে কল রাউট করতে রাউন্ড-ট্রিপ যাচাই প্রয়োজন (ইনবাউন্ড ডায়াল-ইন পরীক্ষা + আউটবাউন্ড অনুমোদন প্রোব)।
curl -X POST https://api.thunderphone.com/v1/phone-numbers/{id}/verify-voip \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
সফল হলে voip_verification_status verified হয়ে যায় এবং
নম্বরটি status="active" অবস্থায় প্রবেশ করে। ব্যর্থ হলে, প্রতিক্রিয়ায় কী ব্যর্থ হয়েছে তা
স্পষ্টভাবে জানানো হয় — সেটি ঠিক করুন (প্রায়ই প্রোভাইডার ড্যাশবোর্ডে ট্রাঙ্ক অ্যাসাইনমেন্ট না থাকা)
এবং আবার কল করুন।
5. এজেন্ট অ্যাসাইন করুন এবং একটি কল নিন
নম্বরটি যাচাই হয়ে গেলে, ডেমো নম্বরের মতোই ইনবাউন্ড / আউটবাউন্ড এজেন্ট অ্যাসাইন করুন। দেখুন ইনবাউন্ড কল পরিচালনা করুন এবং আউটবাউন্ড কল করুন।
ক্রেডেনশিয়াল রোটেট করা
প্রোভাইডার কী রোটেট হলে, পরীক্ষা-তারপর-আপডেট ফ্লোটি আবার চালান:
# 1. Test the new credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/test ...
# 2. PATCH the connection with the new evidence
curl -X PATCH https://api.thunderphone.com/v1/voip-connections/{id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"credentials": { "apiKey": "NEW_KEY..." },
"verification_evidence_id": "fresh-evidence-id"
}'
সংযোগটি আগের মতোই থাকে — নম্বর পুনরায় ইমপোর্ট করার প্রয়োজন নেই।