Resolve TypeScript build error in LeadManager component
- Fixed Chip icon prop type error by changing ReactNode to ReactElement - Removed unused imports and props - Fixed useMemo dependency warning by wrapping IdRend...
Update leads page with LeadManager component matching doc manager layout
- Created LeadManager component similar to DocManager with lead-specific fields - Updated /leads/page.tsx to match doc manager layout with gradient header - Add...
Auto-scroll chat to bottom on load and new messages
Track previous message count and scroll smoothly when new messages arrive; scroll immediately on initial load or when un-minimizing
Frontend WebSocket persistence - match backend timing and faster reconnect
Heartbeat: 4s -> 20s to match backend, reconnect delay: 5s -> 1s, add 30s connection timeout
Unified header design spanning both chat and softphone panels
REMOVED: Status bar from softphone (wifi, signal, time - unnecessary for web app) SHARED HEADER: Title bar now spans both softphone and chat when expanded LAY...
Optimize softphone to fit all content without scrolling at 680px height
CHATBOX HEIGHT: 550px -> 680px (optimal balance) PHONE DISPLAY: Reduced minHeight (100/75 -> 85/65), padding (14/16 -> 12/14) CALL CONTROLS: All 9 buttons - p...
Reduce ChatBox height to more comfortable 550px
Changed from 85% viewport (750-850px) to fixed 550px for better UX WebRTC call controls remain fully intact and functional
Add premium enterprise features - Analytics, CRM, AI Assistant, Advanced
ANALYTICS DASHBOARD - Real-time call metrics with interactive charts CRM INTEGRATION - Customer data, lifetime value, activity tracking AI ASSISTANT - Sentime...
Implement 100% enterprise VoIP desk phone features
Complete implementation of 100+ features matching Cisco 8800, Polycom VVX 600, Yealink T58A 7 Tabs: Dialpad, Speed Dial/BLF, History, Voicemail, Contacts, Queu...
Make softphone fully visible without scrolling - comprehensive compact layout
CHATBOX HEIGHT: - Changed from fixed 600px to 85% of viewport height - Uses Math.floor(window.innerHeight * 0.85) for responsive sizing - Provides much more ver...
Eliminate horizontal scrollbars and increase softphone visibility
LAYOUT FIXES: - Increase DOCKED_HEIGHT from 480px to 600px for better vertical space - Add explicit width constraints (minWidth, maxWidth) to SoftphonePanel roo...
Elevate softphone to enterprise-grade with premium features
ENTERPRISE FEATURES: - Call Recording with visual indicator and pulsing animation - Call Transfer functionality for seamless handoffs - Call Notes with expandab...
Add expandable softphone panel to ChatBox
- Add PhoneInTalk icon button to ChatBox header for softphone toggle - Create comprehensive SoftphonePanel component with full UI - Implement dialpad with 0-9, ...
Remove connected check and add debug logging for STOMP activation
STOMP client was not activating because connected check was preventing it. Added debug logs to diagnose.
Activate STOMP client only after SockJS opens
Critical bug fix: STOMP client was being activated before SockJS opened, causing immediate disconnect. Now waits for SockJS onopen event before activating STOMP...
Aktifkan transportasi SockJS fallback untuk koneksi WebSocket
Ijinkan xhr-streaming dan xhr-polling sebagai fallback jika upgrade WebSocket gagal.
Enhance ChatBox with dynamic color system and increased height
- Increase message viewing area by 33% (DOCKED_HEIGHT: 360 -> 480) - Create ChatBoxStyles.tsx with dynamic CSS variable-based color system - Apply primary color...
Modernize ChatBox desain dengan cat profesional
- Implement latar belakang putih bersih dengan gradien abu-abu halus - Tambahkan styling scrollbar ubahan terintegrasi dengan skema warna primer - Gelembung pes...
Hapus cek properti 'aktif' yang tak valid dalam use ChatChWebSocket
Tipe klien dari @ stomp / stompjs tidak memiliki properti 'active'. Menghapus cek tidak valid sejak client.activation () dipanggil segera setelah pembuatan klie...
Tunggu SockJS dibuka sebelum mengaktifkan klien STOMP
- Perbaiki kondisi balapan dimana klien StoMP diaktifkan sebelum koneksi SockJS siap - Pindahkan client.active () ke SockJS onopen callback - Ini harus memperba...
Route ALL WebRTC API request to port 8443
- Update semua rute API WebRTC untuk menggunakan media. {domain}: 8443 - Tidak lagi menggunakan Traefik untuk titik akhir WebRTC - Cocok dengan konfigurasi API ...
Route ALL MediaService request to port 8443 (bypass Traefik)
- Memutakhirkan semua rute API media untuk menggunakan media. {domain}: 8443 - Tidak lagi menggunakan Traefik untuk MediaService - Baik API dan WebSocket langsu...
Hubungkan ke port 8443 (eksternal) yang rute ke NodePort 30843
- Router depan eksternal 8443 ke K1m1 NodePort 30843 - Browser menggunakan media.kamocrm.com: 8443 - Internal NodePort adalah 30843 (jangkauan Kubernetes valid)
Hubungkan ke MediaService port 8443 untuk WebSocket
- Update Koneksi WebSocket untuk menggunakan media.kamocrm.com: 8443 - Melewati Traefik untuk WebSocket- hanya lalu lintas - Menggunakan koneksi HTTPS / HTTP1.1...
Hapus WebSocket-hanya pembatasan transport untuk kompatibilitas HTTP / 2
- Browser WebSocket API tidak mendukung HTTP / 2 (RFC 8441 tidak diimplementasikan) - Native WebSocket membutuhkan HTTP / 1.1 Upgrade yang gagal melewati HTTP /...
Gunakan WebSocket-only transport (non-aktifkan TPS XHR)
- Diubah Transport SockJS dari [websocket, xhr-streaming, xhr-polling] ke [websocket] - Hapus mundur ke TPS XHR - Kekuatan koneksi WebSocket murni - Gagal cepat...
Hubungkan WebSocket langsung ke media.kamocrm.com
- Dikembalikan ke pendekatan asli: terhubung ke media. * subdomain secara langsung - Dibuang sama - asal kompleksitas - Dihapus / ws bypass dari middleware (tid...
Hapus referensi namespace eksplisit dari layanan kamowsmeaa-
- Kedua layanan berada dalam namespace yang sama (kamo) - Referensi namespace explisit tidak diperlukan - Menghindari potensi masalah antar-ruang nama
Hapus / ws menulis ulang dari berikutnya. config (ditangani oleh Traefik)
- Removed Next.js rewrite for / ws paths - WebSocket routing sekarang ditangani di tingkat Traefik IngressRoute - Rute traefik proprial.kamocrm.com / w - > Medi...
Route / ws meminta langsung ke MediaService via Traefik
- Ditambahkan rute berdedikasi untuk jalur / ws di IngressRoute - Routes provenal.kamocrm.com / w - > MediaService secara langsung - Gunakan ServersTransport ya...
Ijinkan / w Endpoints WebSocket tanpa redirect auth
- Alamat ditambahkan / ws ke bypass middleware - SockJS perlu menyambung ke / w / info tanpa mengarahkan - Koneksi WebSocket akan tetap memiliki cookie * * - Ma...
Ubah koneksi WebSocket ke asal-same-
- Diubah dari media.kamocrm.com ke asal yang sama (convenal.kamocrm.com) - Menghindari masalah sambungan WebSocket - Ditambahkan aturan reply Next.js ke proxy /...
Tambahkan rute proksi API bagi titik akhir WebRTC
- Ditambahkan / api / webrtc / config proxy ke MediaService - Tambahkan / api / webrtc / token proksi untuk otentikasi Janus - Ditambahkan / api / webrtc / call...
Hapus properti koder tidak valid dari getDisplayMedia
- Menggunakan video sederhana: benar untuk berbagi layar - Membangun sekarang harus berhasil
Resolve build error - menggantikan PhoneOff dengan Callen
- Ikon PhoneOff tidak ada dalam material @ mui / icons- - Menggunakan Callen End yang merupakan ikon MUI yang benar - Menghapus berkas duplikat yang tak terpaka...
Lengkap peer- to-peer WebRTC memanggil dengan sinyal
- Menambahkan kait useWebRTC dengan dukungan sinyal penuh - Sinyal WebSocket terpadu (menawarkan, menjawab, calon ICE) - Tambahkan pemberitahuan panggilan masuk...
Tambahkan integrasi Janus WebRTC untuk panggilan audio / video
- Ditambahkan kait useJanusWebRTC untuk manajemen panggilan WebRTC - Ditambahkan Komponen VideoCallPanel untuk tampilan video in- chat - Terintegrasi dengan Cha...
Kembalikan transportasi WebSocket dalam SockJS
- Revert untuk menggunakan transport websocket (bukan polling) - WebSockets adalah standar dan harus bekerja dengan baik Fokus untuk memperbaiki isu koneksi Web...
Lewati transportasi WebSocket dalam SockJS untuk menghindari masalah HTTP / 2
- Gunakan xhr-streaming dan xhr-polling transportasi bukan websocket - Transportasi ini bekerja dengan baik HTTP / 1.1 dan HTTP / 2 tanpa membutuhkan upgrade We...
Atur transportasi SockJS untuk menangani masalah peningkatan WebSocket HTTP / 2
- Secara eksplisit mengatur urutan transportasi SockJS untuk lebih menyukai WebSocket, kemudian mundur ke xhr-streaming / xhr-polling - HTTP / 2 Upgrade WebSock...
Pastikan rute pesan dikenali oleh Next.js
- Ditambah logging untuk memverifikasi rute sedang dipukul - Berkas rute ada dan struktur yang benar untuk Next.js 15
Hapus properti 'aktif' yang tidak ada dari STOMP Log klien
- STOMP Klien tidak memiliki properti 'aktif' - Hanya memeriksa properti 'terhubung' yang merupakan indikator keadaan yang benar
Hapus penanganan onWebSocketError yang tidak didukung dari klien StoMP
- onWebSocketError bukan properti yang valid dalam ClientOptions - Penangan galat SockJS (onerror, onclose) telah menyediakan penanganan kesalahan
Tambahkan galat WebSocket komprehensif penanganan dan log
- Ditambahkan penanganan galat SockJS (onopen, onerror, onclose) untuk menangkap kegagalan koneksi - Ditambah pendeteksi timeout koneksi (10 detik) untuk mengid...
Hapus solusi agen HTTPS yang salah
- Mengembalikan perubahan yang melewati validasi sertifikat - Sertifikat dikeluarkan oleh layanan auto- cert (Mari Enkripsi), bukan self-signed - Perlu menyelid...
Gunakan HTTPS dengan agen yang menerima sertifikat yang ditandatangani sendiri
- Terbalik untuk selalu menggunakan HTTPS (bukan HTTP) - Ditambahkan agen HTTPS dengan penolakan Tidak sah: salah untuk certs self-signed - This allowed server-...
Gunakan nama layanan Kubernetes bagi MediaService untuk menghindari isu cert SSL
- Server- side Next.js route now use * * * * * * * * * * * * * * - Ini menghindari sendiri-signed sertifikat error ketika menghubungkan ke https: / / media.kamo...
Hapus lama / api / keamanan / media / rute yang mencegat permintaan
- Rute lama diteruskan ke APIService yang tidak lagi memiliki titik akhir media - Semua permintaan media harus melalui / api / media / rute langsung ke MediaSer...
Seperti apa yang Anda lihat pengiriman?
Semua itu tiba di ruang kerjamu sendiri. Mulailah dengan rencana gratis dan baca halaman ini lagi dalam sebulan.
