---
title: "Použijte vlastní čísla (VoIP, API)"
description: "Připojte Twilio, Telnyx, SignalWire, Vonage, Plivo nebo jakýkoli jiný SIP trunk přes SIP, importujte telefonní čísla, která již vlastníte, a nechte agenty ThunderPhone na nich přijímat a uskutečňovat hovory."
---

Schválená čísla ThunderPhone mohou uskutečňovat odchozí hovory a spouštět kampaně. Pokud chcete používat čísla, která vlastníte, prostřednictvím vlastního poskytovatele VoIP, tento průvodce vás provede postupem připojení: **otestování přihlašovacích údajů → vytvoření připojení → import čísel → ověření**.

<Note>
  V dashboardu najdete provázenou verzi celého tohoto postupu v nabídce
  **Připojení → VoIP** (`/dashboard/voip-connections`): nejprve postup pro
  připojení existujícího poskytovatele (Twilio a Telnyx pomocí klíče API; SignalWire,
  Vonage, Plivo a jakýkoli jiný trunk pomocí ručního formuláře SIP s kroky
  specifickými pro poskytovatele a generátorem průvodce nastavením AI) a poté
  provázené nastavení, které otevře nový účet Telnyx.
</Note>

## Podporovaní poskytovatelé

| Poskytovatel | `provider` ID | Poznámky |
|----------|---------------|-------|
| Twilio | `twilio` | SID účtu + ověřovací token; jedno připojení pro každý účet nebo podúčet Twilio (viz [podúčty Twilio](#twilio-subaccounts)) |
| Telnyx | `telnyx` | Klíč API; k dispozici je provázené nastavení (`setup_method: guided_telnyx`) |
| SignalWire | `signalwire` | Žádné nativní připojení poskytovatele; připojte jej jako `manual` s předvolbou SIP pro SignalWire |
| Vonage | `vonage` | Žádné nativní připojení poskytovatele; připojte jej jako `manual` s předvolbou SIP pro Vonage |
| Ruční SIP | `manual` | Libovolný SIP trunk včetně SignalWire, Vonage a Plivo. Pokud začnete z jedné z dlaždic těchto poskytovatelů na dashboardu, připojení bude stále `manual` a uloží volbu do `sip_config.preset` (`signalwire`, `vonage` nebo `plivo`) |

## 1. Otestování přihlašovacích údajů

Před vytvořením trvale uloženého připojení VoIP otestujte přihlašovací
údaje poskytovatele a ověřte, že fungují. Tím získáte
`verification_evidence_id`, který předáte v kroku vytvoření, aby se za
testování přihlašovacích údajů neúčtovalo dvakrát.

```bash
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" }
  }'
```

```json Response
{
  "status": "pass",
  "verification_evidence_id": "b9a2...",
  "suggested_connection_name": "Telnyx: Acme Main (+15550001234)",
  "checks": {
    "credentials_valid": true,
    "inbound_reachable": true,
    "outbound_authorized": true
  }
}
```

Pokud některá kontrola selže, hodnota `status` v odpovědi bude `fail` a
`checks` zobrazí, který krok selhal. Opravte konfiguraci na straně
poskytovatele (přiřazení trunku, seznam povolených IP adres, oprávnění
pro odchozí hovory) a zkuste to znovu.

## 2. Vytvoření připojení

Předejte právě získané `verification_evidence_id`:

```bash
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..."
  }'
```

Odpovědí je [objekt VoipConnection](/api-reference/voip-connections#connection-object)
se stavem `status="connected"`. Přihlašovací údaje jsou uloženy na serveru a následné
požadavky GET je nikdy nevracejí v prostém textu — pro jejich obměnu spusťte nový
`test` a odešlete PATCH s novými ověřovacími údaji.

### Podúčty Twilio

Připojení Twilio je vázáno na jediný účet Twilio, jehož
Account SID a Auth Token obsahuje. Twilio uchovává telefonní čísla a SIP
trunky v jednotlivých podúčtech, takže připojení vytvořené s nadřazeným
účtem vidí pouze vlastní čísla nadřazeného účtu a existující
připojení nelze později přepnout na jiný podúčet.

Chcete-li přistupovat k číslům v podúčtech, vytvořte jedno připojení pro každý
podúčet. Řídicí panel to provede za vás: když připojíte nadřazený
účet s aktivními podúčty, dialog nastavení je zobrazí, vyberete
požadované a ThunderPhone v každém z nich vytvoří připojení (a
SIP trunk). Stejný postup je dostupný přes API:

```bash
# 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": "..."}}'
```

```json 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 }
  ]
}
```

```bash
# 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..."]}'
```

Odpověď obsahuje jeden řádek pro každý podúčet se `status` `created`, `skipped` (již připojeno) nebo `failed` a s `error`, na kterou můžete reagovat. Řádky jsou nezávislé, takže selhání v jednom podúčtu nikdy neblokuje ostatní a `discovery_id` zůstává platné 30 minut, takže neúspěšný řádek můžete jednoduše zopakovat. Tokeny podúčtů se načtou z Twilio při zjišťování a uloží do nového připojení; API je nikdy nevrací. Každé nové připojení pak importuje a ověřuje čísla stejně jako připojení vytvořené ručně. Přidejte `"enable_transfers": true`, chcete-li také zapnout přesměrování hovorů pro SIP trunk každého nového připojení; selhání se nahlásí v `test_result.transfer_enable_error` daného připojení a nezpůsobí selhání řádku.

## 3. Výpis a import čísel

Zkontrolujte čísla viditelná pro vaše přihlašovací údaje, která ještě nejsou
v organizaci ThunderPhone:

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

Poté importujte požadovaná čísla:

```bash
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ždý import se ve vaší organizaci stane [zdrojem telefonního čísla](/api-reference/phone-numbers)
s hodnotami `number_type="voip"` a `status="provisioning"`.

## 4. Ověřte každé importované číslo

Importováním se číslo zaregistruje jako *dostupné*; skutečné směrování hovorů
přes něj vyžaduje ověření. U připojení poskytovatelů (Twilio,
Telnyx) se tím znovu ověří přihlašovací údaje poskytovatele a dostupnost SIP.
U připojení **ruční SIP** se nejprve zkusí smyčkový samoobslužný hovor:
ThunderPhone uskuteční krátký testovací hovor *z* čísla, *přes* váš SIP
trunk, *zpět na stejné číslo*. Pokud se tím neověří příchozí cesta, použije se
krátký testovací hovor *z* čísla, *přes* váš SIP trunk,
*na* číslo ThunderPhone. Tyto testy ověřují uživatelské jméno trunku,
heslo, transport, odchozí směrování a doručování příchozích hovorů. Váš operátor
tyto hovory účtuje stejně jako jakékoli jiné.

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

Po úspěšném ověření se `voip_verification_status` změní na `verified` a číslo přejde do stavu `status="active"`. Číslo ve vašem vlastním účtu Telnyx nadále přijímá příchozí hovory, pokud jeho testovací hovor selže nebo odchozí hovory ještě nejsou nastavené: přejde do stavu `status="active"` s hodnotou `voip_verification_status`
nastavenou na `unverified` a odpověď uvede proč. Při selhání odpověď přesně popíše,
co nefungovalo — u ručního trunku jde o SIP odpověď operátora, například *"odmítl přihlašovací údaje ThunderPhone (SIP 401)"* nebo *"nepodařilo se směrovat hovor (SIP 404)"* — opravte to (přihlašovací údaje, povolené zdrojové IP adresy, chybějící přiřazení trunku v dashboardu poskytovatele) a zavolejte znovu.

U ručního SIP připojení se seznamem povolených adres test příchozího hovoru také selže, pokud
by tyto povolené zdrojové IP adresy blokovaly skutečný příchozí hovor.

## 5. Přiřaďte agenty a přijměte hovor

Po ověření čísla přiřaďte agenty pro příchozí a odchozí hovory
stejným způsobem jako u čísla ThunderPhone. Viz
[Zpracování příchozích hovorů](/cs/guides/handle-inbound-calls) a
[Uskutečňování odchozích hovorů](/cs/guides/place-outbound-calls).

## Obměna přihlašovacích údajů

Při obměně klíče poskytovatele znovu proveďte postup testování a následné aktualizace:

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

Připojení zůstává beze změny — čísla není nutné znovu importovat.

---

## Další kroky

<CardGroup cols={2}>
  <Card title="Referenční dokumentace připojení VoIP" icon="phone-volume" href="/api-reference/voip-connections">
    Každé pole v odpovědích pro připojení, důkazy a import.
  </Card>
  <Card title="Referenční dokumentace telefonních čísel" icon="phone" href="/api-reference/phone-numbers">
    Přiřazujte agenty, převádějte mezi organizacemi, uvolňujte čísla.
  </Card>
  <Card title="Uskutečňování odchozích hovorů" icon="arrow-up-right" href="/cs/guides/place-outbound-calls">
    Nyní, když číslo vlastníte, začněte uskutečňovat odchozí hovory.
  </Card>
</CardGroup>
