ThunderPhone 2.0 je stigao.Postavite sve sami, već od 2 ¢/min.Pročitajte objavu

Developer cookbook

Upućivanje odlaznih poziva (API)

Pokrenite odlazni poziv koji vodi umjetna inteligencija iz vlastitog koda — za ankete, naknadne upite ili tijekove potvrđivanja.

Odlazno pozivanje omogućuje vam da ThunderPhoneu predate odredišni broj i konfiguraciju agenta te da AI obavi poziv u vaše ime. Uobičajeni slučajevi upotrebe:

  • Potvrde termina
  • Povratni pozivi za ankete
  • Naknadni pokušaji nakon propuštenog poziva
  • Obavijesti u stilu dispečerskih obavijesti

Preduvjeti

  1. Donesite VoIP broj

    Za odlazne pozive morate posjedovati from_number putem VoIP veze. ThunderPhone brojevi služe samo za dolazne pozive. Pogledajte Donesite vlastite brojeve.

  2. Izradite agenta

    Prompt prilagođen odlaznim pozivima obično počinje tako da se agent predstavi i navede svoju svrhu — „Dobar dan, ovdje Acme, zovemo radi potvrde vašeg termina sutra u 15 h…” Postavite outbound_speak_order na agent_first (zadano).

  3. Održavajte pozitivan saldo

    Odlazni pozivi vraćaju 402 Payment Required ako je saldo ≤ $0.00. Nadoplatite saldo putem POST /v1/billing/top-up ili omogućite automatsku nadoplatu.

Uputite poziv sa spremljenim agentom

Najjednostavniji način — referencirajte agenta prema ID-u:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "agent_id":    12
  }'

Odgovor:

{ "call_id": 987654321, "status": "initiated" }

Uputite poziv s umetnutom konfiguracijom

Ako želite jednokratni prompt koji nije vrijedno spremati kao agenta, umjesto toga proslijedite config. Struktura odgovara shemi odgovora webhooka call.incoming:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'

Pratite poziv

Paralelno se pretplatite na telephony.complete webhook — to je najbrži način da saznate da je poziv završio. Ako ne možete primati dolazne webhookove, provjeravajte GET /v1/calls/{call_id} svakih nekoliko sekundi; zapis uključuje end_reason, duration_seconds i URL snimke nakon završetka poziva.

Važni načini neuspjeha koje treba obraditi

PogreškaRješenje
402 Payment RequiredNadoplatite saldo ili omogućite automatsku nadoplatu
403 odlazni pozivi blokirani (ThunderPhone broj)Umjesto toga donesite VoIP broj
403 odlazni pozivi blokirani (neprovjereni VoIP)Pokrenite POST /v1/phone-numbers/{id}/verify-voip
404 from_number is not registered to this organizationPotvrdite da from_number odgovara telefonskom broju koji posjedujete
502 Bad GatewayPrivremeni kvar SIP-a / LiveKita; sigurno je pokušati ponovno

Upravljanje vremenom na čekanju

Odlazni pozivi koji dugo traju jer pozvana strana sporo odgovara (IVR stabla, redovi čekanja) mogu se ograničiti pomoću max_hold_seconds:

{
  "from_number": "+15551234567",
  "to_number":   "+14155550199",
  "agent_id":    12,
  "max_hold_seconds": 120
}

Agent prekida poziv ako u posljednjih N sekundi nije primljen ljudski glas. Zadana vrijednost je 900 (15 minuta).


Sljedeći koraci