ThunderPhone 2.0 jest już dostępny.Uruchom samodzielnie — od 2 centów/min.Przeczytaj komunikat

Developer cookbook

Użyj własnych numerów (VoIP, API)

Połącz Twilio lub Telnyx — albo dowolny trunk SIP — zaimportuj posiadane numery telefonów i pozwól agentom ThunderPhone odbierać oraz wykonywać na nich połączenia.

Numery demonstracyjne sprawdzają się przy prototypowaniu, ale ruch produkcyjny powinien korzystać z numerów należących do Ciebie, obsługiwanych przez własnego dostawcę VoIP. Ten przewodnik opisuje trzyetapowy proces: testowanie poświadczeń → utworzenie połączenia → import numerów → weryfikacja.

Obsługiwani dostawcy

DostawcaIdentyfikator providerUwagi
TwiliotwilioKlucz API + sekret
TelnyxtelnyxKlucz API; dostępne wdrożenie z przewodnikiem (setup_method: guided_telnyx)
SignalWiresignalwireWkrótce dostępne — obecnie połącz przez ręczny SIP
VonagevonageWkrótce dostępne — obecnie połącz przez ręczny SIP
Ręczny SIPmanualDowolny trunk SIP — użyj własnej konfiguracji

1. Testowanie poświadczeń

Przed utworzeniem trwałego połączenia VoIP sprawdź poświadczenia dostawcy, aby potwierdzić, że działają. Zwraca to verification_evidence_id, który przekazujesz do kroku tworzenia, aby poświadczenia nie zostały dwukrotnie obciążone za testowanie.

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

Jeśli którakolwiek kontrola się nie powiedzie, status odpowiedzi będzie mieć wartość fail, a checks pokaże, który krok zakończył się błędem. Popraw konfigurację po stronie dostawcy (przypisanie trunku, lista dozwolonych adresów IP, autoryzacja połączeń wychodzących) i spróbuj ponownie.

2. Utwórz połączenie

Przekaż otrzymany przed chwilą 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..."
  }'

Odpowiedź to obiekt VoipConnection ze stanem status="connected". Poświadczenia są przechowywane po stronie serwera i nigdy nie są zwracane jawnym tekstem przez kolejne żądania GET — aby je zmienić, wykonaj nowe test i użyj PATCH z nowymi danymi weryfikacyjnymi.

3. Wyświetl i zaimportuj numery

Sprawdź numery widoczne dla Twoich poświadczeń, które nie znajdują się jeszcze w organizacji ThunderPhone:

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

Następnie zaimportuj wybrane numery:

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

Każdy import staje się zasobem numeru telefonu w Twojej organizacji z source="voip" i status="provisioning".

4. Zweryfikuj każdy zaimportowany numer

Importowanie rejestruje numer jako dostępny; faktyczne kierowanie przez niego połączeń wymaga weryfikacji w obie strony (kontrola połączenia przychodzącego + test autoryzacji połączeń wychodzących).

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

Po powodzeniu voip_verification_status zmienia się na verified, a numer otrzymuje status="active". W przypadku niepowodzenia odpowiedź określa, co się nie udało — popraw to (często jest to brak przypisania trunku w panelu dostawcy) i wywołaj ponownie.

5. Przypisz agentów i wykonaj połączenie

Po zweryfikowaniu numeru przypisujesz agentów połączeń przychodzących / wychodzących tak samo jak do numeru demonstracyjnego. Zobacz Obsługa połączeń przychodzących oraz Wykonywanie połączeń wychodzących.

Rotacja danych uwierzytelniających

Gdy klucz dostawcy zostanie zmieniony, ponownie wykonaj proces testowania, a następnie aktualizacji:

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

Połączenie pozostaje na miejscu — nie musisz ponownie importować numerów.


Kolejne kroki