ThunderPhone 2.0 ir klāt.Sāciet patstāvīgi — no 2 ¢/min.Lasīt paziņojumu

Developer cookbook

Pievienojiet savus numurus (VoIP, API)

Pievienojiet Twilio, Telnyx, SignalWire, Vonage, Plivo vai jebkuru citu SIP maģistrāli, izmantojot SIP, importējiet jau piederošos tālruņa numurus un ļaujiet ThunderPhone balss aģentiem tajos atbildēt uz zvaniem un veikt zvanus.

Apstiprinātie ThunderPhone numuri var veikt izejošos zvanus un palaist kampaņas. Ja vēlaties izmantot savus numurus ar sava VoIP pakalpojumu sniedzēja starpniecību, šajā ceļvedī ir aprakstīta savienošanas plūsma: pārbaudiet akreditācijas datus → izveidojiet savienojumu → importējiet numurus → verificējiet.

Atbalstītie pakalpojumu sniedzēji

Pakalpojumu sniedzējsprovider IDPiezīmes
TwiliotwilioKonta SID + autentifikācijas marķieris; viens savienojums katram Twilio kontam vai apakškontam (skatiet Twilio apakškonti)
TelnyxtelnyxAPI atslēga; pieejama vadītā sākotnējā iestatīšana (setup_method: guided_telnyx)
SignalWiresignalwireNav vietēja pakalpojumu sniedzēja savienojuma; pievienojiet to kā manual, izmantojot SignalWire SIP priekšiestatījumu
VonagevonageNav vietēja pakalpojumu sniedzēja savienojuma; pievienojiet to kā manual, izmantojot Vonage SIP priekšiestatījumu
Manuāls SIPmanualJebkurš SIP maģistrālais savienojums, tostarp SignalWire, Vonage un Plivo. Ja informācijas panelī sākat no kāda no šo pakalpojumu sniedzēju elementiem, savienojums joprojām ir manual un saglabā izvēli laukā sip_config.preset (signalwire, vonage vai plivo)

1. Pārbaudiet akreditācijas datus

Pirms izveidojat pastāvīgu VoIP savienojumu, pārbaudiet pakalpojumu sniedzēja akreditācijas datus, lai apstiprinātu, ka tie darbojas. Tiek atgriezts verification_evidence_id, ko nododat izveides darbībai, lai par akreditācijas datu pārbaudi netiktu divreiz iekasēta maksa.

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

Ja kāda pārbaude neizdodas, atbildes status būs fail, un checks parādīs, kurā darbībā radās kļūda. Izlabojiet pakalpojumu sniedzēja puses konfigurāciju (maģistrāles piešķiršanu, IP atļauto sarakstu, izejošo zvanu autorizāciju) un mēģiniet vēlreiz.

2. Izveidojiet savienojumu

Nododiet tikko iegūto 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..."
  }'

Atbilde ir VoipConnection objekts ar status="connected". Akreditācijas dati un citas slepenās savienojuma vērtības tiek glabātas servera pusē un nekad netiek atgrieztas atklātā tekstā turpmākajos GET pieprasījumos — lai tās nomainītu, palaidiet jaunu test un veiciet PATCH ar jaunajiem pierādījumiem.

Twilio apakškonti

Twilio savienojums ir piesaistīts vienam Twilio kontam, kura Account SID un Auth Token tas satur. Twilio glabā tālruņa numurus un SIP maģistrāles katrā apakškontā, tāpēc ar vecākkontu izveidots savienojums redz tikai vecākkonta numurus, un esošu savienojumu vēlāk nevar pārslēgt uz citu apakškontu.

Lai piekļūtu numuriem apakškontos, izveidojiet vienu savienojumu katram apakškontam. Vadības panelis to izdara jūsu vietā: kad pievienojat vecākkontu, kuram ir aktīvi apakškonti, iestatīšanas dialoglodziņā tie tiek uzskaitīti, jūs atzīmējat vajadzīgos, un ThunderPhone katrā no tiem izveido savienojumu (un SIP trunk). Tas pats process ir pieejams arī 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..."]}'

Atbildē katram apakškontam ir viena rinda ar status vērtību created, skipped (jau savienots) vai failed, kā arī error, uz kuru varat reaģēt. Rindas ir neatkarīgas, tāpēc kļūme vienā apakškontā nekad nebloķē pārējos, un discovery_id ir derīgs 30 minūtes, tāpēc neizdevušos rindu var vienkārši mēģināt vēlreiz. Apakškonta pilnvaras atklāšanas laikā tiek nolasītas no Twilio un saglabātas jaunajā savienojumā; tās nekad netiek atgrieztas, izmantojot API. Pēc tam katrs jaunais savienojums importē un pārbauda numurus tieši tāpat kā savienojums, ko izveidojāt manuāli. Pievienojiet "enable_transfers": true, lai arī ieslēgtu zvanu pārsūtīšanu katra jaunā savienojuma SIP maģistrālei; kļūme tur tiek norādīta šī savienojuma test_result.transfer_enable_error un neizraisa rindas kļūmi.

3. Numuru uzskaitīšana un importēšana

Pārbaudiet numurus, kas ir pieejami jūsu akreditācijas datiem un vēl nav ThunderPhone organizācijā:

curl https://api.thunderphone.com/v1/voip-connections/5/available-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Pēc tam importējiet vajadzīgos:

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

Katrs imports jūsu organizācijā kļūst par tālruņa numura resursu ar number_type="voip" un status="provisioning".

4. Pārbaudiet katru importēto numuru

Importējot numurs tiek reģistrēts kā pieejams; lai faktiski maršrutētu zvanus caur to, nepieciešama verifikācija. Pakalpojumu sniedzēja savienojumiem (Twilio, Telnyx) tā atkārtoti pārbauda pakalpojumu sniedzēja akreditācijas datus un SIP sasniedzamību. manuālam SIP savienojumam vispirms tiek mēģināts veikt cilpas pašzvanu: ThunderPhone veic īsu pārbaudes zvanu no numura, caur jūsu SIP trunku, atpakaļ uz to pašu numuru. Ja tas neapstiprina ienākošo ceļu, tas izmanto īsu pārbaudes zvanu no numura, caur jūsu SIP trunku, uz ThunderPhone numuru. Šīs pārbaudes pārbauda trunka lietotājvārdu, paroli, transportu, izejošo maršrutēšanu un ienākošo piegādi. Jūsu operators par šiem zvaniem izraksta rēķinu tāpat kā par jebkuriem citiem.

curl -X POST https://api.thunderphone.com/v1/phone-numbers/{id}/verify-voip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Ja pārbaude ir veiksmīga, voip_verification_status tiek iestatīts uz verified, un numurs iegūst status="active". Numurs jūsu Telnyx kontā turpina pieņemt ienākošos zvanus, ja tā testa zvans neizdodas vai izejošie zvani vēl nav iestatīti: tas iegūst status="active", bet voip_verification_status tiek iestatīts uz unverified, un atbilde paskaidro iemeslu. Ja pārbaude neizdodas, atbilde precīzi norāda, kas neizdevās — manuālam maģistrālajam savienojumam tā ir operatora SIP atbilde, piemēram, "noraidīja ThunderPhone akreditācijas datus (SIP 401)" vai "nevarēja maršrutēt zvanu (SIP 404)" — novērsiet problēmu (akreditācijas dati, atļautās avota IP adreses, trūkstošs maģistrāles piešķīrums pakalpojumu sniedzēja informācijas panelī) un izsauciet to vēlreiz.

Manuālam SIP savienojumam ar atļauto sarakstu ienākošo zvanu pārbaude arī neizdodas, ja šie Allowed Source IPs bloķētu reālu ienākošo zvanu.

5. Piešķiriet balss aģentus un veiciet zvanu

Kad numurs ir pārbaudīts, ienākošo / izejošo zvanu balss aģentus piešķiriet tāpat kā ThunderPhone numuram. Skatiet Apstrādājiet ienākošos zvanus un Veiciet izejošos zvanus.

Akreditācijas datu maiņa

Kad pakalpojumu sniedzēja atslēga tiek nomainīta, atkārtoti veiciet pārbaudes un pēc tam atjaunināšanas procesu:

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

Savienojums paliek spēkā — numuri nav jāimportē atkārtoti.


Nākamās darbības