Sistem penagihan dan alat debugging membutuhkan data yang sama pada jadwal yang berbeda. Kebanyakan platform memberikan salinan terpisah. Di Bird satu rekaman melayani keduanya, dan bisa dibaca segera setelah panggilan berakhir. Ini mengubah dua hal saat mencocokkan data: apa yang dihitung sebagai leg, dan kapan biaya muncul.
Apa isi sebuah rekaman?
Sebuah rekaman memuat tiga kelompok field, menjawab tiga pertanyaan berbeda.
Apa yang terjadi. status adalah hasilnya, salah satu dari answered, no answer, rejected, failed, atau unknown. Di sampingnya, respons SIP adalah kode SIP terakhir. Jika Bird yang menolak panggilan dan bukan carrier, rejection reason menyebutkan pemeriksaan yang gagal. Ketiganya dibaca bersama sebagai diagnosis, dan arti kode respons SIP menjelaskan bagaimana ketiganya terkait.
Kapan terjadi. Started adalah saat Bird menerima panggilan. Answered adalah saat panggilan dijawab, atau fakta bahwa panggilan tidak dijawab. Ended adalah saat panggilan diakhiri. Pada panggilan masuk, Inbound route mencatat apa yang diatur untuk dilakukan oleh nomor yang dihubungi, dan Trunk menyebutkan trunk tempat panggilan masuk atau dikirim.
Berapa biayanya. Waktu tertagih, durasi total, dan biaya panggilan.
Dua identifier menyertai field tersebut, dan keduanya tidak bisa dipertukarkan. Call ID (vcl_…) adalah identifier rekaman itu sendiri. Kutip ini ke dukungan, dan korelasikan dengan log Anda sendiri. Session ID (vcs_…) dipakai bersama oleh setiap leg dari satu panggilan.
Mengapa satu panggilan muncul sebagai dua rekaman?
Karena rekaman mendeskripsikan leg, bukan panggilan, dan beberapa panggilan memiliki lebih dari satu leg.
Panggilan yang diteruskan adalah contohnya: leg masuk dan leg keluar adalah rekaman terpisah yang berbagi satu session ID. Jika Anda menghitung rekaman sebagai panggilan, Anda akan menghitung lebih tepat pada panggilan yang diteruskan, dan jika Anda menjumlahkan durasi lintas rekaman, Anda akan menghitung ganda waktu yang tumpang tindih.
Session ID adalah solusinya. Kelompokkan berdasarkan session ID saat Anda ingin melihat panggilan, dan baca rekaman individual saat Anda ingin melihat leg. Mana yang Anda butuhkan tergantung pertanyaannya: masalah pengiriman adalah pertanyaan leg, dan pertanyaan pengalaman pelanggan atau volume biasanya pertanyaan session.
Mengapa biaya saya tidak cocok dengan durasi?
Waktu tertagih tidak mencakup dering. Biaya ditulis setelah panggilan berakhir, bukan bersamaan.
Waktu tertagih bukan durasi total. Waktu tertagih dihitung dari jawab hingga tutup. Durasi total mencakup waktu dering sebelum ada yang mengangkat. Rekaman memuat keduanya. Rekonsiliasi yang diam-diam menggunakan yang salah akan meleset sebesar durasi dering pada setiap panggilan terjawab, dan sebesar seluruh durasi pada setiap panggilan yang tidak terjawab.
Biaya muncul setelah panggilan selesai. Rekaman memuat biaya setelah di-rating, yang bukan saat panggilan berakhir. Rekaman yang diambil segera bisa lengkap di semua aspek lain tetapi tanpa harga. Jika Anda menghitung pengeluaran mendekati waktu nyata, baca biaya saat sudah tersedia dan jangan pernah membaca ketiadaannya sebagai nol. Ini bukan soal formalitas: biaya yang belum ada dan biaya nol adalah dua fakta berbeda di sini, dan memperlakukan keduanya sama akan mengecilkan pengeluaran.
Namun menunggu tidak selalu menjadi jawaban. Panggilan tidak terjawab tidak memiliki biaya dan tidak akan pernah. Panggilan terjawab yang tetap tanpa biaya juga bukan sedang menunggu rating. Rekaman tidak memberi tahu mana dari keduanya yang sedang Anda lihat. Hubungi dukungan dengan call ID daripada terus melakukan polling.
Panggilan mana yang tidak pernah muncul?
Panggilan yang ditolak Bird sebelum diterima tidak meninggalkan rekaman, jadi log bukan catatan lengkap dari semua yang masuk ke akun Anda.
Panggilan yang sama sekali tidak bisa diterima Bird ditolak sebelum rekaman ada, sehingga tidak pernah masuk ke log. IP allow list trunk adalah salah satu bentuk penolakan tersebut. Panggilan dari alamat yang tidak ada di daftar ditolak pada lapisan SIP, dan biasanya tidak menghasilkan rekaman. Jadi penyerang yang memindai trunk Anda bisa menghasilkan banyak lalu lintas tanpa jejak di tempat yang biasa Anda periksa. PBX yang salah konfigurasi, sistem telepon bisnis yang merutekan panggilan perusahaan, melakukan hal sama dari alamat baru.
Konsekuensi praktisnya adalah "there is nothing in the call log" menjawab pertanyaan yang lebih sempit dari yang terlihat. Artinya tidak ada panggilan yang diterima, bukan berarti tidak ada yang dicoba. Saat sistem telepon melaporkan panggilannya gagal dan log kosong, periksa allow list lebih dulu, bukan terakhir. Pemecahan masalah voice membahas langkah selanjutnya.
Bagaimana cara mengambil rekaman?
Untuk satu panggilan, buka di call log dan baca field di atas. Log memfilter dan mencari di seluruh daftar, serta menampilkan panggilan yang sedang berlangsung terpisah dari yang sudah selesai.
Untuk banyak panggilan, API voice mengembalikan panggilan sebagai rekaman yang bisa Anda telusuri per halaman. Endpoint statistik voice mengagregasinya berdasarkan hari, jam, negara, dan kode respons. Pertanyaan tentang pola dijawab dari statistik, bukan dengan menelusuri rekaman satu per satu.
Call log mendokumentasikan setiap field yang dimuat rekaman dan cara daftar difilter.
Singkatnya
Satu panggilan bisa menjadi beberapa rekaman.
Setiap leg mendapat rekamannya sendiri, dan session ID yang sama mengelompokkannya. Panggilan yang diteruskan adalah dua rekaman, bukan satu.
Waktu tertagih dihitung dari jawab hingga tutup.
Waktu tertagih bukan durasi total, yang mencakup dering. Keduanya tercatat, jadi pastikan Anda mencocokkan dengan yang benar.
Biaya belum ada di awal, dan kadang tidak pernah ada.
Rekaman memuat biaya setelah di-rating. Panggilan terjawab yang tetap tanpa biaya bukan sedang menunggu rating, jadi bawa call ID ke dukungan.
Beberapa panggilan tidak pernah menghasilkan rekaman sama sekali.
Panggilan yang ditolak sebelum Bird menerimanya tidak meninggalkan apa pun di log, jadi log bukan catatan lengkap dari semua yang masuk ke akun Anda.