---
title: "Свързване чрез SIP (без телефонен номер)"
description: "Изпращайте обаждания към агент на ThunderPhone директно от вашата PBX система, доставчик или SIP приложение чрез еднократен SIP URI за всяко обаждане или постоянен SIP адрес."
---

Ако вашата собствена система вече обработва телефонни номера (PBX, платформа за контактен център или акаунт при телекомуникационен оператор, в който ротирате номера), можете да изпращате обаждания към агент на ThunderPhone чрез стандартен SIP. Не импортирате и не купувате номер в ThunderPhone. Вашата система набира SIP адрес и агентът отговаря.

Има два вида SIP адреси:

| | **SIP URI за всяко обаждане** | **SIP крайна точка** |
|---|---|---|
| Изглежда като | `sip:c-<token>@sip.thunderphone.com` | `sip:agent-<id>-<letters>@sip.thunderphone.com` |
| Създава се с | `POST /v1/calls/register-sip`, веднъж за всяко обаждане | `POST /v1/sip-endpoints`, веднъж |
| Удостоверяване | Еднократният токен в адреса | SIP digest потребителско име + парола (и по избор списък с разрешени IP адреси на източника) |
| Подходящо за | Приложения, които вече извикват API преди прехвърляне на обаждане; променливи за всяко обаждане | PBX системи и телекомуникационни оператори, които трябва просто да „насочат trunk“ към ThunderPhone |
| Валидност | 5 минути, едно обаждане | Докато не я изтриете |

И двата вида насочват към един агент във вашата организация и и двата се показват в историята на обажданията като всяко друго входящо обаждане.

## SIP URI за всяко обаждане

### 1. Регистрирайте обаждането

```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` (по избор) е номерът, който обаждащият се е набрал от ваша страна. Той се съхранява като дестинация на обаждането в историята на обажданията, а агентът го вижда като свой собствен номер.
- `variables` (по избор) попълват `{{placeholders}}` в подканата на агента по същия начин, както при [изходящи обаждания](/bg/guides/call-variables).
- `call_id` е идентификаторът, който обаждането ще има в историята на обажданията (`GET /v1/calls/{call_id}`), след като се свърже.

### 2. Наберете URI

Изпратете обаждането към `sip_uri` в рамките на 5 минути. URI работи само за едно обаждане: след като бъде използван от обаждане, той вече не е валиден, дори ако това обаждане приключи бързо.

Например с Twilio върнете този TwiML за обаждането, което искате да прехвърлите:

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

От PBX наберете URI като SIP дестинация. Не са нужни потребителско име или парола; токенът е идентификационните данни, затова третирайте URI като парола, докато не бъде използван.

## SIP крайна точка (постоянен адрес)

### 1. Създайте крайната точка

```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>
  `password` се връща само веднъж — при създаването на крайната точка. Запазете я
  веднага в конфигурацията на вашата PBX система или доставчик. Ако я изгубите, сменете я
  чрез `POST /v1/sip-endpoints/{id}/rotate-password`.
</Warning>

### 2. Насочете системата си към нея

Конфигурирайте SIP trunk или дестинация със следното:

| Настройка | Стойност |
|---|---|
| SIP URI | `sip_uri` на крайната точка |
| Потребителско име / парола | `username` / `password` (digest удостоверяване; ThunderPhone изпраща заявка за удостоверяване при всяко обаждане) |
| Транспорт | TCP на порт 5060 или TLS на порт 5061 (препоръчително), или UDP на порт 5060 |
| Кодеци | G.711 (PCMU/PCMA) или G.722 |

<Note>
  Предпочитайте TCP или TLS. UDP работи от публични адреси и от повечето NAT
  конфигурации, но зад „симетричен“ NAT (такъв, който използва нов порт за всяка
  дестинация) прекратяванията и прехвърлянията от агента може да не достигнат до
  вашата система. Списъкът с разрешени IP адреси на източника (по-долу) също
  изисква TCP или TLS. При TLS SIP сигнализацията остава криптирана и след
  `sip.thunderphone.com`, чак до сървърите, които обработват обаждането.
</Note>

Тези настройки за транспорт и кодеци се прилагат и за URI адресите за отделни
обаждания. Два мрежови детайла са важни и за двата типа адреси:

- **Следвайте Record-Route.** След първия INVITE останалата сигнализация на
  обаждането (ACK, прекратяване, прехвърляния) се изпраща до конкретния сървър на
  ThunderPhone, който е отговорил и е посочен в заглавката `Record-Route`
  (`sip-1.thunderphone.com` или `sip-2.thunderphone.com`, или неговия IP адрес).
  Ако ограничавате изходящата SIP сигнализация, разрешете и тези хостове наред с
  `sip.thunderphone.com`: `172.170.39.202` (`sip`), `13.86.104.121`
  (`sip-1`) и `20.80.98.90` (`sip-2`).
- **Аудиото се предава другаде.** `sip.thunderphone.com` пренася само
  сигнализацията. Разрешете медията (RTP) към адресите и портовете в SDP отговора.

Всяко обаждане до адреса достига агента на крайната точка, независимо кой номер
е набрал обаждащият се във вашата система. Никога не импортирате номера, така че
смяната им от ваша страна не изисква промяна в ThunderPhone.

### Предайте набрания номер (по избор)

За да запишете кой от вашите номера е набрал обаждащият се, изпратете го в INVITE
заявката чрез заглавка `X-Original-To` (например `X-Original-To: +14155550142`)
или чрез стандартна заглавка `Diversion`. ThunderPhone го съхранява като
дестинация на обаждането.

Дестинацията се избира в следния ред: `to_number`, подаден при регистриране на
URI за отделно обаждане, след това номер в `X-Original-To`, след това номер в
`Diversion`. Ако никое от тях не съдържа номер, за крайна точка се показва
`sip:agent-12-jhxmginwjx` (адресът на крайната точка), а за URI за отделно
обаждане — `sip:call`.

С Twilio можете да добавите заглавката към SIP URI адреса:
`sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142`.

### Ограничете IP адресите на източника (по избор)

Задайте `allowed_source_cidrs`, за да приемате обаждания само от собствените си
адреси за сигнализация, в допълнение към потребителското име и паролата:

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

Обажданията от всеки друг адрес се отказват, преди да достигнат до агента.
Използвайте адресите, от които вашата система изпраща SIP сигнализацията (за
доставчик като Twilio — публикуваните от него диапазони IP адреси за
сигнализация), а не адресите за медия.

<Warning>
  Списъкът с разрешени адреси се проверява само за обаждания през TCP или TLS.
  Адресът на UDP източник може да бъде подправен, затова крайна точка със списък
  с разрешени адреси отказва всяко обаждане, което пристига през UDP. Изпращайте
  обажданията към нея с `;transport=tcp` (порт 5060) или през TLS (порт 5061).
</Warning>

## Какво виждат обаждащите се и вашата система

- **Идентификатор на обаждащия се:** потребителската част на заглавката `From` се съхранява като обаждащ се.
  Телефонен номер (цифри, по избор с `+`, интервали, тирета, точки или
  скоби) се нормализира до E.164; всичко останало, като SIP потребителско име, се
  запазва както е изпратено. Запазват се най-много 32 знака, а липсващ обаждащ се се съхранява
  като `anonymous`.
- **Отказани обаждания:** непознат или изтекъл URI за отделно обаждане получава SIP
  `404 Not Found`. Вече използван URI за отделно обаждане, деактивирана крайна точка
  или източник извън списъка с разрешени адреси (включително всяко UDP обаждане към крайна точка със
  списък с разрешени адреси) се прекъсва преди стартирането на агента: вашата система може да отчете
  неуспешно обаждане или да се свърже и след това веднага да прекрати връзката. Тези откази не
  създават запис в хронологията на обажданията. Ако организацията ви няма наличен кредит или е
  достигнала лимита си за разходи, обаждането се отказва и се показва в хронологията на обажданията като
  неуспешно обаждане без такса. За да опитате отново обаждане към URI за отделно обаждане, регистрирайте нов URI.
- **Прехвърляния:** студените прехвърляния на агента работят (ThunderPhone изпраща SIP
  `REFER`, който вашата система трябва да приеме). Топлите прехвърляния не са налични при обаждания към SIP адреси,
  защото няма номер на ThunderPhone, който да се показва като идентификатор на обаждащия се за
  второто направление. При Twilio TwiML по-горе свързва агента, но не обработва прехвърляния: добавете
  `referUrl="https://YOUR_SERVER/sip-transfer"` към `<Dial>` и накарайте тази уеб кука да прочете
  `ReferTransferTarget` и да върне TwiML, който набира дестинацията за прехвърляне (вижте ръководството на Twilio за
  [SIP REFER](https://www.twilio.com/docs/voice/api/refer-to-twilio)).
- **Текстови съобщения:** SIP адресът и набраният номер не могат да изпращат текстови съобщения.
  Агентът може да изпраща текстови съобщения по време на обаждане към SIP адрес само ако има отделен
  номер с възможност за SMS, настроен за изпращане на съобщения; в противен случай неговият SMS инструмент е
  недостъпен.
- **Регистрация:** ThunderPhone не приема SIP `REGISTER`. Изпращайте обаждания към
  адреса; не се регистрирайте към него.

## Ценообразуване

Обажданията към SIP адреси се таксуват по обичайната цена на агента за минута. Няма
такса за телефонен номер, защото обаждането не се осъществява чрез номер на ThunderPhone. Вашият
собствен оператор таксува своята страна на обаждането както обикновено. Вижте
[Ценообразуване](/bg/guides/pricing).

## Тествайте

1. Създайте URI за отделно обаждане или крайна точка, както е описано по-горе.
2. Наберете го от вашата система или от който и да е SIP софтуерен телефон (за крайна точка въведете
   потребителското име и паролата).
3. След като затворите, отворете обаждането в **Обаждания** в таблото за управление или го извлечете
   с `GET /v1/calls/{call_id}`. Показват се обаждащият се, дестинацията
   (вижте реда в „Подайте набрания номер“) и транскрипцията.

Подробности за API: [Справочник за API за SIP адреси](/api-reference/sip-addresses).
