Open in
તમારા પોતાના નંબરો લાવો (VoIP, API)
Twilio, Telnyx, SignalWire, Vonage, Plivo અથવા અન્ય કોઈપણ SIP trunk ને SIP મારફતે કનેક્ટ કરો, તમારા પાસે પહેલેથી હોય તે ફોન નંબરો ઇમ્પોર્ટ કરો અને ThunderPhone એજન્ટોને તેમના પર કૉલ્સનો જવાબ આપવા અને કૉલ્સ કરવા દો.
મંજૂર ThunderPhone નંબરો આઉટબાઉન્ડ કૉલ કરી શકે છે અને કૅમ્પેઇન ચલાવી શકે છે. જો તમે તમારા પોતાના VoIP પ્રદાતા મારફતે તમારા માલિકીના નંબરો વાપરવાનું પસંદ કરો છો, તો આ માર્ગદર્શિકા તમને કનેક્શન પ્રક્રિયામાં માર્ગદર્શન આપે છે: ક્રેડેન્શિયલ્સ ચકાસો → કનેક્શન બનાવો → નંબરો આયાત કરો → ચકાસણી કરો.
સમર્થિત પ્રદાતાઓ
| પ્રદાતા | provider id | નોંધો |
|---|---|---|
| Twilio | twilio | એકાઉન્ટ SID + Auth Token; દરેક Twilio એકાઉન્ટ અથવા સબએકાઉન્ટ માટે એક કનેક્શન (Twilio સબએકાઉન્ટ્સ જુઓ) |
| Telnyx | telnyx | API કી; માર્ગદર્શિત ઑનબોર્ડિંગ ઉપલબ્ધ (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 એલાઉલિસ્ટ, આઉટબાઉન્ડ અધિકૃતતા) સુધારો અને ફરી પ્રયાસ કરો.
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 કનેક્શન તે એક જ Twilio એકાઉન્ટ સાથે જોડાયેલું હોય છે, જેના Account SID અને Auth Token તે ધરાવે છે. Twilio દરેક સબએકાઉન્ટમાં ફોન નંબર અને SIP trunk રાખે છે, તેથી પેરેન્ટ એકાઉન્ટથી બનાવેલું કનેક્શન માત્ર પેરેન્ટના પોતાના નંબરો જ જોઈ શકે છે, અને હાલના કનેક્શનને પછીથી બીજા સબએકાઉન્ટ પર બદલી શકાતું નથી.
સબએકાઉન્ટ્સમાં રહેલા નંબરો સુધી પહોંચવા માટે, દરેક સબએકાઉન્ટ માટે એક કનેક્શન બનાવો. ડેશબોર્ડ આ તમારા માટે કરે છે: જ્યારે તમે સક્રિય સબએકાઉન્ટ્સ ધરાવતું પેરેન્ટ એકાઉન્ટ કનેક્ટ કરો છો, ત્યારે સેટઅપ ડાયલોગ તેમને સૂચિબદ્ધ કરે છે, તમે ઇચ્છો તે પસંદ કરો છો, અને 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 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 માં 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)" — તેને ઠીક કરો (ઓળખપત્રો, મંજૂર સ્રોત IP, પ્રોવાઇડર ડેશબોર્ડમાં ગુમ ટ્રંક અસાઇનમેન્ટ) અને ફરી કૉલ કરો.
અનુમતિસૂચિબદ્ધ મેન્યુઅલ SIP કનેક્શન માટે, જો તે મંજૂર સ્રોત 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"
}'કનેક્શન યથાવત રહે છે — નંબરો ફરી આયાત કરવાની જરૂર નથી.