ThunderPhone 2.0 ఇప్పుడు అందుబాటులో ఉంది.మీరే ప్రారంభించవచ్చు—నిమిషానికి 2¢ నుంచి.ప్రకటనను చదవండి

Developer cookbook

మీ స్వంత నంబర్‌లను తీసుకురండి (VoIP, API)

Twilio లేదా Telnyx — లేదా ఏదైనా SIP ట్రంక్‌ను కనెక్ట్ చేసి — మీరు ఇప్పటికే కలిగి ఉన్న ఫోన్ నంబర్‌లను ఇంపోర్ట్ చేయండి; వాటిపై ThunderPhone ఏజెంట్‌లు కాల్‌లకు సమాధానం ఇవ్వడానికి మరియు కాల్‌లు చేయడానికి అనుమతించండి.

ThunderPhone నంబర్‌లు ఇన్‌బౌండ్ కాల్‌లను కవర్ చేస్తాయి, కానీ అవుట్‌బౌండ్ కాల్‌లు మరియు క్యాంపెయిన్‌లకు మీ స్వంత VoIP ప్రొవైడర్ ద్వారా మీకు చెందిన నంబర్‌లు అవసరం. ఈ గైడ్ మిమ్మల్ని మూడు-దశల ఫ్లో ద్వారా నడిపిస్తుంది: క్రెడెన్షియల్‌లను పరీక్షించండి → కనెక్షన్‌ను సృష్టించండి → నంబర్‌లను ఇంపోర్ట్ చేయండి → ధృవీకరించండి.

మద్దతు ఉన్న ప్రొవైడర్‌లు

ప్రొవైడర్provider idగమనికలు
Twiliotwilioఅకౌంట్ SID + Auth Token; ప్రతి Twilio అకౌంట్ లేదా సబ్‌అకౌంట్‌కు ఒక కనెక్షన్ (చూడండి Twilio సబ్‌అకౌంట్‌లు)
TelnyxtelnyxAPI కీ; మార్గనిర్దేశిత ఆన్‌బోర్డింగ్ అందుబాటులో ఉంది (setup_method: guided_telnyx)
SignalWiresignalwireత్వరలో అందుబాటులోకి వస్తుంది — ప్రస్తుతం మాన్యువల్ SIP ద్వారా కనెక్ట్ చేయండి
Vonagevonageత్వరలో అందుబాటులోకి వస్తుంది — ప్రస్తుతం మాన్యువల్ SIP ద్వారా కనెక్ట్ చేయండి
మాన్యువల్ SIPmanualఏదైనా 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" }
  }'
Response
{
  "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 చేయండి.

Twilio సబ్‌అకౌంట్‌లు

Twilio కనెక్షన్, దానిలోని Account SID మరియు Auth Tokenకు చెందిన ఒకే Twilio అకౌంట్‌తో అనుసంధానించబడుతుంది. Twilio ప్రతి సబ్‌అకౌంట్‌లో ఫోన్ నంబర్‌లు మరియు SIP ట్రంక్‌లను ఉంచుతుంది, కాబట్టి పేరెంట్ అకౌంట్‌తో చేసిన కనెక్షన్ పేరెంట్‌కు చెందిన నంబర్‌లను మాత్రమే చూస్తుంది. ఇప్పటికే ఉన్న కనెక్షన్‌ను తర్వాత వేరే సబ్‌అకౌంట్‌కు మార్చలేరు (కనెక్షన్ 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": "..."}}'
Response
{
  "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 ద్వారా ఎప్పుడూ తిరిగి ఇవ్వబడవు. ప్రతి కొత్త కనెక్షన్ తర్వాత మీరు చేతితో సృష్టించిన కనెక్షన్‌లాగే నంబర్‌లను ఇంపోర్ట్ చేసి ధృవీకరిస్తుంది.

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

ప్రతి ఇంపోర్ట్ మీ సంస్థలో source="voip" మరియు status="provisioning"తో కూడిన ఫోన్ నంబర్ రిసోర్స్గా మారుతుంది.

4. దిగుమతి చేసిన ప్రతి నంబర్‌ను ధృవీకరించండి

దిగుమతి చేయడం నంబర్‌ను అందుబాటులో ఉన్నదిగా నమోదు చేస్తుంది; వాస్తవంగా దాని ద్వారా కాల్‌లను రూట్ చేయడానికి ధృవీకరణ అవసరం. ప్రొవైడర్ కనెక్షన్‌లకు (Twilio, Telnyx) అది ప్రొవైడర్ క్రెడెన్షియల్‌లు మరియు SIP రీచ్‌బిలిటీని మళ్లీ తనిఖీ చేస్తుంది. మాన్యువల్ 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"లోకి ప్రవేశిస్తుంది. విఫలమైనప్పుడు, ప్రతిస్పందనలో ఏది విఫలమైందో స్పష్టంగా ఉంటుంది — మాన్యువల్ ట్రంక్ కోసం అది క్యారియర్ SIP ప్రతిస్పందన, ఉదాహరణకు "ThunderPhone క్రెడెన్షియల్‌లను తిరస్కరించింది (SIP 401)" లేదా "కాల్‌ను రూట్ చేయలేకపోయింది (SIP 404)" — దాన్ని సరిచేయండి (క్రెడెన్షియల్‌లు, అనుమతించిన సోర్స్ IPలు, ప్రొవైడర్ డ్యాష్‌బోర్డ్‌లో లేని ట్రంక్ అసైన్‌మెంట్) మరియు మళ్లీ కాల్ చేయండి.

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

కనెక్షన్ అలాగే ఉంటుంది — నంబర్‌లను మళ్లీ దిగుమతి చేయాల్సిన అవసరం లేదు.


తదుపరి దశలు