---
title: "Yhdistä SIPin kautta (ei puhelinnumeroa)"
description: "Ohjaa puhelut ThunderPhone-agentille suoraan PBX-järjestelmästäsi, operaattoriltasi tai SIP-sovelluksestasi käyttämällä kertakäyttöistä SIP-URIa jokaiselle puhelulle tai pysyvää SIP-osoitetta."
---

Jos oma järjestelmäsi hallitsee jo puhelinnumeroita (PBX, yhteyskeskusalusta tai operaattoritili, jossa kierrätät numeroita), voit ohjata puhelut ThunderPhone-agentille tavallisen SIPin kautta. Et tuo tai osta numeroa ThunderPhoneen. Järjestelmäsi soittaa SIP-osoitteeseen, ja agentti vastaa.

SIP-osoitteita on kahdenlaisia:

| | **Puhelukohtainen SIP-URI** | **SIP-päätepiste** |
|---|---|---|
| Näyttää tältä | `sip:c-<token>@sip.thunderphone.com` | `sip:agent-<id>-<letters>@sip.thunderphone.com` |
| Luodaan komennolla | `POST /v1/calls/register-sip`, kerran puhelua kohden | `POST /v1/sip-endpoints`, kerran |
| Todennus | Osoitteessa oleva kertakäyttöinen tunniste | SIP digest -käyttäjätunnus ja -salasana (sekä valinnaisesti lähde-IP-osoitteiden sallittujen lista) |
| Sopii | Sovelluksille, jotka kutsuvat jo APIa ennen puhelun siirtämistä; puhelukohtaiset muuttujat | PBX-järjestelmille ja operaattoreille, joiden tarvitsee vain "osoittaa runko" ThunderPhoneen |
| Voimassa | 5 minuuttia, yksi puhelu | Kunnes poistat sen |

Molemmat tyypit reitittävät organisaatiosi yhdelle agentille, ja molemmat näkyvät puheluhistoriassa kuten mikä tahansa muu saapuva puhelu.

## Puhelukohtainen SIP-URI

### 1. Rekisteröi puhelu

```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` (valinnainen) on numero, johon soittaja soitti sinun järjestelmässäsi. Se tallennetaan puhelun kohteeksi puheluhistoriaan, ja agentti näkee sen omana numeronaan.
- `variables` (valinnainen) täyttää agentin kehotteen `{{placeholders}}`-paikkamerkit samalla tavalla kuin [lähtevissä puheluissa](/fi/guides/call-variables).
- `call_id` on tunniste, joka puhelulla on puheluhistoriassa (`GET /v1/calls/{call_id}`), kun se yhdistyy.

### 2. Soita URIin

Ohjaa puhelu `sip_uri`-osoitteeseen 5 minuutin kuluessa. URI toimii vain yhdelle puhelulle: kun puhelu on käyttänyt sitä, se on käytetty, vaikka puhelu päättyisi nopeasti.

Palauta esimerkiksi Twiliolla tämä TwiML puhelulle, jonka haluat siirtää:

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

Soita PBX-järjestelmästä URIin SIP-kohteena. Käyttäjätunnusta tai salasanaa ei tarvita; tunniste on käyttöoikeustieto, joten käsittele URIa kuin salasanaa, kunnes sitä on käytetty.

## SIP-päätepiste (pysyvä osoite)

### 1. Luo päätepiste

```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` palautetaan vain kerran, kun päätepiste luodaan. Tallenna se
  välittömästi PBX- tai operaattorisi määrityksiin. Jos kadotat sen, vaihda se
  komennolla `POST /v1/sip-endpoints/{id}/rotate-password`.
</Warning>

### 2. Ohjaa järjestelmäsi siihen

Määritä SIP-trunk tai kohde seuraavasti:

| Asetus | Arvo |
|---|---|
| SIP URI | päätepisteen `sip_uri` |
| Käyttäjänimi / salasana | `username` / `password` (digest-todennus; ThunderPhone haastaa jokaisen puhelun) |
| Siirtoprotokolla | TCP portissa 5060 tai TLS portissa 5061 (suositeltu), tai UDP portissa 5060 |
| Koodekit | G.711 (PCMU/PCMA) tai G.722 |

<Note>
  Suosi TCP:tä tai TLS:ää. UDP toimii julkisista osoitteista ja useimpien
  NATien kautta, mutta "symmetrisen" NATin takana (joka käyttää uutta porttia
  jokaiselle kohteelle) agentin lopetukset ja siirrot eivät välttämättä saavu
  järjestelmääsi. Lähde-IP-osoitteiden sallittujen lista (alla) edellyttää myös
  TCP:tä tai TLS:ää. TLS:n kautta SIP-signalointi pysyy salattuna myös
  `sip.thunderphone.com`-palvelun jälkeen aina puhelua käsitteleviin
  palvelimiin asti.
</Note>

Nämä siirtoprotokolla- ja koodekkiasetukset koskevat myös puhelukohtaisia
URI-osoitteita. Molemmissa osoitetyypeissä on tärkeää huomioida kaksi
verkkoyksityiskohtaa:

- **Noudata Record-Routea.** Ensimmäisen INVITE-pyynnön jälkeen puhelun muu
  signalointi (ACK, lopetus, siirrot) ohjataan vastanneelle ThunderPhone-
  palvelimelle, joka on nimetty `Record-Route`-otsakkeessa
  (`sip-1.thunderphone.com` tai `sip-2.thunderphone.com` tai niiden IP-osoite).
  Jos rajoitat lähtevää SIP-liikennettä, salli nämä isännät sekä
  `sip.thunderphone.com`: `172.170.39.202` (`sip`), `13.86.104.121`
  (`sip-1`) ja `20.80.98.90` (`sip-2`).
- **Ääni kulkee muualle.** `sip.thunderphone.com` välittää vain signaloinnin.
  Salli media (RTP) SDP-vastauksessa ilmoitettuihin osoitteisiin ja portteihin.

Jokainen osoitteeseen tuleva puhelu saavuttaa päätepisteen agentin riippumatta
siitä, mihin numeroon soittajasi soitti omalla puolellasi. Et koskaan tuo
numeroita, joten niiden vaihtaminen omalla puolellasi ei edellytä muutoksia
ThunderPhonessa.

### Välitä valittu numero (valinnainen)

Jos haluat tallentaa, mihin numeroistasi soittaja soitti, lähetä se
INVITE-pyynnössä `X-Original-To`-otsakkeessa (esimerkiksi
`X-Original-To: +14155550142`) tai tavallisessa `Diversion`-otsakkeessa.
ThunderPhone tallentaa sen puhelun kohteeksi.

Kohde valitaan tässä järjestyksessä: puhelukohtaisen URI:n rekisteröinnin
yhteydessä annettu `to_number`, sitten `X-Original-To`-otsakkeessa oleva numero
ja lopuksi `Diversion`-otsakkeessa oleva numero. Jos mikään näistä ei anna
numeroa, päätepisteen kohdalla näytetään `sip:agent-12-jhxmginwjx`
(päätepisteen osoite) tai puhelukohtaisen URI:n kohdalla `sip:call`.

Twilion kanssa voit lisätä otsakkeen SIP URI:hin:
`sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142`.

### Rajoita lähde-IP-osoitteita (valinnainen)

Aseta `allowed_source_cidrs`, jotta puheluita hyväksytään käyttäjänimen ja
salasanan lisäksi vain omista signalointiosoitteistasi:

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

Kaikista muista osoitteista tulevat puhelut hylätään ennen kuin ne saavuttavat
agentin. Käytä osoitteita, joista järjestelmäsi lähettää SIP-signalointia
(esimerkiksi Twilion kaltaiselle operaattorille sen julkaistuja
signalointi-IP-alueita), älä mediaosoitteitasi.

<Warning>
  Sallittujen lista tarkistetaan vain TCP:n tai TLS:n kautta tuleville
  puheluille. UDP-lähdeosoite voidaan väärentää, joten sallittujen listalla
  varustettu päätepiste hylkää kaikki UDP:n kautta saapuvat puhelut. Lähetä
  puhelut siihen käyttämällä `;transport=tcp` (portti 5060) tai TLS:n kautta
  (portti 5061).
</Warning>

## Mitä soittajat ja järjestelmäsi näkevät

- **Soittajan tunnus:** `From`-otsakkeen käyttäjäosa tallennetaan soittajaksi.
  Puhelinnumero (numerot, valinnaisesti `+`, välilyönnit, viivat, pisteet tai
  sulkeet) normalisoidaan E.164-muotoon; kaikki muu, kuten SIP-käyttäjänimi,
  säilytetään lähetetyssä muodossa. Enintään 32 merkkiä säilytetään, ja puuttuva
  soittaja tallennetaan muodossa `anonymous`.
- **Hylätyt puhelut:** tuntematon tai vanhentunut puhelukohtainen URI saa SIP-
  vastauksen `404 Not Found`. Jo käytetty puhelukohtainen URI, käytöstä poistettu
  päätepiste tai sallittujen lähteiden luettelon ulkopuolinen lähde (mukaan
  lukien kaikki UDP-puhelut päätepisteeseen, jolla on sallittujen lähteiden
  luettelo) katkaistaan ennen agentin käynnistymistä: järjestelmäsi voi nähdä
  puhelun epäonnistuvan tai yhdistyvän ja päättyvän heti. Näistä hylkäyksistä ei
  luoda puheluhistoriatietuetta. Jos organisaatioltasi on loppunut saldo tai se
  on saavuttanut kulutusrajansa, puhelu hylätään ja näkyy puheluhistoriassa
  epäonnistuneena puheluna ilman veloitusta. Jos haluat yrittää puhelukohtaista
  puhelua uudelleen, rekisteröi uusi URI.
- **Siirrot:** agentin kylmät siirrot toimivat (ThunderPhone lähettää SIP-
  pyynnön `REFER`, joka järjestelmäsi on hyväksyttävä). Lämpimät siirrot eivät
  ole käytettävissä SIP-osoitepuheluissa, koska toiselle yhteysosuudelle ei ole
  ThunderPhone-numeroa näytettäväksi soittajan tunnuksena. Twilion kanssa yllä
  oleva TwiML yhdistää agentin, mutta ei käsittele siirtoja: lisää
  `referUrl="https://YOUR_SERVER/sip-transfer"` `<Dial>`-elementtiin ja pyydä
  webhookia lukemaan `ReferTransferTarget` sekä palauttamaan TwiML, joka
  soittaa siirron kohteeseen (katso Twilion
  [SIP REFER -opas](https://www.twilio.com/docs/voice/api/refer-to-twilio)).
- **Tekstiviestit:** SIP-osoite ja valittu numero eivät voi lähettää
  tekstiviestejä. Agentti voi lähettää tekstiviestejä SIP-osoitepuhelun aikana
  vain, jos sille on määritetty erillinen tekstiviesteihin soveltuva numero;
  muuten sen SMS-työkalu ei ole käytettävissä.
- **Rekisteröinti:** ThunderPhone ei hyväksy SIP-pyyntöjä `REGISTER`. Lähetä
  puhelut osoitteeseen, älä rekisteröidy siihen.

## Hinnoittelu

SIP-osoitepuheluista veloitetaan agentin normaalin minuuttihinnan mukaan.
Puhelinnumeromaksua ei ole, koska mikään ThunderPhone-numero ei välitä puhelua.
Oma operaattorisi laskuttaa oman osuutensa puhelusta tavalliseen tapaan. Katso
[Hinnoittelu](/fi/guides/pricing).

## Testaa

1. Luo puhelukohtainen URI tai päätepiste yllä kuvatulla tavalla.
2. Soita siihen järjestelmästäsi tai mistä tahansa SIP-ohjelmistopuhelimesta
   (päätepisteelle syötä käyttäjänimi ja salasana).
3. Puhelun päätyttyä avaa puhelu hallintapaneelin kohdassa **Puhelut** tai hae
   se pyynnöllä `GET /v1/calls/{call_id}`. Näet soittajan, kohteen
   (katso järjestys kohdasta "Välitä valittu numero") ja tallenteen.

API-tiedot: [SIP-osoitteiden API-viite](/api-reference/sip-addresses).
