ThunderPhone 2.0 yayında.Hemen kendiniz kullanmaya başlayın; dakikası 2 sentten başlayan fiyatlarla.Duyuruyu okuyun

Developer cookbook

SIP üzerinden bağlanın (telefon numarası olmadan)

PBX

Kendi sisteminiz telefon numaralarını zaten yönetiyorsa (bir PBX, iletişim merkezi platformu veya numaraları dönüşümlü kullandığınız bir operatör hesabı), çağrıları düz SIP üzerinden bir ThunderPhone yapay zeka ajanına gönderebilirsiniz. ThunderPhone'a numara aktarmanız veya satın almanız gerekmez. Sisteminiz bir SIP adresini arar ve ajan yanıtlar.

İki tür SIP adresi vardır:

Çağrı başına SIP URISIP uç noktası
Görünümsip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
OluşturmaHer çağrı için bir kez POST /v1/calls/register-sip ileBir kez POST /v1/sip-endpoints ile
Kimlik doğrulamaAdresteki tek kullanımlık belirteçSIP digest kullanıcı adı + parola (ve isteğe bağlı kaynak IP izin listesi)
Uygun kullanımÇağrı aktarmadan önce zaten API çağrısı yapan uygulamalar; çağrı başına değişkenlerBir trunk'ı ThunderPhone'a "yönlendirmesi" gereken PBX'ler ve operatörler
Geçerlilik5 dakika, tek çağrıSiz silene kadar

Her iki tür de kuruluşunuzdaki tek bir yapay zeka ajanına yönlendirilir ve ikisi de çağrı geçmişinde diğer gelen çağrılar gibi görünür.

Çağrı başına SIP URI

1. Çağrıyı kaydedin

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"}
  }'
{
  "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 (isteğe bağlı), arayanın sizin tarafınızda aradığı numaradır. Bu numara çağrı geçmişinde çağrının hedefi olarak kaydedilir ve yapay zeka ajanı bunu kendi numarası olarak görür.
  • variables (isteğe bağlı), giden çağrılarda olduğu gibi yapay zeka ajanının istemindeki {{placeholders}} alanlarını doldurur.
  • call_id, çağrı bağlandığında çağrı geçmişinde sahip olacağı kimliktir (GET /v1/calls/{call_id}).

2. URI'yi arayın

Çağrıyı 5 dakika içinde sip_uri adresine gönderin. URI yalnızca tek çağrı için çalışır: bir çağrı bunu kullandığında, o çağrı hızlıca sonlansa bile URI artık kullanılamaz.

Örneğin Twilio ile, devretmek istediğiniz çağrı için şu TwiML'yi döndürün:

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

Bir PBX'ten URI'yi SIP hedefi olarak arayın. Kullanıcı adı veya parola gerekmez; belirteç kimlik bilgisidir. Bu nedenle URI kullanılmış olana kadar onu parola gibi koruyun.

SIP uç noktası (kalıcı adres)

1. Uç noktayı oluşturun

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"}'
{
  "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"
}

2. Sisteminizi buna yönlendirin

Aşağıdaki ayarlarla bir SIP trunk'ı veya hedef yapılandırın:

AyarDeğer
SIP URIuç noktanın sip_uri değeri
Kullanıcı adı / parolausername / password (digest kimlik doğrulaması; ThunderPhone her çağrıda doğrulama ister)
Taşıma5060 numaralı bağlantı noktasında TCP veya 5061 numaralı bağlantı noktasında TLS (önerilir) ya da 5060 numaralı bağlantı noktasında UDP
KodeklerG.711 (PCMU/PCMA) veya G.722

Bu taşıma ve kodek ayarları çağrı başına URI'ler için de geçerlidir. Her iki adres türü için iki ağ ayrıntısı önemlidir:

  • Record-Route'u izleyin. İlk INVITE'tan sonra çağrının geri kalan sinyalleşmesi (ACK, çağrı sonlandırma, aktarımlar), Record-Route başlığında adı geçen (sip-1.thunderphone.com veya sip-2.thunderphone.com ya da IP adresi) çağrıyı yanıtlayan belirli ThunderPhone sunucusuna gider. Giden SIP'i kısıtlarsanız, sip.thunderphone.com ile birlikte şu ana bilgisayarlara da izin verin: 172.170.39.202 (sip), 13.86.104.121 (sip-1) ve 20.80.98.90 (sip-2).
  • Ses başka bir yere gider. sip.thunderphone.com yalnızca sinyalleşmeyi taşır. SDP yanıtındaki adreslere ve bağlantı noktalarına medya (RTP) erişimine izin verin.

Adresinize yapılan her çağrı, sizin tarafınızda arayanın çevirdiği numaradan bağımsız olarak uç noktanın yapay zeka ajanına ulaşır. Numaraları hiçbir zaman içe aktarmadığınız için, kendi tarafınızda numaraları değiştirmeniz ThunderPhone'da herhangi bir değişiklik gerektirmez.

Aranan numarayı iletin (isteğe bağlı)

Arayanın numaralarınızdan hangisini çevirdiğini kaydetmek için, bunu INVITE üzerinde bir X-Original-To başlığında (örneğin X-Original-To: +14155550142) veya standart bir Diversion başlığında gönderin. ThunderPhone bunu çağrının hedefi olarak kaydeder.

Hedef şu sırayla seçilir: çağrı başına URI kaydedilirken verilen to_number, ardından X-Original-To içindeki numara, ardından Diversion içindeki numara. Bunların hiçbiri numara sağlamazsa, uç nokta için sip:agent-12-jhxmginwjx (uç noktanın adresi), çağrı başına URI için ise sip:call gösterilir.

Twilio ile başlığı SIP URI'sine ekleyebilirsiniz: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Kaynak IP'leri kısıtlayın (isteğe bağlı)

Kullanıcı adı ve parolaya ek olarak, yalnızca kendi sinyalleşme adreslerinizden gelen çağrıları kabul etmek için allowed_source_cidrs değerini ayarlayın:

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

Başka herhangi bir adresten gelen çağrılar, ajana ulaşmadan önce reddedilir. Medya adreslerinizi değil, sisteminizin SIP sinyalleşmesini gönderdiği adresleri kullanın (Twilio gibi bir operatör için, yayımlanmış sinyalleşme IP aralıkları).

Arayanların ve sisteminizin gördükleri

  • Arayan kimliği: From başlığının kullanıcı bölümü arayan olarak saklanır. Bir telefon numarası (rakamlar; isteğe bağlı olarak +, boşluklar, tireler, noktalar veya parantezlerle birlikte) E.164 biçimine normalleştirilir; SIP kullanıcı adı gibi diğer her şey gönderildiği şekilde tutulur. En fazla 32 karakter saklanır ve eksik arayan bilgisi anonymous olarak saklanır.
  • Reddedilen çağrılar: bilinmeyen veya süresi dolmuş çağrı başına URI, SIP 404 Not Found alır. Daha önce kullanılmış bir çağrı başına URI, devre dışı bırakılmış bir uç nokta veya izin listesinin dışındaki bir kaynak (izin listesi bulunan bir uç noktaya yapılan tüm UDP çağrıları dahil), yapay zeka ajanı başlamadan önce bağlantısı kesilir: sisteminiz çağrının başarısız olduğunu görebilir veya çağrı bağlanıp hemen sona erebilir. Bu reddetmeler çağrı geçmişi kaydı oluşturmaz. Kuruluşunuzun kredisi tükenmişse veya harcama sınırına ulaşmışsa çağrı reddedilir ve çağrı geçmişinde ücret alınmamış başarısız bir çağrı olarak görünür. Çağrı başına bir denemeyi yeniden yapmak için yeni bir URI kaydedin.
  • Aktarımlar: ajanın soğuk aktarımları çalışır (ThunderPhone, sisteminizin kabul etmesi gereken bir SIP REFER gönderir). İkinci bağlantı için arayan kimliği olarak gösterilecek bir ThunderPhone numarası olmadığından, SIP adresi çağrılarında sıcak aktarım kullanılamaz. Twilio ile yukarıdaki TwiML, ajanı bağlar ancak aktarımları işlemez: <Dial> öğesine referUrl="https://YOUR_SERVER/sip-transfer" ekleyin ve bu webhook'un ReferTransferTarget değerini okuyarak aktarım hedefini arayan TwiML döndürmesini sağlayın (Twilio'nun SIP REFER kılavuzuna bakın).
  • Metin mesajları: SIP adresi ve aranan numara metin mesajı gönderemez. Ajan, yalnızca mesajlaşma için yapılandırılmış, SMS destekli ayrı bir numarası varsa SIP adresi çağrısı sırasında mesaj gönderebilir; aksi halde SMS aracı kullanılamaz.
  • Kayıt: ThunderPhone SIP REGISTER kabul etmez. Çağrıları adrese gönderin; adrese kaydolmayın.

Fiyatlandırma

SIP adresi çağrıları, ajanın normal dakika başına ücreti üzerinden faturalandırılır. Çağrıyı bir ThunderPhone numarası taşımadığından telefon numarası ücreti yoktur. Kendi operatörünüz, çağrının kendi tarafını her zamanki şekilde faturalandırır. Bkz. Fiyatlandırma.

Test edin

  1. Yukarıda açıklandığı gibi çağrı başına bir URI veya uç nokta oluşturun.
  2. Sisteminizden veya herhangi bir SIP yazılım telefonundan arayın (bir uç nokta için kullanıcı adı ve parolayı girin).
  3. Görüşmeyi kapattıktan sonra panodaki Çağrılar bölümünde çağrıyı açın veya GET /v1/calls/{call_id} ile alın. Arayanı, hedefi ("Aranan numarayı iletin" altındaki sıraya bakın) ve transkripti gösterir.

API ayrıntıları: SIP adresleri API referansı.