Open in
Користите сопствене бројеве (VoIP, API)
Повежите Twilio, Telnyx, SignalWire, Vonage, Plivo или било који други SIP транк преко SIP-а, увезите бројеве телефона које већ поседујете и омогућите агентима ThunderPhone-а да примају и упућују позиве преко њих.
Одобрени ThunderPhone бројеви могу да упућују одлазне позиве и покрећу кампање. Ако више волите да користите бројеве које поседујете преко сопственог VoIP провајдера, овај водич вас води кроз поступак повезивања: тестирајте приступне податке → направите везу → увезите бројеве → потврдите.
Подржани провајдери
| Добављач | provider ИД | Напомене |
|---|---|---|
| Twilio | twilio | SID налога + токен за аутентификацију; једна веза по Twilio налогу или подналогу (погледајте Twilio подналоге) |
| Telnyx | telnyx | API кључ; доступно је вођено увођење (setup_method: guided_telnyx) |
| SignalWire | signalwire | Нема изворне везе са добављачем; повежите га као manual помоћу SignalWire SIP унапред подешене конфигурације |
| Vonage | vonage | Нема изворне везе са добављачем; повежите га као manual помоћу Vonage SIP унапред подешене конфигурације |
| Ручни SIP | manual | Било који SIP транк, укључујући SignalWire, Vonage и Plivo. Ако започнете са једне од плочица тих добављача на контролној табли, веза је и даље 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..."
}'Одговор је објекат VoipConnection
са status="connected". Акредитиви се чувају на серверу и никада се
не враћају у отвореном тексту у накнадним GET захтевима — за ротацију покрените нови
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-ја. Свака нова веза затим увози
и верификује бројеве на исти начин као веза коју сте ручно креирали.
Додајте "enable_transfers": true да бисте укључили и пренос позива за SIP магистралу
сваке нове везе; неуспех се пријављује у
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 налогу наставља да прима долазне позиве када његов тестни позив не успе или одлазни позиви још нису подешени: прелази у status="active" са voip_verification_status подешеним на unverified, а одговор наводи разлог. У случају неуспеха, одговор детаљно наводи
шта није успело — за ручни trunk то је SIP одговор оператера, на пример „одбијени су акредитиви за ThunderPhone (SIP 401)” или „није било могуће усмерити позив (SIP 404)” — исправите проблем (акредитиве, дозвољене изворне IP адресе, недостајућу доделу trunk-а на контролној табли добављача) и поново позовите.
За ручну 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"
}'Веза остаје на месту — нема потребе да поново увозите бројеве.