---
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 диџест корисничко име + лозинка (и опционално листа дозвољених изворних IP адреса) |
| Погодно за | Апликације које већ позивају API пре преусмеравања позива; променљиве за сваки позив | PBX системе и оператере који само треба да усмере SIP везу ка 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}}` у упиту агента, на
  исти начин као за [одлазне позиве](/sr/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 магистралу или одредиште са:

| Подешавање | Вредност |
|---|---|
| SIP URI | `sip_uri` крајње тачке |
| Корисничко име / лозинка | `username` / `password` (диџест аутентификација; 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` (адреса
крајње тачке), односно `sip:call` за URI по позиву.

Са 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>`, а затим нека тај
  webhook прочита `ReferTransferTarget` и врати TwiML који позива одредиште
  преусмеравања (погледајте Twilio-ов
  [водич за SIP REFER](https://www.twilio.com/docs/voice/api/refer-to-twilio)).
- **Текстуалне поруке:** SIP адреса и позвани број не могу да шаљу текстуалне
  поруке. Агент може да шаље текстуалне поруке током позива на SIP адресу само
  ако има посебан број који подржава SMS и који је подешен за слање порука; у
  супротном, његов SMS алат није доступан.
- **Регистрација:** ThunderPhone не прихвата SIP `REGISTER`. Шаљите позиве на
  адресу; не региструјте се на њу.

## Цене

Позиви на SIP адресу наплаћују се по уобичајеној цени агента по минуту. Не
постоји накнада за број телефона, јер позив не преноси ThunderPhone број. Ваш
сопствени оператер наплаћује своју страну позива као и обично. Погледајте
[Цене](/sr/guides/pricing).

## Тестирајте

1. Направите URI по позиву или крајњу тачку као што је горе описано.
2. Позовите га из свог система или са било ког SIP софтверског телефона (за
   крајњу тачку унесите корисничко име и лозинку).
3. Након прекида позива, отворите позив у одељку **Позиви** на контролној
   табли или га преузмите помоћу `GET /v1/calls/{call_id}`. Приказује
   позиваоца, одредиште (погледајте редослед у одељку „Проследите позвани број“)
   и транскрипт.

Детаљи API-ја: [API референца за SIP адресе](/api-reference/sip-addresses).
