Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-internal

    Tabung Riwayat + Voicemail kelas dengan alat pemutar media-

    Tab sejarah (SoftphoneHistoriTab.tsx): - Gulungan tak terbatas melalui IntersectionObserver di dalam wadah gulungan panel - Filter chips: All / Inbound / Outbound / Missed / Recorded - Ikon rekaman dalam aksi baris ketika sisi pencitraan memiliki baris perekaman - Per- row overflow menu (Tambahkan ke kontak) - Klik-to- panggilan kembali melalui dialek yang ada Tab voicemail (SoftphoneVoiceTab.tsx): - Gulungan tak terbatas, chip filter (Semua / Belum dibaca / Telah audio) - Per- row Play / Call back / More actions - Auto- mark- baca main - Two-option hapus dialog: Archive (soft-hide, all users) vs Permanently delete (gated by VOIP _ VOICEMAIL _ PERMANENT _ DELETE right; falls back to disabled state for users without it) - Mark- all- baca tombol dengan no-op- ketika-nol caudance Alat popup MediaPlayer * * * * * * * * * * * * * * * - Audio: disintesis waveform-style scrubber, click-to-seek, Replay10 / Forward10, laju putar (0.5x-2x), loop, volume + bisu, perangkat keluaran dihormati dari pengaturan AV - Video: berisi viewport, PiP, layar penuh, scrubber + kontrol yang sama - Selektor trek multi- untuk rekaman panggilan (master + setiap per- saluran kaki) - Unduh - Dua mode sumber: voipApi merekam (call / VM) atau gambar aset oleh imgId - Terdaftar dalam alat / registry / registrations.ts sebagai multi- instance Pipa Hook +: - use softphone exposes) and archive / kekal-delete action - voipApi memperoleh lookup Recordings, getRecordingMetadata, archiveVoimail, paginated getVoicemail - / api / voip proxy melewati audio / video / octet-mayat melalui dengan * * * * * * * * * * * * utuh (tidak ada buffering) sehingga elemen media scrub - Baru * * * * * * * * * * * * * ke depan ke DocsService baru streaming titik akhir dengan Range - VOIP _ VOICEMAIL _ PERMANENT _ DELETE ditambahkan ke depan registry RoleRightType sehingga cek Gerbang Kanan hapus UI

  2. · InitializerService

    Pelari migrasi untuk menyediakan Rekaman-pencarian kolom + kolom archive VM

    Tambahkan RECORDINGS.provider _ instance _ id (UUID) dan provider _ external _ id (VARCHAR (64)) plus komposit idx _ records _ provider _ provider _ lookup indeks yang dipakai oleh tab riwayat softphone. Juga menambahkan PHONE _ VOICEMAIL.is _ archived + date _ archived untuk aliran lembut -archive baru. Menggunakan RECORDINGS / RECORDING _ EXTS baris dalam tahap yang sama - idempoten alami (hanya cocok baris yang penyedia _ external _ id masih NULL, yang tidak akan terjadi sekali ConversionService berada di jalur kode baru). Pesan 35 - setelah * * * * * * * * * * * * (30) tabel rekaman ada sebelum lahan ALTERs.

  3. · ConversionService

    Persist provider InstanceId + providerExternalId pada Recording di Ingest

    Thread asterisk- support X-Phone- Server-Id dan X-Asterisk-Unique-Id (already in UnrecesedRecording) ke field X-RecordingMetadata baru sehingga call / voicemail dalam sistem pencitraan membawa kunci bergabung kembali ke baris sumber. Untuk voicemail pembantu mengirim basis nama berkas mentah (misalnya msg0000); kita strip awalan msg dan nol terkemuka sehingga kunci yang disimpan cocok dengan pesan suara FreePBX REST API kembali sebagai id pesan.

  4. · DocsService

    Tambah * * * * * * * * * * * * * * * dengan dukungan Range HTTP

    Streaming akhir umum untuk aset pencitraan audio / video, yang dipakai oleh alat media kamo- internal. Mengurangi otorisasi ImageService (sama dengan / download /...) tapi aliran dengan Diterima Rentang + Kontent- Rentang sehingga elemen media dapat menghapus tanpa memuat berkas penuh.

  5. · VOIPService

    Rekaman putar, voicemail arsip, paginated voicemail, riwayat pengayaan

    - Recording Baru Controller dengan pencarian massal, range- streaming audio untuk master + per-channel trek, dan metadata untuk jendela alat media- player - CallController.getCallHistory / getVoicemail memperkaya setiap baris dengan pencitraan recordingId melalui RecordingLookup baru - perjalanan keliling tunggal, tidak ada N + 1 - PhoneProvider.getVoicemail sekarang mengambil (memberId, page, size); FreePBX paginates clients -side dari satu fetch, RingCentral menggunakan paging asli, KamoPBX terus melempar NotSupported - Arsip Voicemail endpoint (soft- hide via PhoneVoice.isArchived) dan kekal-delete digated oleh VOIP _ VOCEMAIL _ PERMANENT _ DELETE - bypass godActive membutuhkan kedua GD eligibility DAN aktif toggle - PhoneProvider memperoleh getInstanceId () sehingga pengontrol dapat menyelesaikan kunci bergabung untuk rekaman pencarian tanpa panggilan pabrik kedua

  6. · kamo-shared-library

    Penyedia tombol pencarian pada Perekam, arsip voicemail, jangkauan streaming MinIO

    - Recording: tambahkan providerInstanceId + providerExternalId untuk bergabung dengan operator panggilan riwayat / voicemail baris kembali ke pencitraan aset - PhoneVoicemail: tambahkan is Archived + dateArchived untuk soft- hide dari daftar softphone - RoleRightType: tambahkan VOIP _ VOICEMAL _ PERMANENT _ DELETE (gerbang penghapusan destruktif; archive tetap tersedia untuk semua) - MinIOStorageService: tambahkan openRange () + RangeStream sehingga audio / video titik akhir dapat menghormati Jangkauan HTTP - Recording ImaginService: thread provider id + external id melalui RecordingMetadata ke baris Rekaman di telest

  7. · kamo-internal

    Tambahkan tab Sejarah - padinated audit timeline dengan pencarian dan penyaring

    - LeadHistories Panel: bilah alat penyaring lengket dengan pencarian debounced, * * * * * * * * * * * filter, tabel MUI dengan pagination, warna - chip acara, resolusi nama member- untuk bidang penempatan / akun - LeadsApi: getLeadiHistory () dan getLeadHistoriFilter () dengan dukungan kuiri penuh param - LeadHistories Entry, LeadHistories Actor, LeadHistoriFieldMeta, LeadHistoresPateRespon, LeadHistorsResponse type - Next.js proxy route untuk * * * * * * * * * * * * * dan / filter - LeadViewClient ditransfer ke render LeadHistories Panel ketika History tab aktif

  8. · SecurityService

    Tambahkan GET / {id} / history dan / {id} / history / filter titik akhir

    Padinated, filterable, searable lead- history endpoint dengan batch actor loading (tidak ada N + 1). Penyaring titik akhir mengembalikan ruas yang berbeda, semua ruas registri, aktor yang berbeda, dan semua tipe acara. Semua titik akhir bermutasi sekarang lulus anggota panggilan sebagai aktor ke LeadHistories Service untuk atpials.

  9. · kamo-shared-library

    Tambahkan log audit sejarah - entitas, registri, layanan, DTO, kait LeadService

    - Entitas LeadHistory (UUID PK, FK panjang polos - tidak ada batasan FK untuk memungkinkan penghapusan / konversi memimpin) - LeadHistory EventType enum dengan label yang mudah dibaca - LeadHistory FieldRegistry: sumber kebenaran tunggal untuk ~ 55 bidang Lead dilacak; menambahkan sebuah lapangan adalah satu baris - LeadFieldDeslitortor record (kunci, label, kategori, ekstraktor) - LeadHistories Service: snapshot / diff pipeline, * * * * * * * * * * * * * * * padinated + filtered Find, Dibedakan Fields / Actors for filter dropdowns - LeadHistorDTO dengan sarang ActorDTO; semua ID panjang serialisasi sebagai String untuk keselamatan CockroachDB JS presisi - LeadService: pengait sejarah pada pembuatan, pembaruan, hapus, timbal balik, LeadAccount, LeadAccount yang tidak sah

  10. · SecurityService

    Aktor layanan LeadHistories kabel pada LeadController

  11. · kamo-internal

    Tambahkan penempatan akun-manual UI, sistem mata uang, assign / new halaman akun, daerah pengaturan mata uang

  12. · SecurityService

    Tambahkan penempatan ujung-akun titik akhir, perbarui Controller AkuntController untuk Tipe Mata Uang

  13. · kamo-shared-library

    Tambahkan nilai mata uang enum, perbarui CountryType dengan mata uang primer, tambahkan mata uang ke Akun / Organisasi, tambahkan penempatan lead- akun ke LeadService

  14. · kamo-internal

    Tipe label anggota dinamis dalam judul halaman Akun saya

    Judul sekarang berbunyi "My {Anggota = 124; Team Anggota} Akun" menggunakan org- dikonfigurasi label perilaku, beralih secara otomatis setelah tipe anggota dimuat.

  15. · kamo-internal

    Pindahkan tombol Dokumen ke bilah alat DocManager

    Tombol hanya tersedia pada / doc / manager melalui aksi prop. Pindah semua logika (state, handler, DOC _ TYPES, menu) ke DocManager jadi itu muncul pada setiap instansi tertanam. Sederhanakan page.tsx untuk hanya render DocManager with no action prop.

  16. · kamo-internal

    Pindahkan Alamat Mailing ke baris 3-kolom dengan Kontak Lead Info dan Primer

  17. · kamo-internal

    Dukungan internasional - CountrySelect, LanguageSelect, Subdivisi Ruas di semua bentuk

    - Tambahkan KontrosySelect yang dapat dipakai ulang (207 negara, bendera ikon), LanguageSelect (26 bahasa, flag ikon), Lapangan Subdivisionary (dropdown negara AS dengan bendera; negara lain menampilkan ruas teks berlabel) - Tambahkan konstanta negara (countries.ts, littages.ts, usStates.ts, timezones.ts) - Lead view Detail tab: per- card in- place edit dengan * * * * * * * * * * * * * * - Memimpin membuat bentuk: full country / subdivision / timezone dropdowns menggantikan daftar inline terbatas - Pengaturan LabelManager: org bahasa baku dalam Bagian 8, CountrySelect + Subdivisi Ruas di alamat - ContactInfoStep (jaringan menciptakan wizard): CountrySelect + SubdivisionField menggantikan pilihan terbatas - MyAccountTab: Bagian CountrySelect + SubdivisionField menggantikan ruas teks biasa - tipe / leads.ts: tambahkan daerah negara dan subdivisi

  18. · kamo-shared-library

    Tambahkan dukungan internasional - Memimpin negara / subdivisi / zona waktu, Bahasa Org, Provinsi Tipe KontryType

    - CountryType: tambahkan PROVINCE _ NAMES set, isProvince (), getSubdivisionLabel () - Organisasi: tambahkan bahasa (LanguageType) field - Lead: tambahkan negara (CountryType), subdivision (String), zona waktu (TimeType) - * * * * * * * * * * * * * * menambahkan negara, subdivisi, zona waktu bidang String - LeadService.createLead: menangani ruas baru; bahasa baku + negara dari pengaturan org - LeadService.updateLead: menangani ruas baru - * * * * * * * * * * * * * * * * tambahkan bahasa penangan touchedKey

  19. · kamo-internal

    ASSIGN _ LEADS benar, agen filter pilihan tidak ditugaskan, kolom pembersihan

    - Gate 'Unassign Leads' agen filter pilihan di belakang ASSIGN _ LEads kanan - 'All Leads' excludes unassign lead untuk anggota tanpa hak - Hapus Street, Produk, Kolom Sumber; hapus Deteksi / Sumber filter dropdown - Hapus kolom Perusahaan; kolom kontak menunjukkan nama perusahaan, kembali ke nama kontak - Kolom vendor menampilkan tooltip dengan Detail Produk - Sumber - Tanggal kolom drop awalan hari kerja, menyusut dari 170px ke 140px - Tampilan Waktu Tanggal: tambahkan prop showWeekday (default false)

  20. · kamo-shared-library

    Tambahkan ASSIGN _ LEADS kanan (ID 137) di bawah daerah CRM

  21. · kamo-internal

    Tambah Tanda Ke field ke bagian Pasar & Penugasan pada / lead / baru

    - Fetches anggota tim aktif dari * * * * * * * * * * * * * * * * * * pada mount - Anggota grup oleh departemen dengan abjad terurut departemen dan anggota - Nama formulir sebagai "Last, First"; pilihan pertama adalah "Auto Assign / Unassign" - Bagian daerah reorders: Pasar Lead, Assign To, Waktu terbaik untuk Kontak, Vendor, Produk, Tipe Prospect (all lg = 4) - Fixes leadsApi.ts untuk mengirim assignedTeamMMMDId bukan field pengguna mati - Tambahkan TeamAnggota Tim ke tipe Lead

  22. · kamo-asterisk-support

    Keluarkan recordedAt + per-file ekstensi dalam upload manifest

    - Watcher: setiap yang dibebaskan Rekaman membawa RecordedAt, berasal dari segmen EPOCH dari kami dikelola * * * * * * * * * * * * * * * nama berkas, mundur ke file mtime untuk berkas voicemail / legacy. - Grouper: CallBatch now track FileExtensions [] (satu per berkas, paralel ke Berkas []) dan batch 's keseluruhan Rekaman (awal awal kaki mulai). Urutkan kunci untuk kaki adalah Recordedat dengan FinalizeDI sebagai Tiebreaker sehingga kaki master deterministik. - Uploader: daftar sekarang termasuk catatan tingkat atas dan per- file ekstensi. Layanan Percakapan mengkonsumsi keduanya untuk menulis Rekaman (date _ record, length from ffprobe) and per- leg RecordingExt baris.

  23. · ConversionService

    Pass Metadata Rekaman untuk pencitraan - panjang ffprobe + parsing manifest

    - * * * * * * * * * * * * * * jalankan format ffprobe -show _ entry = durasi pada master Opus / WebM, kembali ms. 0 = tidak diketahui (bukan fatal). - * * * * * * * * * * * * * * * * sekarang: * menjalankan probeDurationM pada master untuk mendapatkan panjang rekaman; * parses manifest (dikirim oleh kamo- tanda bintang-dukungan) untuk recordedAt dan data ekstensi / saluran berkas, mundur ke baris pementasan datecreated and channel- name parsing for older payloads; * melewati * * * * * * * * * * * * * * * * dateRecorded, Panjang M, Ekstensi partisipating) untuk Layanan Gambar Rekaman sehingga dapat menulis baris Recording + RecordingExt yang baru.

  24. · kamo-shared-library

    Recording + RecordingExt entitas, RecordingPicture Service menulisnya

    - Entitas rekaman baru (UUID, IMG _ ID, IS _ MASTER, IS _ VM, EXTENSI, MEMBER _ ID, LENGTH, DATE _ RECORDED, DATE _ CREADTED [DB- digagalkan melalui @ CreationTimtistemp]). Satu baris per pesan suara terfinalisasi atau rekaman panggilan diunggah untuk pencitraan. - Entitas Recording Ext baru (UUID, RECORDING _ ID, EXTENSION, MEMBER _ ID, IS _ MASTER). Satu baris per saluran yang berpartisipasi dalam rekaman; kaki master ditandai IS _ MASTER = benar, setiap kaki lainnya salah. - * * * * * * * * * * * * * sekarang mengambil Metadata Rekaman bundel (phoneServerInstanceId, dateRecorded, lenghM, Ekstensi partisipating) dan perkuat baris Recording + RecordingExt di transaksi yang sama seperti anggota Img / ImgDat. telah diselesaikan per kaki via * * * * * * * * * * * * * * * * pada memulai instansi VOIP (kosong ketika tidak ditugaskan).

  25. · kamo-internal

    Mutakhirkan Kartu Administrasi Platform untuk mencocokkan struktur tab terpadu

    Ganti dua kartu basi (Halaman standalone Organisasi + Konfigurasi) dengan lima kartu yang cocok dengan tab sebenarnya: Umum, Organisasi, VOIP & SMS, Sistem Pengguna, dan Advanced - masing-masing menghubungkan langsung ke kanan? tab = param.

  26. · kamo-internal

    Tata letak kisi lebar penuh dan pindahkan pemicu sinkronisasi dari tab Lanjutan

    - Redesign tab VOIP & SMS untuk menggunakan lebar area-penuh: rentang statistik pipeline baris atas, Recording Processing dan Global Sync Jadwal duduk berdampingan dalam dua kolom kisi di lg + breakpoint - Kartu titik pipa menunjukkan jumlah hidup dengan zero- status checkmarks dan error coding warna; auto- refresh setiap 30-an dicatat dalam subjudul - Global Sync kartu konsolidasi pengaturan jadwal, terakhir - sync timestamp row, dan pemicu manual ke satu panel; diaktifkan / pause chip dalam header - Pindahkan "Force global VOIP sync" dari tab Advanced (duplikasi pemicu sudah ada di VOIP & SMS); Tab tingkat lanjut sekarang menunjukkan teks placeholder

  27. · kamo-internal

    Gabung Organisasi ke halaman Konfigurasi dengan nav tab terpadu

    - Tambahkan Organisasi sebagai tab dalam * * * * * * * * * * * * * * * * * * (Jenderal) - Hapus halaman standalone - Update Platform Administrasi nav dalam SettingStatusWindow untuk daftar semua 5 tab sebagai subitem yang menunjuk ke konfigurasi? tab =... - Tata letak fix di seluruh tab: konsisten p: {x: 2, sm: 3} isi sehingga tidak lagi berjalan ke dinding kartu - Meningkatkan kartu status GeneralTab dengan latar belakang ikon dan ritme tipografi lebih ketat - Mutakhirkan judul / subjudul SettingsView untuk halaman terpadu

  28. · kamo-marketing

    Add Go logo to BUILT WITH banner

  29. · kamo-internal

    PONCE _ SERVER _ ID permukaan pada tab overview-telepon

    Operator mengatur dukungan kamo-asterisk- pada host FreePBX perlu menempel UUID VoipProviderInstance yang cocok ke berkas konfigurasi pembantu sebagai ID telepon. Sampai sekarang mereka harus grub melalui bar URL atau Database. Daerah "Server Telepon" baru pada / pengaturan / fitur / telepon / {id} overview menampilkan UUID dalam sebuah field baca-saja monospace dengan satu- klik tombol salin (copyableIdField helper, juga dapat digunakan kembali untuk masa depan yang mirip Identifikasi).

  30. · kamo-internal

    Clickable VOIP ekstensi di Interaction Center membuka softphone dengan nomor yang telah ada sebelumnya

Alam semestamu menunggu.

Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.

Gratis selamanya — tidak diperlukan kartu kredit