Melakukan panggilan
PBX Anda mengirim INVITE SIP ke domain SIP trunk untuk melakukan panggilan. Bird memeriksa permintaan, merutekannya ke operator, dan meneruskan audio. Halaman ini membahas prasyarat, kolom permintaan, autentikasi, dan biaya.
Untuk memulai panggilan dari aplikasi Anda melalui HTTP, gunakan panduan Membuat Panggilan. Jalur ini menjalankan urutan Bird yang telah dipublikasikan setelah panggilan dijawab.
Sebelum Anda melakukan panggilan
Menyiapkan trunk SIP menjelaskan seluruh proses penyiapan trunk secara berurutan, untuk kedua arah.
Empat hal harus siap, tanpa urutan tertentu, dan tiga di antaranya perlu Anda atur sendiri:
- Trunk yang menerima trafik Anda. Buat trunk SIP dan aktifkan panggilan keluar. Tambahkan rentang IP peralatan Anda, kunci API yang diizinkan, atau keduanya. Klien yang tidak dapat menyimpan kunci rahasia berjangka panjang dapat menggunakan kredensial sesi.
- ID penelepon yang memenuhi syarat. Gunakan nomor Bird yang dialokasikan ke workspace ini, atau daftarkan nomor eksternal dan selesaikan panggilan verifikasinya. Verifikasi tidak menjamin pengiriman CLI secara menyeluruh atau tersambungnya panggilan jika CLI bukan nomor yang diperoleh melalui Bird: lihat penafian verifikasi dan pengiriman CLI.
- Negara tujuan yang diaktifkan. Aktifkan negara yang Anda layani di halaman Destinations.
- Perutean yang dikaitkan dengan workspace Anda. Bird mengaturnya untuk Anda dengan memilih operator yang melayani setiap tujuan. Sebelum perutean ini siap, panggilan ditolak dengan
routing_not_configured, salah satu alasan yang dibahas dalam Panggilan yang ditolak.
Yang Bird perlukan pada INVITE
Kirim permintaan ke domain SIP trunk Anda melalui salah satu port yang didukung. Bird membaca tiga bagian permintaan tersebut:
| Bagian | Cara Bird menggunakannya |
|---|---|
| Host Request-URI | Mengidentifikasi trunk Anda. Nilainya harus berupa domain SIP trunk yang disalin secara utuh dari halaman trunk |
| Bagian pengguna Request-URI | Nomor yang dipanggil. Bird membaca kode negaranya untuk memilih operator dan menentukan tarif panggilan. Tetapkan To ke nomor yang sama |
From | Nomor yang Anda tampilkan sebagai pemanggil. Nomor ini harus berupa nomor Bird yang memenuhi syarat atau ID penelepon eksternal yang telah diverifikasi di workspace ini |
Tulis nomor dalam format internasional E.164, diawali + lalu diikuti kode negara dan nomor nasional. Bird juga menerima nomor yang sama dengan 00 sebagai pengganti +, atau hanya digit yang diawali kode negara. Bird menganggap digit tanpa + atau 00 diawali kode negara, sehingga nomor dalam format nasional tidak dibaca sebagai nomor yang Anda maksud. Jangan tambahkan prefiks teknis ke nomor yang dipanggil.
Selain ketentuan tersebut, panggilan ini adalah panggilan SIP biasa, dan Anda tidak perlu mengirim header khusus.
Tawarkan G.711, A-law atau µ-law, dalam SDP Anda. Kirim nada tombol (DTMF) sebagai peristiwa telepon RFC 4733. Bird menghapus codec lain, seperti G.729 atau Opus, dari penawaran yang dikirimnya ke operator, jadi sertakan G.711 dalam setiap penawaran.
Media menggunakan RTP tanpa enkripsi. SRTP tidak didukung. TLS pada port 5061 mengenkripsi pensinyalan, sedangkan audio tetap tidak terenkripsi.
Mengautentikasi setiap panggilan
Proses yang dilalui panggilan bergantung pada cara akses ke trunk dibuka:
- Hanya daftar IP yang diizinkan. Satu permintaan. Bird mencocokkan alamat sumber dengan daftar tersebut dan merutekan panggilan, tanpa tantangan autentikasi yang perlu dijawab.
- Hanya kunci API yang diizinkan. Bird terlebih dahulu meminta kata sandi untuk panggilan melalui pertukaran SIP Digest.
- Keduanya. Panggilan yang menggunakan kunci API yang diizinkan juga harus berasal dari alamat yang tercantum dalam daftar. Kredensial sesi yang diaktifkan menyediakan jalur akses terpisah yang dijelaskan di bawah.
- Kredensial sesi aktif. Bird mengirim tantangan autentikasi ke panggilan dari mana pun asalnya, termasuk alamat yang tidak tercantum dalam daftar yang diizinkan. Kredensial yang diterbitkannya beberapa menit sebelumnya digunakan untuk menjawab tantangan tersebut. Perangkat yang sudah diizinkan oleh daftar pada trunk tanpa kunci yang diizinkan tetap dapat terhubung tanpa tantangan autentikasi.
Jika trunk memiliki kunci API yang diizinkan, sistem telepon Anda menjawab dengan hash dari rahasia kunci API, bukan rahasia itu sendiri. Inilah cara kerja autentikasi SIP Digest:
- PBX Anda mengirim
INVITE. - Bird membalas dengan
407 Proxy Authentication Required, disertai satu baris tantangan autentikasi untuk setiap algoritma yang ditawarkan trunk. Secara default, urutannya adalahSHA-256laluMD5. - PBX Anda mengirim ulang
INVITEdengan headerProxy-Authorizationyang dihitung menggunakan nama penggunabirddan rahasia kunci API sebagai kata sandi. - Bird memverifikasi jawaban dan melanjutkan perutean.
Header Proxy-Authorization preemptif dikirim sebelum tantangan, jadi perangkat Anda harus memilih algoritma yang ditawarkan trunk. Untuk autentikasi dengan kunci API, trunk yang memiliki daftar IP yang diizinkan tetap mengharuskan permintaan berasal dari alamat dalam daftar tersebut.
Bird merespons kegagalan handshake pada lapisan SIP, sehingga upaya tersebut ditolak sebelum platform membuat catatan panggilan. Jika panggilan Anda sama sekali tidak muncul di Log panggilan, periksa kredensial, bukan peruteannya.
Atestasi panggilan
Panggilan ke Amerika Serikat dan Prancis menyertakan atestasi STIR/SHAKEN. Operator menggunakan tanda tangan ini saat memberi label pada panggilan. Bird menerapkan tingkat B secara default tanpa konfigurasi tambahan. Hubungi dukungan untuk meminta tingkat A.
Saat panggilan ditolak
Bird memeriksa ID penelepon, tujuan, batas, dan saldo dompet sebelum menghubungi operator. Sistem telepon Anda menerima penolakan sebagai SIP 503; penyebab spesifiknya tetap tersimpan dalam catatan panggilan yang hanya dapat diakses setelah autentikasi. Buka panggilan di log panggilan, atau lihat panggilan yang ditolak untuk mengetahui setiap alasan dan solusinya.
Atasi penyebab yang tercatat sebelum mencoba lagi. Misalnya, calls_per_second_exceeded terus terjadi sampai Anda menurunkan laju panggilan.
Respons untuk panggilan yang dicatat Bird, termasuk 503 untuk penolakan dengan alasan yang tercatat, menyertakan header X-BIRD-CALL-ID yang berisi Leg ID panggilan (vcl_…). Baca catatan tersebut dengan GET /v1/voice/legs/{leg_id}, atau berikan ID tersebut kepada dukungan.
Panggilan darurat tidak disalurkan
Bird Voice tidak menyalurkan panggilan ke layanan darurat. Panggilan ke 112, 911, 999, atau nomor darurat lainnya ditolak di setiap trunk, di setiap negara. Sistem telepon Anda harus menghubungi layanan darurat melalui rute lain.
Perilaku ini tidak bergantung pada paket, saldo, atau tujuan Anda. Konfigurasikan sistem telepon Anda agar merutekan panggilan darurat melalui layanan yang mendukungnya, seperti saluran PSTN lokal, gateway di lokasi Anda, atau penyedia lain. Uji rute tersebut. Bird mengembalikan 503 untuk panggilan darurat yang ditolak, sehingga sistem telepon dengan rute lain dalam rencana panggilannya dapat mencoba rute tersebut.
Layanan darurat bergantung pada lokasi terdaftar penelepon, yang tidak disimpan oleh Bird untuk trunk. Jangan mengandalkan rute Bird untuk panggilan darurat.
Biaya dan penagihan
Voice menggunakan sistem prabayar dari dompet organisasi Anda, seperti saluran lainnya:
- Waktu yang dapat ditagih dihitung sejak panggilan dijawab hingga berakhir, berapa pun lamanya panggilan berdering sebelumnya. Catatan panggilan menampilkannya di samping Total duration, yang dihitung sejak Bird menerima panggilan.
- Tarif bergantung pada negara tujuan. Daftar tarif Anda mencantumkan harga untuk setiap negara dalam mata uang dompet. Tarif menentukan durasi minimum yang ditagihkan dan kelipatan waktu setelah durasi minimum tersebut. Misalnya, tarif dengan minimum satu menit dan kelipatan enam detik menagihkan panggilan 10 detik sebagai satu menit.
- Saldo dompet diperiksa sebelum panggilan diteruskan ke operator. Panggilan yang tidak dapat ditanggung saldo Anda langsung ditolak dengan
insufficient_balance, bukan ditagihkan setelahnya. Sisakan saldo cadangan, atau aktifkan pengisian ulang otomatis. - Batas pengeluaran harian untuk panggilan suara berlaku. Setelah batas terlampaui, panggilan ditolak dengan
daily_spend_exceededhingga hari berikutnya dimulai menurut UTC. Workspace juga dapat menetapkan batas harian untuk setiap negara tujuan di Voice > Destinations, dan setiap panggilan harus memenuhi kedua batas tersebut. Besaran batas bergantung pada paket Anda. - Biaya muncul pada catatan panggilan setelah dihitung berdasarkan tarif, dengan presisi penuh dan tidak termasuk pajak.
Untuk meninjau tagihan seluruh panggilan, gunakan Penggunaan, pengeluaran, dan invoice. Ekspor CSV Legs mencakup durasi dan waktu yang dapat ditagih, tetapi tidak memiliki kolom biaya.
Langkah selanjutnya
| Halaman | Cakupan |
|---|---|
| Log panggilan | Menelusuri, memfilter, dan mengekspor catatan panggilan Anda |
| Peristiwa Voice | Menerima hasil panggilan yang dikirim ke sistem Anda sendiri |
| Metode pembayaran & dompet | Pengisian saldo, pengisian saldo otomatis, dan cara saldo dompet digunakan |
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini.