---
title: "Připojení přes SIP (bez telefonního čísla)"
description: "Směrujte hovory k agentovi ThunderPhone přímo ze své ústředny PBX, od operátora nebo z aplikace SIP pomocí jednorázového identifikátoru URI SIP pro každý hovor nebo trvalé adresy SIP."
---

Pokud váš vlastní systém již pracuje s telefonními čísly (PBX, platforma pro
kontaktní centrum nebo účet u operátora, kde střídáte čísla), můžete směrovat hovory
k agentovi ThunderPhone přes běžný SIP. Do ThunderPhone neimportujete ani nekupujete
žádné číslo. Váš systém vytočí adresu SIP a agent hovor přijme.

Existují dva typy adres SIP:

| | **SIP URI pro jednotlivý hovor** | **Koncový bod SIP** |
|---|---|---|
| Vypadá jako | `sip:c-<token>@sip.thunderphone.com` | `sip:agent-<id>-<letters>@sip.thunderphone.com` |
| Vytvořeno pomocí | `POST /v1/calls/register-sip`, jednou pro každý hovor | `POST /v1/sip-endpoints`, jednou |
| Ověření | Jednorázový token v adrese | Uživatelské jméno a heslo SIP digest (a volitelně seznam povolených zdrojových IP adres) |
| Vhodné pro | Aplikace, které již před předáním hovoru volají API; proměnné pro jednotlivé hovory | PBX a operátory, které mají pouze „nasměrovat trunk“ na ThunderPhone |
| Platnost | 5 minut, jeden hovor | Dokud jej nesmažete |

Oba typy směrují k jednomu agentovi ve vaší organizaci a oba se v historii
hovorů zobrazují jako jakýkoli jiný příchozí hovor.

## SIP URI pro jednotlivý hovor

### 1. Zaregistrujte hovor

```bash
curl -X POST https://api.thunderphone.com/v1/calls/register-sip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 12,
    "to_number": "+14155550142",
    "variables": {"customer_name": "Ada"}
  }'
```

```json
{
  "call_id": 862197007562,
  "sip_uri": "sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com",
  "expires_at": "2026-09-25T21:49:52Z",
  "agent_id": 12,
  "to_number": "+14155550142"
}
```

- `to_number` (volitelné) je číslo, které volající vytočil na vaší straně. Uloží
  se jako cíl hovoru v historii hovorů a agent jej vidí jako své vlastní číslo.
- `variables` (volitelné) vyplní `{{placeholders}}` v promptu agenta stejným
  způsobem jako u [odchozích hovorů](/cs/guides/call-variables).
- `call_id` je ID, které bude mít hovor v historii hovorů
  (`GET /v1/calls/{call_id}`), jakmile se spojí.

### 2. Vytočte URI

Odešlete hovor na `sip_uri` do 5 minut. URI funguje pouze pro jeden hovor:
jakmile jej hovor použije, je vyčerpáno, i když tento hovor rychle skončí.

Například s Twilio vraťte pro hovor, který chcete předat, tento TwiML:

```xml
<Response>
  <Dial>
    <Sip>sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com;transport=tcp</Sip>
  </Dial>
</Response>
```

Z PBX vytočte URI jako cíl SIP. Není potřeba žádné uživatelské jméno ani heslo;
token je přihlašovací údaj, proto s URI zacházejte jako s heslem, dokud nebude
použito.

## Koncový bod SIP (trvalá adresa)

### 1. Vytvořte koncový bod

```bash
curl -X POST https://api.thunderphone.com/v1/sip-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": 12, "name": "Main PBX"}'
```

```json
{
  "id": 7,
  "name": "Main PBX",
  "agent_id": 12,
  "sip_uri": "sip:agent-12-jhxmginwjx@sip.thunderphone.com",
  "username": "tp409667538f83",
  "password": "8mJ0…",
  "allowed_source_cidrs": [],
  "status": "active",
  "created_at": "2026-09-25T21:46:18Z"
}
```

<Warning>
  Hodnota `password` se vrací pouze jednou, při vytvoření koncového bodu. Ihned ji uložte
  do konfigurace své ústředny PBX nebo operátora. Pokud ji ztratíte, obnovte ji
  pomocí `POST /v1/sip-endpoints/{id}/rotate-password`.
</Warning>

### 2. Nasměrujte na něj svůj systém

Nakonfigurujte SIP trunk nebo cíl s následujícími hodnotami:

| Nastavení | Hodnota |
|---|---|
| SIP URI | `sip_uri` koncového bodu |
| Uživatelské jméno / heslo | `username` / `password` (digest autentizace; ThunderPhone ověřuje každý hovor) |
| Transport | TCP na portu 5060 nebo TLS na portu 5061 (doporučeno), případně UDP na portu 5060 |
| Kodeky | G.711 (PCMU/PCMA) nebo G.722 |

<Note>
  Upřednostněte TCP nebo TLS. UDP funguje z veřejných adres a z většiny sítí NAT, ale
  za „symetrickým“ NATem (který používá nový port pro každý cíl) se ukončení hovorů
  a přepojení agentem nemusí dostat do vašeho systému. Seznam povolených zdrojových IP
  adres (níže) také vyžaduje TCP nebo TLS. Při použití TLS zůstává signalizace SIP
  šifrovaná i za `sip.thunderphone.com`, až k serverům, které hovor zpracovávají.
</Note>

Tato nastavení transportu a kodeků platí také pro URI pro jednotlivé hovory. Pro oba
typy adres jsou důležité dva síťové aspekty:

- **Dodržujte Record-Route.** Po prvním INVITE směřuje zbytek signalizace hovoru
  (ACK, ukončení hovoru, přepojení) na konkrétní server ThunderPhone, který odpověděl
  a je uveden v hlavičce `Record-Route`
  (`sip-1.thunderphone.com` nebo `sip-2.thunderphone.com`, případně jeho IP adresa).
  Pokud omezujete odchozí SIP, povolte tyto hostitele i
  `sip.thunderphone.com`: `172.170.39.202` (`sip`), `13.86.104.121`
  (`sip-1`) a `20.80.98.90` (`sip-2`).
- **Zvuk směřuje jinam.** `sip.thunderphone.com` přenáší pouze signalizaci.
  Povolte média (RTP) na adresy a porty v odpovědi SDP.

Každý hovor na tuto adresu se spojí s agentem koncového bodu bez ohledu na to,
jaké číslo volající na vaší straně vytočil. Čísla nikdy neimportujete, takže jejich
změna na vaší straně nevyžaduje žádnou úpravu v ThunderPhone.

### Předejte vytočené číslo (volitelné)

Chcete-li zaznamenat, které z vašich čísel volající vytočil, odešlete je v INVITE
v hlavičce `X-Original-To` (například `X-Original-To: +14155550142`) nebo ve
standardní hlavičce `Diversion`. ThunderPhone jej uloží jako cíl hovoru.

Cíl se vybírá v tomto pořadí: `to_number` zadané při registraci URI pro jednotlivý
hovor, poté číslo v `X-Original-To`, následně číslo v `Diversion`.
Pokud žádná z těchto možností neposkytne číslo, pro koncový bod se zobrazí
`sip:agent-12-jhxmginwjx` (adresa koncového bodu) nebo `sip:call` pro URI
jednotlivého hovoru.

S Twilio můžete hlavičku přidat do SIP URI:
`sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142`.

### Omezte zdrojové IP adresy (volitelné)

Nastavte `allowed_source_cidrs`, aby se kromě uživatelského jména a hesla přijímaly
pouze hovory z vašich vlastních adres pro signalizaci:

```bash
curl -X PATCH https://api.thunderphone.com/v1/sip-endpoints/7 \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"allowed_source_cidrs": ["203.0.113.0/28"]}'
```

Hovory z jakékoli jiné adresy jsou odmítnuty předtím, než se dostanou k agentovi.
Použijte adresy, ze kterých váš systém odesílá signalizaci SIP (u operátora, jako je
Twilio, jeho zveřejněné rozsahy IP adres pro signalizaci), nikoli adresy pro média.

<Warning>
  Seznam povolených adres se kontroluje pouze u hovorů přes TCP nebo TLS. Zdrojovou adresu
  UDP lze zfalšovat, proto koncový bod se seznamem povolených adres odmítne každý hovor,
  který přijde přes UDP. Posílejte na něj hovory pomocí `;transport=tcp` (port 5060) nebo
  přes TLS (port 5061).
</Warning>

## Co vidí volající a váš systém

- **ID volajícího:** uživatelská část hlavičky `From` se uloží jako volající.
  Telefonní číslo (číslice, volitelně s `+`, mezerami, pomlčkami, tečkami nebo
  závorkami) se normalizuje do formátu E.164; cokoli jiného, například
  uživatelské jméno SIP, se ponechá v odeslané podobě. Uloží se maximálně 32
  znaků a chybějící volající se uloží jako `anonymous`.
- **Odmítnuté hovory:** neznámý nebo expirovaný identifikátor URI pro jednotlivý hovor obdrží SIP
  `404 Not Found`. Již použitý identifikátor URI pro jednotlivý hovor, deaktivovaný koncový bod nebo
  zdroj mimo seznam povolených (včetně jakéhokoli hovoru UDP na koncový bod se
  seznamem povolených) je odpojen před spuštěním agenta: váš systém může vidět
  selhání hovoru nebo připojení následované okamžitým ukončením. Tato odmítnutí
  nevytvářejí záznam v historii hovorů. Pokud vaší organizaci došel kredit nebo
  dosáhla limitu útrat, hovor je odmítnut a v historii hovorů se zobrazí jako
  neúspěšný hovor bez poplatku. Chcete-li pokus o jednotlivý hovor zopakovat, zaregistrujte nový identifikátor URI.
- **Přepojení:** studená přepojení agenta fungují (ThunderPhone odešle SIP
  `REFER`, který musí váš systém přijmout). Teplá přepojení nejsou u hovorů na
  adresu SIP k dispozici, protože pro druhou větev není k dispozici číslo
  ThunderPhone, které by se zobrazilo jako ID volajícího. U Twilio výše uvedené
  TwiML připojí agenta, ale nezpracovává přepojení: přidejte
  `referUrl="https://YOUR_SERVER/sip-transfer"` do `<Dial>` a zajistěte, aby
  tento webhook přečetl `ReferTransferTarget` a vrátil TwiML, které vytočí cíl
  přepojení (viz průvodce Twilio
  [SIP REFER](https://www.twilio.com/docs/voice/api/refer-to-twilio)).
- **Textové zprávy:** adresa SIP a vytočené číslo nemohou odesílat textové zprávy.
  Agent může během hovoru na adresu SIP odesílat textové zprávy pouze tehdy,
  pokud má pro textové zprávy nastavené samostatné číslo podporující SMS; jinak
  není jeho nástroj SMS k dispozici.
- **Registrace:** ThunderPhone nepřijímá SIP `REGISTER`. Odesílejte hovory na
  adresu; neregistrujte se k ní.

## Ceny

Hovory na adresy SIP se účtují běžnou minutovou sazbou agenta. Poplatek za
telefonní číslo se neúčtuje, protože hovor nepřenáší žádné číslo ThunderPhone.
Váš vlastní operátor účtuje svou část hovoru obvyklým způsobem. Viz
[Ceny](/cs/guides/pricing).

## Otestujte to

1. Vytvořte identifikátor URI pro jednotlivý hovor nebo koncový bod podle výše uvedeného postupu.
2. Vytočte jej ze svého systému nebo z libovolného softphonu SIP (u koncového bodu zadejte
   uživatelské jméno a heslo).
3. Po zavěšení otevřete hovor v části **Hovory** na ovládacím panelu nebo jej načtěte
   pomocí `GET /v1/calls/{call_id}`. Zobrazí se volající, cíl
   (viz pořadí v části „Předejte vytočené číslo“) a přepis.

Podrobnosti API: [Referenční dokumentace API pro adresy SIP](/api-reference/sip-addresses).
