Open in
Hubungkan melalui SIP (tanpa nomor telepon)
Kirim panggilan ke agen ThunderPhone langsung dari PBX, operator, atau aplikasi SIP Anda, dengan URI SIP satu kali untuk setiap panggilan atau alamat SIP permanen.
Jika sistem Anda sendiri sudah menangani nomor telepon (PBX, platform pusat kontak, atau akun operator tempat Anda merotasi nomor), Anda dapat mengirim panggilan ke agen ThunderPhone melalui SIP standar. Anda tidak perlu mengimpor atau membeli nomor di ThunderPhone. Sistem Anda menghubungi alamat SIP dan agen menjawab.
Ada dua jenis alamat SIP:
| URI SIP per panggilan | Endpoint SIP | |
|---|---|---|
| Bentuk | sip:c-<token>@sip.thunderphone.com | sip:agent-<id>-<letters>@sip.thunderphone.com |
| Dibuat dengan | POST /v1/calls/register-sip, sekali per panggilan | POST /v1/sip-endpoints, sekali |
| Autentikasi | Token satu kali pakai dalam alamat | Nama pengguna + kata sandi digest SIP (dan opsional daftar izin IP sumber) |
| Cocok untuk | Aplikasi yang sudah memanggil API sebelum meneruskan panggilan; variabel per panggilan | PBX dan operator yang cukup “mengarahkan trunk” ke ThunderPhone |
| Berlaku selama | 5 menit, satu panggilan | Hingga Anda menghapusnya |
Kedua jenis tersebut merutekan ke satu agen di organisasi Anda, dan keduanya muncul di riwayat panggilan seperti panggilan masuk lainnya.
URI SIP per panggilan
1. Daftarkan panggilan
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(opsional) adalah nomor yang dihubungi penelepon di sisi Anda. Nilai ini disimpan sebagai tujuan panggilan dalam riwayat panggilan, dan agen melihatnya sebagai nomornya sendiri.variables(opsional) mengisi{{placeholders}}dalam Prompt agen, sama seperti untuk panggilan keluar.call_idadalah id yang akan dimiliki panggilan dalam riwayat panggilan (GET /v1/calls/{call_id}) setelah terhubung.
2. Hubungi URI
Kirim panggilan ke sip_uri dalam waktu 5 menit. URI hanya berfungsi untuk satu panggilan: setelah digunakan oleh sebuah panggilan, URI tersebut habis, bahkan jika panggilan itu berakhir dengan cepat.
Dengan Twilio, misalnya, kembalikan TwiML ini untuk panggilan yang ingin Anda teruskan:
<Response>
<Dial>
<Sip>sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com;transport=tcp</Sip>
</Dial>
</Response>Dari PBX, hubungi URI sebagai tujuan SIP. Tidak diperlukan nama pengguna atau kata sandi; token adalah kredensialnya, jadi perlakukan URI seperti kata sandi hingga URI tersebut digunakan.
Endpoint SIP (alamat permanen)
1. Buat endpoint
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. Arahkan sistem Anda ke endpoint
Konfigurasikan trunk atau tujuan SIP dengan:
| Pengaturan | Nilai |
|---|---|
| URI SIP | sip_uri endpoint |
| Nama pengguna / kata sandi | username / password (autentikasi digest; ThunderPhone melakukan challenge pada setiap panggilan) |
| Transport | TCP pada port 5060 atau TLS pada port 5061 (disarankan), atau UDP pada port 5060 |
| Codec | G.711 (PCMU/PCMA) atau G.722 |
Pengaturan transport dan codec ini juga berlaku untuk URI per-panggilan. Dua detail jaringan penting untuk kedua jenis alamat:
- Ikuti Record-Route. Setelah INVITE pertama, sisa pensinyalan panggilan
(ACK, putus panggilan, pengalihan) dikirim ke server ThunderPhone tertentu
yang menjawab, yang disebutkan dalam header
Record-Route(sip-1.thunderphone.comatausip-2.thunderphone.com, atau alamat IP-nya). Jika Anda membatasi SIP keluar, izinkan host tersebut selainsip.thunderphone.com:172.170.39.202(sip),13.86.104.121(sip-1) dan20.80.98.90(sip-2). - Audio dikirim ke tempat lain.
sip.thunderphone.comhanya membawa pensinyalan. Izinkan media (RTP) ke alamat dan port dalam jawaban SDP.
Setiap panggilan ke alamat tersebut mencapai agen endpoint, nomor apa pun yang dihubungi pemanggil Anda di sisi Anda. Anda tidak pernah mengimpor nomor, jadi mengganti nomor di sisi Anda tidak memerlukan perubahan di ThunderPhone.
Teruskan nomor yang dihubungi (opsional)
Untuk mencatat nomor Anda yang dihubungi pemanggil, kirimkan nomor tersebut pada
INVITE dalam header X-Original-To (misalnya X-Original-To: +14155550142) atau
dalam header standar Diversion. ThunderPhone menyimpannya sebagai tujuan
panggilan.
Tujuan dipilih dalam urutan ini: to_number yang diberikan saat URI per-panggilan
didaftarkan, lalu nomor dalam X-Original-To, lalu nomor dalam Diversion.
Jika tidak satu pun memberikan nomor, tujuan ditampilkan sebagai
sip:agent-12-jhxmginwjx (alamat endpoint) untuk endpoint, atau sip:call
untuk URI per-panggilan.
Dengan Twilio, Anda dapat menambahkan header ke URI SIP:
sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.
Batasi IP sumber (opsional)
Atur allowed_source_cidrs agar hanya menerima panggilan dari alamat
pensinyalan Anda sendiri, selain nama pengguna dan kata sandi:
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"]}'Panggilan dari alamat lain ditolak sebelum mencapai agen. Gunakan alamat asal sistem Anda mengirim pensinyalan SIP (untuk operator seperti Twilio, rentang IP pensinyalan yang dipublikasikannya), bukan alamat media Anda.
Yang dilihat oleh penelepon dan sistem Anda
- ID penelepon: bagian pengguna dari header
Fromdisimpan sebagai penelepon. Nomor telepon (digit, opsional dengan+, spasi, tanda hubung, titik, atau tanda kurung) dinormalisasi ke E.164; hal lain, seperti nama pengguna SIP, disimpan sebagaimana dikirim. Maksimal 32 karakter disimpan, dan penelepon yang tidak ada disimpan sebagaianonymous. - Panggilan yang ditolak: URI per-panggilan yang tidak dikenal atau kedaluwarsa mendapatkan SIP
404 Not Found. URI per-panggilan yang sudah digunakan, endpoint yang dinonaktifkan, atau sumber di luar daftar izin (termasuk panggilan UDP apa pun ke endpoint dengan daftar izin) diputuskan sebelum agen dimulai: sistem Anda mungkin melihat panggilan gagal, atau terhubung lalu langsung berakhir. Penolakan ini tidak membuat entri riwayat panggilan. Jika organisasi Anda kehabisan kredit atau telah mencapai batas pengeluaran, panggilan ditolak dan muncul dalam riwayat panggilan sebagai panggilan gagal tanpa biaya. Untuk mencoba ulang upaya per-panggilan, daftarkan URI baru. - Transfer: transfer dingin agen berfungsi (ThunderPhone mengirim SIP
REFER, yang harus diterima oleh sistem Anda). Transfer hangat tidak tersedia pada panggilan alamat SIP, karena tidak ada nomor ThunderPhone untuk ditampilkan sebagai ID penelepon pada kaki kedua. Dengan Twilio, TwiML di atas menghubungkan agen tetapi tidak menangani transfer: tambahkanreferUrl="https://YOUR_SERVER/sip-transfer"ke<Dial>, dan buat webhook tersebut membacaReferTransferTargetserta mengembalikan TwiML yang memanggil tujuan transfer (lihat panduan SIP REFER Twilio). - Pesan teks: alamat SIP dan nomor yang dipanggil tidak dapat mengirim pesan teks. Agen hanya dapat mengirim pesan teks selama panggilan alamat SIP jika agen memiliki nomor terpisah yang mendukung SMS dan telah disiapkan untuk mengirim pesan teks; jika tidak, alat SMS-nya tidak tersedia.
- Pendaftaran: ThunderPhone tidak menerima SIP
REGISTER. Kirim panggilan ke alamat tersebut; jangan mendaftar ke alamat tersebut.
Harga
Panggilan alamat SIP ditagihkan sesuai tarif per menit normal agen. Tidak ada biaya nomor telepon, karena tidak ada nomor ThunderPhone yang membawa panggilan tersebut. Operator Anda sendiri menagihkan bagian panggilannya seperti biasa. Lihat Harga.
Uji coba
- Buat URI per-panggilan atau endpoint seperti di atas.
- Hubungi URI tersebut dari sistem Anda, atau dari softphone SIP apa pun (untuk endpoint, masukkan nama pengguna dan kata sandi).
- Setelah menutup panggilan, buka panggilan di Panggilan pada dashboard,
atau ambil menggunakan
GET /v1/calls/{call_id}. Data tersebut menampilkan penelepon, tujuan (lihat urutan di bawah "Teruskan nomor yang dipanggil"), dan transkrip.
Detail API: referensi API alamat SIP.