Pertemuan video di KamoCRM berjalan pada infrastruktur media yang kami operasikan: unit forwarding selektif, fokus konferensi, relay TURN, komponen gateway rekaman dan streaming. Media real-time adalah hal yang paling tidak memaafkan di web dan tidak ada cara untuk mempelajarinya kecuali dengan menjalankannya.
| Ukuran | Nilai | Sumber | Diukur |
|---|---|---|---|
| Komponen media real-time dalam produksi | 6 (media server, conference focus, signalling, recording, telephony gateway, TURN relay) | kubectl get deployments,statefulsets -n kamo | |
| Server streaming dioperasikan bersamaan dengan konferensi | 1 (MediaMTX, live streaming only) | kubectl get deployments -n kamo |
Apa gedung itu mengajarkan kita
Media waktu nyata menghukum perkiraan. Sebuah permintaan web yang mengambil dua ratus milidetik tambahan tidaklah luar biasa; dua ratus milidetik jitter dalam sebuah panggilan adalah argumen tentang siapa yang berbicara di atas siapa. Konektivitas dinegosiasikan daripada dikonfigurasi — alamat kandidat dikumpulkan, jalur diuji, relay digunakan ketika jalur langsung tidak dapat ditemukan — dan mode kegagalan asimetris dan memalukan. Satu peserta mendengar semua orang, tidak ada yang mendengar mereka, dan setiap log mengatakan bahwa panggilan itu baik-baik saja.
Kegagalan yang paling banyak kami pelajari adalah sebuah konferensi yang berakhir ketika orang kedua bergabung. Tampak seperti bug aplikasi dan tidak: server media telah menandai dirinya tidak beroperasi dan fokus konferensi, tidak memiliki tempat untuk mengirimkan aliran kedua, menghancurkan konferensi. Pelajaran tentang urutan diagnosis — periksa titik akhir kesehatan server media sendiri sebelum membaca baris kode aplikasi — dan ini mengeneralisasi ke setiap sistem terdistribusi yang kami kerjakan sejak itu.
Kami juga menjalankan relay dan rekaman. rekaman adalah di mana kewajiban privasi menjadi konkret daripada teoretis, karena rekaman adalah dokumen tentang orang-orang yang dapat diidentifikasi yang seseorang sekarang harus menyimpan secara sah, dan itu adalah keterbatasan desain jauh sebelum menjadi dokumen kebijakan.
Dibangun dengan
- WebRTC
- Jitsi Videobridge
- Jicofo
- Prosody
- coturn
- MediaMTX
- XMPP
- ICE
- SRTP
Katakan pada kami apa yang Anda coba lakukan
Sebuah percakapan singkat biasanya cukup untuk mengatakan apakah kami orang yang tepat. jika kami tidak, kami akan mengatakannya dan menunjukkan tempat yang lebih baik.
