Apa itu SIP?

Session Initiation Protocol (SIP) memulai, mengubah, dan mengakhiri panggilan sementara audionya berjalan secara terpisah.

Sistem telepon dari vendor yang berbeda memerlukan cara bersama untuk menyepakati sebuah panggilan.

SIP tidak membawa media, dan batasan itulah yang menjelaskan mengapa panggilan yang tersambung bisa tidak memiliki audio.

Apa yang sebenarnya dilakukan SIP?

Protokol ini membuat dua pihak sepakat bahwa sesi harus terjadi, dan dengan ketentuan apa.

RFC 3261, spesifikasi Juni 2002 yang mendefinisikannya, mendeskripsikan SIP sebagai "an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants". Lima tugasnya adalah menemukan ujung jauh, memutuskan apakah ia akan menerima panggilan, menyepakati media, membunyikan dering, dan kemudian menutup atau mentransfer. Spesifikasi mencantumkannya sebagai:

User location: determination of the end system to be used for
     communication;

User availability: determination of the willingness of the called
     party to engage in communications;

User capabilities: determination of the media and media parameters
     to be used;

Session setup: "ringing", establishment of session parameters at
     both called and calling party;

Session management: including transfer and termination of
     sessions, modifying session parameters, and invoking
     services.

Tidak satu pun dari kelima tugas itu membawa audio. Itulah seluruh cakupannya.

Mengapa panggilan saya tersambung tanpa audio?

Karena audio memang bukan tanggung jawab SIP, dan kedua jalur bisa gagal secara independen.

Spesifikasi ini eksplisit tentang cakupannya sendiri:

SIP is not a vertically integrated communications system. SIP is rather a component that can be used with other IETF protocols to build a complete multimedia architecture.

Media berjalan melalui RTP, dinegosiasikan saat penyiapan lalu mengalir sendiri, sering kali antara endpoint yang tidak pernah disentuh oleh pensinyalan. Pensinyalan bisa selesai dan kedua sisi bisa sepakat bahwa sesi sedang aktif. Audio tetap bisa gagal sampai karena firewall, network address translator, atau aturan routing antara endpoint media memblokir audio tersebut tanpa mengganggu pensinyalan.

Inilah mengapa audio satu arah dan tanpa audio merupakan kategori diagnostik tersendiri, bukan jenis kegagalan panggilan. Log panggilan akan menampilkan panggilan tersambung karena panggilan tersambung memang yang dicapai oleh pensinyalan. Pemecahan masalah suara membahas gejala-gejalanya. Alat tes panggilan milik Bird mencetak ringkasan puncak audio untuk setiap arah, di mana angka nol pada satu sisi adalah gejala audio satu arah yang dinyatakan sebagai angka.

Pemisahan yang sama inilah yang memungkinkan hal lain masuk dengan mudah. RFC 3261 menyatakannya sebagai "SIP does not provide services. Rather, SIP provides primitives that can be used to implement different services." Voicemail, hunt group, perekaman panggilan, dan agen AI semuanya dibangun di atas primitif tersebut, bukan didefinisikan oleh protokol.

Apakah saya harus meregistrasi klien sebelum bisa melakukan panggilan?

Tidak. Trunk Bird mengautentikasi panggilan tanpa registrasi klien.

SIP memang mendefinisikan fungsi registrasi, yaitu cara user agent memberi tahu jaringan di mana ia bisa dihubungi saat ini. Inilah yang membuat telepon meja dapat ditemukan saat seseorang menghubungi ekstensi. Namun registrasi dan melakukan panggilan adalah tindakan terpisah, dan sistem yang hanya menginisiasi panggilan tidak perlu bisa ditemukan.

SIP INVITE adalah metode yang meminta panggilan. Bird mengautentikasi setiap panggilan berdasarkan daftar IP yang diizinkan pada trunk atau melalui tantangan kata sandi. Klien tidak melakukan registrasi ke trunk. Konfigurasikan Bird sebagai trunk, bukan sebagai akun terdaftar: tanpa bagian type=registration di Asterisk, register=false pada gateway FreeSWITCH, registrasi disetel ke none di FreePBX atau 3CX. Jika softphone tidak menyediakan cara untuk menonaktifkan registrasi, percobaan registrasi yang gagal hanya kosmetik dan panggilan tetap berfungsi, karena platform bertindak berdasarkan undangan, bukan registrasi. Penyiapan klien SIP memuat konfigurasi lengkapnya.

Konsekuensinya adalah ke mana kredensial ditempatkan. Klien Anda mengirim dua identitas berbeda. Caller ID masuk di header From dan harus berupa nomor yang sudah Anda verifikasi. Digest username adalah bird di setiap trunk. Memasukkan caller ID di kolom autentikasi menyebabkan kesalahan autentikasi, bukan kesalahan yang menyebut caller ID.

Mengapa responsnya mirip HTTP?

Karena protokol ini memang dirancang demikian, hingga ke rentang nomornya.

SIP adalah protokol permintaan dan respons berbasis teks dengan metode dan header. Responsnya menggunakan enam kelas yang sama dengan nomor yang familiar, 404 untuk tujuan yang tidak ada dan 486 untuk sistem ujung yang sibuk. Struktur yang sama ini memungkinkan Anda membaca trace SIP seperti membaca trace HTTP.

Ada dua pengecualian. Kelas keenam, 6xx, tidak memiliki padanan HTTP dan berarti tidak ada server di mana pun yang dapat memenuhi permintaan, bukan hanya server ini saja. Satu kode umum juga membawa makna pada Bird yang tidak dijelaskan oleh standar. Apa arti kode respons SIP membahas keduanya, termasuk mengapa 503 dari Bird biasanya merupakan penolakan yang tidak dijelaskan di jaringan, bukan kelebihan beban.

Di mana saya menemui SIP di Bird?

Di trunk, yaitu alamat yang dituju perangkat Anda untuk mengirim.

Setiap trunk memiliki domain SIP tetap dan menerima UDP atau TCP pada 5060, atau TLS pada 5061 jika Anda ingin pensinyalan dienkripsi saat transit. Apa yang boleh mengirim ke trunk adalah keputusan Anda, dan trunk baru tidak menerima apa pun sampai Anda mengizinkannya. Apa itu trunk SIP membahas keputusan tersebut dan tiga mekanisme di baliknya. Apa itu API suara membahas bagaimana bagian SIP dan bagian HTTP membagi pekerjaan.

Singkatnya

  1. SIP menyiapkan sesi, bukan membawanya.

    Spesifikasinya sendiri menyebutnya sebagai komponen, bukan sistem yang lengkap. Audio berjalan pada protokol terpisah dan sering kali melalui jalur yang berbeda.

  2. Pemisahan inilah mengapa panggilan bisa tersambung tanpa suara.

    Pensinyalan dan media bisa gagal secara independen, sehingga panggilan bisa tersambung dengan baik tanpa suara, dan kedua sisi tidak salah tentang apa yang mereka lihat.

  3. Registrasi dan panggilan adalah tindakan terpisah.

    Klien melakukan registrasi untuk memberi tahu di mana ia bisa dihubungi. Melakukan panggilan tidak memerlukan registrasi, dan Bird mengautentikasi setiap undangan, bukan registrasi.

  4. Responsnya mirip HTTP karena memang dirancang demikian.

    Enam kelas respons dengan nomor yang familiar, ditambah satu kelas yang tidak memiliki padanan di HTTP, yang berarti tidak ada server di mana pun yang dapat memenuhi permintaan tersebut.

Terapkan dalam praktik.

Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini.

Dapatkan ringkasan implementasi

Bangun di jaringan yang sama.

Kunci API uji coba langsung tersedia untuk Anda. Akses produksi terbuka saat Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Ide Anda berikutnya. Siap terhubung.