Open in
अपने नंबर लाएँ (VoIP, API)
Twilio, Telnyx, SignalWire, Vonage, Plivo और किसी भी अन्य SIP ट्रंक को SIP के ज़रिए कनेक्ट करें, अपने मौजूदा फ़ोन नंबर इंपोर्ट करें, और ThunderPhone एजेंट्स को उन पर कॉल रिसीव करने और करने दें।
अनुमोदित ThunderPhone नंबर आउटबाउंड कॉल कर सकते हैं और कैंपेन चला सकते हैं। यदि आप अपने VoIP प्रदाता के माध्यम से अपने नंबर इस्तेमाल करना पसंद करते हैं, तो यह गाइड आपको कनेक्शन फ़्लो से परिचित कराती है: क्रेडेंशियल्स टेस्ट करें → कनेक्शन बनाएं → नंबर इंपोर्ट करें → सत्यापित करें।
समर्थित प्रदाता
| प्रदाता | provider आईडी | नोट्स |
|---|---|---|
| Twilio | twilio | अकाउंट SID + Auth Token; प्रत्येक Twilio अकाउंट या सबअकाउंट के लिए एक कनेक्शन (Twilio सबअकाउंट्स देखें) |
| Telnyx | telnyx | API key; गाइडेड ऑनबोर्डिंग उपलब्ध है (setup_method: guided_telnyx) |
| SignalWire | signalwire | कोई नेटिव प्रदाता कनेक्शन नहीं; इसे SignalWire SIP प्रीसेट के साथ manual के रूप में कनेक्ट करें |
| Vonage | vonage | कोई नेटिव प्रदाता कनेक्शन नहीं; इसे Vonage SIP प्रीसेट के साथ manual के रूप में कनेक्ट करें |
| मैनुअल SIP | manual | SignalWire, Vonage और Plivo सहित कोई भी SIP ट्रंक। यदि आप डैशबोर्ड में इनमें से किसी प्रदाता टाइल से शुरू करते हैं, तो कनेक्शन फिर भी manual रहता है और चयन को sip_config.preset में स्टोर करता है (signalwire, vonage या plivo) |
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 allowlist, आउटबाउंड ऑथराइज़ेशन) और फिर से प्रयास करें।
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..."
}'रिस्पॉन्स एक VoipConnection ऑब्जेक्ट
है जिसकी status="connected" है। क्रेडेंशियल्स और अन्य सीक्रेट कनेक्शन वैल्यू सर्वर-साइड स्टोर किए जाते हैं और बाद के GETs द्वारा कभी भी
प्लेन टेक्स्ट में वापस नहीं किए जाते — रोटेट करने के लिए, नया
test चलाएँ और नए एविडेंस के साथ PATCH करें।
Twilio सबअकाउंट
एक Twilio कनेक्शन उसी एकल Twilio अकाउंट से बंधा होता है जिसके Account SID और Auth Token उसमें होते हैं। Twilio हर सबअकाउंट के भीतर फोन नंबर और SIP ट्रंक रखता है, इसलिए पैरेंट अकाउंट से बनाया गया कनेक्शन केवल पैरेंट के अपने नंबर देखता है, और किसी मौजूदा कनेक्शन को बाद में किसी अलग सबअकाउंट पर स्विच नहीं किया जा सकता।
सबअकाउंट में मौजूद नंबरों तक पहुंचने के लिए, हर सबअकाउंट के लिए एक कनेक्शन बनाएं। डैशबोर्ड यह आपके लिए करता है: जब आप ऐसे पैरेंट अकाउंट को कनेक्ट करते हैं जिसमें सक्रिय सबअकाउंट हैं, तो सेटअप डायलॉग उन्हें सूचीबद्ध करता है, आप जिन्हें चाहते हैं उन्हें चुनते हैं, और ThunderPhone हर एक में एक कनेक्शन (और एक SIP ट्रंक) बनाता है। यही फ्लो API के माध्यम से भी उपलब्ध है:
# Discover active subaccounts visible to the parent credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"credentials": {"accountSid": "ACparent...", "authToken": "..."}}'{
"discovery_id": "7c1e...",
"parent": { "sid": "ACparent...", "friendly_name": "Acme" },
"subaccounts": [
{ "sid": "ACsupport...", "friendly_name": "Acme Support", "already_connected": false, "connection_id": null },
{ "sid": "ACsales...", "friendly_name": "Acme Sales", "already_connected": true, "connection_id": 5 }
]
}# Create a connection for each selected subaccount
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts/connect \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"discovery_id": "7c1e...", "subaccount_sids": ["ACsupport..."]}'रिस्पॉन्स में हर सबअकाउंट के लिए एक पंक्ति होती है, जिसमें status created, skipped (पहले से कनेक्टेड) या failed होता है, साथ ही एक error होता है जिस पर आप कार्रवाई कर सकते हैं। पंक्तियां स्वतंत्र होती हैं, इसलिए एक सबअकाउंट में विफलता अन्य को कभी ब्लॉक नहीं करती, और discovery_id 30 मिनट तक मान्य रहता है, इसलिए विफल पंक्ति को बस फिर से आज़माया जा सकता है। सबअकाउंट टोकन डिस्कवरी के समय Twilio से पढ़े जाते हैं और नए कनेक्शन पर स्टोर किए जाते हैं; वे कभी API द्वारा वापस नहीं किए जाते। इसके बाद हर नया कनेक्शन नंबरों को ठीक उसी तरह इंपोर्ट और वेरिफ़ाई करता है जैसे आपके द्वारा मैन्युअल रूप से बनाए गए कनेक्शन में होता है। हर नए कनेक्शन के SIP ट्रंक के लिए कॉल ट्रांसफ़र भी चालू करने हेतु "enable_transfers": true जोड़ें; वहां विफलता उस कनेक्शन के test_result.transfer_enable_error में रिपोर्ट होती है और पंक्ति विफल नहीं होती।
3. नंबर सूचीबद्ध और इंपोर्ट करें
अपने क्रेडेंशियल को दिखाई देने वाले उन नंबरों की जांच करें जो पहले से किसी ThunderPhone संगठन में नहीं हैं:
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"]}'हर इंपोर्ट आपके संगठन में number_type="voip" और status="provisioning" के साथ एक फोन नंबर रिसोर्स बन जाता है।
4. हर इंपोर्ट किए गए नंबर को वेरिफ़ाई करें
इंपोर्ट करने पर नंबर उपलब्ध के रूप में रजिस्टर हो जाता है; उसके माध्यम से कॉल को वास्तव में रूट करने के लिए वेरिफिकेशन आवश्यक है। प्रोवाइडर कनेक्शन (Twilio, Telnyx) के लिए यह प्रोवाइडर क्रेडेंशियल और SIP रीचेबिलिटी की फिर से जांच करता है। मैन्युअल SIP कनेक्शन के लिए, यह पहले एक लूपबैक सेल्फ-कॉल आज़माता है: ThunderPhone नंबर से, आपके SIP ट्रंक के माध्यम से, उसी नंबर पर वापस एक छोटा प्रोब कॉल करता है। अगर इससे इनबाउंड पाथ वेरिफाई नहीं होता, तो यह नंबर से, आपके SIP ट्रंक के माध्यम से, किसी ThunderPhone नंबर पर एक छोटे प्रोब कॉल पर वापस आ जाता है। ये टेस्ट ट्रंक के यूज़रनेम, पासवर्ड, ट्रांसपोर्ट, आउटबाउंड रूटिंग और इनबाउंड डिलीवरी की जांच करते हैं। आपका कैरियर इन कॉल्स का बिल किसी भी अन्य कॉल की तरह करता है।
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" में प्रवेश करता है। आपके अपने Telnyx अकाउंट का कोई नंबर अपनी टेस्ट कॉल विफल होने या आउटबाउंड अभी सेट अप न होने पर भी इनबाउंड कॉल लेना जारी रखता है: वह voip_verification_status
को unverified पर सेट करके status="active" हो जाता है, और रिस्पॉन्स इसका कारण बताता है। विफल होने पर, रिस्पॉन्स स्पष्ट रूप से बताता है
कि क्या विफल हुआ — मैन्युअल ट्रंक के लिए यह कैरियर का SIP उत्तर होता है, उदाहरण के लिए "ThunderPhone के क्रेडेंशियल्स अस्वीकार किए गए (SIP 401)" या "कॉल रूट नहीं की जा सकी (SIP 404)" — इसे ठीक करें (क्रेडेंशियल्स, अनुमत सोर्स IPs, प्रोवाइडर डैशबोर्ड में गायब ट्रंक असाइनमेंट) और फिर से कॉल करें।
अलाउलिस्ट किए गए मैन्युअल SIP कनेक्शन के लिए, अगर वे Allowed Source IPs किसी वास्तविक इनबाउंड कॉल को ब्लॉक करते हैं, तो इनकमिंग-कॉल टेस्ट भी विफल हो जाता है।
5. एजेंट असाइन करें और कॉल लें
नंबर वेरिफ़ाई हो जाने के बाद, आप इनबाउंड / आउटबाउंड एजेंट को उसी तरह असाइन करते हैं जैसे ThunderPhone नंबर के लिए करते हैं। देखें इनबाउंड कॉल हैंडल करें और आउटबाउंड कॉल करें।
क्रेडेंशियल रोटेट करना
जब प्रोवाइडर की बदलती है, तो टेस्ट-फिर-अपडेट फ्लो दोबारा चलाएं:
# 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"
}'कनेक्शन यथावत रहता है — नंबर दोबारा इंपोर्ट करने की आवश्यकता नहीं है।